ฉันสร้างเว็บไซต์ที่หากผู้ใช้คลิกมันจะส่งเสียง เพื่อป้องกันไม่ให้เสียงทับซ้อนกันฉันต้องเพิ่มรหัส:
n.pause();
n.currentTime = 0;
n.play();
แต่นั่นทำให้เกิดข้อผิดพลาด:
The play() request was interrupted by a call to pause()
จะเกิดขึ้นทุกครั้งที่เหตุการณ์เสียงถูกเรียกทันทีหลังจากทริกเกอร์อื่น เสียงยังคงเล่นได้ดี แต่ฉันต้องการป้องกันไม่ให้ข้อความแสดงข้อผิดพลาดนี้โผล่ขึ้นมาอย่างต่อเนื่อง ความคิดใด ๆ ?
onCanPlay()
. คำตอบทั้งหมดนี้เป็นการแฮ็กที่สกปรก
n.play()
n.pause()
ด้วยเหตุนี้บทความพื้นฐานเกี่ยวกับเว็บนี้จะอธิบายวิธีแก้ปัญหา tl; dr:n.play().then(() => { n.pause()})