2016-05-13 11 views
8

Potrzebuję znaleźć buforowany procent wideo z elementu <video>.Znajdź buforowany procent elementu wideo

starałem się znaleźć to za pomocą poniższego kodu

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); 
} 

Ale wartość nie jest prawidłowa, jeśli zagram kompletny film buffered_percentage nie wynikające w 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

nie jestem w stanie zobaczyć niczego w konsoli. Jesteś pewien, że zdarzenie się uruchamia? –

+0

@RajaprabhuAravindasamy Zastanawiam się również, Nie ma nic w konsoli podczas buforowania – Shin

+0

Myślę, że [this] (http://stackoverflow.com/questions/7111978/html5-audio-event-progress-not-firing) może pomóc ty. I to pytanie wydaje się być dupkiem tego. –

Odpowiedz

5

Media Event: progress

Wysłane okresowo informować zainteresowane strony o postępie pobierania mediach. Informacja o aktualnej ilości materiałów, które zostały pobrane , jest dostępna w zbuforowanym atrybucie elementu nośnika .

Kod wysłane przez 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> 

konsoli wyjściowa:

enter image description here

Jeśli można proszę dodać script jak poniżej, byłoby wspaniale:

<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> 

Konsola wyjściowa: 51,699%

enter image description here

Wideo Buforowanie 100%:

enter image description here

Testowane na:

enter image description here

Uwaga: Użyłem innego filmu o pewnej długości i rozmiarze do testowania, niż zostało to zaksięgowane przez OP.

Dzięki

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> 
 

 

Powiązane problemy