Wir entwickeln derzeit eine Website, auf der Benutzer einfache Audio-Tags abspielen können, die mit dem Audiokontext verbunden sind. Wir sind uns technischer Probleme mit IOS bewusst, z. B. der Wiedergabe, die durch Benutzergesten ausgelöst wird. Bis IOS12 funktioniert alles einwandfrei. Jetzt, wo IOS13 nicht mehr verfügbar ist, funktioniert nichts mehr.
Es funktioniert auf allen Desktops, Android und IOS bis IOS13.
Irgendeine Idee, was los ist?
Beim Debuggen mit Safari on Desktop, das mit dem iPhone verbunden ist, werden in der Konsole keine Fehlermeldungen angezeigt.
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();
Zeile sollte sich darum kümmern, aber ich denke, was folgt, sollte in der Versprechungsauflösung wie folgt sein: audioContext.resume (). Then (function () {player.play () playbutton.innerHTML = "Pause"; playStatus = 'isPlaying';}
src
Statik mit einer vollständigen URL erstellt habe. Es funktioniert jedoch nur, wenn Sie Safari verlassen und dann erneut öffnen. Sehr seltsames Verhalten.