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

Cordova应用如何防止智能手机待机导致音频播放中断

Cordova广播应用熄屏待机后音频中断解决方案

核心原因

移动端系统默认会在熄屏进入待机状态后,为了降低功耗冻结后台非活跃应用进程、暂停未申请后台权限的音频任务,因此会出现广播播放中断的问题。

具体解决方法

  • 安装并启用后台模式插件
    这是最通用的解决方案,使用官方维护的后台模式插件即可实现熄屏后进程保活:
    安装命令:
    cordova plugin add cordova-plugin-background-mode
    在应用入口的deviceready事件回调中添加初始化逻辑:
    document.addEventListener('deviceready', function () {
      // 启用后台模式
      cordova.plugins.backgroundMode.enable();
      // 可选配置:自定义通知栏展示内容,避免用户误解应用异常耗电
      cordova.plugins.backgroundMode.setDefaults({
        title: '广播收听中',
        text: '后台播放运行中,点击返回应用',
        silent: false
      });
    }, false);
    
  • 分平台配置后台音频权限
    • 安卓端:在AndroidManifest.xml中添加保活和前台服务权限
      <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
      <uses-permission android:name="android.permission.WAKE_LOCK" />
      
      如果你使用cordova-plugin-media播放音频,初始化时额外添加配置playAudioWhenScreenIsLocked : true。
    • iOS端:在Xcode项目配置中开启Background Modes能力,勾选Audio, AirPlay, and Picture in Picture选项即可。
  • 引导用户关闭节电优化拦截
    国内多数安卓定制系统有额外的后台限制策略,上述配置仍然被拦截的情况下,可在应用首次启动时引导用户手动将应用加入系统节电白名单,允许后台活动。

注意事项

  • 用户主动停止广播播放后,要调用cordova.plugins.backgroundMode.disable()主动关闭后台模式,避免被应用商店判定为恶意耗电应用被下架。
  • 针对限制极严的定制系统,建议额外添加播放中断自动续播的兜底逻辑,监听音频暂停事件后校验是否是用户主动暂停,非主动触发的暂停自动尝试重启播放。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 11:24:05