在iOS中播放视频失败

时间:2013-01-09 19:45:49

标签: ios objective-c video mpmovieplayercontroller

我只是想加载一个主要包中的视频文件,这看起来很简单但是由于某些原因我不断收到MPMoviePlayerController的错误,我有以下代码。

- (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未定义的loadState 这是一个简单的viewController与任何其他方法,我在.h文件上有这些声明: @property (nonatomic, strong) MPMoviePlayerController *myPlayer;

我在iOS 6上运行,这些都发生在设备和模拟器中

2 个答案:

答案 0 :(得分:2)

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

您是否已在调试器中检查path不是nil

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

这是从文件路径创建URL的错误方法。请改用+[NSURL fileURLWithPath:]

答案 1 :(得分:0)

我还使用MPMoviePlayerViewController在我的应用程序上生活视频并获得相同的上面列表错误。我发现MPMoviePlayer不支持更大的数据来显示视频但是如果你使用较小的视频数据工作正常它不会给出任何错误。实际上不是准备播放和播放电影播放器​​的属性的问题。

如果您需要显示更大的数据,请在您的应用上使用webview。