0

我在 Chrome 上使用 VLC Webplugin

<div id="div-vlc" style="display: none;">
    <embed id="vlc" name="vlc" width="640" height="480" pluginspage="http://www.videolan.org" type="application/x-vlc-plugin" />
    <object style="width:0px;height:0px;" classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" codebase="http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab">    </object>
</div>

并尝试捕捉事件以控制游戏:

document.vlc.addEventListener('MediaPlayerPlaying', function() {alert();} )

或者

document.vlc.attachEvent('MediaPlayerPlaying', function() {alert();} ) //crash

就像这个文档说:http ://wiki.videolan.org/Documentation:WebPlugin

但是该事件永远不会被触发。

怎么了?

4

3 回答 3

1

顺便说一句,https ://wiki.videolan.org/Documentation:WebPlugin/ 中的信息在更高版本中已过时。

代码库 URL ' http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab ' 不再存在...

以下对我来说效果很好:

<object type='application/x-vlc-plugin' pluginspage='http://www.videolan.org' version='VideoLAN.VLCPlugin.2' id='vlc1' width='100px' height='150px' events='True' classid='clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921'>
    <param name='MRL' value='' />
    <param name='toolbar' value='false' />
    <param name='autoplay' value='false' />
    <param name='loop' value='false' />
    <param name='allowfullscreen' value='true' />
ActiveX not loaded. Check IE settings</object>

Javascript:

var plugin = document.getElementById('vlc1');
$(plugin).width(playerWidth);
$(plugin).height(playerHeight);
$(plugin).attr('style', '');
// Add items to plugin.playlist
于 2013-12-10T12:50:46.440 回答
1

只是想就动态加载时 ASP.NET 对 VLC 所做的一件奇怪的事情提出建议。

当在 aspx.cs 或 ascx.cs 中以像素为单位设置特定的宽度和高度时,ASP.NET 会在 ActiveX 中向浏览器返回错误的宽度和高度属性。样本:

aspx.cs 或 ascx.cs 文件:

myLiteral.Text = @"<object type='application/x-vlc-plugin'  
width='150px' height='100px'  
pluginspage='http://www.videolan.org' version='VideoLAN.VLCPlugin.2' events='True' classid='clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921'>Check activex settings</object>";

客户端为 IE8 或更高版本时返回的 html:

<object type='application/x-vlc-plugin'  
width=0px height=0px style='HEIGHT:0px;WIDTH:0px;TOP:0px;LEFT:0px'  pluginspage='http://www.videolan.org' version='VideoLAN.VLCPlugin.2' events='True' classid='clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921'>Check activex settings</object>

在 IE8 和 IE9 中,它只发生在第一个 VLC ActiveX 中。在 IE10 中,它发生在所有 VLC ActiveX 中。

我的解决方法是在我的 VLC 加载 javascript 中使用一点 JQuery:

$(plugin).width(playerWidth);
$(plugin).height(playerHeight);
$(plugin).attr('style', '');

希望能帮助到你 :-)

于 2013-12-10T12:23:42.837 回答
0

一些注意事项:

  • 首先,如果您将其设为“显示:无”,它将无法正常工作。
  • 其次,嵌入中必须有一个 src/target。
  • 最后但并非最不重要的一点是,对象的大小必须至少为 1x1px。

这将提醒回调:

var vlc=document.getElementById('vlc');
vlc.addEventListener("MediaPlayerPlaying", function(event) {alert(event);}, false);
vlc.playlist.play();    

请注意,这适用于 Firefox 和 Chrome。由于 IE 使用 ActiveX,因此使用了另一种表示法。如需完整文档,请访问https://wiki.videolan.org/Documentation:WebPlugin/

于 2013-01-12T14:13:16.827 回答