javascript 控制media player
来源:互联网 发布:软件优化 网站 去广告 编辑:程序博客网 时间:2024/05/21 22:58
- 在Web页中嵌入Media Player的方法比较简单,只要用HTML中的可以了,如下所示。
- 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">
- 其中ID是对象的名称,当用户在JavaScript要对Media Player进行控制时可以用该对象的名称WMPlay进行访问。CODEBASE指明当用户的浏览器中没有安装Player控件时可以从该URL指定的位置去获取。
- 当然在建立Player对象时也可以用来为其指定参数。
- 其中"FileName"参数表示Media Player要播放的文件活或流。"ShowControls"表示在播放时是否显示控制条。Media Player的参数很多,我们在此不再一一详述。读者如果需要了解更详细的内容可以参考Media Player SDK中的相关部分。
- 如果用户需要对Media Player进行控制可以用JavaScript进行控制。
- 在这个例子中,Media Player嵌入在Web页面中,在Media Player右边有一些按钮,利用这些按钮用户可以控制Media Player的播放活动。这些按钮的HTML代码如下:
- OnClick="controlType(false)">
- Onclick="controlType(true)">
- OnClick="displaySize(1)">
- Onclick="displaySize(2)">
- Onclick="displaySize(0)">
- Onclick="PlayClick()">
- Onclick="StopClick()">
- 从这个例子可以看出当用户单即其中的某个按钮时,它对应的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)
- 其中MediaPlayer是在中定义的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处理该事件的方法为:
- 3 Buffering 事件
- Buffering事件表示Media Player正在缓冲数据准备播放。在进行流播放之前,Media Player必须要缓冲一定数量的数据之后才开始播放,Buffering事件反映了Player缓冲数据的状况。用JavaScript处理Buffering事件的方法为:
- 其中bStart为一个布尔变量,当它为TRUE时表示缓冲正在进行,反之表示缓冲已经结束。
- 4 ScriptCommand 事件
- ScriptCommand事件表示Media Player接收到了Script 命令,这时用户可以利用对接收到Script命令进行分析以决定采取相应的处理。我们知道利用Media Tools的ASF Indexer工具可以给流添加Script命令,当流播放器Player接收到这些Script 命令时会激活这个事件处理方法,于是用户可以在事件处理方法中对Script命令进行处理。处理ScriptCommand的方法是:
- 其中sType是Script命令的类型,Script命令的类型有URL,TEXT,EVENT等,用户可以根据Script命令类型的不同做不同的处理。比如,如果是URL命令,我们可以在指定的帧内打开sParam中指定的页面。
- 5 MarkHit 事件
- MarkerHit事件同ScritpCommand事件一样,当媒体播放器在ASF流中遇到标记时会激活该事件,用户利用该事件可以知道当前的标记是第几个标记。MarkerHit事件的处理方法是:
- 当然,除了支持事件处理之外,做为一个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上去免费下载。
- 播放: 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
- javascript 控制media player
- 关于javascript控制Windows Media Player
- 用JavaScript js 控制 Media Player 流媒体
- js控制media player
- media player播放控制
- 利用JAVASCRIPT控制MEDIA PLAYER的功能实现
- 用javascript控制调用media player播放器例子[转]
- firefox可以通过javascript控制Windows Media Player 11了
- 用JavaScript js 控制 Media Player 播放器
- 用javascript控制调用media player播放器例子
- 用JavaScript js 控制 Media Player 播放器
- js 控制 Windows Media Player
- Javascript检测Media Player版本!
- js 控制 Windows Media Player播放列表
- media player
- media player
- Web网页中使用Media Player播放MPG视频的代码,并且支持JavaScript控制播放,暂停等功能
- 一个javascript写的media player播放器
- WEBX3学习-在eclipse下热部署webx(maven)工程
- 关闭WIN7交互式服务检测提示
- 为什么微软认为收购Yammer是年度最佳交易
- 详解Java解析XML的四种方法
- glassfish 安装过程
- javascript 控制media player
- 链表
- 如何给apk文件签名(一)
- 于关u-boot中的.balignl 16,0xdeadbeef的理解
- AS3.0编辑位图图像 位图的切分
- android 4.0解锁UI修改1
- 安装sql2008报错SQL Server Setup failure 解决方案
- Linux下的UltraEdit安装及破解去掉30天限制
- eclipse+ADT 进行android应用签名详解