我最近开始尝试升级我正在处理的项目中的库。我试图在ipad上为我们的后备播放器设置medialelementplayer控件。我用它们正在使用的2.9.1版本设置它,但是成功的回调函数从未触发...所以我决定更新库。
在一些令人头疼的事情发生变化,以及如何实例化对象之后,让玩家启动并运行,并添加了暂停/播放的功能。但是我无法使“setSrc”功能工作......即使尝试使用2.9.1工作的解决方法也是如此。我很茫然,我需要能够为下一个/上一个按钮加载不同的src,以及设置循环通道。
我已经研究了一段时间并且试图让某些东西上班,但似乎没有任何东西可以加载,并且这个新版本没有最近的帖子。没有一个演示文件显示setSrc的使用,只是将src添加到html中的video元素。任何帮助将不胜感激,下面是我试过的2个代码段
2.9.1的旧代码
mediaElement.media.pluginApi.loadVideoById(deviceChannelIdList[currentDCVidIdx]);
mediaElement.media.load();
mediaElement.play();
2.15.1的新代码
MediaElement('player1', {
success: function(mediaElement) {
mediaElement.addEventListener('ended', function(e) {
mediaElement.setSrc('http://www.youtube.com/watch?v='+deviceChannelIdList[currentDCVidIdx]);
mediaElement.load();
mediaElement.play();
});
}
});
我在控制台调试器中遇到的错误是:
[Error] TypeError: undefined is not a function
(evaluating 'this.pluginApi.setSrc(mejs.Utility.absolutizeUrl(a))')
setSrc (mediaelement.min.js, line 34)
答案 0 :(得分:1)
我确实发布了这个...然后试图拉出"媒体"我用于2.9.1 API的链中的元素,它刚刚起作用......
以下是使用此当前代码库创建循环播放/暂停和next / prev的参考资料的全部内容:
MediaElement('player1', {
success: function(mediaElement) {
mediaElement.addEventListener('ended', function(e) {
if(deviceChannelIdList.length < currentDCVidIdx + 1){
currentDCVidIdx = 0;
} else {
currentDCVidIdx++;
}
mediaElement.pluginApi.loadVideoById(deviceChannelIdList[currentDCVidIdx]);
mediaElement.load();
mediaElement.play();
}, false);
$("#video_prev").click(function(){
if(currentDCVidIdx - 1 < 0){
currentDCVidIdx = deviceChannelIdList.length;
} else {
currentDCVidIdx--;
}
if(!mediaElement.paused){ mediaElement.pause(); }
mediaElement.pluginApi.loadVideoById(deviceChannelIdList[currentDCVidIdx]);
mediaElement.load();
mediaElement.play();
});
$("#video_play").click(function(){
if(mediaElement.paused){
mediaElement.play();
} else {
mediaElement.pause();
}
});
$("#video_next").click(function(){
if(deviceChannelIdList.length < currentDCVidIdx + 1){
currentDCVidIdx = 0;
} else {
currentDCVidIdx++;
}
if(!mediaElement.paused){ mediaElement.pause(); }
mediaElement.pluginApi.loadVideoById(deviceChannelIdList[currentDCVidIdx]);
mediaElement.load();
mediaElement.play();
});
// autoplay... ***DOES NOT WORK FOR IPAD ***
//mediaElement.play();
}
});