所以我正在尝试播放一个简单的介绍动画视频文件,我已将其拖入XCode的项目中,因此应该可以从我的mainBundle播放,对吗?
使用此代码:
NSURL *urlString = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"introvideo" ofType:@"mp4"]];
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:urlString];
[player play];
我收到此错误消息: *由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'* - [NSURL initFileURLWithPath:]:nil string parameter'
任何帮助都会很棒!
答案 0 :(得分:58)
这意味着您的代码无法找到您的introvideo.mp4文件。确保您已成功将该文件添加到捆绑包中。您可以签入项目的设置:复制捆绑资源。
答案 1 :(得分:4)
您的代码不正确。请相应更改以下内容。仍然将您的视频复制到您的捆绑资源中。
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:@"MacBook Pro with Retina Display" ofType:@"m4v"]];
MPMoviePlayerViewController *playercontroller = [[MPMoviePlayerViewController alloc]
initWithContentURL:url];
[self presentMoviePlayerViewControllerAnimated:playercontroller];
playercontroller.moviePlayer.movieSourceType = MPMovieSourceTypeFile;
[playercontroller.moviePlayer play];
[playercontroller release];
playercontroller = nil;
NSLog(@"Video is Playing");
答案 2 :(得分:3)
似乎pathForResource:ofType:返回nil。检查
答案 3 :(得分:3)
您需要检查应用程序的资源包中是否有该视频。
如你所说
you getting this error message: * Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '* -[NSURL initFileURLWithPath:]: nil string parameter
。
它只是表明问题在resourcePath中,意味着Resource Bundle中没有这样的文件。这就是为什么pathForResource
返回nil
路径。
您需要再次放置该视频文件并确保该文件存在于资源包中。
然后你应该把代码作为Rehan
发送给我,并发布。
NSURL *url = [NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"video" ofType:@"mov" inDirectory:@""]];
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url];
[[player view] setFrame:[self.view bounds]]; // Frame must match parent view
[self.view addSubview:[player view]];
[player play];
[player release];
我希望对你来说可能是值得的。
由于
答案 4 :(得分:2)
NSURL *url = [NSURL URLWithString:[[NSBundle mainBundle] pathForResource:@"video" ofType:@"mov" inDirectory:@""]];
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:url];
[[player view] setFrame:[self.view bounds]]; // Frame must match parent view
[self.view addSubview:[player view]];
[player play];
[player release];
答案 5 :(得分:2)
答案 6 :(得分:1)
我放了一整个"声音"目录进入项目,并将其添加到"复制捆绑资源"部分。它工作正常,但随后开始崩溃。
修复方法是将目录名称添加到文件名中。例如,没有工作:
SKAction.playSoundFileNamed("crash.caf", waitForCompletion: false)
...但做了工作:
SKAction.playSoundFileNamed("Sounds/crash.caf", waitForCompletion: false)