我在应用程序商店有一个应用程序可以播放一系列视频。目前所有视频都采用.mov文件格式,但这使得应用程序的大小相当大,因此我尝试使用不同的文件格式来减少应用程序的整体大小。 我正在尝试使用mp4格式,因为这会将每个视频的大小减少一半以上,但当我这样做时,当我尝试播放视频时,应用程序崩溃时出现以下错误消息: 由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' * - [NSURL initFileURLWithPath:]:nil字符串参数 我在我的实现文件中为每个视频使用了以下代码,并更改了文件名和类型以匹配新视频,所以我不明白为什么文件路径应该有问题。
- (IBAction)playDaresWins:(id)sender {
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:@"DaresWins" ofType:@"mov"]];
_moviePlayer =
[[MPMoviePlayerController alloc]
initWithContentURL:url];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:_moviePlayer];
_moviePlayer.controlStyle = MPMovieControlStyleNone;
_moviePlayer.shouldAutoplay = YES;
[self.view addSubview:_moviePlayer.view];
[_moviePlayer setFullscreen:YES animated:NO];
}
我错过了什么吗?
答案 0 :(得分:0)
.mov
不是视频格式或编解码器,而是一个容器。开发人员文档提供了受支持的视频编解码器,比特率和分辨率的列表(link here - 我不会在这里发布它们,因为它们可以从OS版本更改为OS版本。)
但是,我不认为这是问题所在,因为在您创建NSURL
时,看起来好像是在获取异常,而不是在播放视频时。这表明您为视频提供的路径不存在。你确定你有一个正确的文件名,b)正确的扩展名(可能是MP4而不是MOV),或c)是否已将电影文件正确添加到你的项目中?