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

แก้ปัญหาไม่ได้ค่า Duration ของ HTML5 Video

ตรวจสอบ readyState ก่อนอ่าน Duration

readyState มีค่า 0-4 เมื่อโหลด metadata แล้ว จะมีค่า >= 1

โค้ดรอ metadata แล้วอ่าน duration

var tm = window.setInterval(function() {
    if (video.readyState > 0) {
        var duration = Math.round(video.duration);
        $('#duration').text(duration);
        clearInterval(tm);
    }
}, 1000);

ต้องรอให้ metadata โหลดเสร็จ (readyState > 0) ถึงจะได้ video.duration ที่ถูกต้อง