Встроенный плеер не работает в удаленном браузере

Я использую встроенный проигрыватель wmv в своем веб-проекте (jsp) для воспроизведения файлов *.avi, расположенных на сервере. Когда я нажимаю на ссылки в jsp, они работают нормально, видео воспроизводится.

Но когда я пытаюсь открыть страницу на другом компьютере, встроенный плеер не работает, вместо этого он загружает файл с сервера.

Это код, который я использовал

<script type="text/javascript">
function play(media){
document.getElementById('mediaplayer').innerHTML=
'<object classid="clsid:22d6f312-b0f6-11d0-94ab-0080c74c7e95"'
'type="application/x-oleobject" width="320" height="285">'
'<param name="showControls" value="false">'
'<param name="fileName" value="'media '">'
'<embed type="application/x-mplayer2" width="320" height="285"'
'showcontrols="false" src="'media '"><\/embed><\/object>'
}
</script>
<div id="mediaplayer"></div>
<ul id="menu">
<li><a onclick="play(this.href);return false" href="http://www.myurlname/afghan.avi">Source 1</a></li>
</ul>

нашел приведенный выше скрипт в Интернете, но не смог найти для него решения.


person MajorXbox    schedule 03.05.2012    source источник


Ответы (1)


То, как ваша функция добавляет разметку плеера, кажется неправильным. Вы должны объединить все эти строки. У вас есть сообщение об ошибке, откройте консоль браузера, и вы увидите это:

Uncaught SyntaxError: Неожиданный токен ‹

Я видел это на этой скрипте с вашим кодом

Вот пример метода, который я использовал в старом проекте:

    // this requires jquery
    var MediaLink_Click = function (e) {

        var mp = document.getElementById('mediaPlayer');
        if ((null !== mp) && (undefined !== mp)) {
            if ((null != mp.contentDocument) && (undefined !== mp.contentDocument)) {
                $("object").each(function () {
                    this.contentDocument.controls.stop();
                });
            }
            $(mp).remove();
        }

        var oeTags = '<object id="mediaPlayer" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" width="640px" height="480px"'
                    + '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="autoStart" value="true"/>'
                    + '   <param name="url"       value="' + e.data.media_path + '" />'
                    + '   <param name="wmode"     value="transparent" />'
                    + '   <param name="uiMode"    value="full" />'
                    + '   <param name="loop"      value="false" />'
                    + '   <embed id       ="EmbedmediaPlayer"'
                    + '       type        ="application/x-mplayer2"'
                    + '       src         ="' + e.data.media_path + '"'
                    + '       width       ="640"'
                    + '       height      ="480">'
                    + '   </embed>'
                    + '</object>';
        $("#mediaplayer").html(oeTags); 
    }; 

Обратите внимание, что я объединяю строки знаком плюс (+) перед каждой строкой. и вы можете использовать его так:

$("a").bind("click", { media_path: "path to your file goes here" }, MediaLink_Click);

Попробуйте это и дайте мне знать, если вы можете бежать.

Эта скрипта показывает, что она "вроде" работает (файл .avi не существует, поэтому он не будет воспроизводиться). , но загружает плеер и все)

person MilkyWayJoe    schedule 03.05.2012