2013-01-09 95 views
1

我只是想加載一個主包中的視頻文件,這看起來很簡單,但由於某種原因我不斷收到MPMoviePlayerController的錯誤,我有以下代碼。在iOS中播放視頻失敗

- (void)viewDidLoad{ 
[super viewDidLoad]; 

NSString *path = [[NSBundle mainBundle] pathForResource:@"ipad2" ofType:@"mp4"]; 

self.myPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:path]]; 
[self.myPlayer prepareToPlay]; 

self.myPlayer.movieSourceType = MPMovieSourceTypeFile; 
[self.myPlayer.view setFrame:self.view.bounds]; 
[self.view addSubview:self.myPlayer.view]; 

[self.myPlayer play]; 

} 

我只得到一個黑色的屏幕和下面的輸出:

2013-01-09 13:38:15.686 myVideoApp[1789:907] [MPAVController] Autoplay: Likely to keep up or full buffer: 0 
2013-01-09 13:38:15.690 myVideoApp[1789:907] [MPAVController] Autoplay: Skipping autoplay, not enough buffered to keep up. 

我也嘗試添加這些通知玩,但是永遠不會發送:

[[NSNotificationCenter defaultCenter] 
addObserver:self 
selector:@selector(playVideo:) 
name:MPMoviePlayerLoadStateDidChangeNotification 
object:self.myPlayer ]; 

當我打印self.myPlayer.loadState我得到了0這是undefined loadState。
這些是一個簡單的viewController與任何其它方法,並且我對.h文件這些聲明: @property (nonatomic, strong) MPMoviePlayerController *myPlayer;

我真的在iOS 6運行,並且這些可以同時在設備和模擬器

回答

2
NSString *path = [[NSBundle mainBundle] pathForResource:@"ipad2" ofType:@"mp4"]; 

您是否在調試器中檢查過path不是nil

self.myPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:path]]; 

這是從文件路徑創建URL的錯誤方法。改爲使用+[NSURL fileURLWithPath:]

+0

感謝改變創建URL的方式解決了這個問題 –

0

我也使用MPMoviePlayerViewController在我的應用程序上直播視頻,並獲得上面的列表errors.And我發現MPMoviePlayer不支持更大的數據來顯示視頻,但如果您使用較小的數據的視頻工作正常,它不會給任何錯誤。實際上並不是準備玩電影播放器​​的屬性的問題。

如果您需要顯示更大的數據,然後在您的應用程序中使用webview。