You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何应用程序包中视频文件路径为nil导致播放崩溃?

解决iOS本地视频播放崩溃:NSInvalidArgumentException(nil路径参数)

崩溃原因

报错-[NSURL initFileURLWithPath:]: nil string parameter说明[[NSBundle mainBundle] pathForResource:ofType:]返回了nil,也就是系统找不到你指定的视频文件,导致初始化NSURL时传入无效参数触发崩溃。

解决步骤

  • 核对文件名与代码匹配
    确保代码里的文件名@"koi swimming"和扩展名@"m4v"与实际文件完全一致:

    • iOS文件系统区分大小写,比如Koi Swimming和koi swimming会被视为不同文件;
    • 检查文件名是否有多余空格、拼写错误,扩展名是否为小写m4v(不是M4V或其他格式)。
  • 确认文件已加入项目打包列表

    1. 打开Xcode的Build Phases选项卡,找到Copy Bundle Resources;
    2. 检查列表中是否包含你的koi swimming.m4v文件;
    3. 如果不在列表中,点击+按钮添加该文件,确保编译时会将其打包进App Bundle。
  • 修复代码中的逻辑问题并增加容错
    原代码存在两个问题:一是未先给AVPlayerViewController的player属性赋值就调用播放,二是没有对nil路径做判断。修改后的代码如下:

    NSString *path = [[NSBundle mainBundle] pathForResource:@"koi swimming" ofType:@"m4v"];
    if (path) {
        NSURL *url = [NSURL fileURLWithPath:path];
        AVPlayer *player = [AVPlayer playerWithURL:url];
        AVPlayerViewController *controller = [[AVPlayerViewController alloc] init];
        controller.player = player; // 先赋值player给控制器
        controller.view.frame = self.view.bounds;
        [self.view addSubview:controller.view];
        [player play]; // 直接调用player的play方法
    } else {
        NSLog(@"错误:找不到指定的视频文件");
    }
    
  • 验证文件是否被正确打包
    运行项目后,在Xcode的Products目录中找到你的.app文件,右键选择Show Package Contents,查看里面是否存在koi swimming.m4v文件。如果不存在,说明文件未被正确添加到项目中。

内容的提问来源于stack exchange,提问作者user1114881

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 14:25:30