gpt4 book ai didi

iphone - 视频播放失败 - [NSURL initFileURLWithPath :]: nil string parameter

转载 作者:可可西里 更新时间:2023-11-01 03:01:31 25 4
gpt4 key购买 nike

我正在努力理解为什么这不起作用:/每次我运行该项目时,应用程序崩溃并向我抛出“NSInvalidArgumentException”,原因:“* -[NSURL initFileURLWithPath:]:无字符串参数'

我遵循了一个教程(我对此很陌生)并且它对他有效并且代码完全相同..任何人都可以解释发生了什么吗?

.h文件

#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>
#import <QuartzCore/QuartzCore.h>

@interface FirstViewController : UIViewController {
MPMoviePlayerViewController *playerController;
}
-(IBAction)playVideo;
@end

.m 文件

#import "FirstViewController.h"

@interface FirstViewController ()

@end

@implementation FirstViewController

{
MPMoviePlayerController *mpc;

}



- (IBAction)playButton:(id)sender {

NSString *stringPath = [[NSBundle mainBundle]pathForResource:@"intro" ofType:@"MP4"];
NSURL *url = [NSURL fileURLWithPath:stringPath];

if(url != nil){

mpc = [[MPMoviePlayerController alloc]initWithContentURL:url];

[mpc setMovieSourceType:MPMovieSourceTypeFile];

[[self view]addSubview:mpc.view];

[mpc setFullscreen:YES];

[mpc play];

}
else{
NSLog(@"URL not found");

}
}
@end

最佳答案

唯一重要的部分是:

NSString *stringPath = [[NSBundle mainBundle] pathForResource:@"intro" ofType:@"MP4"];
NSURL *url = [NSURL fileURLWithPath:stringPath];

我假设异常是在第二行内引发的。这意味着 stringPath 为 nil,如果文件 intro.MP4 实际上不在您的应用程序包中,就会发生这种情况。

检查:

  • 该文件存在于您的源代码副本中

  • 您的 Xcode 项目引用了该文件(如果是红色,则表示该文件实际上不存在)

  • 在 Xcode 的目标中,查看“Build Phases”并显示“Copy Bundle Resources”构建阶段。该文件应该存在。如果不是,请按 + 按钮并选择它。

关于iphone - 视频播放失败 - [NSURL initFileURLWithPath :]: nil string parameter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14178667/

25 4 0