Saat ini kami sedang mengembangkan situs web yang memungkinkan pengguna untuk memutar tag audio sederhana yang terhubung ke audiocontext. Kami menyadari masalah teknis dengan iOS seperti pemutaran yang dimulai oleh gerakan pengguna. Semuanya berfungsi dengan baik hingga IOS12. Sekarang setelah IOS13 keluar, tidak ada yang berfungsi lagi.
Ini bekerja di semua desktop, android dan iOS hingga iOS13.
Adakah yang tahu apa yang sedang terjadi?
Tidak ada pesan kesalahan di konsol saat debugging dengan Safari di Desktop yang terhubung ke 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>
web-audio-api
ios13
JohnLoyd
sumber
sumber
audioContext.resume();
line harus mengurus itu, tapi saya pikir apa yang berikut harus dalam menyelesaikan janji, seperti ini:. AudioContext.resume () kemudian (function () {player.play () playbutton.innerHTML = "Jeda"; playStatus = 'isPlaying';}src
statis dengan URL lengkap. Namun, itu hanya berfungsi jika Anda meninggalkan Safari dan kemudian membukanya lagi. Perilaku yang sangat aneh.Jawaban:
Sayangnya,
AudioContext.createMediaElementSource
telah rusak sejak rilis iOS 13. Bug telah diperbaiki: https://bugs.webkit.org/show_bug.cgi?id=203435 . Ada dalam Safari Technology Preview 99 .sumber
Masalah ini secara keliru dilaporkan telah diperbaiki di iOS 13.3.1 (28 Januari 2020). Namun demikian, seperti orang dapat membaca dari laporan bug WebKit ini 203435 , masalahnya masih ada pada tanggal 7 April 2020, tanggal rilis iOS 13.4.1.
Laporan bug tidak memberikan informasi lebih lanjut sehubungan dengan perkiraan tanggal bug ini akan diperbaiki. Sayangnya, 80% pengguna iOS (sekitar 14% dari total pasar ponsel, menurut Statcounter) telah secara keliru tidak mampu menggunakan WebAudio pada perangkat mereka selama berbulan-bulan, sekarang.
Yang membuat segalanya lebih buruk bagi kami para pengembang adalah Safari tidak melaporkan kesalahan apa pun. Jadi, bahkan mencoba membayangkan mundur tidak mungkin atau sangat sulit.
sumber