隐藏时停止Flash视频

时间:2011-01-14 22:27:49

标签: jquery flash hide swfobject

我知道这个问题已在Stack上被问了两次......但我还是需要帮助。我有2个div,每个包含SWFObjects。这是显示/隐藏我的Divs的jquery:

$(document).ready(function(){ 
 $("#DIV2").hide();

  $('#button1').bind('click', function() {
    $("#DIV1").hide();
    $("#DIV2").show();
  });

  $('#button2').bind('click', function() {
    $("#DIV1").show();
    $("#DIV2").hide();
});
});

但我需要DIV2中的视频在隐藏时停止播放,并在您再次显示时从头开始。从我读到的,我需要从DOM中删除它...但我不明白如何重新添加它。我已经看到了分离()的建议;但无法弄清楚我的AppendTo()会去哪里。

任何人都可以帮忙吗?我真的很感激。顺便说一句,这是related post(其中包含指向其他相关帖子的链接)。

提前谢谢!

2 个答案:

答案 0 :(得分:5)

感谢您的帮助Ben。在我看到您最近的回复之前,我最终使用了我在similar post的答案中看到的内容,但调整后如下:

 // Remove and re-add video
 var clone = $("#video").clone(true);
 $("#video").remove();
 $("#video-holder").html(clone);

这对我来说非常合适。我给了我的swfobject一个ID“视频”,它位于div“视频持有者”中。希望这有助于他人!

答案 1 :(得分:0)

根据我之前的经验,分离包含flash对象的DOM元素很容易导致浏览器崩溃,如果我没记错的话,firefox特别容易受到攻击。

您可以通过执行类似$(“#DIV1 OBJECT”)的删除子元素。删除()然后在需要时再次使用swfobject添加。

或者,您可以使用ExternalInterface尝试通过javascript与Flash对象进行通信。

你不是在说你如何播放视频,但是如果你有自己的自定义播放器,你需要在你的flash文件中添加一些接口才能做到这一点,否则,你正在使用的播放器可能会有一些您可以使用的现有外部接口。