Flutter使用video_player时关闭屏幕后播放停止问题求助
Flutter video_player 锁屏后音频持续播放解决方案
首先确认 allowBackgroundPlayback 的正确设置方式——这个参数必须在初始化 VideoPlayerController 时指定,后续动态修改无效:
late VideoPlayerController _videoController; @override void initState() { super.initState(); _videoController = VideoPlayerController.networkUrl( Uri.parse("你的视频URL"), // 关键:初始化时开启后台播放权限 allowBackgroundPlayback: true, )..initialize().then((_) => setState(() {})); }
接下来需要针对iOS和Android分别配置系统权限:
iOS 端配置
需要在项目的 Info.plist 中添加后台音频播放权限:
- 用Xcode打开iOS项目,进入Signing & Capabilities页面
- 点击**+ Capability**,添加Background Modes
- 勾选Audio, AirPlay, and Picture in Picture
或者直接手动编辑 Info.plist 文件,添加以下内容:
<key>UIBackgroundModes</key> <array> <string>audio</string> </array>
Android 端配置
- 在
AndroidManifest.xml中添加唤醒锁权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
- 在
<application>标签内添加ExoPlayer的音频服务配置:
<application ...> <service android:name="com.google.android.exoplayer2.audio.AudioService" android:foregroundServiceType="mediaPlayback" android:exported="false"/> </application>
注意事项
- 必须用真机测试,模拟器的后台音频播放行为可能不符合真实设备逻辑
- 确保你的视频流包含音频轨道,无音频的视频锁屏后不会触发后台播放逻辑
内容的提问来源于stack exchange,提问作者AVEbrahimi
相关产品推荐
相关产品推荐

