Windows Media Video 是微軟推出的一種流媒體格式,它是在“同門”的ASF(Advanced Stream Format)格式升級延伸來得.在同等視頻質量下,WMV格式的體積非常小,因此很適合在網上播放和傳輸。Windows Media Player9兼容所有格式的WMV,官方編碼器是Windows Media Encoder ,但是如果你想轉制 高質量的wmv文件,那您一定要有超大的內存來處理數據...
無意中發現CASTPOST的播放器可以自己定義大小,對于WMV格式的在線播放可以說已經足夠快了,然后就費了好大勁把一些精彩的短片和一些經典的MTV轉化WMV格式放了上來,盡管現在不能下載了,但是只要不是連接人數過多,播放起來還是很流暢的^_^
WMP加入了ActiveX解碼器控件,不僅可以放曲子,還能放Flash和其它視頻文件







上面的這個播放器是老式的那種,6.4版本!新式播放器是在MediaPlayer9.0以后出現的,也就是說只有裝了9.0或9.0以上的播放器才能正常使用的。
--------------------------------------------------------------------------------
下面是新式播放器代碼,相對以前的來說要簡單很多:
















































RealOne播放器代碼:
































看著很多很復雜的樣子,其實就是多了些播放器參數,可以不要...
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文件一起使用??梢宰孯ealPlayer隨機播放列表中的文件
參數:src 屬性:任何合法的相對或是完整的URL 作用:指定播放的文件或是源文件的地址
參數:type 屬性:字符串作用:為嵌入插件指定MIME類型
參數:width 屬性:任何整數值作用:指定RealPlayer元素的寬度
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 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; |
網頁中wmp視頻控制之使用指南
//wmplayer.controls.currentPosition = wmplayer.currentMedia.duration * (i / 100)
//
//
//
□播放方法和屬性
除播放、暫停、停止外,媒體播放器還可用下面的屬性:
掃描(Scanning)——與錄像機的快進快倒功能類似;
搜索(Seeking)——直接移到剪輯中標記的特定上演時間;
□播放
媒體播放器提供了兩種技術來指定要播放的媒體名稱(剪輯),你可以設置 FileName 屬性,或調用 Open 方法。 如果 AutoStart 屬性的值是 true 的話,當 FileName 屬性被設置成該電影剪輯的 URL 后,該電影剪輯將開始播放;否則電影剪輯不會開始播放, 除非你調用 Play 方法。 Open 方法開始播放是異步的,它不象 Play 方法要等到其他的進程結束后才開始播放。
媒體播放器提供了下面的類似錄像機的屬性和方法來控制流媒體的播放:
Play、Stop、Pause 方法,來開始、停止、暫停流媒體。
PlayCount 屬性,設置文件播放的次數。
AutoRewind 屬性,確定當停止播放時是否返回到電影剪輯的開始部分。
□音頻控制
媒體播放器提供了下面的屬性來管理音頻:
Balance 屬性,確定左右音箱的聲音平衡;
Volume 屬性,用來加大或降低音量;
Mute 屬性,用來關閉或打開聲音;
※你可以將 ShowAudioControls 屬性設為 true 來在控制欄添加處理聲音的控件。
□掃描
媒體播放器提供了下面的屬性用以掃描:
FastForward 方法,快進;
FastReverse 方法,快倒;
Rate屬性,改變播放速率;
※要想使電影剪輯能被掃描,必須將 CanScan 和 AllowScan 屬性設為 true。
□搜索
用于搜索的屬性有:
MarkerCount 屬性,指剪輯中標記的總數量;
CurrentMaker、GetMarkerName、GetMarkerTime 方法,用于返回標記信息;
MarkerHit 事件,當遇到標記時觸發;
CurrentPosition 屬性,當前位置(用秒度量),可用來將播放頭移到剪輯中指定的點;
PositionChange 事件,當設置 CurrentPosition 屬性時觸發;
※要想搜索到任意的時間,必須將 CanSeek 屬性設為 true,要想搜索到標記點,必須將 CanSeekToMarkers 屬性設為 true。
□媒體播放器的外觀界面
在網頁中,你可以通過相關屬性來控制媒體播放器的哪些部分出現,哪些部分不出現。
媒體播放器包括如下元素:
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 媒體元文件中,或者兩者都放。
剪輯信息可以放在媒體文件中,也可以放在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:帶寬;
流狀態屬性包括:
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 屬性設為 CDAUDIO:,必須帶有冒號,如下所示:

















她們真的非常重要。一個網頁播放器,不管如何變化多端,都是這些方法、事件和屬性衍生的功能延伸,如快進、快退,左、右聲道,截取片段,重復、循環、隨機播放,拖放,點播,進度條滾動,時間正序、倒序及上一首、下一首、第一首、末一首等等。這里需要說明的是,上面 Windows Media Player 的方法屬性是針對 WMP 6.4 以上版本而言,6.4 以下版本的某些地方如全屏等是不同而有區別的。 簡單的網頁播放器譜樂在前面的專題中已列舉了許多實例。即在 HTML 代碼中插入: |


發表評論
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

評論