현재 오디오 컨텍스트에 연결된 간단한 오디오 태그를 재생할 수있는 웹 사이트를 개발 중입니다. 우리는 사용자 제스처로 시작된 재생과 같은 IOS의 기술적 문제를 알고 있습니다. IOS12까지 모든 것이 잘 작동합니다. 이제 IOS13이 종료되었으므로 더 이상 작동하지 않습니다.
그것은 모든 데스크탑, 안드로이드 및 IOS에서 IOS13까지 작동합니다.
무슨 일인지에 대한 아이디어가 있습니까?
iPhone에 연결된 데스크탑의 Safari로 디버깅 할 때 콘솔에 오류 메시지가 없습니다.
https://codepen.io/gchad/pen/WNNvzzd
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr">
<body>
<div>
<h1>Play Audio Tag connected to audio context</h1>
<div id="playbutton" style="width:100px; height:100px; background:blue; color:white; margin:auto; text-align: center; font-size: 30px; cursor: pointer;">
Play
</div>
<audio id="myPlayer" crossorigin="anonymous" >
<source src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/858/outfoxing.mp3"/>
<!--http://commondatastorage.googleapis.com/codeskulptor-assets/week7-brrring.m4a-->
</audio>
</div>
<script>
var player = document.getElementById('myPlayer'),
playbutton = document.getElementById('playbutton'),
playStatus = 'paused';
var audioContext = new(window.AudioContext || window.webkitAudioContext)();
var audioSource = audioContext.createMediaElementSource(player);
audioSource.connect(audioContext.destination);
playbutton.addEventListener('click',function(ev){
if( playStatus == 'paused'){
audioContext.resume();
player.play();
playbutton.innerHTML = "Pause";
playStatus = 'isPlaying';
} else {
player.pause();
playbutton.innerHTML = "Play";
playStatus = 'paused';
}
});
</script>
</body>
audioContext.resume();
라인은 알아서해야하지만, 나는 다음과 같이 약속의 해결에 있어야 다음 무엇을 생각한다. audioContext.resume () 다음 (함수 () {player.play () playbutton.innerHTML = "일시 중지"; playStatus = 'isPlaying';}
src
전체 URL로 정적을 작성하여 부분적으로 작동하게했습니다 . 그러나 Safari를 종료했다가 다시 열어야 만 작동합니다. 매우 이상한 행동.