标签:android vitamio 视频 videoview
Vitamio 是一款 Android 平台上的全能多媒体开发框架。Vitamio 凭借其简洁易用的 API 接口赢得了全球众多开发者的青睐。到目前,全球已经有超过 1000 种应用在使用 Vitamio,覆盖用户超过 2亿。
Vitamio 能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在 Android 上支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播。
支持 ARMv6 和 ARMv7 两种 ARM CPU,同时对 VFP, VFPv3, NEON 等指令集都做相应优化。
支持 Android 2.1+ 系统,支持超过 95% 的 Android 市场。同时 Android 2.1 之前的系统也基本支持,不过没做详细测试。
开源项目下载地址:https://github.com/yixia/VitamioBundle
注*用于商业开发的跟高级版本需经过商业授权
文章转载请注明来源:http://blog.csdn.net/fengfeng91 小峰91
导入Vitamoo |
将VitamioBundle工程作为Android Library引入Demo工程使用即可。 |
注意 |
如果是Windows系统,需将VitamioBundle与Demo工程放在同一个文件夹下,否则添加Android Library可能失败,其他问题一般clean一下重新编译一下就好了。 |
Vitamio标准版有许多功能都为实现,如快进,快退,音量,亮度等等,需要各位自定义相关控件加以实现 |
AndroidManifest.xml配置 |
<activity android:name="io.vov.vitamio.activity.InitActivity" android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation" android:launchMode="singleTop" android:theme="@android:style/Theme.NoTitleBar" android:windowSoftInputMode="stateAlwaysHidden" /> |
服务 |
<service android:name="io.vov.vitamio.VitamioService" android:exported="false" > <intent-filter> <action android:name="io.vov.vitamio.IVitamioService" /> </intent-filter> </service> |
权限 |
<uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
使用 VideoView |
LibsChecker ckecker = new LibsChecker(); try { chickres = ckecker.checkVitamioLibs(this,getClass().getName(), R.string.init_decoders, R.raw.libarm);//检查 } catch (Exception e) { // TODO: handle exception LogUtil.e("ERR---Movie", e.toString()); return; } if (!chickres) return;
mVideoView = (VideoView) findViewById(R.id.surface_view); mLoading = (ImageView) findViewById(R.id.operation_bg); mLoading.setOnClickListener(this); Uri pathUri = this.getIntent().getData(); if (pathUri != null){ mVideoView.setVideoURI(pathUri); }else{ mVideoView.setVideoPath(“URL地址”); } /** * 设置视频质量。参数quality参见MediaPlayer的常量: * VIDEOQUALITY_LOW(流畅)、VIDEOQUALITY_MEDIUM(普通)、VIDEOQUALITY_HIGH(高质)。 */ mVideoView.setVideoQuality(MediaPlayer.VIDEOQUALITY_HIGH); mVideoView.setOnPreparedListener(this); mVideoView.setMediaController(new MediaController(this)); mVideoView.setOnCompletionListener(this);//注册一个回调函数,视频播放完成后调用。 mVideoView.setOnBufferingUpdateListener(this);//注册一个回调函数,在网络视频流缓冲变化时调用。 //mVideoView.setVideoLayout(0, 0);//layout缩放参数aspectRation 宽高比,为0将自动检测。 mVideoView.requestFocus(); |
相关接口 |
OnBufferingUpdateListener, OnCompletionListener, OnPreparedListener, OnVideoSizeChangedListener, SurfaceHolder.Callback |
注* |
在使用Vitamio的过程中,实际开发可能涉及到多个播放页面。如切换跳转全屏播放。如果我们从全屏播放页面回到上一个播放界面时,如果为在退出时安全关闭播放器,着会导致FileNotFoundException,当你多次检查地址都发现播放地址完全没有问题,可就是会发生这个错误。你就需要在退出时调用stopPlayback()函数来释放资源。 |
public void setVideoLayout(int layout,float aspectRatio) |
获取扫描视频的Uri。 参数 layout缩放参数 aspectRation 宽高比,为0将自动检测。 |
public boolean isValid() |
Surface是否有效。 参见Surface的isValid方法。 |
public void setVideoPath(String path) |
设置视频路径。 |
public void setVideoURI(Uri uri) |
设置视频URI。(可以是网络视频地址) |
public void stopPlayback() |
停止视频播放,并释放资源。 |
public void setMediaController(MediaController controller) |
设置媒体控制器。 参数 controller 媒体控制器,注意是io.vov.vitamio.widget.MediaController。
|
public void setOnPreparedListener(OnPreparedListener l) |
注册一个回调函数,在视频预处理完成后调用。在视频预处理完成后被调用。此时视频的宽度、高度、宽高比信息已经获取到,此时可调用seekTo让视频从指定位置开始播放。 |
public long getCurrentPosition() |
获取当前播放位置。 |
public void seekTo(long msec) |
设置播放位置。 参数msec 位置 毫秒 |
public boolean isPlaying() |
是否正在播放。 |
public int getBufferPercentage() |
获取缓冲百分比。 |
public void setVideoQuality(int quality) |
设置视频质量。 参数 quality: VIDEOQUALITY_LOW(流畅)、 VIDEOQUALITY_MEDIUM(普通)、VIDEOQUALITY_HIGH(高质)。 |
public void setBufferSize(int bufSize) |
设置视频缓冲大小。默认1024KB,单位byte |
public boolean isBuffering() |
检测是否缓冲完毕。 |
public void setMetaEncoding(String encoding) |
设置元数据编码。例如:UTF-8 |
More...参见 |
http://www.cnblogs.com/over140/archive/2012/08/30/2663243.html |
http://www.cnblogs.com/over140/category/409230.html |
标签:android vitamio 视频 videoview
原文地址:http://blog.csdn.net/fengfeng91/article/details/32346237