Android視訊播放專案總結之 使用第三方Vitamio庫,開發萬能播放器(三)
前言
雖然Android已經內建了VideoView元件和MediaPlayer類來支援開發視訊播放器,但支援格式、效能等各方面都十分有限,這裡與大家一起利用開源專案Vitamio來打造屬於自己的Android萬能播放器!
宣告
歡迎轉載,但請保留文章原始出處:)
部落格園:http://www.cnblogs.com
農民伯伯: http://over140.cnblogs.com
正文
一、實現目標
1.1 支援格式
支援主流的視音訊格式:mp3/mp4/mkv/avi/3gp/rmvb/mov/flv等。
1.2 支援功能
1.2.1 當然最重要的是播放功能,含播放控制(播放、暫停,聲音、亮度調整等)
1.2.2 可以掃描SDcard,用列表展現出來,可以搜尋
1.2.3 可以播放網路視音訊(http、rtsp、mms)
二、Vitamio專案簡介
Vitamio是一個支援所有Android裝置的多媒體框架。Vitamio與Android預設的MediaPlayer工作方式相似,但包含更加強大的功能,並且它是完全免費的!
2.1 專案網址
2.2 成功案例
2.3網路協議
支援以下協議的音訊和視訊播放:
* MMS
* RTSP (RTP, SDP)
* HTTP流式傳輸(progressive streaming)
* HTTP LiveStreaming (M3U8), Android 2.1+
2.4媒體格式
Vitamio集成了許多音訊和視訊的解碼包,相比Android內建預設的媒體格式,這裡列出其中的一些:
* divx/xvid
* wmv
* flv
* ts
* rmvb
* mkv
* mov
* m4v
* avi
* mp4
* 3gp
2.5字幕
Vitamio支援顯示一些內建或外掛字幕格式:
* SubRip(.srt)
*Sub Station Alpha(.ssa) / Advanced Sub Station 移步wiki
* Alpha(.ass)
*SAMI(.smi/.sami)
*MicroDVD(.sub/.txt)
*SubViewer2.0(.sub)
*MPL2(.mpl/.txt)
*Matroska (.mkv) 字幕軌跡
2.6其他功能
* 後臺播放
* 多音軌支援
* 多字幕支援,包括內部或外掛的
* 多平臺處理器優化
* 可調長寬比
* 文字編碼自動檢測
2.7 許可/授權(Lisences)
Vitamio使用了sevral開源專案,感謝他們。
2.7.1FFmpeg
FFmpeg提供軟體解碼器和多路輸出(demuxers)。Vitamio使用LGPLv2.1許可下FFmpeg的程式碼,程式碼可以從這裡下載。
2.7.2Universalchardet (是Mozilla的一個自動檢測頁面文字編碼的程式)
Universalchardet是Mozilla的編碼檢測庫。Vitamio使用MPL許可下Universalchardet的程式碼來檢測字母文字編碼。
以上主要是對官方介紹進行了簡單翻譯。
三、示例程式碼
3.1 下載Vitamio的SDK
Vitamio-SDK.7z含javadoc文件和vitamio.jar。
3.2下載Demo程式碼
Vitamio-Demo.7z這是一個使用vitamio.jar的Demo工程。
3.2執行Demo程式碼
3.2.1 下載上面的Demo包後,補充工程檔案.project、.classpath等,後面有重新打包下載。
3.2.2 執行工程,見如下圖:
需要安裝Vitamio外掛來播放視訊,這裡選擇Vitamio Website,下載安裝重新執行,發現一抹黑,看看程式碼,發現沒有視訊,修改視訊路徑,並且上傳視訊到SD卡,這裡提供一個測試視訊下載這裡,再次執行即可。
3.2.3 成功截圖
3.2.4 修改後的Demo工程下載
注意把上面的測試視訊解壓後拷貝到SD卡的根目錄。
四、相關文章
五、文章維護
2012-7-9新版SDK第一個內測版已釋出,點這裡。
結束
本系列將是繼 C#視訊監控系列之後又一與視訊相關的重要系列,值得高興的是Vitamio是國人開發的,在國外得到了廣泛使用,國內也有一些,歡迎大家交流。
系列