2012-02-14 64 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