Nous développons actuellement un site Web qui permet aux utilisateurs de lire de simples balises audio connectées à l'audiocontext. Nous sommes conscients des problèmes techniques avec IOS tels que la lecture initiée par des gestes utilisateur. Tout fonctionne bien jusqu'à IOS12. Maintenant que IOS13 est sorti, plus rien ne fonctionne.
Il fonctionne sur tous les ordinateurs de bureau, Android et IOS jusqu'à IOS13.
Une idée sur ce qui se passe?
Il n'y a aucun message d'erreur dans la console lors du débogage avec Safari sur le bureau connecté à l'iphone.
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();
ligne devrait s'occuper de cela, mais je pense que ce qui suit devrait être dans la résolution de la promesse, comme ceci: audioContext.resume (). Then (function () {player.play () playbutton.innerHTML = "Pause"; playStatus = 'isPlaying';}
src
statique avec une URL complète. Cependant, cela ne fonctionne que si vous quittez Safari, puis l'ouvrez à nouveau. Comportement très étrange.