我弹出了一个 Fancybox2 窗口,其中包含以下代码:
var mediaElementPlayers = [];
$("#video_list_widget a.video_link").fancybox({
padding : 0,
width:500,
height: 360,
closeBtn: false,
content: '<video width="500" height="360" controls="controls" autoplay="autoplay" preload="auto">
<source type="video/mp4" src="http://pathtomyvideo.mp4" />
<source type="video/webm" src="http://pathtomyvideo.webm" />
</video>',
afterShow: function() {
var mediaElementPlayers = [];
$('video,audio').each(function(){
mediaElementPlayers.push(new MediaElementPlayer(this));
console.log(mediaElementPlayers);
});
},
beforeClose: function(){
for (var i=0; i<mediaElementPlayers.length; i++){
console.log(mediaElementPlayers);
mediaElementPlayers[i].pause(); // pause
mediaElementPlayers[i].setCurrentTime(0); // rewind
}
$('.fancybox-inner').empty();
},
afterClose: function (){
$('video').remove();
}
});
我第一次单击时a.video_link
,它会弹出并播放得很好。让我们将此称为视频 1。如果我在不停止视频的情况下关闭灯箱,它就会停止并被杀死。没问题。
如果我再次单击a.video_link
它,它会弹出并从头开始(我们称之为视频 2),但视频 1 的音频也在其顶部播放。如果我现在关闭视频 2 的灯箱,视频 1 的音频会继续播放。如果我第三次打开灯箱,视频 2 的音频也会开始播放。这一直持续下去,所以我可以有很多层的音频。
任何人都可以提出解决方案吗?
更新:我可以告诉你,当 autoplay 属性被删除时它不会发生,这向我表明原始<video>
对象在它可以被包含在 mediaplayer js 东西中之前正在播放。如果可能的话,我真的很喜欢自动播放功能。