我正在尝试为所有浏览器实现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 对象似乎没问题,并且没有显示错误:
我如何使用带有 IE 9 和 8 的 JS API 来初始化和更新 vlc 播放的流?
任何工作样品将不胜感激
注意:我在 Win 7 64 位上使用 vlc 2.0.5 进行测试,我的网页有一个 html5 文档类型