2011年5月30日 星期一

檢查瀏覽器是否支援WMP(Windows Media Player)

最近群裡有朋友提到用WMP外掛程式做網頁mp3播放機,在使用時需要檢查流覽器是否支援WMP;WMP的支援,IE下是用ActiveX,其它流覽器一般是用外掛程式。閒暇查了一下相關資料,寫了下面的檢測代碼,支持所有主流流覽器:

數位媒體串流-Windows Media Services - 使用JavaScrip操作撥放器及抓取clientData 元件(用戶端資料)資訊

<object classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" type="application/x-oleobject" 
id="wmp" width="0" height="0" style="width:0px;height:0px;"></object>

//基本屬性  
wmp.URL:String; //指定媒體位置,本機或網路位址
wmp.uiMode:String; //播放機介面模式,可為Full, Mini, None, Invisible
wmp.playState:integer; //播放狀態,1=停止,2=暫停,3=播放,6=正在緩衝,9=正在連接,10=準備就緒
wmp.enableContextMenu:Boolean; //啟用/禁用右鍵菜單
wmp.fullScreen:boolean; //是否全屏顯示
//播放機常用控制
wmp.controls.play; //播放
wmp.controls.pause; //暫停
wmp.controls.stop; //停止
wmp.controls.currentPosition:double; //當前進度
wmp.controls.currentPositionString:string; //當前進度,字串格式。如“00:23”
wmp.controls.fastForward; //快進
wmp.controls.fastReverse; //快退
wmp.controls.next; //下一曲
wmp.controls.previous; //上一曲
//播放機常用設置
wmp.settings.volume:integer; //音量,0-100
wmp.settings.autoStart:Boolean; //是否自動播放
wmp.settings.mute:Boolean; //是否靜音
wmp.settings.playCount:integer; //播放次數
wmp.settings.balance = -100; //(左聲)
wmp.settings.balance=100; //(右聲)
wmp.settings.balance=0; //(全聲)
//常用當前媒體屬性
wmp.currentMedia.duration:double; //媒體總長度
wmp.currentMedia.durationString:string; //媒體總長度,字串格式。如“03:24”
wmp.currentMedia.getItemInfo(const string); //獲取當前媒體資訊
wmp.currentMedia.setItemInfo(const string); //通過屬性名設置媒體資訊
wmp.currentMedia.name:string; //同currentMedia.getItemInfo("Title")
wmp.network.bufferingProgress; //緩衝百分比
wmp.network.downloadProgress; //下載百分比

2011年5月29日 星期日

數位媒體串流-Windows Media Services - clientData 元件(用戶端資料)

您可以使用 clientData 元件將描述文字、橫幅影像及記錄資訊與播放清單元件相關聯。描述文字 (如演出者名稱與曲目標題) 顯示於 Windows Media Player 9 系列、更新的版本或使用 Windows Media Player 9 系列 ActiveX 控制項的播放程式您也可以使用 clientData 元件來顯示橫幅影像、相關的超連結及工具提示文字。

您可以將 clientData 元件插入到播放清單中任何地方。它可以是除了另一個 clientData 元件之外任何元件的子元件。當 clientData 元件正在使用時,它所包含的資訊會傳送至用戶端。

excl、seq、priorityClass 或 switch 元件可以具有一個以上的 clientData 元件,而且每一個 clientData 元件可以包含多個屬性。根據新增的 clientData 元件所在的位置,資訊會套用至個別 media 元件或 media 元件的集合。clientData 元件會被更高層級的 clientData 元件所覆寫。例如,為 media 元件群組指定的標題資訊優先於為個別 media 元件指定的標題資訊。同樣,在檔案標題中編碼的文字屬性 (如標題、作者及著作權) 也會被播放清單中相對應的 clientData 元件所覆寫。

在下列範例中,seq 元件嵌套於另一個 seq 元件中。clientData 元件會為個別 media 元件及一連串嵌套的元件指定標題。首先播放 media 元件 Open.wmv,同時顯示個別 title屬性值 Welcome。然後從 Video1.wmv開始,播放嵌套順序中的項目。因為 clientData 元件是 seq 元件的子元件,所以 title 屬性值 Segment 1 將作為順序中所有 media 元件的標題顯示。與media 元件Video1.wmv 相關的 title 屬性值會被順序中的標題覆寫。















