新聞中心
前言
跳過廢話,直接看正文
近些年來,彈幕這種實時視頻評論越來越火爆,國內(nèi)幾乎所有的視頻網(wǎng)站在播放器中開始加入了彈幕的功能。彈幕已經(jīng)成了很多人觀看視頻時不可缺少的一部分,我也是其中之一。
只是有時候因為網(wǎng)絡(luò)問題、在線視頻資源缺失等原因,人們通常會在本地觀看離線視頻,這時候要想看彈幕就有些麻煩了。經(jīng)過搜索,我發(fā)現(xiàn)確實有一些軟件能夠?qū)崿F(xiàn)在觀看離線視頻與彈幕的功能,比較出名的有BiliLocal以及DanDanPlayer這兩個,在本質(zhì)上,他們都是本地視頻播放器,并通過在線搜索從各個彈幕網(wǎng)站下載彈幕資源并嵌入視頻進行播放,都做的相當不錯,只是在操作上有些麻煩,且都限制用戶必須使用該播放器。
因此,我就用swing寫了這個小工具,它不是視頻播放器,而是專門用來播放彈幕文件的彈幕播放器,能夠與視頻播放器一起配合為用戶提供離線觀看視頻以及彈幕的功能。
當然,這多少還是有重造車輪之嫌,畢竟嵌入彈幕的視頻播放器也能夠達到相同的效果,且集成的很好。只是對于程序員來說,用自己寫的工具會更爽一些吧。這個東西寫起來也就一兩天的時間,就當做對swing編程的學習過程了。
正文
目錄
•開發(fā)環(huán)境
•軟件架構(gòu)
•項目展示
•一些問題
開發(fā)環(huán)境
•操作系統(tǒng):windows7
•語言:Java
•界面工具包:Swing
•開發(fā)工具:IntellIj IDEA 2016.2.4
•版本管理:git
•運行環(huán)境:windows7、8、10
軟件架構(gòu)
軟件需要支持下面幾種功能:
(1)根據(jù)url下載彈幕網(wǎng)站的彈幕文件
(2)加載離線彈幕文件并播放
(3)彈幕窗口置頂且背景透明
(4)基本的播放器控制功能(時間軸、暫停、播放)
我個人因為實習經(jīng)歷以及實驗室項目的原因,參與開發(fā)了幾個網(wǎng)站項目,因此對MVC框架比較熟悉,但是后來簡單接觸了下MVP模式,雖然是基于MVC的簡單修改,但是個人覺得就代碼解耦而言,MVP比MVC做得更好,因此就采用了MVP架構(gòu)模式。當然,因為這是個小項目,為了節(jié)省時間,沒有嚴格地按照MVP的架構(gòu)來設(shè)計,(略去了Presenter 與View之間的接口層、減少了Presenter的數(shù)量等),但對此項目而言影響不大。
在此列出整個項目的文件結(jié)構(gòu)圖:
項目展示
彈幕控制器:
對此項目的源碼感興趣的朋友可以直接看我的git倉庫
一些問題
我對swing還不太熟悉,因此在開發(fā)過程中遇到了一些問題,有些已經(jīng)解決,有些還沒有解決,現(xiàn)在列出一些比較關(guān)鍵的供大家參考:
• 彈幕主窗口要實現(xiàn)背景透明但文字不透明的效果
這個在windows下可以調(diào)用AWTUtilities中的相關(guān)函數(shù)實現(xiàn),具體代碼如下所示:
public class TransparentWindow extends JFrame { public TransparentWindow(int width, int height) { this.setSize(width, height); this.setUndecorated(true); AWTUtilities.setWindowOpaque(this, false); } }
新聞名稱:基于swing開發(fā)彈幕播放器-創(chuàng)新互聯(lián)
URL地址:http://fisionsoft.com.cn/article/dppgpi.html