天天看點

Flash全站的技術應用-Flash也能播放wmv,wma

前言

Flash能播放除flv,mp3以外的其它檔案格式嗎?結合Windows Media Player(以下簡稱WMP),答案是肯定的!不過有點可惜的是,這樣的播放器不相容FF浏覽器。

記得一個月前,luzhugao把自己做的Flash+WMP音樂播放器拿到經典論壇裡展示:

[url=http://www.zhugao.cn/player/index.html]

[color="#333366"]http://www.zhugao.cn/player/index.html[/color]

[/url]

當時,他的作品可是備受青睐,同時也引起了筆者的關注。因為筆者前段時間也剛做了個類似的,正在打算要做個也可以播放視訊的,是以想從他的作品中學習一下,然後再寫個教程給大家分享下。可恰逢luzhugao正在做商業版的播放器,他的所有東西都加密了,不友善拿他的來研究。把教程寫出來,也擔心他的版權會受侵犯(加上筆者也曾經是受害者)。不過幸運的是,筆者在luzhugao的播放器裡發現了有個顯示波形的視窗,那個就是用來顯示視訊用的!當發現了這點以後,筆者就可以在自己播放器的基礎上,研究怎麼做視訊播放了。

不過,筆者在做這個之前,也曾猶豫過。

因為我的網站之前是隻是打算放flv的,是以就通過遮罩把播放器的外框做成圓角,但是筆者的視訊都不是自己做的,直接用人家網站上的。目前flv如此不流行的情況下,筆者要用到自己的網站上,就非得先把人家的視訊下到自己的機上,轉成flv,再上傳。或者好一點的,就是一邊上傳一邊轉格式。但是,很多時候,視訊數量很多,而且時間也不短,要更新一次,恐怕需要幾天時間,太慢了。

如果隻複制視訊的位址,就可以把視訊更新到自己的網站上,那該多好啊。是以,結合WMP成為筆者的首選,可是,要把這樣的播放器定制成别的形狀就難得要命了,哪怕定得好,也不知道怎麼樣才能讓播放器跟網頁縫合起來。

然而,筆者還是嘗試了,結果發現,好像那個尖角也沒有太大影響,于是就做下去了。但是,現在進度條還沒有做出來,然後,點裡頭的圖檔,CD光牒都暫時沒有連結到視訊裡頭。自己感覺,特别是後兩者做起來會比較花時間,加上有人對我的教程期待已久,就先寫教程好了。

PS:其實WMP的代碼我也是在網上下一個來用的。

有個小尖角影響的播放器預覽:

[url=http://hbro.cincn.com/cindex.htm#contents=video]

[color="#333366"]http://hbro.cincn.com/cindex.htm#contents=video[/color]

[/url]

這裡,輕按兩下視訊視窗或者點十字按鈕都可以實作全屏播放,全屏後輕按兩下就可以恢複原來的大小。

為了讓大家相信這一播放器确實可以播放除flv以外的WMP視訊格式(注意,RM,RMVB那些不是WMP視訊格式,不能在這裡播放),筆者又做了一個示範文檔,讓讀者可以自行在Flash的文本框裡輸入網址來播放。如果沒有安全影響的話,估計本地的也是可以播放,不過路徑最好使用file:///的那種格式。當然你也可以直接點選右側播放清單裡頭的視訊來測試。

示範播放器位址:

[url=http://hbro.cincn.com/hbro/course/flashwebplayer/player.html]

[color="#333366"]http://hbro.cincn.com/hbro/course/flashwebplayer/player.html[/color]

[/url]

因為使用了WMP+Flash,是以基本上,整個播放器功能的實作都要通過JS,關于JS與AS的通訊,看下這文章,筆者在這裡就不再重複了。

[url=http://bbs.blueidea.com/viewthread.php?tid=2668305&extra=page%3D5%26filter%3Dtype%26typeid%3D16]

[color="#333366"]http://bbs.blueidea.com/viewthre ... Dtype%26typeid%3D16[/color]

[/url]

現在,筆者先以一個簡單的功能為例,說明Flash是怎麼樣控制視訊,并且視訊反過來如何改變Flash的目前狀态。

點播放清單的任一項目後,通過名為setvideo的fscommand,把清單路徑傳到HTML裡,此時,JS擷取到路徑,就可以設定視訊的路徑了。在示範文檔裡,WMP播放器的執行個體名設為video,那麼,在接收到fscommand以後,就可以作如下設定:

switch(command){

  case "setvideo":

    video.URL=args;

    break;

}

此時,如果大家耐心等待(時間由網速決定),将能等到視訊在WMP播放器裡播放了。但是,要讓使用者等待很長時間,又沒有任何提示的話,将讓浏覽者不耐煩,是以,有必要給使用者一些提示,讓使用者看到希望。

如果大家都線上聽過歌或者看過視訊的話,相信都會看到一些提示如“正在連接配接”,“正在緩沖”等播放狀态的消息,那麼,我們自己能否擷取呢?答案是肯定的。正在緩沖,正在播放,那些狀态其實都能觸發WMP控件的一些事件,并且能為我們所獲得。

本文轉自:http://www.5uflash.com/flashjiaocheng/Flashyuweb/838.html

繼續閱讀