63

編集:この質問は2008年に書かれました。これは、3年前のインターネットのようなものでした。この質問がまだあなたの環境に関連しているなら、私の哀悼の意を受け入れてください。他のすべての人は、ブラウザでサポートされている形式に変換し(Internet Explorerが必要な場合はH.264、そうでない場合はおそらくAV1、VP8 / VP9)、<video>要素を使用する必要があります。


内部サイトでWMVビデオを使用しており、それらをWebサイトに埋め込んでいます。これはInternetExplorerでは非常にうまく機能しますが、Firefoxでは機能しません。Firefoxで動作させる方法を見つけましたが、InternetExplorerでは動作しなくなります。

特に、すべてのクライアントがWindows MediaPlayerがインストールされたWindowsXPを実行していることを確認できないため、Silverlightはまだ使用しません。

Internet ExplorerとFirefoxの両方にWMPを埋め込むある種のユニバーサルコードはありますか、それともユーザーエージェント検出を実装してブラウザごとに異なるHTMLを配信する必要がありますか?

4

10 に答える 10

46

FirefoxとInternetExplorerでは次のように動作します。

<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>
于 2008-08-03T14:27:20.967 に答える
19

jQuery Media Pluginを提案してもいいですか?WMVだけでなく、あらゆる種類のビデオに埋め込みコードを提供し、ブラウザーの検出を行って、煩雑なswitch/caseステートメントをすべてテンプレートから除外します。

于 2008-08-08T18:29:13.057 に答える
8

以下を使用してください。FirefoxとInternetExplorerで動作します。

        <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)
        } 


        }
于 2009-08-04T14:55:37.377 に答える
6

エリザベス・カストロには、この問題に関する興味深い記事があります:ByeByeEmbed。彼女がこの問題をどのように攻撃したか、そしてQuickTimeコンテンツをどのように処理したかについて読む価値があります。

于 2008-11-10T19:52:28.537 に答える
5

条件付きコメントを使用して、IEとFirefoxに異なることをさせることができます

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

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

ブラウザ自体は、読むことを意図していないコードを無視します。

于 2008-08-01T18:08:53.080 に答える
5

ビデオをWebに展開する最良の方法は、Flashを使用することです。Webページにきれいに埋め込む方がはるかに簡単で、ブラウザとプラットフォームの任意の組み合わせで再生できます。Windows Media Playerを使用する唯一の理由は、コンテンツをストリーミングしていて、非常に強力なデジタル著作権管理が必要な場合です。それでも、プロバイダーはこれらの場合でもFlashを使用し始めています。すばらしい例については、BBCのiPlayerを参照してください。

内部で使用する場合でも、Flashに切り替えることをお勧めします。将来誰がアクセスする必要があるかはわかりません。これにより、将来の互換性が最高になります。

編集-2013年3月20日。これらの古い質問が時々どのように再浮上するか興味深いです!今日の世界はどれほど異なっているか、そしてこれはどれほど時代遅れに見えるか。今日のFlashのみのルートは決してお勧めしません。最近のベストプラクティスは、HTML 5を使用してH264でエンコードされたビデオを埋め込み、Flashフォールバックを使用することです。http://diveintohtml5.info/video.html

于 2008-08-02T11:05:55.460 に答える
3

フラッシュビデオのエンコードは、ffmpegを使用すると実際には非常に簡単です。1つのコマンドを使用して、ほぼすべてのビデオ形式から変換できます。ffmpegは、残りの部分を理解するのに十分スマートであり、マシン上のすべてのプロセッサを使用します。呼び出すのは簡単です。

ffmpeg -i input.avi output.flv

ffmpegは必要なビットレートを推測しますが、ビットレートを指定したい場合は、-bオプションを使用できます-b 500000。たとえば、500kbpsです。もちろんたくさんのオプションがありますが、私は一般的にあまりいじくり回すことなく良い結果を得ることができます。これは、より多くのオプションを探している場合に開始するのに適した場所です:ビデオオプション

フラッシュビデオを表示するために特別なWebサーバーは必要ありません。.flvファイルを標準のWebサーバーにプッシュし、flowplayerなどの優れたswfプレーヤーでそれらにリンクするだけで、問題なく実行できました。

