2014-02-21 145 views
0

我在尝试使用Video.js和2个Video.js插件构建YouTube网址播放列表:videojs-playlistsvideojs-youtube。一切都包含正确,并在单独使用每个插件时运行良好。但是,当我尝试使用播放列表插件播放YouTube网址列表时,我在FF中获得了视频加载轮(它永远不会结束!),并且在Chrome中,加载了开始帧,但播放按钮没有响应。 Firebug在代码中没有显示任何错误,但显然有些东西在拖延。下面是相关的代码:Youtube播放列表Video.js

HTML:

video id="video" class="video-js vjs-default-skin" controls data-setup='' width="640" height="264"></video> 
<h1></h1> 
<button type="button" data-action="prev">Previous</button> 
<button type="button" data-action="next">Next</button> 

而我的JS:

var videos = [ 
{ 
src : [ 
    'http://stream.flowplayer.org/bauhaus/624x260.webm', 
    'http://stream.flowplayer.org/bauhaus/624x260.mp4', 
    'http://stream.flowplayer.org/bauhaus/624x260.ogv' 
], 
poster : '', 
title : 'Whales' 
}, 
{ 
src : [ 
    'https://www.youtube.com/watch?v=3sWPKAbQZVM' 
], 
poster : 'http://www.videojs.com/img/poster.jpg', 
title : 'Ocean' 
} 
]; 
var options = { "techOrder": ["youtube", "html5", "flash"] }; 
//var options = { "techOrder": ["youtube"] , "src" : "https://www.youtube.com/watch?v=GaMcsKtBDwE"}; //Single works - but not with playlist 
var player = videojs('video', options); 
    player.playList(videos, { 
    getVideoSource: function(vid, cb) { 
    cb(vid.src, vid.poster); 
    } 
    }); 
    $('[data-action=prev]').on('click', function(e) { 
    player.prev(); 
    }); 
    $('[data-action=next]').on('click', function(e) { 
    player.next(); 
    }); 

});` 

回答

0

我最近尝试这些插件,我发现这个问题。

的问题是在这里:

getVideoSource: function(vid, cb) { 
    cb(vid.src, vid.poster); 
} 

确保您为CB方法的第一个值是一个链接字符串,而不是一个对象。 (例如:'https://www.youtube.com/watch?v=videoID')

祝你好运:)