触摸启动后播放音频时遇到问题。我在Chrome 57中运行以下代码来执行此操作:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Play Media on user touch</title>
</head>
<body>
<div id="play">Click me to play audio!</div>
<script type="text/javascript">
document.querySelector('#play').addEventListener('touchstart', function() {
new Audio('http://techslides.com/demos/samples/sample.mp3').play()
})
</script>
</body>
</html>
&#13;
当我在移动设备上打开它并测试touchstart时,我在控制台中收到此错误:
警告:无法执行&#39;播放&#39; on&#39; HTMLMediaElement&#39;:API只能 由用户手势发起。
错误:未捕获(在promise中)DOMException:play()只能是 由用户手势发起。
touchstart不被视为用户手势吗?这是故意的行为还是一个错误?
答案 0 :(得分:-1)
几个月前,我设置了chrome旗 chrome:// flags / #disable-gesture-requirement-for-media-playback为true 并且在touchstart上播放事件在chrome中正常工作。 不幸的是,在更新chrome之后,这个标志上次消失了。
现在,我正在通过在我的手机中使用firefox来解决这个问题。它现在是一个理想的解决方案,但我找不到更好的东西。 对我来说奇怪的是,chrome使用其他js的实现。