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

react-native-video v5.0.2 iOS本地视频无法播放问题求助

解决react-native-video在iOS端无法播放本地视频的问题

根据你的描述,Android端正常但iOS不行,核心问题大概率出在文件路径的处理逻辑上——iOS和Android对本地文件URI的要求有差异,再加上RNFS的路径规则需要特别注意。下面是一步步的解决方案:

1. 修正RNFS写入文件的路径(关键!)

你当前写入文件时给的路径带了file://前缀,但RNFS的writeFile方法接受的是原生文件系统路径,不是URI格式。iOS上RNFS.DocumentDirectoryPath已经是绝对路径(比如/var/mobile/Containers/Data/Application/xxx/Documents),加上file://会导致RNFS找不到正确的写入位置,文件实际没写到你预期的地方。

修正后的写入代码:

// 去掉file://前缀,直接用文件系统路径
const localFilePath = `${RNFS.DocumentDirectoryPath}/test.mp4`;
RNFS.writeFile(localFilePath, base64.encode(content), 'base64')
  .then(success => {
    console.log('FILE WRITTEN', localFilePath); // 打印路径方便排查
    // 写入成功后,把带file://的URI传给视频组件
    this.setState({ fileUrl: `file://${localFilePath}` });
  })
  .catch(err => {
    console.log('File Write Error: ', err.message);
  });

2. 验证文件是否真的写入成功

在写入成功后,建议用RNFS的exists和stat方法确认文件存在且大小合理,排除写入失败的可能:

RNFS.exists(localFilePath)
  .then(exists => {
    if (exists) {
      return RNFS.stat(localFilePath);
    }
    throw new Error('File does not exist');
  })
  .then(statResult => {
    console.log('File size:', statResult.size); // 大小不为0才正常
  })
  .catch(err => {
    console.log('File check error:', err.message);
  });

3. 调整react-native-video的配置

iOS端播放本地文件时,除了正确的URI,还需要确保视频组件的配置符合要求:

  • 确保source的uri是file://开头的完整URI(上面已经在写入成功后生成了)
  • 添加resolveAssetSource: false属性,避免react-native自动解析资源(因为这是本地文件,不是打包的资产)
  • 加上onError回调排查播放错误:
<Video
  source={{ uri: this.state.fileUrl, resolveAssetSource: false }}
  onError={(error) => console.log('Video Play Error:', error)}
  // 其他配置(比如style、controls等)
/>

4. 检查iOS权限配置

如果你的App需要访问Documents目录,确保在Info.plist中添加了对应的权限描述(虽然RNFS写入默认允许,但系统限制时可能需要):
添加以下键值对到Info.plist:

<key>NSDocumentsFolderUsageDescription</key>
<string>需要访问Documents目录存储视频文件</string>

5. 排除视频格式问题

虽然Android能播放,但iOS对视频编码的要求更严格,确保你的MP4文件是H.264编码、AAC音频的标准格式,如果是其他编码可能iOS无法解码。可以用工具(比如FFmpeg)转换格式验证。

按照上面的步骤调整后,iOS端应该能正常播放本地视频了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 14:37:29