2016-05-13 4 views
8

Мне нужно найти буферный процент видео от <video> элемент.Найти буферизованный процент видеоэлемента

Я пытался найти это, используя приведенный ниже код,

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

Но значение не является правильным, если я играю полное видео buffered_percentage не в результате на 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

Я не могу ничего увидеть в консоли. Вы уверены, что событие запускается? –

+0

@RajaprabhuAravindasamy Мне также интересно, в консоли нет ничего, пока он буферизируется – Shin

+0

Я думаю, что [это] (http://stackoverflow.com/questions/7111978/html5-audio-event-progress-not-firing) может помочь вы. И этот вопрос кажется обманом. –

ответ

5

Media Event: progress

Направлено периодически информировать заинтересованные стороны о ходе скачивания СМИ. Информация о текущем количестве носителя, загруженного , доступна в атрибуте медиа-элемента.

код отправленный 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> 

Выход консоли:

enter image description here

Если вы можете, пожалуйста, добавить script, как показано ниже, это было бы здорово:

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

Выход консоли: 51,699%

enter image description here

Видео Буферизация 100%:

enter image description here

Проверено на:

enter image description here

Примечание. Использовали другое видео с некоторой длиной и размером для тестирования, а не с помощью OP.

Благодаря

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> 
 

 

Смежные вопросы