모바일 브라우저에서 자동 재생을 사용할 수있는 기회가 없습니다. Android 및 iOS에서는 허용하지 않으며 개인적으로는 실현 가능성이 있다고 생각합니다. 처음 시작할 때 웹 사이트를 두 번 상상해보십시오.
그러나 사용자가 자신이 현재 응용 프로그램의 오디오를 시작 발언하지 않도록 당신이 조금 해킹을 할 수 있습니다 :
당신은 당신의 오디오를 시작하는 사용자 상호 작용이 필요합니다. 따라서 앱이나 게임에 시작 화면이나 시작 버튼이있어 메인 메뉴로 이동하거나 게임을 시작하려면 클릭이 필요합니다. 해당 클릭 이벤트에 바인딩하고 <audio>
에 대한 load() 메소드를 호출하십시오.
<audio>
의 "canplaythrough"이벤트에 바인딩하십시오. 이 이벤트는 소스를 재생할 준비가되면 트리거됩니다. 이제 play(), pause()를 호출하거나 다른 상호 작용을 기다릴 수 있습니다. 따라서 오디오는 준비되었지만 이제는 사운드를 시작하거나 중지 할 때 모든 것을 제어 할 수 있습니다.
또한 모바일 클라이언트에서 오디오 스프라이트를 사용하는 것이 좋습니다. iOS (및 Android?)는 내부적으로 싱글 톤을 통해 오디오 지원을 구현했습니다. 즉, 데스크톱 브라우저처럼 10 개의 오디오 요소를 가지고 한 번에 여러 가지 사운드를 재생할 수 없습니다. 하나의 파일 만 재생할 수 있습니다! 다른 소리의 소스를 변경하는 데 많은 시간이 걸립니다. 오디오 스프라이트를 사용하면 사용자가 처음 웹 사이트 또는 게임과 상호 작용할 때 스프라이트를 시작할 수 있습니다. 스프라이트를 일시 중지하고 사운드를 재생해야하는 경우 currentTime을 스프라이트의 시작 부분으로 설정하고 파일의 currentTime이 스프라이트의 끝에 도달 할 때 스프라이트를 일시 정지해야합니다. Sprite의 currentTime을 확인할 수있는 timeupdate 이벤트가 있습니다.
당신은 내가 당신을 위해 내 자바 스크립트 오디오 스프라이트 플레이어를 준비 할 수 있습니다 더 관심이 있다면 !
몇 주 전에 비슷한 일을하고 싶었고 검색 결과가 도움이되지 못했습니다. – boz
나는이 문제를 닥칠 때 봤는데 유용하지 않다. 제발 Stackoverflow, 당신은 내 유일한 희망은 ... –
'AudioContext'를 사용하여 파이어 폭스와 크롬에 대한 해결책을 얻었지만, 사파리를 사용하지 않았다면 시도하지 않았다. 비슷한 질문에 대한 내 대답을 참조하십시오. https://stackoverflow.com/a/46485784/2342518 [@boz가 지금부터 무의미한 검색을 한 것은 마지막이 되었으면합니다.] – Xenos