前言
雖然android已經内置了videoview元件和mediaplayer類來支援開發視訊播放器,但支援格式、性能等各方面都十分有限,這裡與大家一起利用開源項目vitamio來打造屬于自己的android萬能播放器!
注意
請下載下傳新釋出的sdk(2012-7-9):
使用vitamio打造自己的android萬能播放器——新版vitamio内測sdk釋出
聲明
歡迎轉載,但請保留文章原始出處:)
部落格園: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 網址
官方微網誌:http://weibo.com/vitamio
官方網址:http://vov.io/vitamio/
2.2 成功案例
國内:vplayer、熊貓影音、321影音等
國外:tvltaliane、dizi
tv等
2.3 網絡協定
支援以下協定的音頻和視訊播放:
* mms
* rtsp (rtp, sdp)
* http流式傳輸(progressive streaming)
* http live streaming (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.1 ffmpeg
ffmpeg提供軟體解碼器和多路輸出(demuxers)。vitamio使用lgplv2.1許可下ffmpeg的代碼,代碼可以從這裡下載下傳。
2.7.2 universalchardet (是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工程下載下傳
vitamio-demo.zip
注意把上面的測試視訊解壓後拷貝到sd卡的根目錄。
四、相關文章
移動流媒體移動協定綜述.pdf
開發者指南android支援的媒體格式
android網絡收音機項目
五、文章維護
2012-7-9 新版sdk第一個内測版已釋出,點這裡。
結束
本系列将是繼 c#視訊監控系列 之後又一與視訊相關的重要系列,值得高興的是vitamio是國人開發的,在國外得到了廣泛使用,國内也有一些,歡迎大家交流。