Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
DomeException error-Javascript play()只能由用户手势启动,但我是从touchStart调用它的_Javascript_Android_Audio_Domexception - Fatal编程技术网

DomeException error-Javascript play()只能由用户手势启动,但我是从touchStart调用它的

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

在Javascript中,当从touchstart事件调用的函数中使用play()启动音频剪辑时,我只在Android上遇到DomeException错误

我使用以下代码设置事件:

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触发的