2016-08-29 2 views
1

У меня есть этот кодПоказать плакат после приостановки видео в HTML

<video id="primorvid" onclick="this.paused ? this.play() : this.pause();" poster="http://primor.m-sites.co.il/wp-content/uploads/2016/08/Untitled-18.jpg" width="1903" height="564"> 
<source src="http://primor.m-sites.co.il/wp-content/uploads/2016/08/Primor-V.4-HD.mp4" type="video/mp4" /> 
</video> 

видео- работа, он показывает изображение плаката, прежде чем я нажимаю видео и воспроизведение/пауза работает мелко-

как я могу исходить отсюда, если я хочу, чтобы плакат снова появлялся после того, как я приостановил видео?

Большое спасибо David

ответ

2

Добавить этот JS-код:

const vid = document.querySelector('#primorvid'); 
let currentTime = 0; 

vid.addEventListener('click', function(e) { 
    if (vid.paused) { 
     currentTime = vid.currentTime; 
     vid.load(); 
    } else { 
     vid.currentTime = currentTime; 
    } 
}); 

Объяснение:

const vid = document.querySelector('#primorvid'); 
let currentTime = 0; 

Просто получить видео и хранить его в vid, и декларированием currentTime где мы будем хранить время, в которое видео было приостановлено.

Мы добавляем слушатель событий нажми на видео:

vid.addEventListener('click', function(e) { ... }); 

Если последнее состояние данного видео играет (т.е. теперь приостановлен), сохранить текущее время и перезагрузить его (это показывает плакат и паузы видео):

if (vid.paused) { 
    currentTime = vid.currentTime; 
    vid.load(); 
} else { 
    vid.currentTime = currentTime; 
} 

Else, установите текущее время на то, что было раньше, и воспроизведите снова.

Другим решением, которое не означало бы буферизацию видео снова, было бы установить наложенный элемент с вашим плакатом и показать его, когда видео приостановлено, наряду с прослушивателем событий.

0

Вы можете попробовать это.

var vrVid = document.getElementById("primorvid"); 
var pauseTime = vrVid.currentTime; 
vrVid.load(); 
vrVid.currentTime = pauseTime; 
vrVid.play(); 

Я думаю, что это решит вашу проблему, но я не думаю, что это лучшее решение, потому что это будет перезагрузить видео, и это будет буфер.

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