windows - تحميل - ويندوز ميديا بلاير ويندوز 10




تضمين Windows Media Player لجميع المتصفحات (6)

إليزابيث كاسترو مقالة مثيرة للاهتمام حول هذه المشكلة: وداعا وداعا . تستحق قراءة كيف هاجمت هذه المشكلة ، بالإضافة إلى التعامل مع محتوى QuickTime.

نحن نستخدم مقاطع فيديو WMV على موقع داخلي ، ونحن ندمجها في مواقع الويب. يعمل هذا بشكل جيد على Internet Explorer ، ولكن ليس على Firefox. لقد وجدت طرقًا لجعلها تعمل في Firefox ، ولكن بعد ذلك تتوقف عن العمل في Internet Explorer.

لا نريد استخدام Silverlight حتى الآن ، خاصة وأننا لا نستطيع التأكد من أن جميع العملاء سيشغلون Windows XP مع تثبيت Windows Media Player.

هل هناك نوع من الكود العالمي الذي يقوم بتضمين WMP في كل من Internet Explorer و Firefox ، أو هل نحن بحاجة إلى تنفيذ بعض اكتشاف وكيل المستخدم وتقديم HTML مختلف لمتصفحات مختلفة؟


استخدم ما يلي. إنه يعمل في 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" />

وفي جافا سكريبت ،

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


        }

لقد وجدت شيئًا يعمل في الواقع في كل من FireFox و IE ، على موقع Elizabeth Castro (بفضل الرابط الموجود على هذا الموقع) - لقد جربت جميع الإصدارات الأخرى هنا ، لكنني لم أستطع جعلها تعمل في كلا المتصفحات

<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 في علامة الكائن الأولية


لقد وجدت مقالة جيدة حول استخدام WMP مع Firefox على MSDN.

بناءً على مقالة MSDN وبعد إجراء بعض التجارب والأخطاء ، وجدت أن استخدام JavaScript أفضل من استخدام التعليقات الشرطية أو علامات "EMBED / OBJECT" المتداخلة.

قمت بإجراء وظيفة JS تقوم بإنشاء كائن WMP استنادًا إلى وسيطات معينة:

<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 بدلاً من حدث تحميل النافذة لجعل الرموز أكثر توافقًا مع الإصدارات السابقة ومتصفح مستعرض.

لقد اختبرت الرموز على IE 9-10 و Chrome 27 و Firefox 21 و Opera 12 و Safari 5 على Windows 7/8.


يعمل التالي بالنسبة لي في 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>

يمكنك استخدام التعليقات الشرطية للحصول على IE و Firefox للقيام بأشياء مختلفة

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

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

ستتجاهل المتصفحات نفسها الكود الذي لا يُقصد منه قراءتها.





media