为所有浏览器嵌入Windows Media Player

Michael Stum 57 windows media embed

我们在内部网站上使用WMV视频,我们将它们嵌入到网站中.这在Internet Explorer上运行良好,但在Firefox上运行不正常.我已经找到了让它在Firefox中运行的方法,但它在Internet Explorer中停止运行.

我们还不想使用Silverlight,特别是因为我们无法确定所有客户端都将运行安装了Windows Media Player的Windows XP.

是否有某种通用代码将WMP嵌入到Internet Explorer和Firefox中,或者我们是否需要实现一些用户代理检测并为不同的浏览器提供不同的HTML?

Grant.. 46

以下适用于Firefox和Internet Explorer:

<object id="mediaplayer" classid="clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#version=5,1,52,701" standby="loading microsoft windows media player components..." type="application/x-oleobject" width="320" height="310">
<param name="filename" value="./test.wmv">
     <param name="animationatstart" value="true">
     <param name="transparentatstart" value="true">
     <param name="autostart" value="true">
     <param name="showcontrols" value="true">
     <param name="ShowStatusBar" value="true">
     <param name="windowlessvideo" value="true">
     <embed src="./test.wmv" autostart="true" showcontrols="true" showstatusbar="1" bgcolor="white" width="320" height="310">
</object>

  • 请注意,自7.0版以来,类ID已更改为6BF52A52-394A-11d3-B153-00C04F79FAA6.参见[此处](https://www.microsoft.com/windows/windowsmedia/howto/articles/adsolutions2.aspx). (3认同)

Jake McGraw.. 21

我可以建议jQuery Media插件吗?为各种视频提供嵌入代码,而不仅仅是WMV,并进行浏览器检测,将所有混乱的开关/案例语句保留在模板之外.


用户甲.. 9

使用以下内容.它适用于Firefox和Internet Explorer.

        <object id="MediaPlayer1" width="690" height="500" classid="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
            codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"
            standby="Loading Microsoft® Windows® Media Player components..." type="application/x-oleobject"
            >
            <param name="FileName" value='<%= GetSource() %>' />
            <param name="AutoStart" value="True" />
            <param name="DefaultFrame" value="mainFrame" />
            <param name="ShowStatusBar" value="0" />
            <param name="ShowPositionControls" value="0" />
            <param name="showcontrols" value="0" />
            <param name="ShowAudioControls" value="0" />
            <param name="ShowTracker" value="0" />
            <param name="EnablePositionControls" value="0" />


            <!-- BEGIN PLUG-IN HTML FOR FIREFOX-->
            <embed  type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/"
                src='<%= GetSource() %>' align="middle" width="600" height="500" defaultframe="rightFrame"
                 id="MediaPlayer2" />

在JavaScript中,

    function playVideo() {
        try{
                if(-1 != navigator.userAgent.indexOf("MSIE"))
                {
                        var obj = document.getElementById("MediaPlayer1");
                            obj.Play();

                }
                else
                {
                            var player = document.getElementById("MediaPlayer2");
                            player.controls.play();

                }
             }  
        catch(error) {
            alert(error)
        } 


        }


Grant.. 7

你可以使用条件注释来让IE和Firefox做不同的事情

<![if !IE]>
<p> Firefox only code</p>
<![endif]>

<!--[if IE]>
<p>Internet Explorer only code</p>
<![endif]-->

浏览器本身将忽略不适合他们阅读的代码.


Polsonby.. 7

在网络上部署视频的最佳方式是使用Flash - 它更容易嵌入到网页中,并且可以或多或少地在任何浏览器和平台组合上播放.使用Windows Media Player的唯一原因是,如果您正在流式传输内容,并且您需要非常强大的数字版权管理,即使这样,提供商现在也开始使用Flash.有关一个极好的例子,请参阅BBC的iPlayer.

我建议您切换到Flash,即使是内部使用.您永远不知道将来需要访问它的人,这将为您提供最佳的未来兼容性.

编辑 - 2013年3月20日.有趣的是这些旧问题如何不时重现!今天的世界有多么不同,这一切看起来多么过时.我不建议今天以任何方式使用Flash路线 - 这些天的最佳做法可能是使用HTML 5嵌入H264编码的视频,如下所述的Flash回退:http://diveintohtml5.info/video.html

  • 正如最初的评论所述,正在考虑使用Silverlight,这个评论肯定是来自一个来源的意见. (2认同)

Jim Nelson.. 7

伊丽莎白卡斯特罗有一篇关于这个问题的有趣文章:Bye Bye Embed.值得一读的是她如何攻击这个问题,以及处理QuickTime内容.