VLC web 插件javascript常用接口及属性

嵌入标签属性

将插件嵌入到网页中使用<embed>模板:

<embedtype="application/x-vlc-plugin"pluginspage="http://www.videolan.org" />

<objectclassid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921"codebase="http://download.videolan.org/pub/videolan/vlc/last/win32/axvlc.cab"></object>

 

标签中所需要嵌入的属性有:

Width:指定插件的宽度;

Height:指定插件的高度;

Target、mrl、filename、src:加载的视频源。

标签属性中可选的属性:

Autoplay,autostart:控制视频初试播放的状态,默认值为真(True);

Allowfullscreen:该属性是从VLC版本的1.2.0开始存在的,指定用户是否可以切换到全屏模式,默认值为真(True);

Mute:静音控制,指定音频音量是否最初静音,默认值为假(false);

Loop,autoloop:用来控制视频是否循环播放,默认值为假(false);

Toolbar:用来控制是否显示工具条,默认值为真(True);

Bgcolor:用来控制背景颜色,默认值为白色(#000000)。

DOM元素:

Id:DOM的ID;

Name:DOM的名称。

Javascript API 的描述:

VLC插件的几个对象可以用于设置和获取信息的访问。当使用非法的API接口时,将会抛出一个有说明的异常。例如,异常会询问播放列表的vlc.input.length。

VLC object:

VLC插件具有下列对象:

Audio:访问音频属性;

Input:访问输入属性;

Playlist:访问播放列表属性;

Subtitle:访问字幕属性;

Video:访问视频属性;

Video.marquee:访问字幕视频滤波特性;

Video.logo:访问视频滤波器性能的标志;

MediaDescription:访问媒体信息属性(只有在2.0.2以上版本才有)。

举例:

下面的JavaScript代码显示了如何获得一个参考的VLC插件。然后这可以参考使用VLC插件对象。

<html>

<title>VLC Mozilla plugin testpage</title>

<body>

<embedtype="application/x-vlc-plugin" pluginspage="http://www.videolan.org"

 width="640"

 height="480"

 id="vlc">

</embed>

<scriptlanguage="Javascript">

<!--

var vlc = document.getElementById("vlc");

vlc.audio.toggleMute();

//!-->

</script>

</body>

</html>

 

方法:

vlc.versioninfo():返回版本新

vlc.addeventlistener(eventname,callback,bubble):仅用于Mozilla,对eventname添加一个监听事件。

vlc.removeeventlistener(eventname,callback,bubble):仅用于Mozilla,移除对eventname的监听。

vlc.attachevent(eventname,callback):(仅用于ActiveX)对eventname添加监听事件。

vlc.removeevent(eventname,callback):(仅用于ActiveX)移除对eventname的监听。

事件:

MediaPlayerNothingSpecial

MediaPlayerOpening

MediaPlayerBuffering

MediaPlayerPlaying

MediaPlayerPaused

MediaPlayerForward

MediaPlayerBackward

MediaPlayerEncounteredError

MediaPlayerEndReached

MediaPlayerTimeChanged

MediaPlayerPositionChanged

MediaPlayerSeekableChanged

MediaPlayerPausableChanged

举例:

下面的代码片断提供简单的注册和注销事件回调函数在所有支持的平台(目前只有Linux基于Mozilla的浏览器和Windows ActiveX对象的Internet Explorer)。

<SCRIPTlanguage="javascript">

<!--

function registerVLCEvent(event, handler)

{

var vlc = getVLC("vlc");

if (vlc) {

   if (vlc.attachEvent) {

       // Microsoft

       vlc.attachEvent (event, handler);

    }else if (vlc.addEventListener) {

       // Mozilla: DOM level 2

       vlc.addEventListener (event, handler, false);

    }else {

       // DOM level 0

       vlc["on" + event] = handler;

    }

}

}

// stop listening to event

function unregisterVLCEvent(event, handler)

{

var vlc = getVLC("vlc");

if (vlc) {

   if (vlc.detachEvent) {

       // Microsoft

       vlc.detachEvent (event, handler);

    }else if (vlc.removeEventListener) {

       // Mozilla: DOM level 2

       vlc.removeEventListener (event, handler, false);

    }else {

       // DOM level 0

       vlc["on" + event] = null;

    }

}

}

// event callback function for testing

function handleEvents(event)

{

if (!event)

   event = window.event; // IE

if (event.target) {

   // Netscape based browser

   targ = event.target;

} else if (event.srcElement) {

   // ActiveX

    targ = event.srcElement;

} else {

   // No event object, just the value

   alert("Event value" + event );

   return;

}

if (targ.nodeType == 3) // defeat Safaribug

   targ = targ.parentNode;

alert("Event " + event.type +" has fired from " + targ );

}

// handle mouse grab event from videofilter

function handleMouseGrab(event,X,Y)

{

if (!event)

   event = window.event; // IE

alert("new position (" + X +"," + Y + ")");

}

// Register a bunch of callbacks.

registerVLCEvent('MediaPlayerNothingSpecial',handleEvents);

registerVLCEvent('MediaPlayerOpening',handleEvents);

registerVLCEvent('MediaPlayerBuffering',handleEvents);

registerVLCEvent('MediaPlayerPlaying',handleEvents);

registerVLCEvent('MediaPlayerPaused',handleEvents);

registerVLCEvent('MediaPlayerForward',handleEvents);

registerVLCEvent('MediaPlayerBackward',handleEvents);

registerVLCEvent('MediaPlayerEncounteredError',handleEvents);

registerVLCEvent('MediaPlayerEndReached',handleEvents);

registerVLCEvent('MediaPlayerTimeChanged',handleEvents);

registerVLCEvent('MediaPlayerPositionChanged',handleEvents);

registerVLCEvent('MediaPlayerSeekableChanged',handleEvents);

registerVLCEvent('MediaPlayerPausableChanged',handleEvents);

</script>

-->

音频对象:

vlc.audio.count:调节音频。

vlc.audio.mute: 静音和取消静音音频的布尔值.

vlc.audio.volume:调节音量。

vlc.audio.track:在(1-65535)中选择音频,当设为0值时无效。

vlc.audio.channel:取值在1-5之间,选择频道模式: "1=stereo", "2=reverse stereo","3=left", "4=right", "5=dolby"。

vlc.audio.toggleMute():控制静音的方法,根据前一个状态来对静音和不是静态的状态进行切换。

vlc.audio.description(int i):根据参数i的值进行控制频道是否有效。0相当于无效,1表示第一个频道。

举例:

Audio Channel:

<SELECT readonlyonChange='doAudioChannel(this.value)'>

<OPTION value=1>Stereo</OPTION>

<OPTION value=2>Reversestereo</OPTION>

<OPTION value=3>Left</OPTION>

<OPTION value=4>Right</OPTION>

<OPTION value=5>Dolby</OPTION>

</SELECT>

<SCRIPTlanguage="javascript">

<!--

function doAudioChannel(value)

{

var vlc = getVLC("vlc");

vlc.audio.channel = parseInt(value);

alert(vlc.audio.channel);

};

-->

输入对象:

vlc.input.length:输入的文件的长度以毫秒为单位。0表示正在播放vlc不能获取长度。如果是-1表示没有输入播放。

vlc.input.fps:每秒帧用一个浮点值返回。(例如:60.0,50.0,23.976等)。

vlc.input.hasVout:布尔类型,当视频播放时返回True,否则false,属于读写属性。

vlc.input.position:用于多媒体流中,在(0.0-1.0)中选值。

vlc.input.time:寻找视频流。

举例:

<!-- absolute seek instream !-->

vlc.input.time = <absolute seek>

<!-- relative seek instream !-->

vlc.input.time = vlc.input.time +<relative seek>

 

vlc.input.state:(IDLE=0, OPENING=1, BUFFERING=2,PLAYING=3, PAUSED=4, STOPPING=5, ENDED=6, ERROR=7).

vlc.input.rate:输入速率。

播放列表的对象:

vlc.playlist.itemCount:

vlc.playlist.isPlaying:

vlc.playlist.items:

 

方法:

vlc.playlist.add(mrl):

vlc.playlist.add(mrl,name,options):

vlc.playlist.play():

vlc.playlist.playItem(number):

vlc.playlist.togglePause():

vlc.playlist.stop():

vlc.playlist.next():

vlc.playlist.prev():

vlc.playlist.clear():

vlc.playlist.removeItem(number):

vlc.playlist.items.count:

翻译博客来自于:http://m.blog.csdn.net/article/details?id=7698803

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值