Javascript 加载新视频时,videojs播放列表播放速率不会持续
我已经使用videojs和videojs播放列表插件成功地创建了一个视频播放列表。播放视频时,如果将播放速率从(例如)1更改为2,当视频自动前进到列表中的下一个视频时,播放速率默认为1,您必须重新调整它。问题是你如何使回拨率保持不变 虽然我可以获得回放率并设置回放率,但我不能让它持续下去。除了将其写入隐藏的div之外,还有更优雅的解决方案吗 我有以下代码:Javascript 加载新视频时,videojs播放列表播放速率不会持续,javascript,video.js,Javascript,Video.js,我已经使用videojs和videojs播放列表插件成功地创建了一个视频播放列表。播放视频时,如果将播放速率从(例如)1更改为2,当视频自动前进到列表中的下一个视频时,播放速率默认为1,您必须重新调整它。问题是你如何使回拨率保持不变 虽然我可以获得回放率并设置回放率,但我不能让它持续下去。除了将其写入隐藏的div之外,还有更优雅的解决方案吗 我有以下代码: // JavaScript Document var videoList = [{ sources: [{ src: 'htt
// JavaScript Document
var videoList = [{
sources: [{
src: 'http://localhost/gpifmlocal/publichtml/eUFM/1_intro.mp4',
type: 'video/mp4'
}],
poster: ''
},{
sources: [{
src: 'http://localhost/gpifmlocal/publichtml/eUFM/2_UFM_barter.mp4',
type: 'video/mp4'
}],
poster: ''
},{
sources: [{
src: 'http://localhost/gpifmlocal/publichtml/eUFM/3_UFM_goldsmith.mp4',
type: 'video/mp4'
}],
poster: ''
} ];
var player = videojs(document.querySelector('video'), {
inactivityTimeout: 0
});
player.playlist(videoList);
document.querySelector('.previous').addEventListener('click', function() {
var playing = player.playlist.currentItem();
player.playlist.currentItem(playing -1);
});
document.querySelector('.next').addEventListener('click', function() {
var playing = player.playlist.currentItem();
player.playlist.currentItem(playing +1);
});
var onlinevideo =document.querySelectorAll('.onlinevideo');
for(var i=0;i<onlinevideo.length;i++){
onlinevideo[i].addEventListener('click',videonumber);
}
function videonumber(){
var vid = parseInt($(this).attr('data-vid'));
if (!player.play()) {
player.play();
}else{
player.playlist.currentItem(vid);
// var playrate = parseFloat(player.playbackRate());
// player.playbackRate(playrate);
}
$(this).css('color','green');
}
var endvideo = document.getElementsByTagName("video")[0];
endvideo.addEventListener("ended", function() {
var playing = player.playlist.currentItem();
$('a[data-vid]').each(function() {
var vid = parseInt($(this).attr('data-vid'))
if (vid ==playing){
$(this).css('color','green');
}
});
}, true);
player.playlist.autoadvance(JSON.parse(0));
//JavaScript文档
var视频列表=[{
资料来源:[{
src:'http://localhost/gpifmlocal/publichtml/eUFM/1_intro.mp4',
类型:“视频/mp4”
}],
海报:''
},{
资料来源:[{
src:'http://localhost/gpifmlocal/publichtml/eUFM/2_UFM_barter.mp4',
类型:“视频/mp4”
}],
海报:''
},{
资料来源:[{
src:'http://localhost/gpifmlocal/publichtml/eUFM/3_UFM_goldsmith.mp4',
类型:“视频/mp4”
}],
海报:''
} ];
var player=videojs(document.querySelector('video'){
不活动超时:0
});
播放列表(视频列表);
document.querySelector('.previous').addEventListener('click',function(){
var playing=player.playlist.currentItem();
player.playlist.currentItem(playing-1);
});
document.querySelector('.next').addEventListener('click',function(){
var playing=player.playlist.currentItem();
player.playlist.currentItem(播放+1);
});
var onlinevideo=document.queryselectoral('.onlinevideo');
对于(var i=0;i非常抱歉,如果您深入了解,api中的所有方法和事件都有一个链接:
因此,为了回答我的问题,我只使用了:
var playrate;
player.on('beforeplaylistitem', function() {
playrate = player.playbackRate();
});
player.on('playlistitem', function() {
player.playbackRate(playrate);
});
很好的解决方案!您应该将此标记为最佳答案,至少在他们找到在播放列表中保持播放速率的方法之前。