屏幕关闭时,HTML5 音频/javascript 停止在 android(谷歌浏览器)上工作

Posted

技术标签:

【中文标题】屏幕关闭时,HTML5 音频/javascript 停止在 android(谷歌浏览器)上工作【英文标题】:HTML5 audio/javascript stops working on android(google chrome) when screen is turned off 【发布时间】:2016-04-18 06:35:28 【问题描述】:

我创建了一个播放音乐播放列表的网络应用程序,它在桌面浏览器以及 android 的 mozilla 和opera 中运行良好。但是当我在Android的Chrome浏览器上播放歌曲并关闭屏幕时,它会在播放当前歌曲后停止。一旦我打开屏幕,它就会开始加载下一首歌曲。

根据我的观察,我的理解是,如果屏幕关闭,Android 上的 Google Chrome 浏览器会暂停执行 javascript 代码,直到屏幕不再被唤醒。有什么办法可以防止我的特定库暂停?有什么方法或事件吗?

一些相关的这个问题是我正在寻找的:JavaScript halts in inactive android Chrome tab

有很多 WebApp 不停地播放音乐。它需要来自 Google App Store 的一些权限吗?

【问题讨论】:

您可以尝试在音频播放时强制触摸事件,这样浏览器就不会在屏幕关闭时禁用浏览器窗口。但是不建议这样做,因为它会消耗内存和电池。 你也许可以绕过cordova的行为,但不能“只是一页”。我必须使用开发人员设置中关于在插入时保持开启的选项来防止我的手机进入睡眠状态,以使它们成为体面的音频播放奴隶。 【参考方案1】:

检查 youtube 会发生什么,至少几年前,我处理这个问题的时间很糟糕,而这向我的客户证明,在给定的时间框架和预算内它无法完成。这实际上是特定于设备的,在某些设备上可以正常工作,而在其他设备上则不行。检查它是否发生在其他设备上。我能想到的唯一解决方案是防止屏幕关闭(在有问题的设备上或一开始就全部关闭),或者构建一个应用程序并处理 onPause 事件

【讨论】:

【参考方案2】:

我不认为你可以改变 Chrome 应用程序的行为,如果他们想在后台节省电池并停止 javascript,你不会重新激活它。

也许还有其他一些方法可以让它发挥作用。

    告诉您的用户他们应该在移动设备上使用 Firefox 或 Opera。

    所有应用都可以在后台播放或流式传输音乐,因此您可以制作或使用应用来完成您的任务。

    也许你可以在安卓上使用默认的音乐播放器应用。使用该应用打开流的播放列表。 (我不知道这是否可能,因为我没有安卓设备。)

我知道这并不完全是您想要的,但也许是一种让它发挥作用的方法。

【讨论】:

以上是关于屏幕关闭时,HTML5 音频/javascript 停止在 android(谷歌浏览器)上工作的主要内容,如果未能解决你的问题,请参考以下文章

关闭 iOS Safari 时停止 HTML5 音频循环

如何使用 javascript 控制 HTML5 音频标签

Cordova 应用程序:当应用程序关闭时停止运行 JavaScript

当通过 JavaScript 填充源时,Html5 音频不会在 Safari 中播放

HTML5 网站在手机屏幕关闭时运行?

HTML5/Javascript/jQuery 音频播放器不响应事件?