2012-02-14 119 views
1

我想播放存储在NSData对象中的视频。我将文件保存到我的应用程序临时文件夹中,然后尝试播放它,但是我得到的只是一个黑屏。我可以稍后浏览到该文件夹​​并播放该文件,因此我知道该文件已被写入并且受支持。播放存储在NSData中的视频

这是我的代码:

NSString *urlString = [NSTemporaryDirectory() stringByAppendingPathComponent:@"test.m4v"]; 
NSURL *url = [[NSURL alloc] initWithString:urlString]; 

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL: url]; 
[moviePlayer prepareToPlay]; 
moviePlayer.view setFrame: self.view.bounds]; 
[self.view addSubview: moviePlayer.view]; 
[moviePlayer play]; 

我能想到的唯一的事情是,它需要一些时间来获得书面文件,而玩家试图访问它之前完成。这是可能的,如果是这样,我该如何解决它?

+0

你能显示代码,你实际上写的文件? – basvk 2012-02-14 14:00:01

+0

[videoData writeToURL:url atomically:NO]; 这是写入文件所需的一切。 – 2012-02-15 12:58:41

回答

3

使用文件时,你应该告诉NSURL URL应指向 文件:

NSString *urlString = [NSTemporaryDirectory() stringByAppendingPathComponent:@"test.m4v"]; 
NSURL *url = [NSURL fileURLWithPath:urlString]; 

moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL: url]; 
[moviePlayer prepareToPlay]; 
moviePlayer.view setFrame: self.view.bounds]; 
[self.view addSubview: moviePlayer.view]; 
[moviePlayer play]; 
+0

非常感谢。解决了一切。 – 2012-02-14 14:49:44

+0

感谢我的身边..一个小时计算出什么是错的.. – Shubhank 2012-03-17 11:40:42