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

有没有办法在不指定文件类型的情况下设置AVPlayer?

AVPlayer兼容播放mov、wav等多格式本地文件解决方案

问题根因

你当前硬编码文件扩展名的写法,限制了AVAsset只能识别对应后缀的资源,换其他格式的文件时URL路径错误、资源类型不匹配,自然无法播放。

修复步骤

  • 移除硬编码扩展名的相关代码,不要在拼接路径时强制写死mov或者wav后缀
  • 读取文件时直接使用包含完整后缀的文件名初始化URL,示例代码如下:
// 此处的fileName为你从列表数据源拿到的、包含完整后缀的文件名,比如@"test.mov"或者@"audio.wav"
NSString *fullPath = [[NSBundle mainBundle] pathForResource:fileName ofType:nil];
// 如果是沙盒路径,直接拼接沙盒目录+完整文件名即可
NSURL *mediaURL = [NSURL fileURLWithPath:fullPath];

AVPlayerItem *playItem = [AVPlayerItem playerItemWithURL:mediaURL];
AVPlayer *player = [[AVPlayer alloc] initWithPlayerItem:playItem];

其中pathForResource的ofType参数传nil时,系统会自动匹配所有后缀的对应文件,不需要单独指定格式。

  • 如果你的列表数据源只存了文件名前缀没有存后缀,可以在读取本地文件目录时,提前把所有文件的完整名称、后缀都存到数据源里,供点击时直接调用。

相关代码截图

代码截图1
代码截图2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:48:04