我制作了一段播放视频文件的代码。但当我构建它时,我得到了以下错误:
由于未捕获异常"NSInvalidArgumentException"而终止应用程序,原因:"-[NSURL initFileURLWithPath:]:nil字符串参数"首次抛出调用堆栈:(0x1ed8022 0x11c0cd6 0x1e80a48 0x1e809b9 0xc6553b 0xc654c5 0x2be8 0x1ed9e99 0x32614e 0x3260e6 0x3ccade 0x3ccfa 0x3cc266 0x4b3c0 0x4b5e6 0x31dc4 0x25634 0x17baef5 0x1eac195 0x1e10f2 0x1e0f8da 0x1e0ed84 0x1e0ec9b 0x17b97d8 0x17b988a 0x323626 0x29b2 0x2925)terminate调用抛出异常
我试了很多方法来修复它,但都不起作用!你没有解决方案吗?是的,我已经实现了媒体播放器框架!
我已经编码了以下代码:
-(IBAction)playvideo {
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:@"film" ofType:@"mp4"]];
MPMoviePlayerViewController *playercontroller = [[MPMoviePlayerViewController alloc]
initWithContentURL:url];
[self presentMoviePlayerViewControllerAnimated:playercontroller];
playercontroller.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
[playercontroller.moviePlayer play];
[playercontroller release];
playercontroller = nil;
}
这一行描述了问题:
由于未捕获异常"NSInvalidArgumentException"而终止应用程序,原因:"-[NSURL initFileURLWithPath:]:nil字符串参数"
它告诉您,您正在将一个nil
传递给一个不允许使用nil
的参数。
确保这是问题所在的步骤:
-(IBAction)playvideo {
NSString *videoPath = [[NSBundle mainBundle] pathForResource:@"film" ofType:@"mp4"]
if (!videoPath) {
NSLog(@"Video path is nil. My bundle must be set up incorrectly");
return; // return early.
}
NSURL *url = [NSURL fileURLWithPath:videoPath];
MPMoviePlayerViewController *playercontroller = [[MPMoviePlayerViewController alloc]
initWithContentURL:url];
// The rest of your implementation here.
}
这至少可以帮助您定位问题。
顺便说一句,您应该使用基于URL的方法来获取资源,而不是基于字符串的文件路径。但一件事一件事。