前言
虽然Android已经内置了VideoView组件和MediaPlayer类来支持开发视频播放器,但支持格式、性能等各方面都十分有限,这里与大家一起利用开源项目Vitamio来打造属于自己的Android万能播放器!
正文 ###
一、实现目标
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 修改后的Demo工程下载
Vitamio-Demo.zip
注意把上面的测试视频解压后拷贝到SD卡的根目录。
结束
本系列将是继 C#视频监控系列 之后又一与视频相关的重要系列,值得高兴的是Vitamio是国人开发的,在国外得到了广泛使用,国内也有一些,欢迎大家交流。
声明:eoe文章著作权属于作者,受法律保护,转载时请务必以超链接形式附带如下信息
原文作者: p农民伯伯q