在 IE/Chrome 中动态更改嵌入式视频 src(适用于 Firefox)

Posted

技术标签:

【中文标题】在 IE/Chrome 中动态更改嵌入式视频 src(适用于 Firefox)【英文标题】:Dynamically change embedded video src in IE/Chrome (works in Firefox) 【发布时间】:2011-02-28 10:29:13 【问题描述】:

我正在尝试动态更改页面上的嵌入视频。它可以在 Firefox 中运行,但由于某种原因,它不能在 IE 和 Chrome 中运行(奇怪的组合)。这是 html

   <object id="viewer"  >
        <param name="wmode" value="transparent" />
        <param name="movie" value="http://www.youtube.com/v/Lmn94kn08Lw&hl=en&fs=1&color1=0x006699&color2=0x54abd6&rel=0" />
        <param name="allowFullScreen" value="true" />
        <embed id="embeddedPlayer" src="http://www.youtube.com/v/Lmn94kn08Lw&hl=en&fs=1&color1=0x006699&color2=0x54abd6&rel=0" type="application/x-shockwave-flash" allowfullscreen="true"   wmode="transparent"></embed>
    </object>

这是我的 javascript 代码。点击链接更换视频:

        $("#video a").click(
            function() 
                var videoAddress = $(this).attr("href");
                $("#embeddedPlayer").attr("src", videoAddress);
                return false; // stop the default link so it just reloads in the video player
            
        );

就像我说的那样,视频在 Firefox 中的变化非常完美,但在 IE 和 Chrome 中却没有任何反应。有什么想法吗?

【问题讨论】:

几天前有人问过这个问题,IIRC 建议使用 SWFPlayer JS 库,因为这个确切的原因。 【参考方案1】:

终于找到了适用于 IE、Firefox 和 Chrome 的东西。

这样做似乎有点不寻常,但它适用于 IE8/Firefox/Chrome,所以对我来说听起来不错。

$("#video a").click(
            function() 
                var videoAddress = $(this).attr("href");

                $("#media-active").html(" ");
                $("#media-active").html('<object id="viewer"  ><param name="wmode" value="transparent" />' +
        '<param name="movie" value="' + videoAddress + '" /><param name="allowFullScreen" value="true" />' +
        '<embed id="embeddedPlayer" src="' + videoAddress + '" type="application/x-shockwave-flash" allowfullscreen="true"   wmode="transparent"></embed></object>');

                return false; // stop the default link so it just reloads in the video player
            
);

【讨论】:

感谢您发布此内容,已经尝试了一段时间来弄清楚如何执行此操作,但我正在使用音频 src 执行此操作。我还没有看到有人说要使用 .html() @macca1 你好。非常聪明的代码。我尝试在我的网站中使用您的代码,我尝试在我的网站中创建一个视频库。不幸的是,我无法让它工作。你提到的media-active,是div吗?还是object?也许这会对我有所帮助。谢谢【参考方案2】:

&lt;embed&gt; 标签用于向后兼容。请尝试更改参数值。

$("#viewer param[name=movie]").attr("value", videoAddress);

【讨论】:

试过了,但不幸的是它没有任何作用。

以上是关于在 IE/Chrome 中动态更改嵌入式视频 src(适用于 Firefox)的主要内容,如果未能解决你的问题,请参考以下文章

单击按钮时更改嵌入式 youtube 视频中的时间

更改默认的 wordpress youtube 嵌入视频尺寸

嵌入视频仅在更改浏览器窗口大小时出现

更改 YouTube 视频嵌入的背景颜色

在DIV中动态加载Youtube视频Iframe嵌入代码

如何在 C++ 中使用 ffmpeg 动态更改视频的音轨?