嵌入标签属性
将插件嵌入到网页中使用<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.youkuaiyun.com/article/details?id=7698803