您好,登錄后才能下訂單哦!
VLC是pc時代流媒體播放器的標桿,相信大家都有接觸。VLC的流媒體部分是基于開源的live555庫。live555的代碼我稍微看過一些,基于C++的,說實話,代碼寫的有點亂,不太符合一個開源庫的檔次。不過,live555的有點是兼容性相當?shù)暮?,很多不是很標準的流媒體碼流,都能適當兼容。也正因為此,VLC作為一款播放器,較受歡迎。
最近我在開發(fā)一個android app,需要用到流媒體播放器,主要用于播放網(wǎng)絡(luò)上的http流媒體和rtsp流媒體。當然,第一想法肯定是直接用android自帶的mediaplayer(用的是封裝后的videoview)。事實上,mediaplayer也相當不錯,完美支持http。但是在支持rtsp上,不是很好,主要表現(xiàn)在緩沖時間較長,編程接口少,并且有些rtsp鏈接無法播放。
于是開始關(guān)注第三方播放器,可選的是兩個:一個是vlc,老牌播放器,兼容性好,口碑好,但是在android平臺上剛移植出來,穩(wěn)定性易用性什么的都沒保障。還有一個是國人開源項目vitamio,它是專門針對android設(shè)計的,接口非常易用(直接封裝成videoview了,并且接口基本與android自帶的videoview一模一樣,可以直接替代)。但是vitamio也存在與系統(tǒng)mediaplayer一樣的問題,對于某些rtsp同樣無法播放。所以我很懷疑vitamio不過是把android本身的mediaplayer和videoview拿出來自己做了一個開源項目。對于系統(tǒng)mediaplayer不滿意的可以用vitamio,編程接口多,并且能避免不同機子對mediaplayer和videoview實現(xiàn)差異引起的兼容性問題。
所以我就選了vlc。直接去vlc官網(wǎng)下載vlc for android,包括源碼包和vlc app。項目中使用的話,直接把源碼中的LibVLC那個目錄拖進自己的工程就好了。LibVLC java代碼就是封裝了C庫jni接口,對外提供了一個LibVLC對象,初始化、播放、停止,這些接口是很明確的,直接拿來用就行了,我們只需要自己再封裝一個videoview,把圖像顯示在view上就可以了。
至于vlc依賴到的so庫,其實很簡單,不用按網(wǎng)上的去自己編譯,直接把vlc app解壓開來,把里面一共4個so拖到自己項目來就行了。呵呵呵,尼瑪這是有多懶。
補充vlc一個bug:對于http流媒體,調(diào)用stop接口會阻塞很長一段時間。具體原因未研究,最后在項目中我就一分為二了,對于http流媒體,仍使用系統(tǒng)自帶videoview。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。