网页播放器代码集中营(2)
生活随笔
收集整理的這篇文章主要介紹了
网页播放器代码集中营(2)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Windows?Media?Player?網(wǎng)頁(yè)播放器?參數(shù)含義
(默認(rèn)0為否,-1或1為是)
<object?classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"?id="MediaPlayer1"?width="286"?height="225">
????<param?name="AudioStream"?value="-1">
????<param?name="AutoSize"?value="-1">
????<!--是否自動(dòng)調(diào)整播放大小-->
????<param?name="AutoStart"?value="-1">
????<!--是否自動(dòng)播放-->
????<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">
????<!--緩沖時(shí)間-->
????<param?name="CaptioningID"?value>
????<param?name="ClickToPlay"?value="-1">
????<param?name="CursorType"?value="0">
????<param?name="CurrentPosition"?value="0">
????<!--當(dāng)前播放進(jìn)度?-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處理,小數(shù)則采用四舍五入然后按前的處理-->
????<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">
????<!--是否允許拉動(dòng)播放進(jìn)度條到任意地方播放-->
????<param?name="Filename"?value="01.wma"?valuetype="ref">
????<!--播放的文件地址-->
????<param?name="InvokeURLs"?value="-1">
????<param?name="Language"?value="-1">
????<param?name="Mute"?value="0">
????<!--是否靜音-->
????<param?name="PlayCount"?value="10">
????<!--重復(fù)播放次數(shù),0為始終重復(fù)-->
????<param?name="PreviewMode"?value="-1">
????<param?name="Rate"?value="1">
????<!--播放速率控制,1為正常,允許小數(shù)-->
????<param?name="SAMIStyle"?value>
????<!--SAMI樣式-->
????<param?name="SAMILang"?value>
????<!--SAMI語(yǔ)言-->
????<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">
????<!--是否顯示字幕,為一塊黑色,下面會(huì)有一大塊黑色,一般不顯示-->
????<param?name="ShowControls"?value="-1">
????<!--是否顯示控制,比如播放,停止,暫停-->
????<param?name="ShowAudioControls"?value="-1">
????<!--是否顯示音量控制-->
????<param?name="ShowDisplay"?value="0">
????<!--顯示節(jié)目信息,比如版權(quán)等-->
????<param?name="ShowGotoBar"?value="0">
????<!--是否啟用上下文菜單-->
????<param?name="ShowPositionControls"?value="-1">
????<!--是否顯示往前往后及列表,如果顯示一般也都是灰色不可控制-->
????<param?name="ShowStatusBar"?value="-1">
????<!--當(dāng)前播放信息,顯示是否正在播放,及總播放時(shí)間和當(dāng)前播放到的時(shí)間-->
????<param?name="ShowTracker"?value="-1">
????<!--是否顯示當(dāng)前播放跟蹤條,即當(dāng)前的播放進(jìn)度條-->
????<param?name="TransparentAtStart"?value="-1">
????<param?name="VideoBorderWidth"?value="0">
????<!--顯示部的寬部,如果小于視頻寬,則最小為視頻寬,或者加大到指定值,并自動(dòng)加大高度.此改變只改變四周的黑框大小,不改變視頻大小-->
????<param?name="VideoBorderColor"?value="0">
????<!--顯示黑色框的顏色,?為RGB值,比如ffff00為黃色-->
????<param?name="VideoBorder3D"?value="0">
????<param?name="Volume"?value="0">
????<!--音量大小,負(fù)值表示是當(dāng)前音量的減值,值自動(dòng)會(huì)取絕對(duì)值,最大為0,最小為-9640-->
????<param?name="WindowlessVideo"?value="0">
????<!--如果是0可以允許全屏,否則只能在窗口中查看-->
</object>
上面的這個(gè)播放器是老式的那種,6.4版本!新式播放器是在MediaPlayer9.0以后出現(xiàn)的,也就是說只有裝了9.0或9.0以上的播放器才能正常使用的。
-------------------------------------------------------------------------------
下面是新式播放器代碼,相對(duì)以前的來說要簡(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="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">
????<!--開始播放是否自動(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>
Real?Player?網(wǎng)頁(yè)播放器?參數(shù)含義
參數(shù):autostart?屬性:True或是False?作用:指定是否自動(dòng)播放指定的源文件?
參數(shù):backgroundcolor?屬性:任何用符號(hào)“#”開頭的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,FFCtrl,RWCtrl,MuteCtrl,MuteVolume,VolumeSlider,PositionSlider,TACCtrl,HomeCtrl,InfoVolumePanel,InfoPanel,StatusBar,StatusField,PositionField?作用:可以讓你指定那些控制是可見的。?
參數(shù):height?屬性:任何整數(shù)值作用:指定RealPlayer元素的高度,單位:像素?
參數(shù):id?屬性:任何字符串作用:為標(biāo)簽中的RealPlayer元素指定名字。?
參數(shù):imagestatus?屬性:True或是False?作用:指定是否在圖像窗口中顯示狀態(tài)信息,默認(rèn)值是true?
參數(shù):loop?屬性:True或是False?作用:可以讓你指定片斷是否無限循環(huán)?
參數(shù):maintainaspect?屬性:True或是False?作用:默認(rèn)RealPlayer拉伸所有的片斷來充滿整個(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ù)、方法和過程
這是?Real?Player?ActiveX?Control?Library?(Version?1.0)?的所有函數(shù)與方法,有興趣可以研究一下。
附 應(yīng)用實(shí)例: http://aboutplayer.com/ex.html
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?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視頻控制之使用指南
□播放方法和屬性
????除播放、暫停、停止外,媒體播放器還可用下面的屬性:
????掃描(Scanning)——與錄像機(jī)的快進(jìn)快倒功能類似;
????搜索(Seeking)——直接移到剪輯中標(biāo)記的特定上演時(shí)間;
□播放
????媒體播放器提供了兩種技術(shù)來指定要播放的媒體名稱(剪輯),你可以設(shè)置?FileName?屬性,或調(diào)用?Open?方法。?如果?AutoStart?屬性的值是?true?的話,當(dāng)?FileName?屬性被設(shè)置成該電影剪輯的?URL?后,該電影剪輯將開始播放;否則電影剪輯不會(huì)開始播放,?除非你調(diào)用?Play?方法。?Open?方法開始播放是異步的,它不象?Play?方法要等到其他的進(jìn)程結(jié)束后才開始播放。
????媒體播放器提供了下面的類似錄像機(jī)的屬性和方法來控制流媒體的播放:
????Play、Stop、Pause?方法,來開始、停止、暫停流媒體。
????PlayCount?屬性,設(shè)置文件播放的次數(shù)。
????AutoRewind?屬性,確定當(dāng)停止播放時(shí)是否返回到電影剪輯的開始部分。
□音頻控制
????媒體播放器提供了下面的屬性來管理音頻:
????Balance?屬性,確定左右音箱的聲音平衡;
????Volume?屬性,用來加大或降低音量;
????Mute?屬性,用來關(guān)閉或打開聲音;
????※你可以將?ShowAudioControls?屬性設(shè)為?true?來在控制欄添加處理聲音的控件。
□掃描
????媒體播放器提供了下面的屬性用以掃描:
????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)前位置(用秒度量),可用來將播放頭移到剪輯中指定的點(diǎn);
????PositionChange?事件,當(dāng)設(shè)置?CurrentPosition?屬性時(shí)觸發(fā);
????※要想搜索到任意的時(shí)間,必須將?CanSeek?屬性設(shè)為?true,要想搜索到標(biāo)記點(diǎn),必須將?CanSeekToMarkers?屬性設(shè)為?true。
□媒體播放器的外觀界面
????在網(wǎng)頁(yè)中,你可以通過相關(guān)屬性來控制媒體播放器的哪些部分出現(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)欄;
????下面的屬性用來決定顯示哪一個(gè)元素:
????ShowControls?屬性:是否顯示控制欄(包括播放控件及可選的聲音和位置控件);
????ShowAudioControls?屬性:是否在控制欄顯示聲音控件(靜音按鈕和音量滑塊);
????ShowPositionControls?屬性:是否在控制欄顯示位置控件(包括向后跳進(jìn)、快退、快進(jìn)、向前跳進(jìn)、預(yù)覽播放列表中的每個(gè)剪輯);
????ShowTracker?屬性:是否顯示搜索欄;
????ShowDisplay?屬性:是否顯示顯示面板(用來提供節(jié)目與剪輯的信息);
????ShowCaptioning?屬性:是否顯示字幕顯示面板;
????ShowGotoBar?屬性:是否顯示轉(zhuǎn)到欄;
????ShowStatusBar?屬性:是否顯示狀態(tài)欄;
□播放列表
????媒體播放器提供下面的方法來訪問播放列表中的剪輯:
????Next?方法,跳到節(jié)目(播放列表)中的下一個(gè)剪輯;
????Previous?方法,跳回到節(jié)目中的上一個(gè)剪輯;
????媒體播放器的一個(gè)特性是能夠預(yù)覽節(jié)目中的每一個(gè)剪輯,使用如下屬性:
????PreviewMode?屬性,決定媒體播放器當(dāng)前是否處于預(yù)覽模式;
????CanPreview?屬性,決定媒體播放器能否處于預(yù)覽模式;
????在windows?媒體元文件中,可以為每一個(gè)剪輯指定預(yù)覽時(shí)間——PREVIEWDURATION,如果沒有指定,那么默認(rèn)的預(yù)覽時(shí)間是10秒鐘。
????你也可以用Windows?媒體元文件來添加?watermarks?與?banners,元文件也支持插入廣告時(shí)的無間隙流切換。
□節(jié)目信息
????使用?GetMediaInfoString?方法可以返回相關(guān)剪輯或節(jié)目的如下信息:
????文件名:File?name
????標(biāo)題:Title
????描述:Description
????作者:Author
????版權(quán):Copyright
????級(jí)別:Rating
????URLs:logo?icon、watermark、banner的地址
????剪輯信息可以放在媒體文件中,也可以放在Windows?媒體元文件中,或者兩者都放。如果在元文件中指定了剪輯信息,那么用?GetMediaInfoString?方法返回的就是元文件中的信息,而不會(huì)返回剪輯中包含的信息。
????在元文件中,附加信息可以放置在每一個(gè)剪輯或節(jié)目的?PARAM標(biāo)簽中。你可以為每個(gè)剪輯添加任意多個(gè)?PARAM?標(biāo)簽,用來存儲(chǔ)自定義的信息或鏈接到相關(guān)站點(diǎn)。在?PARAM?標(biāo)簽中的信息可以通過?GetMediaParameter?方法來訪問。
????下面的屬性返回有關(guān)大小和時(shí)間的信息:
????ImageSourceHeight、ImageSourceWidth:返回圖像窗口的顯示尺寸;
????Duration?屬性,返回剪輯的長(zhǎng)度(秒),?要檢測(cè)這個(gè)屬性是否包含有效的數(shù)值,請(qǐng)檢查IsDurationValid?屬性。(對(duì)于廣播的視頻,其長(zhǎng)度是不可預(yù)知的)。
□字幕
????你可以用?.smi?文件來為你的節(jié)目添加字幕。媒體播放器支持下面的屬性來處理字幕:
????SAMIFileName?屬性,指定?.smi?文件的名字;
????SAMILang?屬性,指定字幕的語(yǔ)言(如果沒有指定則使用第一種語(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)程來響應(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)。如果腳本命令沒有指定一個(gè)幀,將由?DefaultFrame?屬性決定將?URL?頁(yè)裝入哪一幀。
????你可以通過設(shè)置?InvokeURLs?屬性來決定是否自動(dòng)處理?URL?型的腳本命令。如果這個(gè)屬性的值為?false?,媒體播放器控件將忽視?URL型命令。但是腳本命令事件仍會(huì)觸發(fā),這就允許你有選擇地處理?URL?型命令。
????URL?型命令指定的是?URL?的相對(duì)地址。基地址是由?BaseURL屬性指定的。媒體播放器控件傳送的腳本命令事件的命令參數(shù)是鏈接好的地址。
????2)FILENAME型命令:當(dāng)媒體播放器控件收到一個(gè)FILENAME型的命令時(shí),它將?FileName屬性設(shè)置為腳本命令提供的文件,之后媒體播放器會(huì)打開這個(gè)文件開始播放。?媒體播放器控件總是自動(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?元素,并打開匹配的標(biāo)題,但不播放,直到收到來自?EVENT型命令的同名真實(shí)事件。
□捕捉鍵盤和鼠標(biāo)事件
????EnableContextMenu?與?ClickToPlay?屬性為用戶提供了在圖像窗口進(jìn)行操作的方法。
如果?EnableContextMenu?屬性為?true?,在圖像窗口右擊鼠標(biāo)可以打開關(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)生;
????要接收鍵盤事件,請(qǐng)將?SendKeyboardEvents?屬性設(shè)為?true?。鍵盤事件有:
????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:打開狀態(tài);
????Bandwidth:帶寬;
????支持的事件有:
????OpenStateChange:打開狀態(tài)改變(僅當(dāng)SendOpenStateChangeEvents屬性為true時(shí)觸發(fā))
????PlayStateChange:播放狀態(tài)改變(僅當(dāng)SendPlayStateChangeEvents屬性為true時(shí)觸發(fā))
????EndOfStream:流結(jié)束時(shí)觸發(fā);
????NewStream:打開新流時(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è)下面的屬性來確定具體的錯(cuò)誤信息:
????HasError:檢測(cè)目前的媒體播放器是否有錯(cuò)誤;
????ErrorCode:提供與該類型錯(cuò)誤相關(guān)的代碼值;
????ErrorDescription:提供錯(cuò)誤的描述信息;
????ErrorCorrection:指定媒體播放器對(duì)該類型的錯(cuò)誤進(jìn)行校正;
□播放CD
????媒體播放器將?CD?看作(在每個(gè)音軌的開頭具有標(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>
????之后你可以用?Play?方法播放?CD?了。
????你可以在?windows?媒體元文件中指定播放順序以及每個(gè)音軌的信息。示例如下:
<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="cdaudio:"?/>
??????<STARTMARKER?NUMBER="1"/>?
??????<ENDMARKER?NUMBER="2"/>?
???</ENTRY>
????<ENTRY>
??????<TITLE>Track?2:?Title?2</TITLE>
??????<REF?HREF="cdaudio:"?/>
??????<STARTMARKER?NUMBER="2"/>?
??????<ENDMARKER?NUMBER="3"/>?
????</ENTRY>
????<ENTRY>
??????<TITLE>Track?3:?Title?3</TITLE>
??????<REF?HREF="cdaudio:"?/>
??????<STARTMARKER?NUMBER="3"/>?
??????<ENDMARKER?NUMBER="4"/>?
????</ENTRY>
????<ENTRY>
??????<TITLE>Track?4:?Title?4</TITLE>
??????<REF?HREF="cdaudio:"?/>
??????<STARTMARKER?NUMBER="4"/>?
????</ENTRY>
</ASX>
(默認(rèn)0為否,-1或1為是)
<object?classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"?id="MediaPlayer1"?width="286"?height="225">
????<param?name="AudioStream"?value="-1">
????<param?name="AutoSize"?value="-1">
????<!--是否自動(dòng)調(diào)整播放大小-->
????<param?name="AutoStart"?value="-1">
????<!--是否自動(dòng)播放-->
????<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">
????<!--緩沖時(shí)間-->
????<param?name="CaptioningID"?value>
????<param?name="ClickToPlay"?value="-1">
????<param?name="CursorType"?value="0">
????<param?name="CurrentPosition"?value="0">
????<!--當(dāng)前播放進(jìn)度?-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處理,小數(shù)則采用四舍五入然后按前的處理-->
????<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">
????<!--是否允許拉動(dòng)播放進(jìn)度條到任意地方播放-->
????<param?name="Filename"?value="01.wma"?valuetype="ref">
????<!--播放的文件地址-->
????<param?name="InvokeURLs"?value="-1">
????<param?name="Language"?value="-1">
????<param?name="Mute"?value="0">
????<!--是否靜音-->
????<param?name="PlayCount"?value="10">
????<!--重復(fù)播放次數(shù),0為始終重復(fù)-->
????<param?name="PreviewMode"?value="-1">
????<param?name="Rate"?value="1">
????<!--播放速率控制,1為正常,允許小數(shù)-->
????<param?name="SAMIStyle"?value>
????<!--SAMI樣式-->
????<param?name="SAMILang"?value>
????<!--SAMI語(yǔ)言-->
????<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">
????<!--是否顯示字幕,為一塊黑色,下面會(huì)有一大塊黑色,一般不顯示-->
????<param?name="ShowControls"?value="-1">
????<!--是否顯示控制,比如播放,停止,暫停-->
????<param?name="ShowAudioControls"?value="-1">
????<!--是否顯示音量控制-->
????<param?name="ShowDisplay"?value="0">
????<!--顯示節(jié)目信息,比如版權(quán)等-->
????<param?name="ShowGotoBar"?value="0">
????<!--是否啟用上下文菜單-->
????<param?name="ShowPositionControls"?value="-1">
????<!--是否顯示往前往后及列表,如果顯示一般也都是灰色不可控制-->
????<param?name="ShowStatusBar"?value="-1">
????<!--當(dāng)前播放信息,顯示是否正在播放,及總播放時(shí)間和當(dāng)前播放到的時(shí)間-->
????<param?name="ShowTracker"?value="-1">
????<!--是否顯示當(dāng)前播放跟蹤條,即當(dāng)前的播放進(jìn)度條-->
????<param?name="TransparentAtStart"?value="-1">
????<param?name="VideoBorderWidth"?value="0">
????<!--顯示部的寬部,如果小于視頻寬,則最小為視頻寬,或者加大到指定值,并自動(dòng)加大高度.此改變只改變四周的黑框大小,不改變視頻大小-->
????<param?name="VideoBorderColor"?value="0">
????<!--顯示黑色框的顏色,?為RGB值,比如ffff00為黃色-->
????<param?name="VideoBorder3D"?value="0">
????<param?name="Volume"?value="0">
????<!--音量大小,負(fù)值表示是當(dāng)前音量的減值,值自動(dòng)會(huì)取絕對(duì)值,最大為0,最小為-9640-->
????<param?name="WindowlessVideo"?value="0">
????<!--如果是0可以允許全屏,否則只能在窗口中查看-->
</object>
上面的這個(gè)播放器是老式的那種,6.4版本!新式播放器是在MediaPlayer9.0以后出現(xiàn)的,也就是說只有裝了9.0或9.0以上的播放器才能正常使用的。
-------------------------------------------------------------------------------
下面是新式播放器代碼,相對(duì)以前的來說要簡(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="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">
????<!--開始播放是否自動(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>
Real?Player?網(wǎng)頁(yè)播放器?參數(shù)含義
參數(shù):autostart?屬性:True或是False?作用:指定是否自動(dòng)播放指定的源文件?
參數(shù):backgroundcolor?屬性:任何用符號(hào)“#”開頭的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,FFCtrl,RWCtrl,MuteCtrl,MuteVolume,VolumeSlider,PositionSlider,TACCtrl,HomeCtrl,InfoVolumePanel,InfoPanel,StatusBar,StatusField,PositionField?作用:可以讓你指定那些控制是可見的。?
參數(shù):height?屬性:任何整數(shù)值作用:指定RealPlayer元素的高度,單位:像素?
參數(shù):id?屬性:任何字符串作用:為標(biāo)簽中的RealPlayer元素指定名字。?
參數(shù):imagestatus?屬性:True或是False?作用:指定是否在圖像窗口中顯示狀態(tài)信息,默認(rèn)值是true?
參數(shù):loop?屬性:True或是False?作用:可以讓你指定片斷是否無限循環(huán)?
參數(shù):maintainaspect?屬性:True或是False?作用:默認(rèn)RealPlayer拉伸所有的片斷來充滿整個(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ù)、方法和過程
這是?Real?Player?ActiveX?Control?Library?(Version?1.0)?的所有函數(shù)與方法,有興趣可以研究一下。
附 應(yīng)用實(shí)例: http://aboutplayer.com/ex.html
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?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視頻控制之使用指南
□播放方法和屬性
????除播放、暫停、停止外,媒體播放器還可用下面的屬性:
????掃描(Scanning)——與錄像機(jī)的快進(jìn)快倒功能類似;
????搜索(Seeking)——直接移到剪輯中標(biāo)記的特定上演時(shí)間;
□播放
????媒體播放器提供了兩種技術(shù)來指定要播放的媒體名稱(剪輯),你可以設(shè)置?FileName?屬性,或調(diào)用?Open?方法。?如果?AutoStart?屬性的值是?true?的話,當(dāng)?FileName?屬性被設(shè)置成該電影剪輯的?URL?后,該電影剪輯將開始播放;否則電影剪輯不會(huì)開始播放,?除非你調(diào)用?Play?方法。?Open?方法開始播放是異步的,它不象?Play?方法要等到其他的進(jìn)程結(jié)束后才開始播放。
????媒體播放器提供了下面的類似錄像機(jī)的屬性和方法來控制流媒體的播放:
????Play、Stop、Pause?方法,來開始、停止、暫停流媒體。
????PlayCount?屬性,設(shè)置文件播放的次數(shù)。
????AutoRewind?屬性,確定當(dāng)停止播放時(shí)是否返回到電影剪輯的開始部分。
□音頻控制
????媒體播放器提供了下面的屬性來管理音頻:
????Balance?屬性,確定左右音箱的聲音平衡;
????Volume?屬性,用來加大或降低音量;
????Mute?屬性,用來關(guān)閉或打開聲音;
????※你可以將?ShowAudioControls?屬性設(shè)為?true?來在控制欄添加處理聲音的控件。
□掃描
????媒體播放器提供了下面的屬性用以掃描:
????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)前位置(用秒度量),可用來將播放頭移到剪輯中指定的點(diǎn);
????PositionChange?事件,當(dāng)設(shè)置?CurrentPosition?屬性時(shí)觸發(fā);
????※要想搜索到任意的時(shí)間,必須將?CanSeek?屬性設(shè)為?true,要想搜索到標(biāo)記點(diǎn),必須將?CanSeekToMarkers?屬性設(shè)為?true。
□媒體播放器的外觀界面
????在網(wǎng)頁(yè)中,你可以通過相關(guān)屬性來控制媒體播放器的哪些部分出現(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)欄;
????下面的屬性用來決定顯示哪一個(gè)元素:
????ShowControls?屬性:是否顯示控制欄(包括播放控件及可選的聲音和位置控件);
????ShowAudioControls?屬性:是否在控制欄顯示聲音控件(靜音按鈕和音量滑塊);
????ShowPositionControls?屬性:是否在控制欄顯示位置控件(包括向后跳進(jìn)、快退、快進(jìn)、向前跳進(jìn)、預(yù)覽播放列表中的每個(gè)剪輯);
????ShowTracker?屬性:是否顯示搜索欄;
????ShowDisplay?屬性:是否顯示顯示面板(用來提供節(jié)目與剪輯的信息);
????ShowCaptioning?屬性:是否顯示字幕顯示面板;
????ShowGotoBar?屬性:是否顯示轉(zhuǎn)到欄;
????ShowStatusBar?屬性:是否顯示狀態(tài)欄;
□播放列表
????媒體播放器提供下面的方法來訪問播放列表中的剪輯:
????Next?方法,跳到節(jié)目(播放列表)中的下一個(gè)剪輯;
????Previous?方法,跳回到節(jié)目中的上一個(gè)剪輯;
????媒體播放器的一個(gè)特性是能夠預(yù)覽節(jié)目中的每一個(gè)剪輯,使用如下屬性:
????PreviewMode?屬性,決定媒體播放器當(dāng)前是否處于預(yù)覽模式;
????CanPreview?屬性,決定媒體播放器能否處于預(yù)覽模式;
????在windows?媒體元文件中,可以為每一個(gè)剪輯指定預(yù)覽時(shí)間——PREVIEWDURATION,如果沒有指定,那么默認(rèn)的預(yù)覽時(shí)間是10秒鐘。
????你也可以用Windows?媒體元文件來添加?watermarks?與?banners,元文件也支持插入廣告時(shí)的無間隙流切換。
□節(jié)目信息
????使用?GetMediaInfoString?方法可以返回相關(guān)剪輯或節(jié)目的如下信息:
????文件名:File?name
????標(biāo)題:Title
????描述:Description
????作者:Author
????版權(quán):Copyright
????級(jí)別:Rating
????URLs:logo?icon、watermark、banner的地址
????剪輯信息可以放在媒體文件中,也可以放在Windows?媒體元文件中,或者兩者都放。如果在元文件中指定了剪輯信息,那么用?GetMediaInfoString?方法返回的就是元文件中的信息,而不會(huì)返回剪輯中包含的信息。
????在元文件中,附加信息可以放置在每一個(gè)剪輯或節(jié)目的?PARAM標(biāo)簽中。你可以為每個(gè)剪輯添加任意多個(gè)?PARAM?標(biāo)簽,用來存儲(chǔ)自定義的信息或鏈接到相關(guān)站點(diǎn)。在?PARAM?標(biāo)簽中的信息可以通過?GetMediaParameter?方法來訪問。
????下面的屬性返回有關(guān)大小和時(shí)間的信息:
????ImageSourceHeight、ImageSourceWidth:返回圖像窗口的顯示尺寸;
????Duration?屬性,返回剪輯的長(zhǎng)度(秒),?要檢測(cè)這個(gè)屬性是否包含有效的數(shù)值,請(qǐng)檢查IsDurationValid?屬性。(對(duì)于廣播的視頻,其長(zhǎng)度是不可預(yù)知的)。
□字幕
????你可以用?.smi?文件來為你的節(jié)目添加字幕。媒體播放器支持下面的屬性來處理字幕:
????SAMIFileName?屬性,指定?.smi?文件的名字;
????SAMILang?屬性,指定字幕的語(yǔ)言(如果沒有指定則使用第一種語(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)程來響應(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)。如果腳本命令沒有指定一個(gè)幀,將由?DefaultFrame?屬性決定將?URL?頁(yè)裝入哪一幀。
????你可以通過設(shè)置?InvokeURLs?屬性來決定是否自動(dòng)處理?URL?型的腳本命令。如果這個(gè)屬性的值為?false?,媒體播放器控件將忽視?URL型命令。但是腳本命令事件仍會(huì)觸發(fā),這就允許你有選擇地處理?URL?型命令。
????URL?型命令指定的是?URL?的相對(duì)地址。基地址是由?BaseURL屬性指定的。媒體播放器控件傳送的腳本命令事件的命令參數(shù)是鏈接好的地址。
????2)FILENAME型命令:當(dāng)媒體播放器控件收到一個(gè)FILENAME型的命令時(shí),它將?FileName屬性設(shè)置為腳本命令提供的文件,之后媒體播放器會(huì)打開這個(gè)文件開始播放。?媒體播放器控件總是自動(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?元素,并打開匹配的標(biāo)題,但不播放,直到收到來自?EVENT型命令的同名真實(shí)事件。
□捕捉鍵盤和鼠標(biāo)事件
????EnableContextMenu?與?ClickToPlay?屬性為用戶提供了在圖像窗口進(jìn)行操作的方法。
如果?EnableContextMenu?屬性為?true?,在圖像窗口右擊鼠標(biāo)可以打開關(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)生;
????要接收鍵盤事件,請(qǐng)將?SendKeyboardEvents?屬性設(shè)為?true?。鍵盤事件有:
????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:打開狀態(tài);
????Bandwidth:帶寬;
????支持的事件有:
????OpenStateChange:打開狀態(tài)改變(僅當(dāng)SendOpenStateChangeEvents屬性為true時(shí)觸發(fā))
????PlayStateChange:播放狀態(tài)改變(僅當(dāng)SendPlayStateChangeEvents屬性為true時(shí)觸發(fā))
????EndOfStream:流結(jié)束時(shí)觸發(fā);
????NewStream:打開新流時(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è)下面的屬性來確定具體的錯(cuò)誤信息:
????HasError:檢測(cè)目前的媒體播放器是否有錯(cuò)誤;
????ErrorCode:提供與該類型錯(cuò)誤相關(guān)的代碼值;
????ErrorDescription:提供錯(cuò)誤的描述信息;
????ErrorCorrection:指定媒體播放器對(duì)該類型的錯(cuò)誤進(jìn)行校正;
□播放CD
????媒體播放器將?CD?看作(在每個(gè)音軌的開頭具有標(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>
????之后你可以用?Play?方法播放?CD?了。
????你可以在?windows?媒體元文件中指定播放順序以及每個(gè)音軌的信息。示例如下:
<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="cdaudio:"?/>
??????<STARTMARKER?NUMBER="1"/>?
??????<ENDMARKER?NUMBER="2"/>?
???</ENTRY>
????<ENTRY>
??????<TITLE>Track?2:?Title?2</TITLE>
??????<REF?HREF="cdaudio:"?/>
??????<STARTMARKER?NUMBER="2"/>?
??????<ENDMARKER?NUMBER="3"/>?
????</ENTRY>
????<ENTRY>
??????<TITLE>Track?3:?Title?3</TITLE>
??????<REF?HREF="cdaudio:"?/>
??????<STARTMARKER?NUMBER="3"/>?
??????<ENDMARKER?NUMBER="4"/>?
????</ENTRY>
????<ENTRY>
??????<TITLE>Track?4:?Title?4</TITLE>
??????<REF?HREF="cdaudio:"?/>
??????<STARTMARKER?NUMBER="4"/>?
????</ENTRY>
</ASX>
總結(jié)
以上是生活随笔為你收集整理的网页播放器代码集中营(2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三菱PLC编程口通信上位机端报文和jav
- 下一篇: opencv打开本地文件.avi提示找不