2016-08-23 3 views
0

Чтобы подключить панель поиска, я использую следующий код. Я могу искать смотри, но SeekBar не движется, как видео двигаться впередJavascript - прослушиватель событий timeupdate для объекта Embed

HTML

<embed pluginspage="http://www.videolan.org" 
    type="application/x-vlc-plugin" 
    width="640" 
    height="480" 
    toolbar="true" 
    loop="false" 
    text="Waiting for video" 
    windowless="true" 
    bgcolor="#000000" 
    branding="true" 
    allowfullscreen="true" 
    src="./videos/mikethefrog.mp4" 
    id="video" 
    name="vlc" /> 
    <input type="range" id="seek-bar" value="0" onChange='seekBar();'> 

JS

window.onload = function() { 

     var vlc = getVLC("vlc"); 

     // Update the seek bar as the video plays 
     var video = document.getElementById("video"); 
     var seekBar = document.getElementById("seek-bar"); 
     var mediaLen = vlc.input.length; 

     video.addEventListener("timeupdate", function() { 

     // Calculate the slider value 
     var value = (100/mediaLen) * vlc.input.time; 

     // Update the slider value 
     seekBar.value = value; 
     }); 

    function seekBar(){ 

    var vlc = getVLC("vlc"); 
    var seekBar = document.getElementById("seek-bar"); 
    var mediaLen = vlc.input.length; 

    // Event listener for the seek bar 
    seekBar.addEventListener("change", function() { 

     // Calculate the new time 
     var time = mediaLen * (seekBar.value/100); 

     // Update the video time 
     vlc.input.time = time; 
       //vlc.playlist.play(); 

       console.log(vlc.input.time); 
    }); 


    // Pause the video when the seek handle is being dragged 
    seekBar.addEventListener("mousedown", function() { 
      console.log('pause'); 
       vlc.playlist.pause(); 
    }); 

    // Play the video when the seek handle is dropped 
    seekBar.addEventListener("mouseup", function() { 
      console.log('play'); 
     vlc.playlist.play(); 
    }); 
} 

} 

Исключение

Error: Error calling method on NPObject! video.addEventListener("timeupdate", function() {

+0

does 'vlc.input.time' производит что-нибудь? если это так, вы можете просто использовать интервал – krisph

+0

'vlc.input.time' дает мне абсолютное положение во времени, указанное в миллисекундах. Как использовать интервал с ним? – Slimshadddyyy

+0

var tracker = setInterval (track_audio, 100); function track_audio() {// Код отслеживания} – krisph

ответ

0

Добавить это как глобальный:

var tracker; 

Удалить этот раздел кода:

video.addEventListener("timeupdate", function() { 

     // Calculate the slider value 
     var value = (100/mediaLen) * vlc.input.time; 

     // Update the slider value 
     seekBar.value = value; 
}); 

Replace в этой области:

tracker= setInterval(track_audio, 100); 

Теперь отслеживать аудио:

function track_audio() { 
    var vlc = getVLC("vlc"); 
    var seekBar = document.getElementById("seek-bar"); 
    var mediaLen = vlc.input.length; 

    // Calculate the slider value 
    var value = (100/mediaLen) * vlc.input.time; 

    // Update the slider value 
    seekBar.value = value; 
} 
Смежные вопросы