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

Flutter video_player与chewie在iOS出现PlatformException加载失败求助

解决Flutter中video_player/chewie在iOS端加载视频失败的问题

1. 配置iOS ATS(App Transport Security)

如果视频URL是HTTP协议,iOS默认会拦截非HTTPS请求。需要在ios/Runner/Info.plist中添加配置:

<key>NSAppTransportSecurity</key>
<dict>
    <!-- 全局允许非HTTPS请求(不推荐,仅临时测试用) -->
    <!-- <key>NSAllowsArbitraryLoads</key>
    <true/> -->
    
    <!-- 推荐:仅给视频域名开例外 -->
    <key>NSExceptionDomains</key>
    <dict>
        <key>你的视频域名.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
            <true/>
        </dict>
    </dict>
</dict>

2. 验证视频格式兼容性

iOS原生播放器仅支持有限的视频格式,优先使用H.264编码的MP4格式。如果是WebM等其他格式,iOS无法直接解码,需要更换视频源。

3. 修复初始化代码的异常处理与状态更新

你的初始化代码缺少错误捕获,且未正确触发UI更新。修改_initPlayer方法:

void _initPlayer() async {
  try {
    videoPlayerController = VideoPlayerController.network(widget.videoUrl);
    await videoPlayerController?.initialize();
    // 初始化成功后更新状态,创建chewie控制器
    setState(() {
      chewieController = ChewieController(
        showOptions: true,
        showControls: true,
        allowPlaybackSpeedChanging: true,
        playbackSpeeds: [0.50, 0.75, 1.00, 1.10, 1.20, 1.30, 1.40, 1.50, 2.00],
        videoPlayerController: videoPlayerController!,
        autoPlay: true,
        looping: true,
      );
    });
  } catch (e) {
    log('视频初始化失败: $e', name: 'VideoError');
    // 可在此添加错误提示逻辑
  }
}

必须通过setState触发UI更新,确保chewie控制器创建后能正确渲染;添加try-catch便于排查初始化阶段的问题。

4. 检查网络权限与URL可用性

  • 在Info.plist中添加网络权限描述:
<key>NSNetworkUsageDescription</key>
<string>需要网络权限加载视频</string>
  • 用iOS设备的Safari直接打开视频URL,确认能正常播放。如果无法访问,排查视频服务器的跨域、地区限制等问题。

5. 更新依赖包版本

确保video_player和chewie使用最新稳定版,修改pubspec.yaml后执行flutter pub get:

dependencies:
  flutter:
    sdk: flutter
  video_player: ^2.8.6 # 替换为最新稳定版
  chewie: ^1.7.1 # 替换为最新稳定版

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 04:35:19