HTML5 видео: остановитесь на определенных кадрах с помощью JavaScript - PullRequest
0 голосов
/ 29 августа 2018

У меня есть стандартный элемент видео HTML5. Я хотел бы приостановить видео в определенных кадрах (не минутах) с помощью чистого JavaScript.

<video id="media-video" controls>
    <source id="media-source" src="media/video.mp4" type="video/mp4">
</video>

Также приведен массив JavaScript, который определяет кадры, в которых должно останавливаться видео.

var stopframes = [300, 600, 900];

К сожалению, у меня есть только решение для остановки видео в определенное время по секундам:

video.addEventListener('timeupdate', function () {
    if (mediaPlayer.currentTime > stopframes[0]) {
        ...
    }
});

Как я могу остановить видео на одном конкретном кадре с чистым JavaScript?

1 Ответ

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

Для этого вы можете использовать VideoFrame.js .

stopVideoFor занимает некоторое количество миллисекунд, которые я использую для остановки видео, когда текущий кадр находится в stopframes (if (stopframes.includes(frame)) {):

var stopframes = [30, 60, 90, 132];

var currentFrame = $('#currentFrame');
var video = VideoFrame({
  id: 'video',
  frameRate: 29.97,
  callback: function(frame) {
    if (stopframes.includes(frame)) {
      stopVideoFor(1000);
    }
  }
});

function stopVideoFor(ms) {
  video.video.pause();
  video.stopListen();

  setTimeout(() => {
    video.video.play();
    video.listen('frame');
  }, ms);
}

$('#play-pause').click(function() {
  if (video.video.paused) {
    video.video.play();
    video.listen('frame');
    $("#play-pause").html('Pause');
  } else {
    video.video.pause();
    video.stopListen();
    $("#play-pause").html('Play');
  }
});
<script src="https://rawgit.com/allensarkisyan/VideoFrame/master/VideoFrame.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<video height="180" width="100%" id="video"> 
  <source src="http://www.w3schools.com/html/mov_bbb.mp4"></source>
</video>

<div id="controls">
  <button id="play-pause">Play</button>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...