使用 video.js 更改视频播放速度

Posted

技术标签:

【中文标题】使用 video.js 更改视频播放速度【英文标题】:Change the video playback speed using video.js 【发布时间】:2013-10-07 09:08:28 【问题描述】:

是否有任何现有的插件可以使用 video.js 播放器更改视频的播放速率?如果没有,如何添加新插件和新控制按钮?

提前致谢。

【问题讨论】:

【参考方案1】:

从 videojs v.4.6.0 开始,data-setup 有一个 JSON 参数,您可以传递该参数以将播放速度选项添加到视频播放器:

<video id="my_video_1" class="video-js vjs-default-skin" controls 
preload="auto"   
data-setup=' "playbackRates": [0.5, 1, 1.5, 2] '>

演示:http://jsbin.com/vikun/1/edit?html,output

致谢:https://***.com/a/24767026/1066234

注意:data-setup 内的参数必须使用双引号。

-

有用:如果需要在视频播放器准备好(Jquery)后改变速度,使用:

var video = videojs('videoplay', options);

video.ready(function() 
    // faster speed initially
    this.playbackRate(1.5);
);

【讨论】:

var options = playbackRates: [0.5, 1, 1.5, 2] ;【参考方案2】:

我也有同样的问题。我刚刚发现:

videojs('my-player', 
  playbackRates: [0.5, 1, 1.5, 2]
);

见videojs docs

【讨论】:

这似乎已被弃用。现在在核心上支持播放速率。更多信息:github.com/videojs/video.js/blob/stable/docs/api/… @Meetai.com:该链接现已断开。当前一个:github.com/videojs/video.js/blob/… videojs('my-player', playbackRates: [0.5, 1, 1.5, 2] );【参考方案3】:
var player = videojs('videoplay');
player.ready(function() 
   var _this = this
   var playbackRate = $("#playbackRate").val();
   var speed = parseFloat(playbackRate);

   var volume = parseFloat($("#volume").val()/100.0); //[0,100]

   setTimeout(function() 
       _this.playbackRate(speed);
       _this.volume(volume); //work for audio
   ,20);
);
player.src('/media/'+data.uuid+'.m3u8');
player.play();

上面的代码在生产环境中适用于我,真的很难理解为什么我们要在播放音频流之前延迟片刻。

【讨论】:

以上是关于使用 video.js 更改视频播放速度的主要内容,如果未能解决你的问题,请参考以下文章

视频播放插件Video.js简单使用

使用 video.js 在 ios 上播放视频内联?

video.js视频播放器

如何在 chrome 中使用 video.js 播放 flash(.flv) 视频

在vue项目中使用video.js实现视频播放和视频进度条打点

video.js 视频播放器是不是支持 youtube 视频?