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

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 中添加后台音频播放权限:

  1. 用Xcode打开iOS项目,进入Signing & Capabilities页面
  2. 点击**+ Capability**,添加Background Modes
  3. 勾选Audio, AirPlay, and Picture in Picture

或者直接手动编辑 Info.plist 文件,添加以下内容:

<key>UIBackgroundModes</key>
<array>
  <string>audio</string>
</array>

Android 端配置

  1. 在 AndroidManifest.xml 中添加唤醒锁权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
  1. 在 <application> 标签内添加ExoPlayer的音频服务配置:
<application ...>
  <service 
    android:name="com.google.android.exoplayer2.audio.AudioService"
    android:foregroundServiceType="mediaPlayback"
    android:exported="false"/>
</application>

注意事项

  • 必须用真机测试,模拟器的后台音频播放行为可能不符合真实设备逻辑
  • 确保你的视频流包含音频轨道,无音频的视频锁屏后不会触发后台播放逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 11:02:33