下列範例合併了多個 clientData 屬性。



copyright="(c) Company name" genre="Rock" title="Music" />


屬性 - 屬性可修改播放清單元件的內容。您可以使用 clientData 元件的下列選擇性屬性。

album
指定專輯名稱。相關資訊,請參閱 album 屬性。

artist
指定演出者名稱。相關資訊,請參閱 artist 屬性。

author
指定作者的名稱。相關資訊,請參閱 author 屬性。

bannerAbstract
指定作為橫幅影像 (顯示在 Windows Media Player 中) 工具提示顯示的文字。相關資訊,請參閱 bannerAbstract 屬性。

bannerInfoURL
指定使用者可藉由按一下 Windows Media Player 中的橫幅影像來進行存取的 URL。相關資訊,請參閱 bannerInfoURL 屬性。

bannerURL
指定出現在 Windows Media Player 的顯示面板中的影像檔案之URL。相關資訊,請參閱 bannerURL 屬性。

copyright
指定著作權資訊。相關資訊,請參閱 copyright 屬性。

genre
指定類別。相關資訊,請參閱 genre 屬性。

logURL
指定用來公佈記錄統計資料到原始伺服器或任何網頁伺服器的 URL。相關資訊,請參閱 logURL 屬性。

title
指定標題。相關資訊,請參閱 title 屬性。

數位媒體串流-Windows Media Services - media 元件

播放清單中的 media 元件提供了數位媒體來源的位置,並可指定數位媒體內容播放或呈現至用戶端的方式。media 元件可以參照任何數位媒體來源,這個來源可供資料來源外掛程式存取,並可由媒體或「播放清單分析」外掛程式分析。預設會啟用適當的外掛程式。

數位媒體來源範例包括本機電腦上的檔案、來自執行 Windows Media 編碼器或 Windows Media Services 的遠端電腦之串流、其他播放清單檔案、網頁伺服器上的 Active Server Page (ASP 網頁),或者協力廠商儲存系統上的數位媒體檔案。

下列範例顯示了一個由三種數位媒體類型組成的簡單播放清單:一個影像檔案、一個視訊檔,以及一個音訊檔:







以第一個列出的 media 元件開始,依序播放三個檔案。因為影像檔案沒有隱含期間,所以第一個 media 元件有 dur 屬性的指定值。

屬性-屬性可修改播放清單元件的內容。您可使用下列具有 media 元件的屬性。僅 src 屬性是必須的屬性。

src
指定數位媒體內容來源的名稱及位置。相關資訊,請參閱 src 屬性。

begin
指定 media 元件何時變為使用中。相關資訊,請參閱 begin 屬性。

clipBegin
指定數位媒體來源中播放開始的端點。相關資訊,請參閱 clipBegin 屬性。

clipEnd
指定數位媒體來源中播放結束的端點。相關資訊,請參閱 clipEnd 屬性。

dur
指定數位媒體來源播放的時間長度。相關資訊,請參閱 dur 屬性。

end
指定 media 元件何時變為不可用。相關資訊,請參閱 end 屬性。

syncEvent
指定用來觸發以開始,或是結束包裝函式播放清單中的元件。相關資訊,請參閱 syncEvent 屬性。

id
指定可供其他元件參照的 media 元件之名稱。相關資訊,請參閱 id 屬性。

mediaName
指定 media 元件的名稱以取代用戶端記錄及用戶端內容說明清單中的 src 屬性值。相關資訊,請參閱 mediaName 屬性。

noSkip
指定是否啟用 media 元件的向前快轉、倒帶、搜尋或略過。相關資訊,請參閱 noSkip 屬性。

repeatCount
指定 media 元件在停止之前重播的次數。如果未指定任何值,則該元件只會播放一次。相關資訊,請參閱repeatCount 屬性。

repeatDur
指定 media 元件在停止之前重播的時間長度。相關資訊,請參閱 repeatDur 屬性。

role
指定 media 元件的角色。相關資訊,請參閱 role 屬性。

下列播放清單範例顯示了具有 id、src 及 dur 屬性值的 media 元件: