ขณะนี้เรากำลังพัฒนาเว็บไซต์ที่อนุญาตให้ผู้ใช้เล่นแท็กเสียงธรรมดาที่เชื่อมต่อกับออดิโอไฟล์ เราตระหนักถึงปัญหาทางเทคนิคของ IOS เช่นการเล่นที่เริ่มโดยท่าทางผู้ใช้ ทุกอย่างทำงานได้ดีจนถึง IOS12 ตอนนี้ IOS13 หมดแล้วไม่มีอะไรทำงานอีกต่อไป
ใช้งานได้บนเดสก์ท็อป Android และ IOS ทั้งหมดจนถึง IOS13
ความคิดเกี่ยวกับสิ่งที่เกิดขึ้น?
ไม่มีข้อความแสดงข้อผิดพลาดในคอนโซลเมื่อทำการดีบั๊กด้วย Safari บนเดสก์ท็อปที่เชื่อมต่อกับ 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();
บรรทัดควรดูแลว่า แต่ฉันคิดว่าสิ่งต่อไปนี้ควรจะอยู่ในการแก้ไขสัญญาเช่นนี้. audioContext.resume () แล้ว (ฟังก์ชั่น () {player.play () playbutton.innerHTML = "หยุดชั่วคราว"; playStatus = 'isPlaying';}
src
คงที่ด้วย URL เต็ม อย่างไรก็ตามจะทำงานได้ก็ต่อเมื่อคุณออกจาก Safari แล้วเปิดอีกครั้ง พฤติกรรมที่แปลกมาก