MediaElement.js 2.15.1 setSrc无法切换youtube视频

时间:2014-10-23 00:40:58

标签: jquery mediaelement.js src

我最近开始尝试升级我正在处理的项目中的库。我试图在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)

1 个答案:

答案 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();
        }
    });