เมื่อ Cue (จุดกำหนดเวลาใน Track) เปลี่ยนแปลง แอตทริบิวต์ oncuechange จะถูกกระตุ้นใน HTML ทำงานร่วมกับองค์ประกอบ <track>
ไวยากรณ์
<video>
<track oncuechange="alert('Changed!')">
</video>
ตัวอย่าง
ลองรันโค้ดต่อไปนี้เพื่อใช้งานแอตทริบิวต์ oncuechange:
<!DOCTYPE HTML>
<html>
<body>
<video width="300" height="200" controls autoplay>
<source src="/html5/foo.ogg" type="video/ogg" />
<source src="/html5/foo.mp4" type="video/mp4" />
<track src="subtitles_en.vtt" kind="subtitles" srclang="en"
label="English" oncuechange="alert('Changed!')">
Your browser does not support the video element.
</video>
</body>
</html>
การทำงานของ oncuechange
- เหตุการณ์
oncuechangeจะยิงเมื่อ Active Cue ของ Track เปลี่ยนไป - เกิดขึ้นเมื่อวิดีโอเล่นและถึงจุดเวลาของ Cue ถัดไป
- ใช้ได้กับ
kind="subtitles","captions","descriptions","chapters","metadata"
ตัวอย่างปฏิบัติจริง: แสดงคำบรรยายปัจจุบัน
<video id="myVideo" controls>
<source src="movie.mp4" type="video/mp4">
<track id="enTrack" src="subtitles_en.vtt" kind="subtitles"
srclang="en" label="English" default>
</video>
<div id="currentCue">No active subtitle</div>
<script>
const track = document.getElementById('enTrack');
const display = document.getElementById('currentCue');
track.addEventListener('cuechange', function() {
const activeCues = track.track.activeCues;
if (activeCues.length > 0) {
display.textContent = activeCues[0].text;
} else {
display.textContent = 'No active subtitle';
}
});
</script>
โครงสร้างไฟล์ WebVTT (.vtt)
WEBVTT
00:00:01.000 --> 00:00:04.000
Welcome to this tutorial
00:00:05.000 --> 00:00:09.000
Today we learn about HTML5 video tracks
00:00:10.000 --> 00:00:15.000
The track element supports subtitles, captions, and more
หมายเหตุ: ไฟล์ VTT ต้อง Serve ด้วย MIME type text/vtt และต้องเป็น Same-origin หรือมี CORS header ที่ถูกต้อง