หากต้องการเล่นไฟล์เสียงบนเบราว์เซอร์และให้รองรับทุกดีไวส์ (ทั้งเดสก์ท็อปและมือถือ) คุณสามารถใช้แท็ก <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 → หยุดและเริ่มต้นใหม่
🎯 ตัวอย่าง: