Подтвердить что ты не робот

Искать точку в html5 видео

Можно ли искать конкретную точку в html5 video, отображаемую на веб-странице? Я имею в виду, могу ли я ввести конкретное значение времени (например, 01:20:30:045) и настроить управление проигрывателем (слайдером) на эту точку и проиграть с этой точки?

В старой версии mozilla vlcplugin я думаю, что это возможно с помощью метода seek(seconds,is_relative). Но я хотел бы знать, возможно ли это в html-видео.

Edit:

Я создал страницу с видео и добавил javascript, как показано ниже. Когда я нажимаю на ссылку, она отображает время щелчка... но она не увеличивает место воспроизведения... но продолжает нормально воспроизводиться.

Не следует ли изменить место воспроизведения видео?

HTML

<video id="vid" width="640" height="360" controls>
       <source src="/myvid/test.mp4" type="video/mp4" /> 
</video>
<a id="gettime" href="#">time</a>
<p>
you clicked at:<span id="showtime"> </span> 
</p>

Javascript

$(document).ready(function(){
    var player = $('#vid').get(0);
    $('#gettime').click(function(){
            if(player){
                current_time=player.currentTime;
                $('#showtime').html(current_time+" seconds");
                player.currentTime=current_time+10;
            }
        });
}
);
4b9b3361

Ответ 2

К сожалению, кажется, что некоторые элементы фильма ведут себя иначе, чем другие. Например, с амазоном video_element, кажется, вам нужно вызвать паузу, прежде чем искать где-нибудь, а затем вызвать игру. Однако, если вы вызываете игру "слишком быстро" после установки currentTime, то она не будет придерживаться. Одд.

Вот моя текущая работа:

function seekToTime(ts) {
  // try and avoid pauses after seeking
  video_element.pause();
  video_element.currentTime = ts; // if this is far enough away from current, it implies a "play" call as well...oddly. I mean seriously that is junk.
    // however if it close enough, then we need to call play manually
    // some shenanigans to try and work around this:
    var timer = setInterval(function() {
        if (video_element.paused && video_element.readyState ==4 || !video_element.paused) {
            video_element.play();
            clearInterval(timer);
        }       
    }, 50);
}