gpt4 book ai didi

javascript - MEJS 在 setSrc() 之后忽略预加载标签

转载 作者:行者123 更新时间:2023-11-28 10:07:19 24 4
gpt4 key购买 nike

你好~尝试推出一个基于 MEJS 的视频播放器,并提供用户可切换的视频。

我遇到的问题是,当我调用setSrc()时,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>

尝试了 preload="none"preloadpreload="auto" 都得到了相同的结果...玩家似乎只是在用整个下载填充缓冲区时挂起,然后开始播放。

最佳答案

显然,load() 函数可以处理这个问题。不清楚 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;
}

关于javascript - MEJS 在 setSrc() 之后忽略预加载标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8059997/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com