Ответ 1
Вы можете использовать v.currentTime = seconds;
для поиска в заданной позиции.
Ссылка: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/currentTime
Можно ли искать конкретную точку в 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;
}
});
}
);
Вы можете использовать v.currentTime = seconds;
для поиска в заданной позиции.
Ссылка: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/currentTime
К сожалению, кажется, что некоторые элементы фильма ведут себя иначе, чем другие. Например, с амазоном 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);
}