Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> HTML

ออบเจ็กต์ Audio ใน HTML DOM

ออบเจ็กต์ Audio (Audio Object)

ออบเจ็กต์ Audio ใน HTML DOM แทนอิลิเมนต์ HTML <audio> ซึ่งเพิ่มเข้ามาใน HTML5 ใช้สำหรับเล่นไฟล์เสียง ผ่าน audio object เราสามารถจัดการ audio element ได้ เช่น ดูข้อมูล audioTrack, ตั้งค่า autoplay, controls, loop, volume เป็นต้น

คุณสมบัติ (Properties)

คุณสมบัติ คำอธิบาย
audioTracksคืน AudioTrackList object ที่มี audio tracks ที่ใช้ได้
autoplayตั้งค่าหรือคืนค่าเล่นอัตโนมัติ
bufferedคืน TimeRanges object ของส่วนที่ buffered ไว้
controllerคืน MediaController object ของ media controller ปัจจุบัน
controlsตั้งค่าหรือคืนค่าว่าแสดงควบคุม play/pause หรือไม่
crossOriginตั้งค่าหรือคืนค่า CORS settings
currentSrcคืน URL ของไฟล์เสียงที่กำลังเล่น
currentTimeตั้งค่าหรือคืนค่าตำแหน่งการเล่นปัจจุบัน (วินาที)
defaultMutedตั้งค่าหรือคืนค่า mute เริ่มต้น
defaultPlaybackRateตั้งค่าหรือคืนค่าความเร็วเล่นเริ่มต้น
durationคืนความยาวของเสียง (วินาที)
endedคืนว่าการเล่นจบแล้วหรือยัง
errorคืน MediaError object สถานะข้อผิดพลาด
loopตั้งค่าหรือคืนค่าเล่นวนลูป
mediaGroupตั้งค่าหรือคืนค่าชื่อ media group
mutedตั้งค่าหรือคืนค่า mute/unmute
networkStateคืน network state ปัจจุบัน
pausedตั้งค่าหรือคืนค่าว่าหยุดชั่วคราวหรือไม่
playbackRateตั้งค่าหรือคืนค่าความเร็วการเล่น
playedคืน TimeRanges ของส่วนที่เล่นแล้ว
preloadตั้งค่าหรือคืนค่า preload attribute
readyStateคืน ready state ปัจจุบัน
seekableคืน TimeRanges ของส่วนที่ seek ได้
seekingคืนว่ากำลัง seek อยู่หรือไม่
srcตั้งค่าหรือคืนค่า src attribute
textTracksคืน TextTrackList ของ text tracks ที่มี
volumeตั้งค่าหรือคืนค่า volume (0.0 - 1.0)

เมธอด (Methods)

เมธอด คำอธิบาย
addTextTrack()เพิ่ม text track ใหม่
canPlayType()ตรวจสอบว่า browser เล่น audio type นี้ได้ไหม
fastSeek()seek ไปเวลาที่ระบุเร็วขึ้น
getStartDate()คืน Date object ของ timeline offset
load()โหลด audio element ใหม่
play()เริ่มเล่นเสียง
pause()หยุดชั่วคราวเสียงที่กำลังเล่น

ไวยากรณ์ (Syntax)

การสร้าง audio element

var x = document.createElement("AUDIO")

การเข้าถึง audio element

var x = document.getElementById("demoAudio")

ตัวอย่างการใช้งาน

ตัวอย่างด้านล่างแสดงการใช้ Audio Object อ่าน duration และสร้าง audio ใหม่

<!DOCTYPE html>
<html>
<body>
    <h1>MUSIC</h1>
    <audio id="Audio" controls>
        <source src="sample.mp3" type="audio/mpeg">
        Audio not supported in your browser
    </audio>
    <p>Click the button to get the duration of the audio, in seconds.</p>
    <button onclick="AudioDur()">Duration</button>
    <button onclick="CreateAudio()">CREATE</button>
    <p id="SAMPLE"></p>
    <script>
        function AudioDur() {
            var x = document.getElementById("Audio").duration;
            document.getElementById("SAMPLE").innerHTML = x;
        }
        function CreateAudio() {
            var x = document.createElement("AUDIO");
            x.setAttribute("src", "sample1.mp3");
            x.setAttribute("controls", "controls");
            document.body.appendChild(x);
        }
    </script>
</body>
</html>

ผลลัพธ์

เริ่มต้น: audio player พร้อม controls, ปุ่ม Duration และ CREATE

คลิก Duration: แสดงระยะเวลาเสียง (วินาที)

คลิก CREATE: สร้าง audio player ใหม่พร้อม src="sample1.mp3"

คำอธิบายเพิ่มเติม

  • รองรับ format: MP3, WAV, OGG (ขึ้นอยู่กับ browser)
  • ใช้ <source> หลายตัวสำหรับ fallback formats
  • Event ที่สำคัญ: play, pause, ended, timeupdate, error, loadedmetadata
  • play() คืน Promise - ต้อง handle rejection (autoplay policy)
  • สร้าง audio แบบไม่มี UI: new Audio('sound.mp3') หรือ document.createElement('audio')