视频播放的控件有很多,这里我要说的一个开源的项目Vitamio Vitamio能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在 Android 上支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播。支持 ARMv6 和 ARMv7 两种 ARM CPU,同时对 VFP, VFPv3, NEON 等指令集都做相应优化。具体相关的内容可以参考其官网https://www.vitamio.org/。
具体应用:
在官网或其他地方下载最新Vitamio库后,引入自己的项目。目前Vitamio的项目托管在Github上面:https://github.com/yixia/VitamioBundle提示:Github支持Git、SVN和直接下载(右侧Download Zip)。
初始化:
老的版本在应用的时候,在Activity,或Fragment中进行初始化
if (!LibsChecker.checkVitamioLibs(this)) {//Vitamio框架固定写法
return;
}
新的版本初始化为: Vitamio.isInitialized(this);
在相应的布局里引入:
<io.vov.vitamio.widget.VideoView android:id="@+id/video_view" android:layout_width="match_parent" android:layout_height="200dp"//设置高度,按自己需要 />准备播放视频:
private void startVideo(String videoUrl){mProgress.setVisibility(View.VISIBLE);//未播放前加载的loding mVideoView.setVideoPath(videoUrl);//设置视频播放路径 mVideoView.setBufferSize(512);//设置缓冲 if(NetworkUtils.isWifiConnected(this)){ mVideoView.setVideoQuality(16);//设置视频质量 }else{ mVideoView.setVideoQuality(0); } new Thread() { @Override public void run() { super.run(); mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mVideoView.setVolume(1, 1);//设置立体声左右音量,设置为0则没有声音 mp.prepareAsync(); mp.setPlaybackSpeed(1.0f); mVideoView.start();//开始播放 if(mVideoView.isPlaying()){ mProgress.setVisibility(View.GONE);//播放时记载隐藏 } createEndTime(); } }); } }.start(); //监听播放错误 mVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() { @Override public boolean onError(MediaPlayer mp, int what, int extra) { mCancleError.setVisibility(View.VISIBLE); mProgress.setVisibility(View.GONE); return false; } });}//videoUrl视频流
具体相关参数,可以查看农民伯伯的博客http://www.cnblogs.com/over140/archive/2012/05/22/2473019.html
下一篇我们将简述Android播放视频如何全屏