我在我的网站上使用mediaelementplayer播放来自 youtube 的一些视频。我已经编写了自己的播放列表,我可以在其中单击播放列表中的任何曲目,播放器将自动开始播放该曲目。
以下是代码的一些相关部分:
初始化:
var videoplayer = new MediaElementPlayer("#videoplayer",
{
defaultVideoWidth: 480,
defaultVideoHeight: 270,
videoWidth: -1,
videoHeight: -1,
audioWidth: 960,
audioHeight: 30,
startVolume: 0.8,
loop: false,
enableAutosize: true,
features: ['playpause','progress','current','duration','tracks','volume'],
success: function(mediaElement,domObject) {
mediaElement.addEventListener('ended', function(e) {
//Next song.
playTitle((currentIndex<playlist.length-1)?currentIndex+1:0);
}, false);
},
startLanguage: '',
translations: [],
translationSelector: false,
googleApiKey: '' });
这是我将曲目从当前曲目更改为下一个曲目的部分:
function playTitle(url){
videoplayer.pause();
videoplayer.setSrc(mejs.Utility.absolutizeUrl(url));
videoplayer.load();
videoplayer.play();
}
问题是,下一首曲目没有加载。当前曲目暂停,并显示下一曲目的长度,但不开始播放。
这是有趣的部分:如果我在 chrome 控制台中键入相同的步骤,它会按预期完美运行。当前曲目被暂停,下一首被加载,并在进入videoplayer.play();
时开始播放。
我猜这是某种延迟问题,在此期间某些事件被触发。我无法弄清楚是哪一个,以及如何捕获它!