常用網(wǎng)頁(yè)播放器代碼
我們?cè)诰W(wǎng)頁(yè)上看到的播放器無(wú)外乎WMP/RealOne/Macromedia Flash Player,其他的無(wú)非是面板不同,或者添加了其他控件,對(duì)于計(jì)算機(jī)上安裝的一些播放器也都是編碼和解碼器的整合,其最核心的編碼和解碼技術(shù)是相同的。例如:網(wǎng)絡(luò)上最流行的windows media流(asf,wma,wmv格式...),Real流(rm,rmvb...),還有MPEG系列編碼格式(MP4/MP3格式...)
Windows Media Video 是微軟推出的一種流媒體格式,它是在“同門”的ASF(Advanced Stream Format)格式升級(jí)延伸來(lái)得.在同等視頻質(zhì)量下,WMV格式的體積非常小,因此很適合在網(wǎng)上播放和傳輸。Windows Media Player9兼容所有格式的WMV,官方編碼器是Windows Media Encoder ,但是如果你想轉(zhuǎn)制 高質(zhì)量的wmv文件,那您一定要有超大的內(nèi)存來(lái)處理數(shù)據(jù)...
無(wú)意中發(fā)現(xiàn)CASTPOST的播放器可以自己定義大小,對(duì)于WMV格式的在線播放可以說(shuō)已經(jīng)足夠快了,然后就費(fèi)了好大勁把一些精彩的短片和一些經(jīng)典的MTV轉(zhuǎn)化WMV格式放了上來(lái),盡管現(xiàn)在不能下載了,但是只要不是連接人數(shù)過(guò)多,播放起來(lái)還是很流暢的^_^
WMP加入了ActiveX解碼器控件,不僅可以放曲子,還能放Flash和其它視頻文件
<object align=middle classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" class=OBJECT id=MediaPlayer width=196 height=196>
<param name=ShowStatusBar value=0>
<param name=Filename value="http://202.116.*.*/video/story/chinese/hynh/b.wmv">
<embed type=application/x-oleobject codebase="http://activex.microsoft.com/activex/con ... n/nsmp2inf.cab#Version=5,1,52,701" >
</embed>
</object>
想用WMP連續(xù)播放請(qǐng)參照ASX元文件使用講解:使用ASX播放列表吧
上面的這個(gè)播放器是老式的那種,6.4版本!新式播放器是在MediaPlayer9.0以后出現(xiàn)的,也就是說(shuō)只有裝了9.0或9.0以上的播放器才能正常使用的。
--------------------------------------------------------------------------------
下面是新式播放器代碼,相對(duì)以前的來(lái)說(shuō)要簡(jiǎn)單很多:
<object id="player" height="64" width="260" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6">
<param NAME="AutoStart" VALUE="-1">
<!--是否自動(dòng)播放-->
<param NAME="Balance" VALUE="0">
<!--調(diào)整左右聲道平衡,同上面舊播放器代碼-->
<param name="enabled" value="-1">
<!--播放器是否可人為控制-->
<param NAME="EnableContextMenu" VALUE="-1">
<!--是否啟用上下文菜單-->
<param NAME="url" value="/blog/1.wma">
<!--播放的文件地址-->
<param NAME="PlayCount" VALUE="1">
<!--播放次數(shù)控制,為整數(shù)-->
<param name="rate" value="1">
<!--播放速率控制,1為正常,允許小數(shù),1.0-2.0-->
<param name="currentPosition" value="0">
<!--控件設(shè)置:當(dāng)前位置-->
<param name="currentMarker" value="0">
<!--控件設(shè)置:當(dāng)前標(biāo)記-->
<param name="defaultFrame" value="">
<!--顯示默認(rèn)框架-->
<param name="invokeURLs" value="0">
<!--腳本命令設(shè)置:是否調(diào)用URL-->
<param name="baseURL" value="">
<!--腳本命令設(shè)置:被調(diào)用的URL-->
<param name="stretchToFit" value="0">
<!--是否按比例伸展-->
<param name="volume" value="50">
<!--默認(rèn)聲音大小0%-100%,50則為50%-->
<param name="mute" value="0">
<!--是否靜音-->
<param name="uiMode" value="mini">
<!--播放器顯示模式:Full顯示全部;mini最簡(jiǎn)化;None不顯示播放控制,只顯示視頻窗口;invisible全部不顯示-->
<param name="windowlessVideo" value="0">
<!--如果是0可以允許全屏,否則只能在窗口中查看-->
<param name="fullScreen" value="0">
<!--開(kāi)始播放是否自動(dòng)全屏-->
<param name="enableErrorDialogs" value="-1">
<!--是否啟用錯(cuò)誤提示報(bào)告-->
<param name="SAMIStyle" value>
<!--SAMI樣式-->
<param name="SAMILang" value>
<!--SAMI語(yǔ)言-->
<param name="SAMIFilename" value>
<!--字幕ID-->
</object>
--------------------------------------------------------------------------------
RealOne播放器代碼:
<object id="vid" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width=427 height=300>
<param name="_ExtentX" value="11298">
<param name="_ExtentY" value="7938">
<param name="AUTOSTART" value="-1">
<param name="SHUFFLE" value="0">
<param name="PREFETCH" value="0">
<param name="NOLABELS" value="-1">
<param name="SRC" value="rtsp://211.89.225.1/encoder/cnr3";>
<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> <object id="vid2" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width=427 height=30>
<param name="_ExtentX" value="11298">
<param name="_ExtentY" value="794">
<param name="AUTOSTART" value="-1">
<param name="SHUFFLE" value="0">
<param name="PREFETCH" value="0">
<param name="NOLABELS" value="-1">
<param name="SRC" value="rtsp://211.89.225.1/encoder/cnr3";>
<param name="CONTROLS" value="ControlPanel">
<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>
--------------------------------------------------------------------------------
看著很多很復(fù)雜的樣子,其實(shí)就是多了些播放器參數(shù),可以不要...
Real Player 網(wǎng)頁(yè)播放器 參數(shù)含義
參數(shù):autostart 屬性:True或是False 作用:指定是否自動(dòng)播放指定的源文件
參數(shù):backgroundcolor 屬性:任何用符號(hào)“#”開(kāi)頭的16進(jìn)制數(shù)值或是任何預(yù)定義的顏色作用:指定圖像窗口的背景顏色
參數(shù):center 屬性:True或是False 作用:指定片斷使用初始編碼大小播放,并且在圖像窗口的中央。
參數(shù):classid 屬性:"clsid:CFCDAA03-8BE4-1lcf-B84B0020AFBBCCFA:** 作用:用于指定ActiveX控件的唯一的字符串標(biāo)示,可以認(rèn)出嵌入的RealPalyer播放器。
參數(shù):console 屬性:任何字符串作用:可以將各種不同的RealPlayer控制聚集在網(wǎng)頁(yè)上,這樣它們可以交互使用或是保持獨(dú)立,而且互相不影響
參數(shù):controls 屬性:ImageWindow,All,ControlPanel,PlavButton,PlayOnlyButton, PauseButton,StopButton,F(xiàn)FCtrl,RWCtrl,MuteCtrl,MuteVolume,VolumeSlider,PositionSlider,TACCtrl,HomeCtrl,InfoVolumePanel,InfoPanel,StatusBar,StatusField,PositionField 作用:可以讓你指定那些控制是可見(jiàn)的。
參數(shù):height 屬性:任何整數(shù)值作用:指定RealPlayer元素的高度,單位:像素
參數(shù):id 屬性:任何字符串作用:為標(biāo)簽中的RealPlayer元素指定名字。
參數(shù):imagestatus 屬性:True或是False 作用:指定是否在圖像窗口中顯示狀態(tài)信息,默認(rèn)值是true
參數(shù):loop 屬性:True或是False 作用:可以讓你指定片斷是否無(wú)限循環(huán)
參數(shù):maintainaspect 屬性:True或是False 作用:默認(rèn)RealPlayer拉伸所有的片斷來(lái)充滿整個(gè)圖像窗口。
參數(shù):name 屬性:任何字符串作用:為標(biāo)簽中的RealPlayer元素指定名字(在標(biāo)簽中使用id)
參數(shù):nojava 屬性:True或是False 作用:避免啟動(dòng)Java虛擬機(jī)
參數(shù):nolabels 屬性:True或是False 作用:可以禁止顯示標(biāo)題或是版權(quán)信息(realplayer5.0以上時(shí),它是垃圾...)
參數(shù):nologo 屬性:True或是False 作用:避免RealPlayer啟動(dòng)時(shí)在圖像窗口中顯示
參數(shù):numloop 屬性:任何整數(shù)值作用:讓你能夠指定文件片循環(huán)的次數(shù),不需要參數(shù)loop
參數(shù):prefetch 屬性:True或是False 作用:指定在播放前,RealPlayer是否可以獲得流描述信息,默認(rèn)值是False
參數(shù):region 屬性:任何字符串作用:同SMIL一起使用。允許你指定使用HTML代替SMIL
參數(shù):scriptcallbacks 屬性:用逗號(hào)分割的列表作用:指定瀏覽器的回調(diào)監(jiān)控(好高級(jí)的東東!)
參數(shù):shuffle 屬性:True或是False 作用:同多文件片的ram文件或是SMIL文件一起使用。可以讓RealPlayer隨機(jī)播放列表中的文件
參數(shù):src 屬性:任何合法的相對(duì)或是完整的URL 作用:指定播放的文件或是源文件的地址
參數(shù):type 屬性:字符串作用:為嵌入插件指定MIME類型
參數(shù):width 屬性:任何整數(shù)值作用:指定RealPlayer元素的寬度
RealPlayer的一些函數(shù)、方法和過(guò)程
這是 Real Player ActiveX Control Library (Version 1.0) 的所有函數(shù)與方法,有興趣可以研究一下。 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 GetShowonmouseover 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 GetConnectionBandwidth: 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; |
網(wǎng)頁(yè)中wmp視頻控制之使用指南
//wmplayer.controls.currentPosition = wmplayer.currentMedia.duration * (i / 100)
//
//
//
□播放方法和屬性
除播放、暫停、停止外,媒體播放器還可用下面的屬性:
掃描(Scanning)——與錄像機(jī)的快進(jìn)快倒功能類似;
搜索(Seeking)——直接移到剪輯中標(biāo)記的特定上演時(shí)間;
□播放
媒體播放器提供了兩種技術(shù)來(lái)指定要播放的媒體名稱(剪輯),你可以設(shè)置 FileName 屬性,或調(diào)用 Open 方法。 如果 AutoStart 屬性的值是 true 的話,當(dāng) FileName 屬性被設(shè)置成該電影剪輯的 URL 后,該電影剪輯將開(kāi)始播放;否則電影剪輯不會(huì)開(kāi)始播放, 除非你調(diào)用 Play 方法。 Open 方法開(kāi)始播放是異步的,它不象 Play 方法要等到其他的進(jìn)程結(jié)束后才開(kāi)始播放。
媒體播放器提供了下面的類似錄像機(jī)的屬性和方法來(lái)控制流媒體的播放:
Play、Stop、Pause 方法,來(lái)開(kāi)始、停止、暫停流媒體。
PlayCount 屬性,設(shè)置文件播放的次數(shù)。
AutoRewind 屬性,確定當(dāng)停止播放時(shí)是否返回到電影剪輯的開(kāi)始部分。
□音頻控制
媒體播放器提供了下面的屬性來(lái)管理音頻:
Balance 屬性,確定左右音箱的聲音平衡;
Volume 屬性,用來(lái)加大或降低音量;
Mute 屬性,用來(lái)關(guān)閉或打開(kāi)聲音;
※你可以將 ShowAudioControls 屬性設(shè)為 true 來(lái)在控制欄添加處理聲音的控件。
□掃描
媒體播放器提供了下面的屬性用以掃描:
FastForward 方法,快進(jìn);
FastReverse 方法,快倒;
Rate屬性,改變播放速率;
※要想使電影剪輯能被掃描,必須將 CanScan 和 AllowScan 屬性設(shè)為 true。
□搜索
用于搜索的屬性有:
MarkerCount 屬性,指剪輯中標(biāo)記的總數(shù)量;
CurrentMaker、GetMarkerName、GetMarkerTime 方法,用于返回標(biāo)記信息;
MarkerHit 事件,當(dāng)遇到標(biāo)記時(shí)觸發(fā);
CurrentPosition 屬性,當(dāng)前位置(用秒度量),可用來(lái)將播放頭移到剪輯中指定的點(diǎn);
PositionChange 事件,當(dāng)設(shè)置 CurrentPosition 屬性時(shí)觸發(fā);
※要想搜索到任意的時(shí)間,必須將 CanSeek 屬性設(shè)為 true,要想搜索到標(biāo)記點(diǎn),必須將 CanSeekToMarkers 屬性設(shè)為 true。
□媒體播放器的外觀界面
在網(wǎng)頁(yè)中,你可以通過(guò)相關(guān)屬性來(lái)控制媒體播放器的哪些部分出現(xiàn),哪些部分不出現(xiàn)。
媒體播放器包括如下元素:
Video Display Panel:視頻顯示面板;
Video Border:視頻邊框;
Closed Captioning Display Panel;字幕顯示面板;
Track Bar;搜索欄;
Control Bar with Audio and Position Controls:帶有聲音和位置控制的控制欄;
Go To Bar:轉(zhuǎn)到欄;
Display Panel:顯示面板;
Status Bar:狀態(tài)欄;
下面的屬性用來(lái)決定顯示哪一個(gè)元素:
ShowControls 屬性:是否顯示控制欄(包括播放控件及可選的聲音和位置控件);
ShowAudioControls 屬性:是否在控制欄顯示聲音控件(靜音按鈕和音量滑塊);
ShowPositionControls 屬性:是否在控制欄顯示位置控件(包括向后跳進(jìn)、快退、快進(jìn)、向前跳進(jìn)、預(yù)覽播放列表中的每個(gè)剪輯);
ShowTracker 屬性:是否顯示搜索欄;
ShowDisplay 屬性:是否顯示顯示面板(用來(lái)提供節(jié)目與剪輯的信息);
ShowCaptioning 屬性:是否顯示字幕顯示面板;
ShowGotoBar 屬性:是否顯示轉(zhuǎn)到欄;
ShowStatusBar 屬性:是否顯示狀態(tài)欄;
□播放列表
媒體播放器提供下面的方法來(lái)訪問(wèn)播放列表中的剪輯:
Next 方法,跳到節(jié)目(播放列表)中的下一個(gè)剪輯;
Previous 方法,跳回到節(jié)目中的上一個(gè)剪輯;
媒體播放器的一個(gè)特性是能夠預(yù)覽節(jié)目中的每一個(gè)剪輯,使用如下屬性:
PreviewMode 屬性,決定媒體播放器當(dāng)前是否處于預(yù)覽模式;
CanPreview 屬性,決定媒體播放器能否處于預(yù)覽模式;
在windows 媒體元文件中,可以為每一個(gè)剪輯指定預(yù)覽時(shí)間——PREVIEWDURATION,如果沒(méi)有指定,那么默認(rèn)的預(yù)覽時(shí)間是10秒鐘。
你也可以用Windows 媒體元文件來(lái)添加 watermarks 與 banners,元文件也支持插入廣告時(shí)的無(wú)間隙流切換。
□節(jié)目信息
使用 GetMediaInfoString 方法可以返回相關(guān)剪輯或節(jié)目的如下信息:
文件名:File name
標(biāo)題:Title
描述:Description
作者:Author
版權(quán):Copyright
級(jí)別:Rating
URLs:logo icon、watermark、banner的地址
剪輯信息可以放在媒體文件中,也可以放在Windows 媒體元文件中,或者兩者都放。
剪輯信息可以放在媒體文件中,也可以放在windows 媒體元文件中,或者兩者都放。如果在元文件中指定了剪輯信息,那么用 GetMediaInfoString 方法返回的就是元文件中的信息,而不會(huì)返回剪輯中包含的信息。
在元文件中,附加信息可以放置在每一個(gè)剪輯或節(jié)目的 PARAM標(biāo)簽中。你可以為每個(gè)剪輯添加任意多個(gè) PARAM 標(biāo)簽,用來(lái)存儲(chǔ)自定義的信息或鏈接到相關(guān)站點(diǎn)。在 PARAM 標(biāo)簽中的信息可以通過(guò) GetMediaParameter 方法來(lái)訪問(wèn)。
下面的屬性返回有關(guān)大小和時(shí)間的信息:
ImageSourceHeight、ImageSourceWidth:返回圖像窗口的顯示尺寸;
Duration 屬性,返回剪輯的長(zhǎng)度(秒), 要檢測(cè)這個(gè)屬性是否包含有效的數(shù)值,請(qǐng)檢查IsDurationValid 屬性。(對(duì)于廣播的視頻,其長(zhǎng)度是不可預(yù)知的)。
□字幕
你可以用 .smi 文件來(lái)為你的節(jié)目添加字幕。媒體播放器支持下面的屬性來(lái)處理字幕:
SAMIFileName 屬性,指定 .smi 文件的名字;
SAMILang 屬性,指定字幕的語(yǔ)言(如果沒(méi)有指定則使用第一種語(yǔ)言);
SAMIStyle 屬性,指定字幕的文字大小和樣式;
ShowCaptioning 屬性,決定是否顯示字幕顯示面板;
□腳本命令
伴隨音頻、視頻流,你可以在流媒體文件中加入腳本命令。腳本命令是多媒體流中與特定時(shí)間同步的多對(duì)Unicode串。第一個(gè)串標(biāo)識(shí)待發(fā)命令的類型,第二個(gè)串指定要執(zhí)行的命令。
當(dāng)流播放到與腳本相關(guān)的時(shí)間時(shí),控件會(huì)向網(wǎng)頁(yè)發(fā)送一個(gè) scriptCommand事件,然后由事件處理進(jìn)程來(lái)響應(yīng)這個(gè)事件。腳本命令字符串會(huì)作為腳本命令事件的參數(shù)傳遞給事件處理器。
媒體播放器會(huì)自動(dòng)處理下面類型的內(nèi)嵌腳本命令:
1)URL型命令:當(dāng)媒體播放器控件收到一個(gè)URL型的命令時(shí),指定的URL會(huì)被裝載到用戶的默認(rèn)瀏覽器。如果媒體播放器嵌在一個(gè)分幀的HTML文件中,URL頁(yè)可以裝載到由腳本命令指定的幀內(nèi)。如果腳本命令沒(méi)有指定一個(gè)幀,將由 DefaultFrame 屬性決定將 URL 頁(yè)裝入哪一幀。
你可以通過(guò)設(shè)置 InvokeURLs 屬性來(lái)決定是否自動(dòng)處理 URL 型的腳本命令。如果這個(gè)屬性的值為 false ,媒體播放器控件將忽視 URL型命令。但是腳本命令事件仍會(huì)觸發(fā),這就允許你有選擇地處理 URL 型命令。
URL 型命令指定的是 URL 的相對(duì)地址。基地址是由 BaseURL屬性指定的。媒體播放器控件傳送的腳本命令事件的命令參數(shù)是鏈接好的地址。
2)FILENAME型命令:當(dāng)媒體播放器控件收到一個(gè)FILENAME型的命令時(shí),它將 FileName屬性設(shè)置為腳本命令提供的文件,之后媒體播放器會(huì)打開(kāi)這個(gè)文件開(kāi)始播放。 媒體播放器控件總是自動(dòng)處理 FILENAME 型命令,不象 URL 型命令,它們不能被禁止。
3)TEXT型命令:當(dāng)媒體播放器控件收到一個(gè) TEXT型的命令時(shí),它會(huì)將命令的內(nèi)容顯示在控件的字幕窗口。內(nèi)容可以是純文本的,也可以是 HTML。
4)EVENT型命令:當(dāng)媒體播放器控件收到一個(gè) EVENT型的命令時(shí),它會(huì)在媒體元文件中搜索 EVENT 元素的 NAME 屬性。如果 NAME 屬性與腳本命令中的第二個(gè)字符串匹配,媒體播放器控件就執(zhí)行包含在 EVENT 元素中的條目。
5)OPENEVENT型命令:當(dāng)媒體播放器控件收到一個(gè) OPENEVENT型的命令時(shí),它會(huì)在媒體元文件中檢查 EVENT 元素,并打開(kāi)匹配的標(biāo)題,但不播放,直到收到來(lái)自 EVENT型命令的同名真實(shí)事件。
□捕捉鍵盤(pán)和鼠標(biāo)事件
EnableContextMenu 與 ClickToPlay 屬性為用戶提供了在圖像窗口進(jìn)行操作的方法。
如果 EnableContextMenu 屬性為 true ,在圖像窗口右擊鼠標(biāo)可以打開(kāi)關(guān)聯(lián)菜單,如果將ClickToPlay 屬性設(shè)為 true ,用戶可以單擊圖像窗口進(jìn)行播放與暫停的切換。
要接收鼠標(biāo)移動(dòng)和單擊事件,請(qǐng)將 SendMouseMoveEvents 和 SendMouseClickEvents 屬性設(shè)為 true 。鼠標(biāo)事件有:
MouseDown,當(dāng)用戶按下鼠標(biāo)時(shí)產(chǎn)生;
MouseUp,當(dāng)用戶釋放鼠標(biāo)時(shí)產(chǎn)生;
MouseMove,當(dāng)用戶移動(dòng)鼠標(biāo)時(shí)產(chǎn)生;
Click,當(dāng)用戶在媒體播放器上單擊鼠標(biāo)按鈕時(shí)產(chǎn)生;
DbClick,當(dāng)用戶在媒體播放器上雙擊鼠標(biāo)按鈕時(shí)產(chǎn)生;
要接收鍵盤(pán)事件,請(qǐng)將 SendKeyboardEvents 屬性設(shè)為 true 。鍵盤(pán)事件有:
KeyDown,當(dāng)用戶按下一個(gè)鍵時(shí)產(chǎn)生;
KeyUp,當(dāng)用戶釋放一個(gè)鍵時(shí)產(chǎn)生;
KeyPress,當(dāng)用戶按下并釋放一個(gè)鍵時(shí)產(chǎn)生;
□監(jiān)測(cè)流狀態(tài)與網(wǎng)絡(luò)鏈接
流狀態(tài)屬性包括:
PlayState:播放狀態(tài);
OpenState:打開(kāi)狀態(tài);
Bandwidth:帶寬;
流狀態(tài)屬性包括:
PlayState:播放狀態(tài);
OpenState:打開(kāi)狀態(tài);
Bandwidth:帶寬;
支持的事件有:
OpenStateChange:打開(kāi)狀態(tài)改變(僅當(dāng)SendOpenStateChangeEvents屬性為true時(shí)觸發(fā))
PlayStateChange:播放狀態(tài)改變(僅當(dāng)SendPlayStateChangeEvents屬性為true時(shí)觸發(fā))
EndOfStream:流結(jié)束時(shí)觸發(fā);
NewStream:打開(kāi)新流時(shí)觸發(fā);
網(wǎng)絡(luò)接收屬性包括:
ReceptionQuality:接收質(zhì)量;
ReceivedPackets:已經(jīng)收到的包;
LostPackets:丟失的包;
監(jiān)測(cè)緩沖的屬性有:
BufferingTime:緩沖時(shí)間;
BufferingCount:緩沖次數(shù);
BufferingProgress:緩沖進(jìn)程;
Buffering:緩沖事件;
□錯(cuò)誤處理
媒體播放器提供了內(nèi)建的錯(cuò)誤處理功能——在對(duì)話框或狀態(tài)欄顯示錯(cuò)誤信息。 另外,你可以自己添加錯(cuò)誤處理程序。如果 SendErrorEvents 屬性設(shè)置為 true,將不會(huì)顯示錯(cuò)誤框,而是發(fā)送錯(cuò)誤事件;如果 SendErrorEvents 屬性設(shè)置為 false,將顯示錯(cuò)誤框,而是發(fā)送錯(cuò)誤事件。
媒體播放器支持下面的錯(cuò)誤處理事件:
Error 事件,指有危險(xiǎn)性錯(cuò)誤發(fā)生;
Warning 事件,指發(fā)生了非危險(xiǎn)性的錯(cuò)誤;
當(dāng)你的應(yīng)用程序接收到一個(gè)錯(cuò)誤事件,你可以檢測(cè)下面的屬性來(lái)確定具體的錯(cuò)誤信息:
HasError:檢測(cè)目前的媒體播放器是否有錯(cuò)誤;
ErrorCode:提供與該類型錯(cuò)誤相關(guān)的代碼值;
ErrorDescription:提供錯(cuò)誤的描述信息;
ErrorCorrection:指定媒體播放器對(duì)該類型的錯(cuò)誤進(jìn)行校正;
□播放CD
媒體播放器將 CD 看作(在每個(gè)音軌的開(kāi)頭具有標(biāo)記的)單一音頻流。 要在網(wǎng)頁(yè)中使用CD,你需要將 FileName 屬性設(shè)為 CDAUDIO:,必須帶有冒號(hào),如下所示:
<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="cdaudio:">
<PARAM NAME="AutoStart" VALUE="0">
<PARAM NAME="ShowControls" VALUE="1">
<PARAM NAME="ShowStatusBar" VALUE="1">
<PARAM NAME="ShowDisplay" VALUE="1">
</OBJECT>
</BODY>
</HTML>
////////////////////////////////////////////////////////////
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
WMP、Real 的方法、事件和屬性都很多,這里只列出一些常用同時(shí)又是最基本與重要的方法及屬性。學(xué)習(xí)制作網(wǎng)頁(yè)播放器必須首先熟練掌控她們!
![]() 她們真的非常重要。一個(gè)網(wǎng)頁(yè)播放器,不管如何變化多端,都是這些方法、事件和屬性衍生的功能延伸,如快進(jìn)、快退,左、右聲道,截取片段,重復(fù)、循環(huán)、隨機(jī)播放,拖放,點(diǎn)播,進(jìn)度條滾動(dòng),時(shí)間正序、倒序及上一首、下一首、第一首、末一首等等。這里需要說(shuō)明的是,上面 Windows Media Player 的方法屬性是針對(duì) WMP 6.4 以上版本而言,6.4 以下版本的某些地方如全屏等是不同而有區(qū)別的。 簡(jiǎn)單的網(wǎng)頁(yè)播放器譜樂(lè)在前面的專題中已列舉了許多實(shí)例。即在 HTML 代碼中插入: <o(jì)bject classid = "clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6"> <param name = "url" value = "http://aboutplayer.com/aboutplayer.asx">// 參數(shù) url 定義播放媒體的路徑。 <param name = ……>// 還有很多這樣的參數(shù),都具有重要的功用! …… </object> 上面是播放音頻的代碼,播放視頻的只需在<o(jì)bject ……>中插入 width = "205" height = "100" 確定視頻區(qū)域的寬、高即可,寬高比有 4:3、16:9 兩種模式。 若再插入 type = "application/x-oleobject" 的代碼,即可播放 SWF 等 Flash 類和 jpg、gif、png、bmp 等圖片類媒體。 上述綜合代碼就是: <o(jì)bject classid = "clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" width = "205" height = "100" type = "application/x-oleobject"> <param name = "url" value = "http://aboutplayer.com/aboutplayer.asx"> <param name = ……> …… </object> 這里 "clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" 是 WMP 6.4 以上版本控件,6.4 以下版本控件代碼是 "clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"。兩者在參數(shù)等方面的定義上是有許多差異的! |