0

我在应用商店有一个应用,可以播放精选的视频。目前所有的视频都是 .mov 文件格式,但这使得应用程序的大小相当大,所以我尝试使用不同的文件格式来减小应用程序的整体大小。我正在尝试使用 mp4 格式,因为这将每个视频的大小减少了一半以上,但是当我这样做时,当我尝试播放视频并显示以下错误消息时应用程序崩溃:由于未捕获的异常而终止应用程序' NSInvalidArgumentException', reason: ' * -[NSURL initFileURLWithPath:]: nil string parameter 我在我的实现文件中为每个视频使用了以下代码,并更改了文件名和类型以匹配新视频,所以我不明白为什么应该是文件路径的问题。

- (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];
}

我错过了什么吗?

4

1 回答 1

0

.mov不是视频格式或编解码器,它是一个容器。开发人员文档提供了支持的视频编解码器、比特率和分辨率的列表(链接在这里——我不会在这里发布它们,因为它们可以从操作系统版本更改为操作系统版本)。

但是,我认为这不是问题所在,因为看起来好像是在创建时遇到了异常NSURL,而不是在播放视频时。这表明您为视频提供的路径不存在。您确定您有 a) 正确的文件名,b) 正确的扩展名(可能是 MP4 而不是 MOV),或者 c) 已将电影文件正确添加到您的项目中?

于 2013-05-28T13:09:21.023 回答