iOS模拟器中video_player无法播放网络视频,已配置NSAppTransportSecurity
iOS模拟器中video_player无法播放网络视频的解决办法
1. 修复info.plist配置格式
你提供的info.plist代码存在格式错误,开头的<false/>属于多余内容,且ATS配置必须放在文件的根<dict>节点内。正确的配置如下:
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
修改后重新打包运行,确保配置生效。
2. 验证视频源有效性
- 直接在模拟器的Safari中打开你的视频链接,若Safari无法播放,说明问题出在视频本身:可能是链接失效、格式不支持(iOS原生仅支持H.264编码的MP4等少数格式,WebM这类格式无法直接播放)或视频服务器存在跨域/权限限制。
- 换一个公开的测试视频链接(比如
https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4)测试,排除视频源问题。
3. 修正代码异步逻辑
当前代码中,play()和setLooping(true)在控制器初始化完成前就被调用,此时控制器尚未就绪,命令不会生效。需将这些操作移至initialize()的回调内:
void initState() { super.initState(); _controller = VideoPlayerController.network( widget.videoLink, videoPlayerOptions: VideoPlayerOptions(), )..initialize().then((_) { setState(() {}); _controller.play(); _controller.setLooping(true); }); }
4. 排查模拟器网络环境
- 确认模拟器与主机处于同一网络,且能正常访问外网(可通过模拟器打开百度等网页验证)。
- 若视频链接为内网地址,检查模拟器是否能访问该内网,必要时手动设置模拟器网络代理。
5. 更新插件版本
旧版本video_player可能存在模拟器适配bug,执行以下命令更新至最新稳定版:
flutter pub upgrade video_player
更新后重新运行项目。
6. 查看Xcode日志定位问题
打开Xcode运行项目,查看控制台输出,搜索video_player、AVPlayer相关错误信息,比如网络请求失败、解码错误等,日志会提供精准的问题线索。
内容的提问来源于stack exchange,提问作者Tdayo
相关产品推荐
相关产品推荐

