Как остановить (не приостановить) html5 видео с помощью jQuery - PullRequest
0 голосов
/ 30 августа 2018

У меня есть страница, на которой воспроизводится короткий клип из видео (полное видео не должно быть доступно на этой странице) с использованием тега html5 video. Если пользователь заходит на страницу и возвращается обратно, при повторном посещении (в течение нескольких минут) видео не воспроизводится. Я полагаю, что это потому, что я использую jQuery для приостановки видео через 7 секунд:

$('#playButton').click(function(event){
$('#theVideo').get(0).play()    
setTimeout(function(){$('#theVideo').get(0).pause() }, 7000);
});

Я пытался использовать .stop(), как предложено в неприемлемом ответе на этот вопрос: Сделать остановку видео HTML5 в указанное время

Этот код не работает:

// doesn't work
setTimeout(function(){$('#theVideo').get(0).stop()  }, 7000);
// also doesn't work
setTimeout(function(){$('#theVideo').stop() }, 7000);

Я ссылался на документацию Mozilla. Единственная квази-официальная документация, которую я нашел для видео jQuery и HTML5, - от w3schools: https://www.w3schools.com/tags/ref_av_dom.asp

Он не ссылается на метод "стоп". Стоит ли ожидать, что .stop () будет работать, или мне нужно найти другое решение?

Мой видео код:

<video playsinline id='theVideo' poster=''>
<source src='http://somedomain/subfolder/playlist.m3u8'>
</video>
<div id="playButton">PLAY</div>

Я ценю вашу помощь.

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Нет .stop(). Вы просто можете приостановить это ...

Но вы также можете установить currentTime обратно на ноль (начало файла) ...
Было бы хорошо иметь его готовым к повторному воспроизведению при следующем #playButton клике.

Это было бы:

$('#playButton').click(function(event){
  $('#theVideo').get(0).play(); 
  setTimeout(function(){
    $('#theVideo').get(0).pause();
    $('#theVideo').get(0).currentTime = 0;
  }, 7000);

});

Теперь, «Если пользователь заходит на страницу и возвращается назад» ... Привет !! Используете кнопку возврата браузера? Вы ничего не можете сделать здесь. JavaScript не работает как обычная загрузка страницы. Ничего не может произойти "на спине".

0 голосов
/ 30 августа 2018

Вы можете остановить его с помощью паузы и currentTime.

var media = $("#video-id").get(0);
media.pause();
media.currentTime = 0;

Проверьте это: https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Client-side_web_APIs/Video_and_audio_APIs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...