DomeException error-Javascript play()只能由用户手势启动,但我是从touchStart调用它的
在Javascript中,当从touchstart事件调用的函数中使用play()启动音频剪辑时,我只在Android上遇到DomeException错误 我使用以下代码设置事件:DomeException error-Javascript play()只能由用户手势启动,但我是从touchStart调用它的,javascript,android,audio,domexception,Javascript,Android,Audio,Domexception,在Javascript中,当从touchstart事件调用的函数中使用play()启动音频剪辑时,我只在Android上遇到DomeException错误 我使用以下代码设置事件: instructionsDiv.addEventListener("touchstart", touchStart, false); instructionsDiv.removeEventListener("touchstart", touchStart); audio = new Audio(sndSources
instructionsDiv.addEventListener("touchstart", touchStart, false);
instructionsDiv.removeEventListener("touchstart", touchStart);
audio = new Audio(sndSources.welcome);
audio.play();
我用以下代码调用函数中的音频片段:
instructionsDiv.addEventListener("touchstart", touchStart, false);
instructionsDiv.removeEventListener("touchstart", touchStart);
audio = new Audio(sndSources.welcome);
audio.play();
我得到这个警告:
未能对“HtmlMedia元素”执行“播放”:只能通过用户手势启动API
这个错误是:
“未捕获(承诺中)DomeException:play()只能由用户手势启动。”
这是我的困惑:
1.我使用触摸事件通过用户手势启动它
2.这只发生在Android上。它在iPhone上运行良好
有什么想法吗?也有同样的问题。从我的测试来看,Android并不认为“触摸启动”是媒体回放的一种手势。我改用了“mousedown”,它可以正常工作。我通过使用用户手势来处理相同的问题,并绕过DOM异常
const mc = new Hammer(element);
mc.on('tap', function() {});
不幸的是,
mousedown
事件不是由Chrome Mobile触发的