本文档介绍了VLC媒体播放器 Web插件以及如何为其编写页面。
该VLC媒体播放器 webplugins是原生浏览器插件,类似于Flash或Silverlight插件,并允许所有的视频在浏览器中播放VLC媒体播放器可以读取。
除了在所有页面上查看视频之外,还可以构建使用插件高级功能的自定义页面,使用Javascript函数控制播放或从插件中提取信息。
有两个主要插件:一个是ActiveX for IE,另一个是用于其他浏览器的NPAPI。它们具有相同的功能量。
在旧版本中,这些插件非常崩溃。我们急于使用VLC 2.0.0或更高版本。
已通过以下测试:
它已经在GNU / Linux,Windows和MacOS上进行了测试。
要将插件嵌入到网页中,请使用以下
< embed type = “application / x-vlc-plugin” pluginspage = “http://www.videolan.org” / >
如果您在Internet Explorer中使用vlc版本<2.2.0,请使用以下
< object classid = “clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921” codebase = “http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab” > < / object >
对于标签属性的声明,请使用标签。这里有一个例子:
< object classid = “clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921” codebase = “http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab” >
< param name = “autostart” value = “true” / >
< param name = “allowfullscreen” value = “false” / >
< / object >
为了兼容mozilla插件,您可以组合两个标签:
< object classid = “clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921” codebase = “http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab” id = “vlc” >
< embed type = “application / x-vlc-plugin” pluginspage = “http://www.videolan.org” name = “vlc” / >
< / object >
这些是
这些是
vlc插件导出可以访问的几个对象,用于设置和获取信息。当使用不当时,API会抛出一个异常,其中包含一个解释发生了什么的字符串。例如,当您将vlc.audio.track设置为超出范围。
vlc插件知道以下对象:
以下不推荐使用:
以下JavaScript代码显示了如何获取对vlc插件的引用。然后可以使用该引用来访问vlc插件的对象。
<!DOCTYPE html>
< html >
< title > VLC Mozilla插件测试页面< / title >
< body >
< embed type = “application / x-vlc-plugin” pluginspage = “http://www.videolan.org”
width = “640”
height = “480”
id = “vlc” / >
< script type = “text / javascript” >
<! -
var vlc = document。getElementById (“vlc” );
vlc。音频。toggleMute ();
// - >
< / script >
< / body >
< / html >
只读属性
读/写属性
方法
事件
以下代码片段提供了在所有支持的平台上注册和注销事件回调的简单功能。
< script type = “text / javascript” >
<! -
函数 registerVLCEvent ( event , handler ) {
var vlc = getVLC (“vlc” );
if ( vlc ) {
如果 ( VLC。的attachEvent ) {
//微软
vlc。attachEvent ( event , handler );
} 否则 如果 ( VLC。的addEventListener ) {
// Mozilla:DOM level 2
vlc。addEventListener ( event , handler , false );
}
}
}
//停止听事件
函数 unregisterVLCEvent ( event , handler ) {
var vlc = getVLC (“vlc” );
if ( vlc ) {
如果 ( VLC。detachEvent ) {
//微软
vlc。detachEvent ( event , handler );
} else if ( vlc. removeEventListener ) {
// Mozilla:DOM level 2
vlc。removeEventListener ( event , handler , false );
}
}
}
//事件回调
function handle_MediaPlayerNothingSpecial (){
alert (“Idle” );
}
function handle_MediaPlayerOpening (){
警报(“开放” );
}
function handle_MediaPlayerBuffering ( val ){
alert (“缓冲:” + val + “%” );
}
function handle_MediaPlayerPlaying (){
警报(“播放” );
}
function handle_MediaPlayerPaused (){
警报(“暂停” );
}
function handle_MediaPlayerStopped (){
警报(“停止” );
}
function handle_MediaPlayerForward (){
alert (“Forward” );
}
function handle_MediaPlayerBackward (){
警戒(“向后” );
}
function handle_MediaPlayerEndReached (){
alert (“EndReached” );
}
function handle_MediaPlayerEnoveredError (){
alert (“EnlookingError” );
}
function handle_MediaPlayerTimeChanged ( time ){
alert (“Time changed:” + time + “ms” );
}
function handle_MediaPlayerPositionChanged ( val ){
alert (“Position changed:” + val );
}
function handle_MediaPlayerSeekableChanged ( val ){
alert (“Seekable changed:” + val );
}
function handle_MediaPlayerPausableChanged ( val ){
alert (“Pausable changed:” + val );
}
function handle_MediaPlayerMediaChanged (){
警报(“媒体已更改” );
}
function handle_MediaPlayerTitleChanged ( val ){
alert (“Title changed:” + val );
}
function handle_MediaPlayerLengthChanged ( val ){
alert (“Length changed:” + val + “ms” );
}
//注册一堆回调。
registerVLCEvent (“MediaPlayerNothingSpecial” , handle_MediaPlayerNothingSpecial );
registerVLCEvent (“MediaPlayerOpening” , handle_MediaPlayerOpening );
registerVLCEvent (“MediaPlayerBuffering” , handle_MediaPlayerBuffering );
registerVLCEvent (“MediaPlayerPlaying” , handle_MediaPlayerPlaying );
registerVLCEvent (“MediaPlayerPaused” , handle_MediaPlayerPaused );
registerVLCEvent (“MediaPlayerStopped” , handle_MediaPlayerStopped );
registerVLCEvent (“MediaPlayerForward” , handle_MediaPlayerForward );
registerVLCEvent (“MediaPlayerBackward” , handle_MediaPlayerBackward );
registerVLCEvent (“MediaPlayerEndReached” , handle_MediaPlayerEndReached );
registerVLCEvent (“MediaPlayerEnoveredError” , handle_MediaPlayerEnoveredError );
registerVLCEvent (“MediaPlayerTimeChanged” , handle_MediaPlayerTimeChanged );
registerVLCEvent (“MediaPlayerPositionChanged” , handle_MediaPlayerPositionChanged );
registerVLCEvent (“MediaPlayerSeekableChanged” , handle_MediaPlayerSeekableChanged );
registerVLCEvent (“MediaPlayerPausableChanged” , handle_MediaPlayerPausableChanged );
registerVLCEvent (“MediaPlayerMediaChanged” , handle_MediaPlayerMediaChanged );
registerVLCEvent (“MediaPlayerTitleChanged” , hand_MediaPlayerTitleChanged );
registerVLCEvent (“MediaPlayerLengthChanged” , handle_MediaPlayerLengthChanged );
// - >
< / script >
只读属性
读/写属性
方法
音频频道:
< select onChange = 'doAudioChannel(this.value)' >
< option value = 1 > Stereo < / option >
< option value = 2 >反向立体声< / option >
< option value = 3 >左侧< / option >
< option value = 4 > Right < / option >
< 选项 值= 5 >杜比< / option >
< / select >
< script type = “text / javascript” >
<! -
function doAudioChannel ( value )
{
var vlc = getVLC (“vlc” );
vlc。音频。channel = parseInt ( value );
警报(。VLC 音频。信道);
}
// - >
script >
只读属性
读/写属性
<! - absolute seek in stream - > vlc.input.time =<! - 相对寻找流 - > vlc.input.time = vlc.input.time +
注意:测试ENDED = 6以结束播放。检查STOPPING = 5不是全部。
方法
只读属性
读/写属性
方法
只读属性
读/写属性
方法
只读属性
读/写属性
方法
var options = new Array (“:aspect-ratio = 4:3” , “--rtsp-tcp” );
//或:var options =“:aspect-ratio = 4:3 --rtsp-tcp”;
var id = vlc。播放列表。add (“rtsp:// servername / item / to / play” , “fancy name” , options );
vlc。播放列表。playItem ( id );
只读属性
读/写属性
方法
只读属性
读/写属性
方法
只读属性
读/写属性
方法
只读属性
读/写属性
方法
只读属性
读/写属性
方法
有些问题可能发生,因为VLC异步运行的(如颜色或文本选项将不适用)。为了避免这种情况,在启用选框后,您必须等待一段时间才能更改选项。但它应该由新的vout实现来修复。
注意:[1]
只读属性
读/写属性
方法
由于VLC异步功能,可能会出现一些问题。为了避免这种情况,在启用标志视频过滤器之后,您必须等待一段时间才能更改选项。但它应该由新的vout实现来修复。
只读属性
读/写属性
方法
此对象允许访问VLC主消息记录队列。通常这个队列容量非常小(不超过256个条目),并且可以容易地溢出,因此应该尽可能多地读取和清除消息。
只读属性
读/写属性
方法
只读属性
读/写属性
方法
只读属性
读/写属性
方法