首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML5视频:使用JavaScript在特定帧处停止

HTML5视频:使用JavaScript在特定帧处停止
EN

Stack Overflow用户
提问于 2018-08-29 18:14:29
回答 1查看 1.7K关注 0票数 0

我有一个标准的HTML5视频元素。我想暂停视频在特定的帧(而不是分钟)通过纯JavaScript。

代码语言:javascript
复制
<video id="media-video" controls>
    <source id="media-source" src="media/video.mp4" type="video/mp4">
</video>

还给出了一个JavaScript数组,它定义了视频应该停止的帧。

代码语言:javascript
复制
var stopframes = [300, 600, 900];

不幸的是,我只有一个解决方案,可以在特定时间以秒为单位停止视频:

代码语言:javascript
复制
video.addEventListener('timeupdate', function () {
    if (mediaPlayer.currentTime > stopframes[0]) {
        ...
    }
});

如何使用纯JavaScript在特定帧停止视频?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-29 18:26:08

您可以使用VideoFrame.js来实现这一点。

每当当前帧在stopframes (if (stopframes.includes(frame)) {)中时,stopVideoFor会花费一些毫秒的时间来停止视频:

代码语言:javascript
复制
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');
  }
});
代码语言:javascript
复制
<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>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52074965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档