1

我正在尝试为所有浏览器实现vlc 网络插件。

从现在开始我能得到的最好的,它是一个在 chrome 和 firefox 等浏览器和静态插件上完全工作的插件,无需访问 IE 9 和 8 中的 javascript API。

HTML:

<div class="span8" id="playerContainer">
    <!--[if IE]>
    <object
        classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" 
        id="vlcPlayer"
        name="vlcPlayer"
        events="True" width="800" height="450">
          <param name="Src" value="" />
          <param name="ShowDisplay" value="True" />
          <param name="AutoLoop" value="True" />
          <param name="AutoPlay" value="True" />
          <param name="Toolbar" value="false"></param>
    </object>
    <![endif]-->
</div>

在这里我以这种方式包含 IE 插件,因为如果我使用带有 javascript 的动态插入,插件将被强制设置为 0px 的宽度和高度,并且永远不会显示。

JS:

function initVLC(width,height,stream)
{
    var embed   = "<div>Error loading plugin</div>";

    if(! $.browser.msie) {
        embed = '<embed type="application/x-vlc-plugin" pluginspage="http://www.videolan.org"'+
                        'id="vlcPlayer"'+
                        'toolbar ="false"'+
                        'autoplay="yes" loop="yes" width="'+width+'" height="'+height+'"'+
                        'target="" style="margin-bottom: 40px;" />';

        $('#playerContainer').html(embed);            
    }
    updateStream(stream);
}

function updateStream(stream)
{
    var vlc     = null;
    vlc = document.getElementById('vlcPlayer');
    vlc.playlist.stop();
    vlc.playlist.items.clear();
    vlc.playlist.add(stream);
    vlc.playlist.play();
}

在 Chrome 或 firefox 上一切正常。在 IE 上,如果我不调用updateStream()插件,则会显示该插件,但一旦我尝试使用 javascript API,插件就会消失(存在于 DOM 中但未显示)并且什么也没有发生。

当我使用 IE9 调试时,vlc 对象似乎没问题,并且没有显示错误:

IE9 上的 vlc 对象

我如何使用带有 IE 9 和 8 的 JS API 来初始化和更新 vlc 播放的流?

任何工作样品将不胜感激

注意:我在 Win 7 64 位上使用 vlc 2.0.5 进行测试,我的网页有一个 html5 文档类型

4

1 回答 1

0

我已经切换到FbVLC,它是使用 Firebreath 的 vlc 插件。

它工作得很好,只需要在非 Windows 客户端上使用经典 vlc 即可。

于 2013-02-11T08:02:23.727 回答