使用Vitamio打造自己的Android万能播放器(1)――准备
前言 虽然Android已经内置了VideoView组件和MediaPlayer类来支持开发视频播放器,但支持格式、性能等各方面都十分有限,这里与大家一起利用开源项目Vitamio来打造属于自己的Android万能播放器! 声明 欢迎转载,但请保留文章原始出处:) 51CTO:http://www.51cto.com 农民伯伯: http://over140.blog.51cto.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://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 * 3gp2.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网络收音机项目
结束
本系列将是继 C#视频监控系列 之后又一与视频相关的重要系列,值得高兴的是Vitamio是国人开发的,在国外得到了广泛使用,国内也有一些,欢迎大家交流。
更多相关文章
- android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝
- 横竖屏切换 android:screenOrientation属性
- Android(安卓)studio使用笔记。。。
- 老罗Android开发视频教程 (android解析xml文件 )3集集合
- 老罗Android开发视频教程( android解析json数据 )4集集合
- android和js的相互调用
- Android之增强文本框(TextInputEditText)
- Android中VISIBLE、INVISIBLE、GONE的区别
- android 背景图片