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

動的にロードされたときに 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 で発生します。

私の回避策は、JavaScript をロードする VLC で少し JQuery を使用することです。

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

それが役に立てば幸い :-)

于 2013-12-10T12:23:42.837 に答える
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 に答える
0

いくつかのメモ:

  • まず「display:none」にすると動きません。
  • 次に、embed に 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 に答える