jos*_*lvo 5 html audio android google-chrome
我有一个小的应用程序,播放顺序声音(教学应用程序播放一个单词的sillables)
这可以通过在每个声音停止播放后立即发射事件来实现.就像是:
var sounds = new Array(new Audio("1.mp3"), new Audio("2.mp3"));
var i = -1;
playSnd();
function playSnd() {
i++;
if (i == sounds.length) return;
sounds[i].addEventListener('ended', playSnd);
sounds[i].play();
}
Run Code Online (Sandbox Code Playgroud)
但是,现在android chrome已经对如何播放声音实施了一些新的限制:声音事件必须全部由用户操作触发.
因此,当我运行与上面非常类似的代码时,第一个声音播放,然后我得到
Uncaught (in promise) DOMException: play() can only be initiated by a user gesture.
Run Code Online (Sandbox Code Playgroud)
如何在Android的Chrome上播放在运行时确定的一系列声音?
首先,Android 上的 Google Chrome一直存在限制,不允许应用程序在没有用户明确操作的情况下播放HTML 音频。然而,在大多数情况下,它与普通浏览器的处理方式不同。
正如Chromium Org所说,原因是Android 上不支持自动播放,因为它会消耗数据使用量。
您可以在此处找到更多详细信息。
除了这会导致带宽浪费这一事实之外,这也是有一定道理的,因为移动设备是在公共场所和家庭中使用的,在这些地方,来自随机网站的未经请求的声音可能会造成滋扰。
然而,在后来的版本中,这个想法被推翻了,Android 上的 Chrome开始允许自动播放HTML 音频和视频。经过一系列审查和讨论后,此功能再次恢复到原来的状态,强制用户操作在 Android 版 Chrome 上调用 HTML 音频和视频。
这是我在同一方面发现的更多内容。正如其所说,原因是“我们将收集一些有关用户对自动播放视频的反应的数据,以便决定是否保留此限制”。因此,无需用户操作的播放选项就被恢复了。
您还可以在Forbes和The Verge上找到有关阻止音频和视频 _autoplay 的更多信息。
但是,我可以建议您尝试一下,这将帮助您实现您的目的。您所要做的就是复制此代码并粘贴到Android 版 Chrome中。这可以帮助您重置默认设置为不允许在没有用户交互的情况下播放 HTML 音频和视频的标志:
chrome://flags/#disable-gesture-requirement-for-media-playback
或者
about:flags/#disable-gesture-requirement-for-media-playback
如果上述过程对您没有帮助/不起作用,您可以执行以下操作:
进入
chrome://flags
ORabout:flags
(这将引导您进入chrome://flags
)并启用“禁用媒体播放的手势要求”选项(实际上与上面指定的 URL 相同)。
归档时间: |
|
查看次数: |
424 次 |
最近记录: |