top
Loading...
用Java多媒體框架設計自動播放機
天極IT資訊短信服務 電腦小技巧
資費:包月5元
手機:
介紹:細處著手,巧處用功。高手和菜鳥之間的差別就是:高手什么都知道,菜鳥知道一些。電腦小技巧收集最新奇招高招,讓你輕松踏上高手之路。


如果把Java媒體框架(http://java.sun.com/jmf)看作客戶端安裝的媒體播放機的話,那么這種框架并不是非常激動人心。它只支持少量媒體類型,并且事實上這些媒體類型都被象Windows媒體播放機以及QuickTime等其它的應用程序支持。

但是從內容供應商的觀點來看,下面這個事實更加有意義:JMF在所有的Java類型中都可用,這使在客戶端上不必要有任何特定的媒體技術就可以部署媒體--所需要的只是J2SE Java運行時間。

更重要的是它能利用.jar文件格式的一些性能把解碼器和媒體組成到一個文件中,創建一個"自我播放電影",使用了象WinZip和StuffIt這樣的壓縮應用程序大致相同的方式來創建自我展開文檔。

我們把此分為三個階段:

1.使JMF能夠播放.jar文件中的媒體。

2.只使用需要播放本地媒體所需的JMF的一部分創建一個輕量級.jar文件。

3.將代碼和媒體放入.jar文件,并且創建一個合適的manifest文檔以使它可以雙擊。

基本的JMF播放的關鍵是獲得Player,能解碼和渲染你的媒體。一般來說,這通過使用Manager獲得合適的DataSource來完成,在一個播放實例中提供了媒體流和流元數據,例如媒體格式。Manager然后找到一個Player來處理 DataSource。在兩種情況下,Manager結合一個帶有程序包前綴列表(象javax.media、com.ibm.media等等)的反射方案來試圖尋找合適的類,例如如果一個計劃的播放程序不能接受提供給它的DataSource,那么它就會拋出異常。

Manager沒有太多事要做,只是察看一下URL中的協議和文件擴展名,所以雖然它可以很容易的知道如何處理file:///Users/cadamson/mymp3stash/some.mp3,但是它不知道如何處理象jar:file:/Users/cadamson/dev/jmftests/spmovie-old/src/gatsbymovie.jar!/movie/themovie.mov這樣的URL。

為了緩和這種情況,我們可以寫一個DataSource,說得更準確一點就是一個PullDataSource,擔負為Manager描述細節的責任。JarEntryDataSource中沒有一個方法特別難;我們提供的PullSourceStream還需要實現幾個超級接口。

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