【发布时间】:2018-04-19 00:09:34
【问题描述】:
我有一个播放顺序声音的小应用程序(一个播放单词音节的教学应用程序)
这可以通过在每个声音停止播放后立即触发一个事件来实现。比如:
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();
}
不过,现在 android chrome 对如何播放声音实施了一些新限制:声音事件必须全部由用户操作触发。
所以,当我运行与上面非常相似的代码时,第一个声音播放,然后我得到 p>
Uncaught (in promise) DOMException: play() can only be initiated by a user gesture.
如何在 Android 的 Chrome 上播放在运行时确定的一系列声音?
【问题讨论】:
-
我的 Google Chrome 版本是 62.0.3202.94...我使用了您的代码,它非常适合我...
-
可以分享一下浏览器版本和其他细节吗?注意:最近谷歌宣布将阻止自动播放视频。检查theverge.com/2017/9/15/16311310/…
标签: android html google-chrome audio