2017-04-20 6 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

몇 달 전 크롬 표시 크롬 : // 플래그/# disable-gesture-requirement-for-media-playback을 true로 설정했습니다. 및 Chrome에서 touchstart 이벤트 재생이 제대로 작동합니다. 아쉽게도이 플래그는 크롬을 업데이트 한 후 마지막으로 사라졌습니다.

이제 모바일에서 Firefox를 사용하여 문제를 해결하고 있습니다. 이제는 이상적인 솔루션이지만, 더 나은 것을 찾지 못했습니다. 크롬은 js 다음 다른 구현을 사용한다는 것이 이상합니다.