2016-05-13 18 views
8

Tôi cần phải tìm phần trăm đệm của video từ yếu tố <video>.Tìm phần trăm bộ đệm của phần tử video

Tôi đã cố gắng để tìm thấy điều này bằng cách sử dụng mã dưới đây,

videoElement.addEventListener("progress", bufferHandler); 
var bufferHandler = function(e) { 
    var buffered = e.target.buffered.end(0); 
    var duration = e.target.duration; 
    var buffered_percentage = (buffered/duration) * 100; 
    console.log(buffered_percentage); 
} 

Nhưng giá trị là không đúng, Nếu tôi chơi hoàn chỉnh video buffered_percentage không kết quả 100%.

var videoElement = document.getElementById("myVideo"); 
 
videoElement.addEventListener("progress", bufferHandler); 
 
var bufferHandler = function(e) { 
 
    var buffered = e.target.buffered.end(0); 
 
    var duration = e.target.duration; 
 
    var buffered_percentage = (buffered/duration) * 100; 
 
    console.log(buffered_percentage); 
 
}
<video id="myVideo" width="320" height="176" controls> 
 
    <source src="http://www.w3schools.com/tags/mov_bbb.mp4" type="video/mp4"> 
 
    <source src="http://www.w3schools.com/tags/mov_bbb.ogg" type="video/ogg"> 
 
     Your browser does not support HTML5 video. 
 
</video>

+0

Tôi không thể nhìn thấy bất cứ điều gì trong giao diện điều khiển. Bạn có chắc chắn sự kiện đang kích hoạt không? –

+0

@RajaprabhuAravindasamy Tôi cũng tự hỏi, Không có gì trong giao diện điều khiển trong khi nó đệm – Shin

+0

Tôi nghĩ rằng [this] (http://stackoverflow.com/questions/7111978/html5-audio-event-progress-not-firing) có thể giúp bạn. Và câu hỏi này có vẻ như là một sự lừa dối. –

Trả lời

5

Media Event: progress

Sent định kỳ để thông báo cho các bên liên quan về tiến độ tải giới truyền thông. Thông tin về số lượng hiện tại của phương tiện có được tải xuống có sẵn trong thuộc tính đệm của phần tử đa phương tiện.

Mã đăng bởi OP:

<script> 
var videoElement = document.getElementById("myVideo"); 
videoElement.addEventListener("progress", bufferHandler); 
var bufferHandler = function(e) 
{ 
    var buffered = e.target.buffered.end(0); 
    var duration = e.target.duration; 
    var buffered_percentage = (buffered/duration) * 100; 
    console.log(buffered_percentage); 
} 
    </script> 

Output Console:

enter image description here

Nếu bạn vui lòng thêm script như dưới đây, nó sẽ là tuyệt vời:

<script> 

var videoElement = document.getElementById("myVideo"); 
videoElement.addEventListener("progress", bufferHandler); 
function bufferHandler(e) 
{ 
if (videoElement && videoElement.buffered && videoElement.buffered.length > 0 && videoElement.buffered.end && videoElement.duration) 
{ 

    var buffered = e.target.buffered.end(0); 
    var duration = e.target.duration; 
    var buffered_percentage = (buffered/duration) * 100; 
    console.log(buffered_percentage); 
    } 
} 


    </script> 

Output Console: 51,699%

enter image description here

video Buffering 100%:

enter image description here

Tested on:

enter image description here

Lưu ý: Đã sử dụng một video khác có thời lượng và kích thước để thử nghiệm thay vì được đăng bởi OP.

Cảm ơn

var videoElement = document.getElementById("myVideo"); 
 
videoElement.addEventListener("progress", bufferHandler); 
 
function bufferHandler(e) 
 
{ 
 
if (videoElement && videoElement.buffered && videoElement.buffered.length > 0 && videoElement.buffered.end && videoElement.duration) 
 
{ 
 
    
 
    var buffered = e.target.buffered.end(0); 
 
    var duration = e.target.duration; 
 
    var buffered_percentage = (buffered/duration) * 100; 
 
    console.log(buffered_percentage); 
 
    } 
 
}
<video id="myVideo" controls="controls"> 
 
    <source src="http://client.99nfomatics.in/test/files/B.mp4" type="video/mp4"> 
 
    
 
</video> 
 

 

Các vấn đề liên quan