Javascript MEJS忽略setSrc()之后的预加载标记

Javascript MEJS忽略setSrc()之后的预加载标记,javascript,mediaelement.js,preload,Javascript,Mediaelement.js,Preload,你好~尝试推出一款基于MEJS的视频播放器,具有用户可切换视频 我遇到的问题是,当我调用setSrc()时,无论preload标记指示什么,flash和html5播放器都会在开始播放新视频之前预加载整个视频。理想情况下,视频在下载数据时开始播放 /* code and comments trimmed for your viewing pleasure */ <video src="myvideo1.mp4" width="800" height="450" preload="none"

你好~尝试推出一款基于MEJS的视频播放器,具有用户可切换视频

我遇到的问题是,当我调用
setSrc()
时,无论
preload
标记指示什么,flash和html5播放器都会在开始播放新视频之前预加载整个视频。理想情况下,视频在下载数据时开始播放

/* code and comments trimmed for your viewing pleasure */
<video src="myvideo1.mp4" width="800" height="450" preload="none" smoothing autoplay></video>

<script>
    var player = new MediaElementPlayer('video', {
        enablePluginDebug: true,
        plugins: ['flash','silverlight'],
        defaultVideoWidth: 800, defaultVideoHeight: 450,
        videoWidth: -1, videoHeight: -1,
        loop: false,
        features: ['playpause','progress','current','duration','fullscreen'], 
        success: function (mediaElement, domObject) { 
            mediaElement.play();
        },
        error: function () { 
            alert('error!');
        }
    });

    var currentVid = 1;

    var vidnames = new Array("(null)",
        "myvideo1.mp4",
        "myvideo2.mp4",
        "myvideo3.mp4");

    function switchvid (vidnum) {
        currentVid = vidnum;

        player.pause();
        player.setSrc( vidnames[vidnum] );
        player.play();

        return false;
    }

</script>

<A HREF="#" onClick="return switchvid(1)"><IMG SRC="ch01x.png"></A>
<A HREF="#" onClick="return switchvid(2)"><IMG SRC="ch02x.png"></A>
<A HREF="#" onClick="return switchvid(3)"><IMG SRC="ch03x.png"></A>
/*代码和注释经过修剪,以满足您的观看乐趣*/
var player=新MediaElementPlayer('视频'{
enablePluginDebug:true,
插件:['flash','silverlight'],
defaultVideoWidth:800,defaultVideoHeight:450,
视频宽度:-1,视频高度:-1,
循环:false,
特点:[“播放暂停”,“进度”,“当前”,“持续时间”,“全屏],
成功:函数(mediaElement,domObject){
mediaElement.play();
},
错误:函数(){
警报('错误!');
}
});
var currentVid=1;
var vidnames=新数组(“(空)”,
“myvideo1.mp4”,
“myvideo2.mp4”,
“myvideo3.mp4”);
功能开关VID(vidnum){
currentVid=vidnum;
player.pause();
player.setSrc(vidnames[vidnum]);
player.play();
返回false;
}
尝试了
preload=“none”
preload
preload=“auto”
,所有结果都相同。。。播放器在用整个下载填充缓冲区时似乎挂起,然后开始播放。

显然,load()函数可以处理这个问题。不清楚on load()与PRELOAD属性(如果有)的关系,但对我来说,它现在起作用了

 var player = new MediaElementPlayer('video', {
    // etc
    success: function (mediaElement, domObject) { 
        mediaElement.load();
        mediaElement.play();
    }
 }

function switchvid (vidnum) {
    currentVid = vidnum;

    player.pause();
    player.setSrc( vidnames[vidnum] );
    player.load();
    player.play();

    return false;
}