播放: MediaPlayer.Play()
暂停: MediaPlayer.Pause()
定位: MediaPlayer.SetCurrentEntry(lWhichEntry)
MediaPlayer.Next()
MediaPlayer.Previous()
循环: MediaPlayer.PlayCount = 0
0:the clip plays repeatedly
1:once
停止: MediaPlayer.Stop()
==================================
AllowChangeDisplaySize 返回或设置最终用户是否能设置显示尺寸(逻辑型)
AllowScan 返回或设置是否允许扫描(逻辑型)
AnimationAtStart 返回或设置控件开始播放之前是否先播放一个动画序列(逻辑型)
AudioStream 返回或设置音频流的编号(用于多音频流的剪辑,默认为-1)(长整型)
AutoRewind 返回或设置媒体文件播放完毕后是否自动回绕(逻辑型)
AutoSize 返回或设置是否自动调整控件大小来适应载入的媒体(逻辑型)
AutoStart 返回或设置在载入媒体文件之后是否自动开始播放(逻辑型)
Balance 返回或设置指定立体声媒体文件的播放声道(-10000为左声道,10000为右声道,0为立体声)(长整型)
Bandwidth 返回或设置当前文件的带宽(长整型)
BaseURL 返回基本的 HTTP URL(字符串)
BufferingCount 返回媒体文件回放时缓冲的总时间(长整型)
BufferingProgress 返回缓冲完成的百分比(长整型)
BufferingTime 返回缓冲的时间(双精度型)
CanPreview 返回或设置当前显示的剪辑是能否被预览(逻辑型)
CanScan 返回或设置当前文件是否支持快进或快退(逻辑型)
CanSeek 返回或设置当前文件是否能搜索并定位到某个时间(逻辑型)
CanSeekToMarkers 返回或设置文件是否支持搜索到标签(逻辑型)
CaptioningID 返回在标题中显示的帧或控件的名称(字符串)
ChannelDescription 返回电台的描述(字符串)
ChannelName 返回电台的名称(字符串)
ChannelURL 返回电台的元文件的位置(字符串)
ClickToPlay 返回或设置是否可以通过点击图像暂停或播放剪辑(逻辑型)
ClientID 返回客户端唯一的标识符(字符串)
CodecCount 返回文件使用的可安装的 codecs 的个数(长整型)
ContactAddress 返回电台的联系地址(字符串)
ContactEmail 返回电台的联系电子邮件地址(字符串)
ContactPhone 返回电台的联系电话(字符串)
CreationDate 返回剪辑的创建日期(日期型)
CurrentMarker 返回或设置当前书签号码(长整型)
CurrentPosition 返回或设置剪辑的当前位置(双精度型)
CursorType 返回或设置指针类型(长整型)
DefaultFrame 返回或设置控件的默认目标 Http 帧(字符串)
DisplayBackColor 返回或设置显示面板的背景色(OLE_COLOR 值)
DisplayForeColor 返回或设置显示面板的前景色(OLE_COLOR 值)
DisplayMode 返回或设置显示面板是否用秒或帧的形式显示当前位置(MPDisplayModeConstants 值)
DisplaySize 返回或设置图像显示窗口的大小(MPDisplaySizeConstant 值)
Duration 返回或设置剪辑剪辑的播放时间(双精度型)
EnableContextMenu 返回或设置是否允许使用上下文菜单(逻辑型)
Enabled 返回或设置控件是否可用(逻辑型)
EnableFullScreenControls 返回或设置全屏幕控制是否可用(逻辑型)
EnablePositionControls 返回或设置位置控制是否可用(逻辑型)
EnableTracker 返回或设置搜索栏控制是否可用(逻辑型)
ErrorCode 返回当前错误代码(长整型)
ErrorCorrection 返回当前剪辑的错误修正类型(长整型)
ErrorDescription 返回当前错误的描述(字符串)
FileName 返回或设置要播放的剪辑的文件名称(字符串)
HasError 返回控件是否发生错误(逻辑型)
HasMultipleItems 返回或设置控件是否包含某些多重项目的内容(逻辑型)
ImageSourceHeight 返回或设置当前剪辑的原始图像高度(长整型)
ImageSourceWidth 返回或设置当前剪辑的原始图像宽度(长整型)
InvokeURLs 返回或设置 URL 是否自动发送请求(逻辑型)
IsBroadcast 返回或设置源是否进行广播(逻辑型)
IsDurationValid 返回或设置持续时间值是否有效(逻辑型)
Language 返回或设置用于本地化语言支持的当前区域语言(长整型)
LostPackets 返回丢失的数据包数量(长整型)
MarkerCount 返回文件书签的数量(长整型)
Mute 返回或设置控件是否播放声音(逻辑型)
OpenState 返回控件的内容源状态(长整型)
PlayCount 返回或设置一个剪辑播放的次数(长整型)
PlayState 返回控件的当前操作状态(长整型)
PreviewMode 返回或设置控件是否处在预览模式(逻辑型)
Rate 返回或设置回放帧频(双精度型)
ReadyState 返回控件是否准备就绪(ReadyStateConstant 值)
ReceivedPackets 返回已接收到的数据包的数量(长整型)
ReceptionQuality 返回最后 30 秒接收到的数据包的百分比(长整型)
RecoveredPackets 返回已转换的数据包的数量(长整型)
SAMIFileName 返回或设置 closed-captioning 文件名(字符串)
SAMILang 返回或设置 closed captioning 语言(字符串)
SAMIStyle 返回或设置 closed captioning 风格(字符串)
SelectionEnd 返回或设置流的结束位置(双精度型)
SelectionStart 返回或设置流的起始位置(双精度型)
SendErrorEvents 返回或设置控件是否发送错误事件(逻辑型)
SendKeyboardEvents 返回或设置控件是否发送键盘事件(逻辑型)
SendMouseClickEvents 返回或设置控件是否发送鼠标单击事件(逻辑型)
SendMouseMoveEvents 返回或设置控件是否发送鼠标移动事件(逻辑型)
SendOpenStateChangeEvents 返回或设置控件是否发送打开状态改变事件(逻辑型)
SendPlayStateChangeEvents 返回或设置控件是否发送播放状态改变事件(逻辑型)
SendWarningEvents 返回或设置控件是否发送警告事件(逻辑型)
ShowAudioControls 返回或设置是否显示音频控制(逻辑型)
ShowCaptioning 返回或设置是否显示字幕(逻辑型)
ShowControls 返回或设置控制面板是否可见(逻辑型)
ShowDisplay 返回或设置是否显示显示面板(逻辑型)
ShowGotoBar 返回或设置是否显示跳转栏(逻辑型)
ShowPositionControls 返回或设置是否显示位置控制(逻辑型)
ShowStatusBar 返回或设置是否显示状态栏(逻辑型)
ShowTracker 返回或设置是否显示搜索栏(逻辑型)
SourceLink 返回内容文件的路径(字符串)
SourceProtocol 返回用于接收数据的协议(长整型)
StreamCount 返回媒体帧的数量(长整型)
TransparentAtStart 返回或设置在开始播放之前和停止之后控件是否透明(逻辑型)
VideoBorder3D 返回或设置视频边框是否显示为 3D 效果(逻辑型)
VideoBorderColor 返回或设置视频边框的颜色(OLE_颜色)
VideoBorderWidth 返回或设置视频边框的宽度(长整型)
Volume 返回或设置音量(长整型)
==============================================
Mediaplayer属性和方法
属性/方法名:说明:
[基本属性]
URL:String; 指定媒体位置,本机或网络地址
uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible
playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪
enableContextMenu:Boolean; 启用/禁用右键菜单
fullScreen:boolean; 是否全屏显示
[controls] wmp.controls //播放器基本控制
controls.play; 播放
controls.pause; 暂停
controls.stop; 停止
controls.currentPosition:double; 当前进度
controls.currentPositionString:string; 当前进度,字符串格式。如“00:23”
controls.fastForward; 快进
controls.fastReverse; 快退
controls.next; 下一曲
controls.previous; 上一曲
[settings] wmp.settings //播放器基本设置
settings.volume:integer; 音量,0-100
settings.autoStart:Boolean; 是否自动播放
settings.mute:Boolean; 是否静音
settings.playCount:integer; 播放次数
[currentMedia] wmp.currentMedia //当前媒体属性
currentMedia.duration:double; 媒体总长度
currentMedia.durationString:string; 媒体总长度,字符串格式。如“03:24”
currentMedia.getItemInfo(const string); 获取当前媒体信息"Title"=媒体标题,"Author"=艺术家,"Copyright"=版权信息,"Description"=媒体内容描述,"Duration"=持续时间(秒),"FileSize"=文件大小,"FileType"=文件类型,"sourceURL"=原始地址
currentMedia.setItemInfo(const string); 通过属性名设置媒体信息
currentMedia.name:string; 同 currentMedia.getItemInfo("Title")
[currentPlaylist] wmp.currentPlaylist //当前播放列表属性
currentPlaylist.count:integer; 当前播放列表所包含媒体数
currentPlaylist.Item[integer]; 获取或设置指定项目媒体信息,其子属性同wmp.currentMedia
windowsmediaplayer 控件在我们编程时经常要用到,但是有很多属性及方法却不知道该怎么使用。(JavaScript中用法几乎完全相同)。
假设此控件名为wmp
属性/方法名: 说明:
[基本属性]
URL:String; 指定媒体位置,本机或网络地址
uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible
playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪
enableContextMenu:Boolean; 启用/禁用右键菜单
fullScreen:boolean; 是否全屏显示
[controls] wmp.controls //播放器基本控制
controls.play; 播放
controls.pause; 暂停
controls.stop; 停止
controls.currentPosition:double; 当前进度
controls.currentPositionString:string; 当前进度,字符串格式。如“00:23”
controls.fastForward; 快进
controls.fastReverse; 快退
controls.next; 下一曲
controls.previous; 上一曲
[settings] wmp.settings //播放器基本设置
settings.volume:integer; 音量,0-100
settings.autoStart:Boolean; 是否自动播放
settings.mute:Boolean; 是否静音
settings.playCount:integer; 播放次数
[currentMedia] wmp.currentMedia //当前媒体属性
currentMedia.duration:double; 媒体总长度
currentMedia.durationString:string; 媒体总长度,字符串格式。如“03:24”
currentMedia.getItemInfo(const string); 获取当前媒体信息"Title"=媒体标题,"Author"=艺术家,"Copyright"=版权信息,"Description"=媒体内容描述,"Duration"=持续时间(秒),"FileSize"=文件大小,"FileType"=文件类型,"sourceURL"=原始地址
currentMedia.setItemInfo(const string); 通过属性名设置媒体信息
currentMedia.name:string; 同 currentMedia.getItemInfo("Title")
[currentPlaylist] wmp.currentPlaylist //当前播放列表属性
currentPlaylist.count:integer; 当前播放列表所包含媒体数
currentPlaylist.Item[integer]; 获取或设置指定项目媒体信息,其子属性同wmp.currentMedia
常用的差不多就这么多,全部资料请参见Windows Media Player 9 SDK 文档。
web 应用代码:
<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id="MediaPlayer1" width="286" height="225">
<param name="AudioStream" value="-1">
<param name="AutoSize" value="-1">
<!--是否自动调整播放大小-->
<param name="AutoStart" value="-1">
<!--是否自动播放-->
<param name="AnimationAtStart" value="-1">
<param name="AllowScan" value="-1">
<param name="AllowChangeDisplaySize" value="-1">
<param name="AutoRewind" value="0">
<param name="Balance" value="0">
<!--左右声道平衡,最左-9640,最右9640-->
<param name="BaseURL" value>
<param name="BufferingTime" value="15">
<!--缓冲时间-->
<param name="CaptioningID" value>
<param name="ClickToPlay" value="-1">
<param name="CursorType" value="0">
<param name="CurrentPosition" value="0">
<!--当前播放进度 -1 表示不变,0表示开头 单位是秒,比如10表示从第10秒处开始播放,值必须是-1.0或大于等于0-->
<param name="CurrentMarker" value="0">
<param name="DefaultFrame" value>
<param name="DisplayBackColor" value="0">
<param name="DisplayForeColor" value="16777215">
<param name="DisplayMode" value="0">
<param name="DisplaySize" value="0">
<!--视频1-50%, 0-100%, 2-200%,3-全屏 其它的值作0处理,小数则采用四舍五入然后按前的处理-->
<param name="Enabled" value="-1">
<param name="EnableContextMenu" value="-1">
<!-是否用右键弹出菜单控制-->
<param name="EnablePositionControls" value="-1">
<param name="EnableFullScreenControls" value="-1">
<param name="EnableTracker" value="-1">
<!--是否允许拉动播放进度条到任意地方播放-->
<param name="Filename" value="http://01.wma"valuetype="ref">
<!--播放的文件地址-->
<param name="InvokeURLs" value="-1">
<param name="Language" value="-1">
<param name="Mute" value="0">
<!--是否静音-->
<param name="PlayCount" value="10">
<!--重复播放次数,0为始终重复-->
<param name="PreviewMode" value="-1">
<param name="Rate" value="1">
<!--播放速率控制,1为正常,允许小数-->
<param name="SAMIStyle" value>
<!--SAMI样式-->
<param name="SAMILang" value>
<!--SAMI语言-->
<param name="SAMIFilename" value>
<!--字幕ID-->
<param name="SelectionStart" value="-1">
<param name="SelectionEnd" value="-1">
<param name="SendOpenStateChangeEvents" value="-1">
<param name="SendWarningEvents" value="-1">
<param name="SendErrorEvents" value="-1">
<param name="SendKeyboardEvents" value="0">
<param name="SendMouseClickEvents" value="0">
<param name="SendMouseMoveEvents" value="0">
<param name="SendPlayStateChangeEvents" value="-1">
<param name="ShowCaptioning" value="0">
<!--是否显示字幕,为一块黑色,下面会有一大块黑色,一般不显示-->
<param name="ShowControls" value="-1">
<!--是否显示控制,比如播放,停止,暂停-->
<param name="ShowAudioControls" value="-1">
<!--是否显示音量控制-->
<param name="ShowDisplay" value="0">
<!--显示节目信息,比如版权等-->
<param name="ShowGotoBar" value="0">
<!--是否启用上下文菜单-->
<param name="ShowPositionControls" value="-1">
<!--是否显示往前往后及列表,如果显示一般也都是灰色不可控制-->
<param name="ShowStatusBar" value="-1">
<!--当前播放信息,显示是否正在播放,及总播放时间和当前播放到的时间-->
<param name="ShowTracker" value="-1">
<!--是否显示当前播放跟踪条,即当前的播放进度条-->
<param name="TransparentAtStart" value="-1">
<param name="VideoBorderWidth" value="0">
<!--显示部的宽部,如果小于视频宽,则最小为视频宽,或者加大到指定值,并自动加大高度.此改变只改变四周的黑框大小,不改变视频大小-->
<param name="VideoBorderColor" value="0">
<!--显示黑色框的颜色, 为RGB值,比如ffff00为黄色-->
<param name="VideoBorder3D" value="0">
<param name="Volume" value="0">
<!--音量大小,负值表示是当前音量的减值,值自动会取绝对值,最大为0,最小为-9640-->
<param name="WindowlessVideo" value="0">
<!--如果是0可以允许全屏,否则只能在窗口中查看-->
</object>
以上为老式代码,以下是新式的
<object id="player" height="64" width="260" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
<param NAME="AutoStart" VALUE="-1">
<!--是否自动播放-->
<param NAME="Balance" VALUE="0">
<!--调整左右声道平衡,同上面旧播放器代码-->
<param name="enabled" value="-1">
<!--播放器是否可人为控制-->
<param NAME="EnableContextMenu" VALUE="-1">
<!--是否启用上下文菜单-->
<param NAME="url" VALUE="http://01.wma">
<!--播放的文件地址-->
<param NAME="PlayCount" VALUE="1">
<!--播放次数控制,为整数-->
<param name="rate" value="1">
<!--播放速率控制,1为正常,允许小数,1.0-2.0-->
<param name="currentPosition" value="0">
<!--控件设置:当前位置-->
<param name="currentMarker" value="0">
<!--控件设置:当前标记-->
<param name="defaultFrame" value="">
<!--显示默认框架-->
<param name="invokeURLs" value="0">
<!--脚本命令设置:是否调用URL-->
<param name="baseURL" value="">
<!--脚本命令设置:被调用的URL-->
<param name="stretchToFit" value="0">
<!--是否按比例伸展-->
<param name="volume" value="50">
<!--默认声音大小0%-100%,50则为50%-->
<param name="mute" value="0">
<!--是否静音-->
<param name="uiMode" value="mini">
<!--播放器显示模式:Full显示全部;mini最简化;None不显示播放控制,只显示视频窗口;invisible全部不显示-->
<param name="windowlessVideo" value="0">
<!--如果是0可以允许全屏,否则只能在窗口中查看-->
<param name="fullScreen" value="0">
<!--开始播放是否自动全屏-->
<param name="enableErrorDialogs" value="-1">
<!--是否启用错误提示报告-->
<param name="SAMIStyle" value>
<!--SAMI样式-->
<param name="SAMILang" value>
<!--SAMI语言-->
<param name="SAMIFilename" value>
<!--字幕ID-->
</object>
网页wmplay中param的用法- -
说说param吧!它可以定义网页中wmplay的外观。
基本语法:
<OBJECT ID="Player"
CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
<PARAM name="autoStart" value="True">
</OBJECT>
共有:autoStart
balance
baseURL
captioningID
currentPosition
currentMarker
defaultFrame
enableContextMenu
enabled
fullScreen
invokeURLs
mute
playCount
rate
SAMIFileName
SAMILang
SAMIStyle
stretchToFit
uiMode
URL
volume
windowlessVideo
分述如下:
1.autoStart控制自动播放(用于v7或以上版本。可选值为
“true”、“flase”。“true”为默认值。控制脚本如下:
假设以创建播放器对象id=“player”。
<!-- Create an HTML CHECKBOX control. -->
<INPUT TYPE = "CHECKBOX" ID = AS
onClick = "
/* Use the CHECKBOX state to specify the value
of the autoStart property. */
Player.settings.autoStart = AS.checked;
">
2.balance控制左右立体声均衡。可选值在-100到100之间。
默认值为0。要求v7及以上版本。
3.baseURL用来设置根(基础)url地址,主要用于让播放器
方便辨认由脚本命令产生的相对url的完整url。为一字符串值。
主要传递由ScriptCommand事件产生的命令参数,连接如下相对
url地址:将/后的地址加入baseurl后,将删除了.、/、\的合法
地址加入。注意不支持“.."格式。用于v7及以上。
4.ClosedCaption.captioningID(我没搞懂它是干嘛的:-()
captioningID属性指定或检索显示字幕元素的名称。
语法:player.closedCaption.captioningID
值 :字符串
备注:在支持innerHTML属性的时候该给定的元素名称可用于WEB页
中任何HTML元素中。
代码示例:
下面的JScript示例使用ClosedCaption.captioningID来选择
用来显示字幕的WEB区域。两个DIV元素已被创建,分别为
ID = CC1和ID = CC2。PLAYER为ID = "Player"。
<!-- Create two HTML BUTTON elements to allow the user to choose a display region. -->
<INPUT TYPE = "BUTTON" NAME = "SET1" VALUE = "Move Caption to CC1"
OnClick = "
/* Clear the caption text from the other DIV */
CC2.innerHTML = 'This is the CC2 DIV';
/* Show the captions in the DIV named CC1. */
Player.ClosedCaption.captioningID = 'CC1';
">
<INPUT TYPE = "BUTTON" NAME = "SET2" VALUE = "Move Caption to CC2"
OnClick = "
/* Clear the caption text from the other DIV */
CC1.innerHTML = 'This is the CC1 DIV';
/* Show the captions in the DIV named CC2. */
Player.ClosedCaption.captioningID = 'CC2';
">
要求:
版本为7.0以上
头部:定义在wmp.idl;包含在wmp.h
库 :使用wmp.dll
5.Controls.currentPosition
currentPosition属性指定或检索在开始很短的时间内媒体
项目的当前位置。
语法:player.controls.currentPosition
值 :Number (double)
代码示例:
下面的代码设法为用户提供一个位置。一个BUTTON元素在执
行了JScript代码后被创建。一个TEXT输入元素,名称为setPosition
,用来接收在很短的时间内从用户传来的值。
<INPUT TYPE = "BUTTON" ID = "Set" NAME = "Set" VALUE = "Set Position"
/* Check to be sure the TEXT element contains a valid value. */
if (!isNaN(setPosition.value) && (setPosition.value != ''))
/* Set the current position when the user clicks the button. */
onClick = "Player.controls.currentPosition = setPosition.value;
">
要求:
版本为7.0以上
头部:定义在wmp.idl;包含在wmp.h
库 :使用wmp.dll
6.Controls.currentMarker
currentMarker属性指定或检索当前标记号码。
语法:player.controls.currentMarker
值 :Number (long)
备注:设置currentMarker可以从指定的标记处回放。在决定设置
currentMarker之前,可以用markerCount确定一个文件是否存在标记以
及有几个标记。如果文件没有标记,设置currentMarker为一个非零值会
产生一个错误的结果,设置currentMarker为一个超过markerCount的值
也会得到一个错误的结果。
currentMarker属性总是返回当前标记或最近的标记,这意味着实在
文件位置在当前标记或下一标记之前。标记数目从1开始,如果一个文件
有标记,你可以设置currentMarker为0改变文件位置到0。
直到当前媒体项目被设置(使用Player.URL或Player.currentMedia)
,currentMarker归0。
代码示例:
下面的示例使用currentMarker从标记开始重放视频,标记对应SELECT
元素的selectedIndex属性设定的位置。player为ID = "Player"。
<SELECT ID = "markers" NAME = "markers" LANGUAGE = "JScript"
/* Seek to the marker number that corresponds to the SELECT element
selectedIndex value when the list selection changes. */
onChange = "Player.controls.currentMarker = markers.selectedIndex + 1;
">
/* Fill the SELECT element with the marker identifiers. */
<OPTION SELECTED>Sunrise
<OPTION>Car chase
<OPTION>Happy ending
</SELECT>
要求:
版本为7.0以上
头部:定义在wmp.idl;包含在wmp.h
库 :使用wmp.dll
7.Settings.defaultFrame
defaultFrame属性指定或检索用来显示来自ScriptCommand事件的url
的框体的名称。
语法:player.settings.defaultFrame
值 :String(字符串)相当于FRAME元素中name属性的值。
备注:如果目标框体(frame)由ScriptCommand事件自身指定,该属性
将被忽略。
在使用Netscape Navigator Java applet时该属性将被忽略。在Navigator
每一个url类型(URL-type)的脚本命令(script command)接收的url都将显示在
一个新的浏览器窗口中,不管Settings.defaultFrame是如何设置。
8.Player.enableContextMenu
enableContextMenu属性指定或检索用来设置点击鼠标右键时所显示的菜单。
语法:player.enableContextMenu
值 :Boolean(布尔值)
值 意义
true 默认值,菜单可见。
false 不可见
备注:在全屏显示时,当enableContextMenu为false且uiMode为“none”时
Windows Media Player将隐藏鼠标指针。
9.Player.enabled
enabled属性指定或检索一个值用来指定Windows Media Player控制器是否可用。
语法:player.enabled
值 :Boolean
值 意义
true 默认值,控制器可用。
false 不可用。
备注:如果enabled值为flase在全屏播放时隐藏用户控制。
要求:
版本为7.0以上
头部:定义在wmp.idl;包含在wmp.h
库 :使用wmp.dll
10.Player.fullScreen
fullScreen属性指定或检索一个值用来指定是否用全屏方式播放。
语法:player.fullScreen
值 :Boolean
值 意义
true 以全屏方式播放
flase 默认值,不以全屏方式播放
备注:
在嵌入Windows Media Player control时为了能适应全屏模式的工作,
视屏播放区域必须至少有1像素的高度。如果uiMode设置为"mini"或"full",控制器
(control)自身的高度必须为65或更高以适应除用户界面的视屏显示区。
如果 uiMode设置为"invisible", 然而该属性设置为true会产生一个错误
并且无法对控制器的行为产生影响。
当enableContextMenu值为flase并且uiMode值为"none"时,在全屏播放时
Windows Media Player 隐藏鼠标指针。
当uiMode设置为"full"或"mini"时,鼠标指针移动时显示浮动控制条
(transport controls)。当鼠标指针静止一段很短的时间后浮动控制条会自动隐藏。
当uiMode设置为"none", 在全屏显示时将没有控制器。
注意:
在全屏方式下显示浮动控制条需要在Windows XP系统中。
如果在全屏方式下没有浮动控制条,在播放结束后Windows Media Player 会自动
退出。
示例代码:
下面例子中创建了一个HTML输入按钮使用Player.fullScreen来切换播放器元素的
全屏模式。player为ID = "Player"。
<INPUT type = button
value = "Full Screen"
name = FSBUTTON
onclick = "
/* Check to be sure the player is playing. */
if (Player.playState == 3)
Player.fullScreen = 'true';
">
注意,要告知用户如何从全屏方式返回。
要求:
版本为7.0以上
头部:定义在wmp.idl;包含在wmp.h
库 :使用wmp.dll
11.Settings.invokeURLs
invokeURLs属性指定或检索一个值用来显示是否将url事件载入web浏览器。
语法:player.settings.invokeURLs
值 :Boolean
值 意义
true 默认值,将url事件载入浏览器
flase url事件将不能被载入浏览器
标记:媒体文件可以包含url地址,当url发送给Windows Media Player
control,首先通过ScriptCommand事件处理与invokeURLs的值无关。当退出
ScriptCommand后Windows Media Player检查invokeURLs决定是否将url地址加载到
默认的Internet浏览器。你可以通过ScriptCommand检查要显示的url并设置invokeURLs
来达到目的。
要求:
版本为7.0以上
头部:定义在wmp.idl;包含在wmp.h
库 :使用wmp.dll
12.Settings.mute
mute属性指定或检索一个值用来显示是否静音。
语法:player.settings.mute
值 :Boolean
值 意义
true 静音。
flase 默认值,不静音。
示例代码:
下面的代码创建了一个HTML CHECKBOX元素允许用户对静音进行控制。player
为ID = "Player"。
<!-- Create an HTML CHECKBOX control. -->
<INPUT TYPE = "CHECKBOX" ID = MUTE
onClick = "
/* Use the CHECKBOX state to set
the mute property. */
Player.settings.mute = MUTE.checked;
">
要求:
版本为7.0以上
头部:定义在wmp.idl;包含在wmp.h
库 :使用wmp.dll
13.Settings.playCount
playCount属性指定或检索媒体项目播放的次数。
语法:player.settings.playCount
值 :Number (long)
要求:
版本为7.0以上
头部:定义在wmp.idl;包含在wmp.h
库 :使用wmp.dll
使用Windows Media Player控件,用什么参数可以调整声音的速度,即音调可以变慢或变快?
网友回复:WMP控件属性里面应该有。
wmp.dll控件常用属性 http://www.cnitblog.com/asfman/articles/35982.html
网友回复:URL:String; 指定媒体位置,本机或网络地址
uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible
playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=预备就绪
enableContextMenu:Boolean; 启用/禁用右键菜单
fullScreen:boolean; 是否全屏显示
[controls] wmp.controls //播放器基本控制
controls.play; 播放
controls.pause; 暂停
controls.stop; 停止
controls.currentPosition:double; 当前进度
controls.currentPositionString:string; 当前进度,字符串格式。如“00:23”
controls.fastForward; 快进
controls.fastReverse; 快退
controls.next; 下一曲
controls.previous; 上一曲
[settings] wmp.settings //播放器基本设置
settings.volume:integer; 音量,0-100
settings.autoStart:Boolean; 是否自动播放
settings.mute:Boolean; 是否静音
settings.playCount:integer; 播放次数
[currentMedia] wmp.currentMedia //当前媒体属性
currentMedia.duration:double; 媒体总长度
currentMedia.durationString:string; 媒体总长度,字符串格式。如“03:24”
currentMedia.getItemInfo(const string); 获取当前媒体信息"Title"=媒体标题,"Author"=艺术家,"Copyright"=版权信息,"Description"=媒体内容描述,"Duration"=持续时间(秒),"FileSize"=文件大小,"FileType"=文件类型,"sourceURL"=原始地址
currentMedia.setItemInfo(const string); 通过属性名设置媒体信息
currentMedia.name:string; 同 currentMedia.getItemInfo("Title")
[currentPlaylist] wmp.currentPlaylist //当前播放列表属性
currentPlaylist.count:integer; 当前播放列表所包含媒体数
currentPlaylist.Item[integer]; 获取或设置指定项目媒体信息,其子属性同wmp.currentMedia
//2...
==========WindowsMediaPlayer的常用属性和方法===========
[基本属性]
URL:string 可以指定媒体位置
enableContextMenu:Boolean 显示/不显示播放位置的右键菜单
fullScreen:boolean 全屏显示
stretchToFit:boolean 非全屏状态时是否伸展到最佳大小
uMode:string 播放器的模式,full:有下面的控制条; none:只有播放部份没有控制条
playState:integer 当前控件状态,下面是三种基本状态:
3:正在播放
2:暂停
1:已停止
状态变化时会触发OnStatusChange事件
[controls]
可通过WindowsMediaPlayer.controls对播放器进行控制并取得相关的一些信息:
controls.play; 播放
controls.stop; 停止
controls.pause; 暂停
controls.currentPosition:Double 当前播放进度
controls.currentPositionString:string 时间格式的字符串 "0:32"
[currentMedia]
可以通过WindowsMediaPlayer.currentMedia取得当前媒体的信息
currentMedia.duration Double 总长度
currentMedia.durationString 时间格式的字符串 "4:34"
[settings]
可以通过WindowsMediaPlayer.settings对播放器进行设置,包括音量和声道等。
settings.volume:integer 音量 (0-100)
settings.balance:integer 声道,通过它应该可以进行立体声、左声道、右声道的控制。
-->
<input type="button" value='换文件' onclick="MediaPlayer.controls.src='d:\xx.mid';">
媒体播放器的外观界面
在网页中,你可以通过相关属性来控制媒体播放器的哪些部分出现,哪些部分不出现。
媒体播放器包括如下元素:
Video Display Panel:视频显示面板;
Video Border:视频边框;
Closed Captioning Display Panel;字幕显示面板;
Track Bar;搜索栏;
Control Bar with Audio and Position Controls:带有声音和位置控制的控制栏;
Go To Bar:转到栏;
Display Panel:显示面板;
Status Bar:状态栏;
下面的属性用来决定显示哪一个元素:
ShowControls 属性:是否显示控制栏(包括播放控件及可选的声音和位置控件);
ShowAudioControls 属性:是否在控制栏显示声音控件(静音按钮和音量滑块);
ShowPositionControls 属性:是否在控制栏显示位置控件(包括向后跳进、快退、快进、向前跳进、预览播放列表中的每个剪辑);
ShowTracker 属性:是否显示搜索栏;
ShowDisplay 属性:是否显示显示面板(用来提供节目与剪辑的信息);
ShowCaptioning 属性:是否显示字幕显示面板;
ShowGotoBar 属性:是否显示转到栏;
ShowStatusBar 属性:是否显示状态栏;
播放列表
媒体播放器提供下面的方法来访问播放列表中的剪辑:
Next 方法,跳到节目(播放列表)中的下一个剪辑;
Previous 方法,跳回到节目中的上一个剪辑;
媒体播放器的一个特性是能够预览节目中的每一个剪辑,使用如下属性:
PreviewMode 属性,决定媒体播放器当前是否处于预览模式;
CanPreview 属性,决定媒体播放器能否处于预览模式;
在windows 媒体元文件中,可以为每一个剪辑指定预览时间——PREVIEWDURATION,如果没有指定,那么默认的预览时间是10秒钟。
你也可以用Windows 媒体元文件来添加 watermarks 与 banners,元文件也支持插入广告时的无间隙流切换。
节目信息
使用 GetMediaInfoString 方法可以返回相关剪辑或节目的如下信息:
文件名:File name
标题:Title
描述:Description
作者:Author
版权:Copyright
级别:Rating
URLs:logo icon、watermark、banner的地址
剪辑信息可以放在媒体文件中,也可以放在Windows 媒体元文件中,或者两者都放。如果在元文件中指定了剪辑信息,那么用 GetMediaInfoString 方法返回的就是元文件中的信息,而不会返回剪辑中包含的信息。
在元文件中,附加信息可以放置在每一个剪辑或节目的 PARAM标签中。你可以为每个剪辑添加任意多个 PARAM 标签,用来存储自定义的信息或链接到相关站点。在 PARAM 标签中的信息可以通过 GetMediaParameter 方法来访问。
下面的属性返回有关大小和时间的信息:
ImageSourceHeight、ImageSourceWidth:返回图像窗口的显示尺寸;
Duration 属性,返回剪辑的长度(秒), 要检测这个属性是否包含有效的数值,请检查IsDurationValid 属性。(对于广播的视频,其长度是不可预知的)。
字幕
你可以用 .smi 文件来为你的节目添加字幕。媒体播放器支持下面的属性来处理字幕:
SAMIFileName 属性,指定 .smi 文件的名字;
SAMILang 属性,指定字幕的语言(如果没有指定则使用第一种语言);
SAMIStyle 属性,指定字幕的文字大小和样式;
ShowCaptioning 属性,决定是否显示字幕显示面板;
脚本命令
伴随音频、视频流,你可以在流媒体文件中加入脚本命令。脚本命令是多媒体流中与特定时间同步的多对Unicode串。第一个串标识待发命令的类型,第二个串指定要执行的命令。
当流播放到与脚本相关的时间时,控件会向网页发送一个 ScriptCommand事件,然后由事件处理进程来响应这个事件。脚本命令字符串会作为脚本命令事件的参数传递给事件处理器。
媒体播放器会自动处理下面类型的内嵌脚本命令:
1) URL 型命令:当媒体播放器控件收到一个URL型的命令时,指定的URL会被装载到用户的默认浏览器。如果媒体播放器嵌在一个分帧的HTML文件中,URL页可 以装载到由脚本命令指定的帧内。如果脚本命令没有指定一个帧,将由 DefaultFrame 属性决定将 URL 页装入哪一帧。
你可以通过设置 InvokeURLs 属性来决定是否自动处理 URL 型的脚本命令。如果这个属性的值为 false ,媒体播放器控件将忽视 URL型命令。但是脚本命令事件仍会触发,这就允许你有选择地处理 URL 型命令。
URL 型命令指定的是 URL 的相对地址。基地址是由 BaseURL属性指定的。媒体播放器控件传送的脚本命令事件的命令参数是链接好的地址。
2) FILENAME 型命令:当媒体播放器控件收到一个FILENAME型的命令时,它将 FileName属性设置为脚本命令提供的文件,之后媒体播放器会打开这个文件开始播放。 媒体播放器控件总是自动处理 FILENAME 型命令,不象 URL 型命令,它们不能被禁止。
3) TEXT型命令:当媒体播放器控件收到一个 TEXT型的命令时,它会将命令的内容显示在控件的字幕窗口。内容可以是纯文本的,也可以是 HTML。
4) EVENT型命令:当媒体播放器控件收到一个 EVENT型的命令时,它会在媒体元文件中搜索 EVENT 元素的 NAME 属性。如果 NAME 属性与脚本命令中的第二个字符串匹配,媒体播放器控件就执行包含在 EVENT 元素中的条目。
5) OPENEVENT型命令:当媒体播放器控件收到一个 OPENEVENT型的命令时,它会在媒体元文件中检查 EVENT 元素,并打开匹配的标题,但不播放,直到收到来自 EVENT型命令的同名真实事件。
捕捉键盘和鼠标事件
EnableContextMenu 与 ClickToPlay 属性为用户提供了在图像窗口进行操作的方法。
如果 EnableContextMenu 属性为 true ,在图像窗口右击鼠标可以打开关联菜单,如果将ClickToPlay 属性设为 true ,用户可以单击图像窗口进行播放与暂停的切换。
要接收鼠标移动和单击事件,请将 SendMouseMoveEvents 和 SendMouseClickEvents 属性设为 true 。鼠标事件有:
MouseDown,当用户按下鼠标时产生;
MouseUp,当用户释放鼠标时产生;
MouseMove,当用户移动鼠标时产生;
Click,当用户在媒体播放器上单击鼠标按钮时产生;
DbClick,当用户在媒体播放器上双击鼠标按钮时产生;
要接收键盘事件,请将 SendKeyboardEvents 属性设为 true 。键盘事件有:
KeyDown,当用户按下一个键时产生;
KeyUp,当用户释放一个键时产生;
KeyPress,当用户按下并释放一个键时产生;
监测流状态与网络链接
流状态属性包括:
PlayState:播放状态;
OpenState:打开状态;
Bandwidth:带宽;
支持的事件有:
OpenStateChange:打开状态改变(仅当SendOpenStateChangeEvents属性为true时触发)
PlayStateChange:播放状态改变(仅当SendPlayStateChangeEvents属性为true时触发)
EndOfStream:流结束时触发;
NewStream:打开新流时触发;
网络接收属性包括:
ReceptionQuality:接收质量;
ReceivedPackets:已经收到的包;
LostPackets:丢失的包;
监测缓冲的属性有:
BufferingTime:缓冲时间;
BufferingCount:缓冲次数;
BufferingProgress:缓冲进程;
Buffering:缓冲事件;
错误处理
媒体播放器提供了内建的错误处理功能——在对话框或状态栏显示错误信息。 另外,你可以自己添加错误处理程序。如果 SendErrorEvents 属性设置为 true,将不会显示错误框,而是发送错误事件;如果 SendErrorEvents 属性设置为 false,将显示错误框,而是发送错误事件。
媒体播放器支持下面的错误处理事件:
Error 事件,指有危险性错误发生;
Warning 事件,指发生了非危险性的错误;
当你的应用程序接收到一个错误事件,你可以检测下面的属性来确定具体的错误信息:
HasError:检测目前的媒体播放器是否有错误;
ErrorCode:提供与该类型错误相关的代码值;
ErrorDescription:提供错误的描述信息;
ErrorCorrection:指定媒体播放器对该类型的错误进行校正;
播放CD
媒体播放器将 CD 看作(在每个音轨的开头具有标记的)单一音频流。 要在网页中使用CD,你需要将 FileName 属性设为 CDAUDI,必须带有冒号,如下所示:
<HTML>
<HEAD><TITLE>CD Audio Playback Example</TITLE></HEAD>
<BODY>
<OBJECT ID="MediaPlayer"
CLASSID="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"
WIDTH="320"
HEIGHT="508"
STYLE="position:absolute; left:0px; top:70px;" >
<PARAM NAME="FileName" VALUE="cdaudi">
<PARAM NAME="AutoStart" VALUE="0">
<PARAM NAME="ShowControls" VALUE="1">
<PARAM NAME="ShowStatusBar" VALUE="1">
<PARAM NAME="ShowDisplay" VALUE="1">
</OBJECT>
</BODY>
</HTML>
之后你可以用 Play 方法播放 CD 了。
你可以在 windows 媒体元文件中指定播放顺序以及每个音轨的信息。示例如下:
<ASX VERSION="3.0">
<TITLE>CD Audio with the Media Player</TITLE>
<AUTHOR>Windows Media Technologies</AUTHOR>
<COPYRIGHT>(c) 1999, Microsoft, Inc.</COPYRIGHT>
<ENTRY>
<TITLE>Track 1: Title 1</TITLE>
<REF href="/blog/cdaudi" />
<STARTMARKER NUMBER="1"/>
<ENDMARKER NUMBER="2"/>
</ENTRY>
<ENTRY>
<TITLE>Track 2: Title 2</TITLE>
<REF href="/blog/cdaudi" />
<STARTMARKER NUMBER="2"/>
<ENDMARKER NUMBER="3"/>
</ENTRY>
<ENTRY>
<TITLE>Track 3: Title 3</TITLE>
<REF href="/blog/cdaudi" />
<STARTMARKER NUMBER="3"/>
<ENDMARKER NUMBER="4"/>
</ENTRY>
<ENTRY>
<TITLE>Track 4: Title 4</TITLE>
<REF href="/blog/cdaudi" />
<STARTMARKER NUMBER="4"/>
</ENTRY>
</ASX>
windowsmediaplayer 控件在我们编程时经常要用到,但是有很多属性及方法却不知道该怎么使用。(JavaScript中用法几乎完全相同)。
假设此控件名为wmp
属性/方法名: 说明:
[基本属性]
URL:String; 指定媒体位置,本机或网络地址
uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible
playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪
enableContextMenu:Boolean; 启用/禁用右键菜单
fullScreen:boolean; 是否全屏显示
[controls] wmp.controls //播放器基本控制
controls.play; 播放
controls.pause; 暂停
controls.stop; 停止
controls.currentPosition:double; 当前进度
controls.currentPositionString:string; 当前进度,字符串格式。如“00:23”
controls.fastForward; 快进
controls.fastReverse; 快退
controls.next; 下一曲
controls.previous; 上一曲
[settings] wmp.settings //播放器基本设置
settings.volume:integer; 音量,0-100
settings.autoStart:Boolean; 是否自动播放
settings.mute:Boolean; 是否静音
settings.playCount:integer; 播放次数
[currentMedia] wmp.currentMedia //当前媒体属性
currentMedia.duration:double; 媒体总长度
currentMedia.durationString:string; 媒体总长度,字符串格式。如“03:24”
currentMedia.getItemInfo(const string); 获取当前媒体信息"Title"=媒体标题,"Author"=艺术家,"Copyright"=版权信息,"Description"=媒体内容描述,"Duration"=持续时间(秒),"FileSize"=文件大小,"FileType"=文件类型,"sourceURL"=原始地址
currentMedia.setItemInfo(const string); 通过属性名设置媒体信息
currentMedia.name:string; 同 currentMedia.getItemInfo("Title")
[currentPlaylist] wmp.currentPlaylist //当前播放列表属性
currentPlaylist.count:integer; 当前播放列表所包含媒体数
currentPlaylist.Item[integer]; 获取或设置指定项目媒体信息,其子属性同wmp.currentMedia
常用的差不多就这么多,全部资料请参见Windows Media Player 9 SDK 文档。
web 应用代码:
<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" id="MediaPlayer1" width="286" height="225">
<param name="AudioStream" value="-1">
<param name="AutoSize" value="-1">
<!--是否自动调整播放大小-->
<param name="AutoStart" value="-1">
<!--是否自动播放-->
<param name="AnimationAtStart" value="-1">
<param name="AllowScan" value="-1">
<param name="AllowChangeDisplaySize" value="-1">
<param name="AutoRewind" value="0">
<param name="Balance" value="0">
<!--左右声道平衡,最左-9640,最右9640-->
<param name="BaseURL" value>
<param name="BufferingTime" value="15">
<!--缓冲时间-->
<param name="CaptioningID" value>
<param name="ClickToPlay" value="-1">
<param name="CursorType" value="0">
<param name="CurrentPosition" value="0">
<!--当前播放进度 -1 表示不变,0表示开头 单位是秒,比如10表示从第10秒处开始播放,值必须是-1.0或大于等于0-->
<param name="CurrentMarker" value="0">
<param name="DefaultFrame" value>
<param name="DisplayBackColor" value="0">
<param name="DisplayForeColor" value="16777215">
<param name="DisplayMode" value="0">
<param name="DisplaySize" value="0">
<!--视频1-50%, 0-100%, 2-200%,3-全屏 其它的值作0处理,小数则采用四舍五入然后按前的处理-->
<param name="Enabled" value="-1">
<param name="EnableContextMenu" value="-1">
<!-是否用右键弹出菜单控制-->
<param name="EnablePositionControls" value="-1">
<param name="EnableFullScreenControls" value="-1">
<param name="EnableTracker" value="-1">
<!--是否允许拉动播放进度条到任意地方播放-->
<param name="Filename" value="http://01.wma"valuetype="ref">
<!--播放的文件地址-->
<param name="InvokeURLs" value="-1">
<param name="Language" value="-1">
<param name="Mute" value="0">
<!--是否静音-->
<param name="PlayCount" value="10">
<!--重复播放次数,0为始终重复-->
<param name="PreviewMode" value="-1">
<param name="Rate" value="1">
<!--播放速率控制,1为正常,允许小数-->
<param name="SAMIStyle" value>
<!--SAMI样式-->
<param name="SAMILang" value>
<!--SAMI语言-->
<param name="SAMIFilename" value>
<!--字幕ID-->
<param name="SelectionStart" value="-1">
<param name="SelectionEnd" value="-1">
<param name="SendOpenStateChangeEvents" value="-1">
<param name="SendWarningEvents" value="-1">
<param name="SendErrorEvents" value="-1">
<param name="SendKeyboardEvents" value="0">
<param name="SendMouseClickEvents" value="0">
<param name="SendMouseMoveEvents" value="0">
<param name="SendPlayStateChangeEvents" value="-1">
<param name="ShowCaptioning" value="0">
<!--是否显示字幕,为一块黑色,下面会有一大块黑色,一般不显示-->
<param name="ShowControls" value="-1">
<!--是否显示控制,比如播放,停止,暂停-->
<param name="ShowAudioControls" value="-1">
<!--是否显示音量控制-->
<param name="ShowDisplay" value="0">
<!--显示节目信息,比如版权等-->
<param name="ShowGotoBar" value="0">
<!--是否启用上下文菜单-->
<param name="ShowPositionControls" value="-1">
<!--是否显示往前往后及列表,如果显示一般也都是灰色不可控制-->
<param name="ShowStatusBar" value="-1">
<!--当前播放信息,显示是否正在播放,及总播放时间和当前播放到的时间-->
<param name="ShowTracker" value="-1">
<!--是否显示当前播放跟踪条,即当前的播放进度条-->
<param name="TransparentAtStart" value="-1">
<param name="VideoBorderWidth" value="0">
<!--显示部的宽部,如果小于视频宽,则最小为视频宽,或者加大到指定值,并自动加大高度.此改变只改变四周的黑框大小,不改变视频大小-->
<param name="VideoBorderColor" value="0">
<!--显示黑色框的颜色, 为RGB值,比如ffff00为黄色-->
<param name="VideoBorder3D" value="0">
<param name="Volume" value="0">
<!--音量大小,负值表示是当前音量的减值,值自动会取绝对值,最大为0,最小为-9640-->
<param name="WindowlessVideo" value="0">
<!--如果是0可以允许全屏,否则只能在窗口中查看-->
</object>
以上为老式代码,以下是新式的
<object id="player" height="64" width="260" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
<param NAME="AutoStart" VALUE="-1">
<!--是否自动播放-->
<param NAME="Balance" VALUE="0">
<!--调整左右声道平衡,同上面旧播放器代码-->
<param name="enabled" value="-1">
<!--播放器是否可人为控制-->
<param NAME="EnableContextMenu" VALUE="-1">
<!--是否启用上下文菜单-->
<param NAME="url" VALUE="http://01.wma">
<!--播放的文件地址-->
<param NAME="PlayCount" VALUE="1">
<!--播放次数控制,为整数-->
<param name="rate" value="1">
<!--播放速率控制,1为正常,允许小数,1.0-2.0-->
<param name="currentPosition" value="0">
<!--控件设置:当前位置-->
<param name="currentMarker" value="0">
<!--控件设置:当前标记-->
<param name="defaultFrame" value="">
<!--显示默认框架-->
<param name="invokeURLs" value="0">
<!--脚本命令设置:是否调用URL-->
<param name="baseURL" value="">
<!--脚本命令设置:被调用的URL-->
<param name="stretchToFit" value="0">
<!--是否按比例伸展-->
<param name="volume" value="50">
<!--默认声音大小0%-100%,50则为50%-->
<param name="mute" value="0">
<!--是否静音-->
<param name="uiMode" value="mini">
<!--播放器显示模式:Full显示全部;mini最简化;None不显示播放控制,只显示视频窗口;invisible全部不显示-->
<param name="windowlessVideo" value="0">
<!--如果是0可以允许全屏,否则只能在窗口中查看-->
<param name="fullScreen" value="0">
<!--开始播放是否自动全屏-->
<param name="enableErrorDialogs" value="-1">
<!--是否启用错误提示报告-->
<param name="SAMIStyle" value>
<!--SAMI样式-->
<param name="SAMILang" value>
<!--SAMI语言-->
<param name="SAMIFilename" value>
<!--字幕ID-->
</object>
总的说来,前后两个版本的播放器有相同的地方也有不同的地方,不过要根据你的实际需要来选择播放器。
接下来介绍的是Real Player 网页媒体播放器各参数的含义
各参数的含义:
参数:autostart 属性:True或是False 作用:指定是否自动播放指定的源文件
参数:backgroundcolor 属性:任何用符号“#”开头的16进制数值或是任何预定义的颜色作用:指定图像窗口的背景颜色
参数:center 属性:True或是False 作用:指定片断使用初始编码大小播放,并且在图像窗口的中央。
参数:classid 属性:"clsid:CFCDAA03-8BE4-1lcf-B84B0020AFBBCCFA:** 作用:用于指定ActiveX控件的唯一的字符串标示,可以认出嵌入的RealPalyer播放器。
参数:console 属性:任何字符串作用:可以将各种不同的RealPlayer控制聚集在网页上,这样它们可以交互使用或是保持独立,而且互相不影响
参数:controls 属性:ImageWindow,All,ControlPanel,PlavButton,PlayOnlyButton, PauseButton,StopButton,FFCtrl,RWCtrl,MuteCtrl,MuteVolume,VolumeSlider,PositionSlider,TACCtrl,HomeCtrl,InfoVolumePanel,InfoPanel,StatusBar,StatusField,PositionField 作用:可以让你指定那些控制是可见的。
参数:height 属性:任何整数值作用:指定RealPlayer元素的高度,单位:像素
参数:id 属性:任何字符串作用:为标签中的RealPlayer元素指定名字。
参数:imagestatus 属性:True或是False 作用:指定是否在图像窗口中显示状态信息,默认值是true
参数:loop 属性:True或是False 作用:可以让你指定片断是否无限循环
参数:maintainaspect 属性:True或是False 作用:默认RealPlayer拉伸所有的片断来充满整个图像窗口。
参数:name 属性:任何字符串作用:为标签中的RealPlayer元素指定名字(在标签中使用id)
参数:nojava 属性:True或是False 作用:避免启动Java虚拟机
参数:nolabels 属性:True或是False 作用:可以禁止显示标题或是版权信息(realplayer5.0以上时,它是垃圾...)
参数:nologo 属性:True或是False 作用:避免RealPlayer启动时在图像窗口中显示
参数:numloop 属性:任何整数值作用:让你能够指定文件片循环的次数,不需要参数loop
参数:prefetch 属性:True或是False 作用:指定在播放前,RealPlayer是否可以获得流描述信息,默认值是False
参数:region 属性:任何字符串作用:同SMIL一起使用。允许你指定使用HTML代替SMIL
参数:scriptcallbacks 属性:用逗号分割的列表作用:指定浏览器的回调监控(好高级的东东!)
参数:shuffle 属性:True或是False 作用:同多文件片的ram文件或是SMIL文件一起使用。可以让RealPlayer随机播放列表中的文件
参数:src 属性:任何合法的相对或是完整的URL 作用:指定播放的文件或是源文件的地址
参数:type 属性:字符串作用:为嵌入插件指定MIME类型
参数:width 属性:任何整数值作用:指定RealPlayer元素的宽度
controls的属性含义...
组件:imagewindow
作用:视频显示区域
组件:All
作用:嵌入RealPlaver的所有按钮、滑动条和信息面板
组件:ControlPanel
作用:显示所有的控制按钮,以及位置滑动条和扬声器图标,和调节声音大小的滑动条
组件:PlayButton
作用:显示播放(play)按钮和暂停(pause)按钮
组件:PlayOnlyButton
作用:仅显示播放按钮
组件:PauseButton
作用:仅显示暂停按钮
组件:StopButton
作用:仅显示停止(stop)按钮
组件:FFCtrl
作用:仅显示快进(fastforward)按钮
组件:RWCtrl
作用:仅显示回放(rewind)按钮
组件:MuteCtrl
作用:仅显示扬声器图标,用作静音按钮
组件:MuteVolume
作用:显示小的扬声器图标(用于静音)和其上的用于调节音量的滑动条
组件:VolumeSlider
作用:仅显示竖直的音量滑动条
组件:PositionSlider
作用:显示水平的位置滑动条
组件:tacctrl
作用:显示水平的消息框,轮流显示标题、作者以及版权信息
组件:HomeCtrl
作用:显示小的Real标识
组件:infoVolumePanel
作用:显示黑的消息框,用绿色显示标题、作者以及版权信息,在右手方有扬声器图标和声音调节滑动条
组件:infoPanel
作用:同上面一样,但是没有静音按钮和声音调节滑动条
组件:StatusBar
作用:显示水平的消息框,显示片断信息,比如片断的时间,网络状况等等
组件:StatusField
作用:同StatusBar类似,但是只显示消息区域,显示网络消息,比如显示“Re-buffenng...”
组件:PositionField
作用:小的黑的消息框,显示整个文件片断长度以及当前帧在片内的位置
嵌入Real Player播放器
程序代码
<object ID="rPlayer" CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" HEIGHT="100%" WIDTH="100%">
<param name="_ExtentX" value="23627">
<param name="_ExtentY" value="15187">
<param name="AUTOSTART" value="-1">
<param name="SHUFFLE" value="0">
<param name="PREFETCH" value="0">
<param name="NOLABELS" value="0">
<param name="SRC" value="test.rm">
<param name="CONTROLS" value="ImageWindow">
<param name="CONSOLE" value="Clip1">
<param name="LOOP" value="0">
<param name="NUMLOOP" value="0">
<param name="CENTER" value="0">
<param name="MAINTAINASPECT" value="0">
<param name="BACKGROUNDCOLOR" value="#000000">
</object>
RealPlayer的一些函数、方法和过程
这是 Real Player ActiveX Control Library (Version 1.0) 的所有函数与方法,有兴趣可以研究一下。
function GetSource: WideString;
procedure SetSource(const lpszNewValue: WideString);
function GetConsole: WideString;
procedure SetConsole(const lpszNewValue: WideString);
function GetControls: WideString;
procedure SetControls(const lpszNewValue: WideString);
function GetNoLabels: WordBool;
procedure SetNoLabels(bNewValue: WordBool);
function GetAutoStart: WordBool;
procedure SetAutoStart(bNewValue: WordBool);
function GetAutoGotoURL: WordBool;
procedure SetAutoGotoURL(bNewValue: WordBool);
function GetVolume: Smallint;
procedure SetVolume(nVol: Smallint);
function GetMute: WordBool;
procedure SetMute(bMute: WordBool);
function GetLoop: WordBool;
procedure SetLoop(bVal: WordBool);
function GetImageStatus: WordBool;
procedure SetImageStatus(bEnable: WordBool);
function GetPacketsTotal: Integer;
function GetPacketsReceived: Integer;
function GetPacketsOutOfOrder: Integer;
function GetPacketsMissing: Integer;
function GetPacketsEarly: Integer;
function GetPacketsLate: Integer;
function GetBandwidthAverage: Integer;
function GetBandwidthCurrent: Integer;
procedure DoPlayPause;
procedure DoStop;
procedure DoNextItem;
procedure DoPrevItem;
function CanPlayPause: WordBool;
function CanStop: WordBool;
function HasNextItem: WordBool;
function HasPrevItem: WordBool;
function HasNextEntry: WordBool;
function HasPrevEntry: WordBool;
procedure DoNextEntry;
procedure DoPrevEntry;
procedure AboutBox;
procedure EditPreferences;
procedure HideShowStatistics;
function IsStatisticsVisible: WordBool;
procedure DoGotoURL(const url: WideString; const target: WideString);
procedure DoPlay;
procedure DoPause;
function GetPosition: Integer;
function GetPlayState: Integer;
function GetLength: Integer;
function GetTitle: WideString;
function GetAuthor: WideString;
function GetCopyright: WideString;
function GetClipWidth: Integer;
function GetClipHeight: Integer;
function CanPlay: WordBool;
function CanPause: WordBool;
procedure SetPosition(lPosition: Integer);
function GetNumLoop: Integer;
procedure SetNumLoop(lVal: Integer);
function GetCenter: WordBool;
procedure SetCenter(bVal: WordBool);
function GetNoLogo: WordBool;
procedure SetNoLogo(bVal: WordBool);
function GetMaintainAspect: WordBool;
procedure SetMaintainAspect(bVal: WordBool);
function GetBackgroundColor: WideString;
procedure SetBackgroundColor(const pVal: WideString);
function GetStereoState: WordBool;
function GetLiveState: WordBool;
function GetShowStatistics: WordBool;
procedure SetShowStatistics(bVal: WordBool);
function GetShowPreferences: WordBool;
procedure SetShowPreferences(bVal: WordBool);
function GetShowAbout: WordBool;
procedure SetShowAbout(bVal: WordBool);
function GetOriginalSize: WordBool;
procedure SetOriginalSize;
function GetDoubleSize: WordBool;
procedure SetDoubleSize;
function GetFullScreen: WordBool;
procedure SetFullScreen;
function GetEnableContextMenu: WordBool;
procedure SetEnableContextMenu(bVal: WordBool);
function GetEnableOriginalSize: WordBool;
procedure SetEnableOriginalSize(bVal: WordBool);
function GetEnableDoubleSize: WordBool;
procedure SetEnableDoubleSize(bVal: WordBool);
function GetEnableFullScreen: WordBool;
procedure SetEnableFullScreen(bVal: WordBool);
function GetEnableMessageBox: WordBool;
procedure SetEnableMessageBox(bVal: WordBool);
procedure SetTitle(const pVal: WideString);
procedure SetAuthor(const pVal: WideString);
procedure SetCopyright(const pVal: WideString);
function GetWantKeyboardEvents: WordBool;
procedure SetWantKeyboardEvents(bWantsEvents: WordBool);
function GetWantMouseEvents: WordBool;
procedure SetWantMouseEvents(bWantsEvents: WordBool);
function GetNumEntries: Smallint;
function GetCurrentEntry: Smallint;
function GetEntryTitle(uEntryIndex: Smallint): WideString;
function GetEntryAuthor(uEntryIndex: Smallint): WideString;
function GetEntryCopyright(uEntryIndex: Smallint): WideString;
function GetEntryAbstract(uEntryIndex: Smallint): WideString;
procedure SetCanSeek(bCanSeek: WordBool);
function GetCanSeek: WordBool;
function GetBufferingTimeElapsed: Integer;
function GetBufferingTimeRemaining: Integer;
function GetConnectionBand Integer;
function GetPreferedLanguageString: WideString;
function GetPreferedLanguageID: Integer;
function GetUserCountryID: Integer;
function GetNumSources: Smallint;
function GetSourceTransport(nSourceNum: Smallint): WideString;
function GetWantErrors: WordBool;
procedure SetWantErrors(bVal: WordBool);
function GetShuffle: WordBool;
procedure SetShuffle(bVal: WordBool);
function GetVersionInfo: WideString;
function GetLastMessage: WideString;
function GetLastErrorSeverity: Integer;
function GetLastErrorRMACode: Integer;
function GetLastErrorUserCode: Integer;
function GetLastErrorUserString: WideString;
function GetLastErrorMoreInfoURL: WideString;
procedure SetPreFetch(bVal: WordBool);
function GetPreFetch: WordBool;
procedure SetRegion(const pVal: WideString);
function GetRegion: WideString;
function GetIsPlus: WordBool;
function GetConsoleEvents: WordBool;
procedure SetConsoleEvents(bVal: WordBool);
function GetDRMInfo(const pVal: WideString): WideString;
property ControlInterface: IRealAudio read GetControlInterface;
property DefaultInterface: IRealAudio read GetControlInterface。
在Web页中嵌入Media Player的方法比较简单,只要用HTML中的<Object></Object>可以了,如下所示。
<OBJECT ID="WMPlay" WIDTH=320 HEIGHT=240
CLASSID="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95"
CODEBASE="http://activex.microsoft.com/activex/controls/mplayer/en/
nsmp2inf.cab#Version=6,4,5,715"
STANDBY="Loading Microsoft? Windows Media? Player components..."
TYPE="application/x-oleobject">
</OBJECT>
其中ID是对象的名称,当用户在JavaScript要对Media Player进行控制时可以用该对象的名称WMPlay进行访问。CODEBASE指明当用户的浏览器中没有安装Player控件时可以从该URL指定的位置去获取。
当然在建立Player对象时也可以用<PARAM >来为其指定参数。如下所示:
<PARAM NAME="FileName" VALUE="C:ASFRootWelcome.asf">
<PARAM NAME="ShowControls" VALUE="False">
<PARAM NAME="AutoRewind" VALUE="True">
<PARAM NAME="AutoStart" VALUE="False">
其中"FileName"参数表示Media Player要播放的文件活或流。"ShowControls"表示在播放时是否显示控制条。Media Player的参数很多,我们在此不再一一详述。读者如果需要了解更详细的内容可以参考Media Player SDK中的相关部分。
如果用户需要对Media Player进行控制可以用JavaScript进行控制。
在这个例子中,Media Player嵌入在Web页面中,在Media Player右边有一些按钮,利用这些按钮用户可以控制Media Player的播放活动。这些按钮的HTML代码如下:
<form name="myform">
<input type="button" width="15" value="No Controls " name="NoControls"
OnClick="controlType(false)">
<input type="button" width="15" value="All Controls" name="Full"
Onclick="controlType(true)">
<input type="button" width="15" value=" Small " name="Small"
OnClick="displaySize(1)">
<input type="button" value=" Large " name="Large"
Onclick="displaySize(2)">
<input type="button" width="15" value=" Normal " name="Normal"
Onclick="displaySize(0)">
<input type="button" width="15" value=" Play " name="Play"
Onclick="PlayClick()">
<input type="button" width="15" value=" Stop " name="Stop"
Onclick="StopClick()">
</form>
相应的JavaScript代码为:
<script language="javascript">
<!--
var g_Browser = navigator.appName;
function controlType (setting)
{
if (g_Browser == "Netscape")
document.WMPlay.SetShowControls(setting);
else
document.WMPlay.ShowControls = setting;
}
function displaySize (setting)
{
if (g_Browser == "Netscape")
document.WMPlay.SetDisplaySize(setting);
else
document.WMPlay.DisplaySize = setting;
}
function PlayClick ()
{
document.WMPlay.Play();
}
function StopClick ()
{
document.WMPlay.Stop();
if (g_Browser == "Netscape")
document.WMPlay.SetCurrentPosition(0);
else
document.WMPlay.CurrentPosition = 0;
}
function PauseClick ()
{
document.WMPlay.Pause();
}
function PlayPauseClick ()
{
var state;
if (g_Browser == "Netscape")
state = document.WMPlay.GetPlayState();
else
state = document.WMPlay.PlayState;
if (state == 0)
document.WMPlay.Play();
else if (state == 1)
document.WMPlay.Play();
else if (state == 2)
document.WMPlay.Pause();
}
//-->
</script>
从这个例子可以看出当用户单即其中的某个按钮时,它对应的OnClick函数将被调用。在JavaScript函数中,可以直接用WMPlay来控制播放器的活动,比如开始播放,停止播放或占停播放,以及放大缩小等。
除了可以用动作比如鼠标的动作来对嵌入的Media Player进行控制外,还可以利用事件来对其进行控制。Microsoft? Windows Media? Player 支持的事件很多,有普通的鼠标事件,比如鼠标的单击、双击、鼠标的移动、鼠标键的按下与松开等,也有一些是Media Player特有的事件。与流播放有直接关系的事件有:OpenStateChange,PlayStateChange,Buffering,MarkerHit,ScriptCommand等。下面我们对这几个重要的事件做简单地介绍。
1 OpenStateChange 事件
OpenStateChange 事件表示Player的状态已经发生了改变。Media Player的打开状态有:
0 表示流已经关闭(nsClosed)
1 表示正在装入ASX文件(nsLoadingASX)
2 表示正在装入NSC文件(nsLoadingNSC)
3 表示正在寻找Media Server (nsLocating)
4 表示正在与Media Server建立连接(nsConnecting)
5 表示正在打开或侦听流信息(nsOpening)
6 表示流信息已经打开(nsOpen)
用JavaScript处理OpenStateChange事件的格式如下:
<SCRIPT FOR="MediaPlayer" EVENT="OpenStateChange(lOldState, lNewState)"
LANGUAGE="JScript">
//insert script commands//
</SCRIPT>
其中MediaPlayer是在<OBJECT></OBJECT>中定义的Media Player对象时的名字。
2 PlayStateChange 事件
PlayStateChange 事件表示Media Player的播放状态已经改变,Media Player可能的状态有:
0 播放已经停止(mpStopped)
1 播放暂停(mpPaused )
2 正在播放(mpPlaying)
3 正在等待流开始(mpWaiting)
4 向前搜索(mpScanForward)
5 向后搜索(mpScanReverse)
6 向前跳跃(mpSkipForward)
7 向后跳跃(mpSkipReverse)
8 流已经关闭(mpClosed)
用JavaScript处理该事件的方法为:
<SCRIPT FOR="MediaPlayer" EVENT="PlayStateChange(lOldState, lNewState)"
LANGUAGE="JScript">
//insert script commands//
</SCRIPT>
3 Buffering 事件
Buffering事件表示Media Player正在缓冲数据准备播放。在进行流播放之前,Media Player必须要缓冲一定数量的数据之后才开始播放,Buffering事件反映了Player缓冲数据的状况。用JavaScript处理Buffering事件的方法为:
<SCRIPT FOR="MediaPlayer" EVENT="Buffering(bStart)" LANGUAGE="JScript">
//insert script commands//
</SCRIPT>
其中bStart为一个布尔变量,当它为TRUE时表示缓冲正在进行,反之表示缓冲已经结束。
4 ScriptCommand 事件
ScriptCommand事件表示Media Player接收到了Script 命令,这时用户可以利用对接收到Script命令进行分析以决定采取相应的处理。我们知道利用Media Tools的ASF Indexer工具可以给流添加Script命令,当流播放器Player接收到这些Script 命令时会激活这个事件处理方法,于是用户可以在事件处理方法中对Script命令进行处理。处理ScriptCommand的方法是:
<SCRIPT FOR="MediaPlayer" EVENT="ScriptCommand(sType, sParam)"
LANGUAGE="JScript">
//insert script commands//
</SCRIPT>
其中sType是Script命令的类型,Script命令的类型有URL,TEXT,EVENT等,用户可以根据Script命令类型的不同做不同的处理。比如,如果是URL命令,我们可以在指定的帧内打开sParam中指定的页面。
5 MarkHit 事件
MarkerHit事件同ScritpCommand事件一样,当媒体播放器在ASF流中遇到标记时会激活该事件,用户利用该事件可以知道当前的标记是第几个标记。MarkerHit事件的处理方法是:
<SCRIPT FOR="MediaPlayer" EVENT="MarkerHit(lMarkerNum)" LANGUAGE="JScript">
//insert script commands//
</SCRIPT>
当然,除了支持事件处理之外,做为一个ActiveX对象,Media Player还有很多的属性(Property)和方法(Method)可以供Web页使用。比如用MediaPlayer.MarkerCount 属性可以知道在ASF流中到底有多少个标记;利用MediaPlayer. CurrentPosition属性可以知道当前播放位置的时间等等。至于Media Player对象的方法我们在前面已经使用了很多,比如Play(), Pause()等均是Media Player的方法。由于Media Player对象的属性和方法太多,我们不可能在此一一介绍,而只是对几个较为重要的事件处理做了一定的介绍。用户在使用时可以参考Media Player SDK的帮助文档以获取更多的信息。
本文对Media Service的客户应用程序Media Player的使用,特别是在Web页中的使用做了简单的介绍。作为一个通用的媒体播放器,它还有很多的功能这里没有介绍,要了解一个软件的功能,最好的方法就是使用它。用户如果感兴趣可以从www.windowsmedia.com上去免费下载。
简单说些 media player 播放控件经常能用的用法
此用法来源于 Windows Media Player SDK 在微软下载的
播放控制用的是 player.controls 对象
播放 player.controls.play()
暂停 player.controls.pause()
停止 player.controls.stop()
上一首 player.controls.previous()
下一首 player.controls.next()
当前媒体信息 player.controls.currentItem 这是一个对象,请参看
player.currentMedia 对象
当前播放指针 player.controls.currentPosition 此属性可读写,返回类型Number(double).
当前播放时间 player.controls.currentPositionString 只读属性,返回播放时间,格式为 01:23 单位秒
快进 player.controls.fastForward() 进退的速度请参看 player.Settings.rate 用法
快退 player.controls.fastReverse() 同上
检测功能是否可用 player.controls.isAvailable(name)
其中name为STRING型,其值可以为currentItem、currentPosition、fastForwar、fastReverse、next、pause、play、previous、stop 返回为真是,功能可用,为假则反之。
参数设置用的是 player.settings 对象
自动播放 player.settings.autoStart
左右平衡 player.settings.balance 平衡时为0,左右为数值型正负100
静音 player.settings.mute 可读写属性,默认为true表示有音,false 为消音
音量 player.settings.volume 可读写属性,整型 0-100
检测功能是否可用 player.settings.isAvailable(name)
其中name为STRING类型,其值可以为mute、volume、autoStart、balance 等,返回真为可用,假则不可用
基它参数请使用对象 player
全屏 player.fullScreen 可读写属性 true为全屏,默认为false
关闭 player.close() 关闭控件
???? player.enabled 默认为真,true时控件的控制界面可用,false则不可只能是右键菜单或用户自定义界面
状态 player.playState 值定义如下:0 Undefined 、1 Stopped 、2 Paused 、3 Playing 、4 ScanForward、5 ScanReverse 、6 Buffering 、7 Waiting 、8 MediaEnded 、
9 Transitioning 、10 Ready 、11 Reconnecting
播放媒体的URL player.URL
播放媒体的信息 player.currentMedia 对象
媒体总长度 player.currentMedia.duration 只读属性返回媒体时间长度
媒体总长度 player.currentMedia.durationString 同时,只格式变成HH:MM:SS
媒体原始高度 player.currentMedia.imageSourceHeight 只读,返回数值型
媒体原始宽度 player.currentMedia.imageSourceWidth 只读,返回数值型
现在介绍 window media player 事件
Buffering(start) 事件
读媒体进缓充区时发生
其中 start 为 Boolean 型
true 表示 Buffering has started.
false 表示 Buffering has ended.
PlayStateChange(NewState) 事件
播放状态改变时发生
NewState 的值在上面介绍过
Error() 事件
控件发生错误时触发
这里介绍 player.error 对象
player.error.errorCount 只读,返回错误消息的数量
player.error.clearErrorQueue() 清除所有错误消息记录
player.error.item 只读,错误消息对象数组
player.error.item(index).errorCode 只读,返回错误代码
player.error.item(index).errorDescription 只读,返回错误的说明文字