【问题标题】:Cordova Android how to stop audio on pause?Cordova Android 如何在暂停时停止音频?
【发布时间】:2016-07-21 13:22:21
【问题描述】:

我的一个同事使用 Cordova 制作了一个跨平台游戏应用程序。现在他在度假,我有一个问题,如果您按下主页按钮并离开应用程序,应用程序的背景音乐仍在播放。另外,如果你打电话。

我尝试将 Android <preference name="KeepRunning" value="false"/>and 也设置为 true,但这没有帮助。

知道如何处理这个问题吗?

【问题讨论】:

  • 无需提及之前的工作人员以及您现在工作的原因。分享一些代码。使用应用中正在播放的音频?
  • 我们正在使用某种 HTML5 声音库,它可以一次播放多个声音。

标签: android cordova audio onpause


【解决方案1】:

我自己找到了一个anwser:

我们必须设置<preference name="KeepRunning" value="true"/>,然后添加这个事件:

function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

// device APIs are available
//
function onDeviceReady() {
    document.addEventListener("pause", onPause, false);
    document.addEventListener("resume", onResume, false);
}

function onPause() {
    // Handle the pause event
    // Set loudness to zero
}

function onResume() {
    // Handle the resume event
    // Set loudness to one

}

如果 KeepRunning 设置为 false,Cordova 将无法识别 onPause/onResume 事件。

【讨论】:

    【解决方案2】:

    我的问题是,onPause 事件战争在应用程序恢复后触发。 -.- 但我可以找出一个可行的小技巧。至少对我来说:

    document.addEventListener("visibilitychange", function() {
            if (document.hidden) {
                //onPause stuff
            } else {
                //onResume stuff
            }
    
        }, false);
    

    当游戏最小化、设备关闭或标签切换时,这对我在 Android 上有效。

    【讨论】:

      【解决方案3】:

      使用cordovapause事件:

      document.addEventListener('pause', function() {
        // Tell your audio library to pause here
      });
      

      当用户重新打开应用时,resume 事件将触发:

      document.addEventListener('resume', function() {
        // Tell your audio library to start playing again
      });
      

      【讨论】:

      • 谢谢我在几分钟前得到了同样的结果。 :-)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      • 2012-06-30
      • 2021-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多