หากต้องการเล่นไฟล์เสียงบนเบราว์เซอร์และให้รองรับทุกดีไวส์ (ทั้งเดสก์ท็อปและมือถือ) คุณสามารถใช้แท็ก <audio>
ของ HTML5 ซึ่งเป็นวิธีที่รองรับโดยเบราว์เซอร์หลัก ๆ เช่น Chrome, Firefox, Safari และ Edge
✅ ตัวอย่างโค้ดพื้นฐาน:
<audio controls> <source src="audio.mp3" type="audio/mpeg"> <source src="audio.ogg" type="audio/ogg"> <source src="audio.wav" type="audio/wav"> เบราว์เซอร์ของคุณไม่รองรับการเล่นเสียง </audio>
คำอธิบาย:
-
ใช้
<audio>
พร้อมcontrols
เพื่อให้มีปุ่มเล่น/หยุดเสียง <source>
รองรับไฟล์หลายรูปแบบ (mp3
,ogg
,wav
) เพื่อความเข้ากันได้กับเบราว์เซอร์ต่าง ๆ- ข้อความภายใน
<audio>
จะแสดงขึ้นหากเบราว์เซอร์ไม่รองรับแท็กนี้
🚀 วิธีทำให้ไฟล์เสียงโหลดเร็วและรองรับทุกดีไวส์:
- ใช้ไฟล์
.mp3
เป็นไฟล์หลัก เพราะรองรับบนทุกเบราว์เซอร์ - ตั้งค่า
preload="auto"
เพื่อให้ไฟล์เสียงโหลดล่วงหน้า (ลดเวลาโหลด) - เปิดใช้งาน Web Audio API หากต้องการปรับแต่งเสียงหรือเพิ่มเอฟเฟกต์
- ใช้ HTTPS สำหรับไฟล์เสียงเพื่อป้องกันปัญหาการเล่นไฟล์บน iOS
- รองรับการเล่นอัตโนมัติ (Autoplay) โดยเพิ่ม
muted
และplaysinline
สำหรับ iOS
<audio autoplay muted playsinline> <source src="audio.mp3" type="audio/mpeg"> </audio>
🎵 สรุป:
-
ใช้
<audio>
พร้อม<source>
รองรับหลายฟอร์แมต - ควบคุมการเล่นด้วย JavaScript
- ปรับแต่งให้เหมาะสมกับทุกอุปกรณ์โดยใช้ Web Audio API และตั้งค่า
playsinline
บนมือถือ
✅ ตัวอย่างโค้ดเล่น/หยุด/หยุดชั่วคราว:
<audio id="myAudio"> <source src="audio.mp3" type="audio/mpeg"> </audio> <button onclick="playAudio()">เล่น</button> <button onclick="pauseAudio()">หยุดชั่วคราว</button> <button onclick="stopAudio()">หยุด</button> <script> const audio = document.getElementById("myAudio"); function playAudio() { audio.play(); } function pauseAudio() { audio.pause(); } function stopAudio() { audio.pause(); // หยุดเสียง audio.currentTime = 0; // รีเซ็ตเวลาเป็น 0 } </script>
🛠 วิธีการทำงาน:
playAudio()
→ เล่นเสียงpauseAudio()
→ หยุดชั่วคราว (สามารถกดเล่นต่อจากจุดเดิม)stopAudio()
→ หยุดและรีเซ็ตเวลาให้เริ่มใหม่
🎯 ถ้าต้องการให้เสียงเล่นใหม่ทุกครั้งที่กด "เล่น" สามารถเพิ่ม stopAudio();
ใน playAudio()
ได้ดังนี้:
function playAudio() { stopAudio(); // หยุดเสียงก่อนแล้วเล่นใหม่ audio.play(); }
🔥 สรุป:
pause()
→ หยุดชั่วคราวpause()
+ currentTime = 0
→ หยุดและเริ่มต้นใหม่