2017-04-20 20 views
2

タッチスタート後にオーディオを再生する際に問題があります。私は私のモバイルデバイスとtouchstartのためのテストにこれを開くとオーディオをタッチスタートで再生

<!DOCTYPE html> 
 
<html> 
 
\t <head> 
 
\t \t <meta charset="utf-8"> 
 
\t \t <title>Play Media on user touch</title> 
 
\t </head> 
 
\t <body> 
 
\t \t <div id="play">Click me to play audio!</div> 
 
\t \t <script type="text/javascript"> 
 
\t \t \t document.querySelector('#play').addEventListener('touchstart', function() { 
 
           new Audio('http://techslides.com/demos/samples/sample.mp3').play()  \t \t \t \t 
 
\t \t \t }) 
 
\t \t </script> 
 
\t </body> 
 
</html>

が、私はコンソールにこのエラーが出ます:私は、私はそうするクロム57で実行し、次のコードを持っている

Warning: Failed to execute 'play' on 'HTMLMediaElement': API can only be initiated by a user gesture.

Error: Uncaught (in promise) DOMException: play() can only be initiated by a user gesture.

タッチスタートはユーザージェスチャとは見なされませんか?これは意図的な動作かバグですか?

答えて

-1

クロムフラグ クロム://フラグ/#無効 - ジェスチャー要件がメディア再生をtrueに設定しました クロムでtouchstartイベントで再生が正しく機能しました。 残念ながら、このフラグはクロムを更新した後、前回消えました。

今、私はモバイルでFirefoxを使用することでこの問題を回避しています。今は理想的な解決策ですが、何か良いものは見つけられませんでした。 クロムは、他のものから他のものへの他の実装を使用することは私にとっては奇妙です。

関連する問題