gpt4 book ai didi

Android 浏览器在后台模式下不支持带有 HTML5 音频的播放列表

转载 作者:行者123 更新时间:2023-11-28 03:41:24 25 4
gpt4 key购买 nike

我想制作基于 Android 浏览器的 Radio Web App。我的网络应用程序的关键功能是持续播放音乐列表(mp3 文件)...JavaScript代码很简单...它在 PC 浏览器、iOS safari 和 Android Dolphin 中运行良好浏览器(第 3 方浏览器)...


var audioPlayer = new Audio();

audioPlayer.addEventListener('ended', nextSong, false);

function nextSong() {
audioPlayer.src = nextMusic_src;
}

但是。在 Android 默认浏览器中,当 android 处于后台模式时(主屏幕模式和 LCD 关闭 sleep 模式),Android 浏览器的 onPause() 阻止“结束”事件和执行下一首歌()。所以,我的网络应用程序只能播放一首音乐....并且不起作用更多的.....Android浏览器的onPause()源码是这样的……


浏览器 Activity .java

public class BrowserActivity extends Activity 
{

private Controller mController;

// ...

@Override

protected void onPause() {

if (mController != null) {
mController.onPause(); // <<==== here
}
super.onPause();
}

}

Controller .java

public class Controller implements WebViewController, UiController {

protected void onPause() {

// ...
mActivityPaused = true;
// ...
mUi.onPause();
mNetworkHandler.onPause(); // <<==== here

WebView.disablePlatformNotifications(); // <<====here
}

}


NetworkStateHandler.java

public class NetworkStateHandler {

// ...

void onPause() {

// unregister network state listener

mActivity.unregisterReceiver(mNetworkStateIntentReceiver); // <<==== here

}

}

是否有任何浏览器策略来防止后台事件模式....?如果没有,我怎么能注意到这个报告给谷歌开发者请求使用网络应用程序播放背景音乐...?我不考虑基于 WebView 的网络应用程序(混合),而只考虑基于浏览器的网络应用...谢谢...

诺贤郭

最佳答案

Droid 的结束事件不会持续触发。我听说,它已在 ICS 中修复。但是 Gingerbread 和 prior 有这个问题。

您可以不监听 .ended,而是监听 .timeupdate 并在该处理程序中查看时间是否是歌曲的结尾?这可能会解决您的问题。

关于Android 浏览器在后台模式下不支持带有 HTML5 音频的播放列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10696565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com