เล่นไฟล์เสียงบนเบราว์เซอร์และให้รองรับทั้งเดสก์ท็อปและมือถือ




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


🚀 วิธีทำให้ไฟล์เสียงโหลดเร็วและรองรับทุกดีไวส์:

  1. ใช้ไฟล์ .mp3 เป็นไฟล์หลัก เพราะรองรับบนทุกเบราว์เซอร์
  2. ตั้งค่า preload="auto" เพื่อให้ไฟล์เสียงโหลดล่วงหน้า (ลดเวลาโหลด)
  3. เปิดใช้งาน Web Audio API หากต้องการปรับแต่งเสียงหรือเพิ่มเอฟเฟกต์
  4. ใช้ HTTPS สำหรับไฟล์เสียงเพื่อป้องกันปัญหาการเล่นไฟล์บน iOS
  5. รองรับการเล่นอัตโนมัติ (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 → หยุดและเริ่มต้นใหม่


แสดงความคิดเห็น (0)
ใหม่กว่า เก่ากว่า