すべてのユーザーが常に[最新バージョンの]Windowsのみを使用することを確信できる場合、WMVは問題ありませんが、それでも、多くの場合、Flashの方がWebに適しています。プレーヤーは非常にスキニング可能であり、JavaScriptで制御できます。

于 2008-08-04T02:14:59.477 に答える
3

私はMSDNでFirefoxでWMPを使用することについての良い記事を見つけました。

MSDNの記事に基づいて、試行錯誤を繰り返した結果、条件付きコメントやネストされた「EMBED/OBJECT」タグを使用するよりもJavaScriptを使用する方が優れていることがわかりました。

与えられた引数に基づいてWMPオブジェクトを生成するJS関数を作成しました。

<script type="text/javascript">
    function generateWindowsMediaPlayer(
        holderId,   // String
        height,     // Number
        width,      // Number
        videoUrl    // String
        // you can declare more arguments for more flexibility
        ) {
        var holder = document.getElementById(holderId);

        var player = '<object ';
        player += 'height="' + height.toString() + '" ';
        player += 'width="' + width.toString() + '" ';

        videoUrl = encodeURI(videoUrl); // Encode for special characters

        if (navigator.userAgent.indexOf("MSIE") < 0) {
            // Chrome, Firefox, Opera, Safari
            //player += 'type="application/x-ms-wmp" '; //Old Edition
            player += 'type="video/x-ms-wmp" '; //New Edition, suggested by MNRSullivan (Read Comments)
            player += 'data="' + videoUrl + '" >';
        }
        else {
            // Internet Explorer
            player += 'classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6" >';
            player += '<param name="url" value="' + videoUrl + '" />';
        }

        player += '<param name="autoStart" value="false" />';
        player += '<param name="playCount" value="1" />';
        player += '</object>';

        holder.innerHTML = player;
    }
</script>

次に、次のようなマークアップとインラインJSを記述して、この関数を使用しました。

<div id='wmpHolder'></div>

<script type="text/javascript">        
    window.addEventListener('load', generateWindowsMediaPlayer('wmpHolder', 240, 320, 'http://mysite.com/path/video.ext'));
</script>

ウィンドウロードイベントの代わりにjQuery.readyを使用して、コードの下位互換性とクロスブラウザーを作成できます。

Windows 7/8で、IE 9-10、Chrome 27、Firefox 21、Opera 12、Safari5でコードをテストしました。

于 2013-06-06T16:03:02.890 に答える
2

エリザベスカストロのサイトで、FireFoxとIEの両方で実際に機能するものを見つけました(このサイトのリンクのおかげで)-ここで他のすべてのバージョンを試しましたが、両方のブラウザーで機能させることができませんでした

<object classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" 
  id="player" width="320" height="260">
  <param name="url" 
    value="http://www.sarahsnotecards.com/catalunyalive/fishstore.wmv" />
  <param name="src" 
    value="http://www.sarahsnotecards.com/catalunyalive/fishstore.wmv" />
  <param name="showcontrols" value="true" />
  <param name="autostart" value="true" />
  <!--[if !IE]>-->
  <object type="video/x-ms-wmv" 
    data="http://www.sarahsnotecards.com/catalunyalive/fishstore.wmv" 
    width="320" height="260">
    <param name="src" 
      value="http://www.sarahsnotecards.com/catalunyalive/fishstore.wmv" />
    <param name="autostart" value="true" />
    <param name="controller" value="true" />
  </object>
  <!--<![endif]-->
</object>

彼女のサイトをチェックしてください:http://www.alistapart.com/articles/byebyeembed/そして最初のオブジェクトタグにclassidが含まれているバージョン

于 2009-11-06T20:00:01.033 に答える
1

2020年12月:

  • Firefox83.0とChrome87.0があります
  • Internet Explorerは廃止され、新しいChromiumベースのEdge87.0に置き換えられました
  • Silverlightは死んでいます
  • WindowsXPは死んでいます
  • WMVは標準ではありません:https ://www.w3schools.com/html/html_media.asp

質問に答えるには:

  • WMVファイルを別の形式(MP4、WebM、またはOggビデオ)に変換する必要があります。
  • 次に、HTML5<video>要素を使用してページに埋め込みます。

この質問は閉じるべきだと思います。

于 2020-12-11T11:59:32.313 に答える