大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 教你輕松制作Java視頻播放器

教你輕松制作Java視頻播放器

更新時間:2019-09-25 09:13:26 來源:動力節點 瀏覽3434次



  當年入坑Java是因為它的跨平臺優勢。那時我認為,”編寫一次,處處運行。”這聽上去多么牛逼,應該是所有語言發展的終極之道,java勢必會一統天下。


  然而事實證明,那時的我還是太年輕。


  正所謂魚和熊掌不可兼得,若要享受跨平臺帶來的方便,便不可避免地要接受性能上的不足。事實上,java一直在致力于提高虛擬機的性能(JIT等技術),但面對對實時計算性能要求很高或涉及到用硬件優化的任務(視頻的硬件編碼、解碼)時,仍遠遠比不上c或c++。因此,很少能夠看到有人用java來寫這類軟件。


  回到正題,要想寫一個視頻播放器,勢必要處理不同的視頻格式(mp4、avi、rmvb、flv等)。每一類格式的視頻都必須要有對應的解碼器才能播放。絕大多數解碼器的庫都是基于效率高的c或c++寫成的,用java的寫解碼器的庫非常少。


  因此,要想用java寫一個視頻播放器,只有以下兩個選擇:


  ?使用純java編寫,自己編寫主流視頻格式的軟件解碼器、結合Java媒體框架(JMF)完成視頻解碼任務。


  ?使用jni調用現有的c或c++的解碼器庫,完成視頻解碼任務


  使用java自己編寫軟件解碼器的優點是能夠真正地實現跨平臺,也能很方便靈活地與swing框架結合。然而缺點是太過麻煩,先不說軟件解碼器的效率問題,各種主流視頻格式的解碼器的車輪能否成功地重造都是一個值得商榷的問題。


  因此,我采用了第二種辦法,通過jni調用現有的第三方視頻解碼庫來完成視頻解碼的任務,而視頻的顯示、控制的邏輯則交由java來完成。這樣便能夠實現一個效率較高的視頻播放器。值得一提的是,雖然根據平臺類型來調用不同平臺也能夠實現跨平臺,但是會受到諸多限制,這是不可避免的。


  接下來便來看看具體怎么實現一個視頻播放器吧。


  正文


  解碼器的選擇


  視頻格式有很多,解碼器也有很多,因此要分別尋找對應的解碼器并封裝成jni接口進行調用是一個繁瑣的任務,因此我們可以找一個已經封裝了多種主流解碼器的媒體處理框架(視頻播放器)的庫來直接進行調用。VLC是一個非常好的選擇。


  VLCmediaplayerVLC是一款自由、開源的跨平臺多媒體播放器及框架,可播放大多數多媒體文件,以及DVD、音頻CD、VCD及各類流媒體協議。


  在vlc的庫上,我們要用jni進行一定的封裝,從而能用java來調用視頻的解碼和播放控制接口。好在我們不必重造車輪。vlcj是一位國外開發者用java開發的一個媒體處理框架,底層使用的正是vlc播放器,通過jni調用vlc來完成音頻的解碼任務。

  

  開發流程


  ?安裝VLCMediaPlayer(我安裝的版本是2.2.4,最好安裝到默認目錄)


  ?建立普通maven項目,添加vlcj的依賴


  image.png

  ?正式開發


  接下來就是代碼干貨了,將會介紹三個項目,都是基于這個vlcj的視頻播放器。


  入門示例


  這是vlcj作者提供的入門示例程序,能夠快速實現一個簡單的視頻播放器,當然,僅僅是播放而已,不提供控制功能。


  這里用的vlcj中提供的內嵌視頻播放組件EmbeddedMediaPlayerComponent,通過其中的mediaPlayer中的playMedia方法可以直接播放視頻,視頻會渲染到EmbeddedMediaPlayerComponent上。EmbeddedMediaPlayerComponent這個組件中提供了很多其他功能,若要實現一個普通的視頻播放器,了解這個組件便足夠了。

  

  代碼

  image.png

  vlcj-player


  這是vlcj作者自己基于vlcj寫的一個開源播放器,功能很全面,完全可以用來作為平時的視頻播放器來使用。由于這個項目內容較多,不便將代碼列出。


  javaplayer


  這個是我基于vlcj寫的一個簡單的視頻播放器,支持一些簡單的視頻播放控制功能和播放彈幕的功能。


  后記


  在開發過程中遇到一些坑,如視頻渲染組件的透明問題,以及swing的重繪機制導致的一些界面顯示上的bug。有些完全解決了,有些則只是采用曲線救國的方法解決的。如果你在開也遇到了這些問題,登錄動力節點IT培訓官網咨詢在線客服老師。


  


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 手机看片一区二区 | 久久九九| 97成人在线视频 | 偷偷操不一样的久久 | 四虎在线成人免费网站 | 国产视频第二页 | 免费黄色福利 | 九九99热久久精品在线6手机 | 亚洲精品久久激情影院 | 影音先锋在线亚洲精品推荐 | 婷婷视频网站 | 未成人做爰视频www 我爱52avαv永久网站 | 变态捡到女婴h养成调教 | 欧洲国产伦久久久久久久 | 四虎黄色影视库 | a在线观看免费 | 婷婷综合在线 | 久久精品视频日本 | 在线se| 久久香蕉精品成人 | 国产成人aa在线观看视频 | 国产精品2020在线看亚瑟 | 欧美一区二区三区视频在线 | 亚洲国产人成在线观看 | 韩国 欧美 日产 国产精品 | 日韩精品一区二区三区四区 | 日韩欧美中 | 久久天天躁狠狠躁狠狠躁 | 亚洲免费在线观看视频 | 久久久日韩精品国产成人 | 精品在线一区二区三区 | 香蕉一区二区三区观 | 热热涩热热狠狠色香蕉综合 | 免费a级网站 | 九九久久久久午夜精选 | 999资源站| 欧美成人性做爰网站免费 | 欧美一级毛片高清毛片 | 香蕉蕉亚亚洲aav综合 | 欧美一级毛片高清毛片 | 在线观看日本免费视频大片一区 |