因为公司项目需要,对vitamio框架有了一些接触下面做一些说明:
1、基本使用步骤:
- 1,引入vitamio库文件
- 2,在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"/>
<!--引用播放器框架需要的权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
- 3,拷贝raw下的so包
- 4,在加载布局之前,调用
//引用vitamio所需要的初始化
if (!LibsChecker.checkVitamioLibs(this)) {
return;
}
2、注意点:
1、以项目形式导入vitamio(我是eclipse开发),然后让其Is Library;
在自己的项目中添加刚刚的vitamio库
2、为了控制播放视频在屏幕上的位置可以给io.vov.vitamio.widget.VideoView添加父布局(当时用FrameLayout会出现只能将视频源的部分显示在指定宽高上,后来改用相对布局就可以了)
3、默认的视频播放进度条是显示在最下方,如果想控制进度条显示的位置,这个需要自己去修改框架中的代码:
修改io.vov.vitamio.widget下的MediaController中的show()方法
public void show(int timeout) {
if (!mShowing && mAnchor != null && mAnchor.getWindowToken() != null) {
if (mPauseButton != null)
mPauseButton.requestFocus();
if (mFromXml) {
setVisibility(View.VISIBLE);
} else {
int[] location = new int[2];
mAnchor.getLocationOnScreen(location);
Rect anchorRect = new Rect(location[0], location[1], location[0] + mAnchor.getWidth(), location[1] + mAnchor.getHeight());
// mWindow.setAnimationStyle(mAnimStyle);
// setWindowLayoutType();
// mWindow.showAtLocation(mAnchor, Gravity.NO_GRAVITY, anchorRect.left, anchorRect.bottom);
if(mRoot.getHeight()==0){
final float scale = mContext.getResources().getDisplayMetrics().density;
int height = (int) (1080*scale+0.5f);
mWindow.showAtLocation(mAnchor, Gravity.NO_GRAVITY, location[0], anchorRect.bottom-height);
}else {
mWindow.showAtLocation(mAnchor, Gravity.NO_GRAVITY, anchorRect.left, anchorRect.bottom-mRoot.getHeight());
}
}
mShowing = true;
if (mShownListener != null)
mShownListener.onShown();
}
updatePausePlay();
mHandler.sendEmptyMessage(SHOW_PROGRESS);
if (timeout != 0) {
mHandler.removeMessages(FADE_OUT);
mHandler.sendMessageDelayed(mHandler.obtainMessage(FADE_OUT), timeout);
}
}
//这里的1080是你设置想要播放的宽度
4、如果想自定义进度条的样式需要修改布局中mediacontroller.xml
其中默认的布局是暂停/播放按钮、当前播放时间、SeekBar、视频总时长、视频文件名。
自定义时可以根据自己的需求更改布局,其中SeekBar可以通过style来改样式。
5、其他补充:
setVideoPath(url); //设置播放视频的url
源码中是这样:
public void setVideoPath(String path) {
setVideoURI(Uri.parse(path));
}
所以他是走了setVideoURI()方法。
支持格式:支持主流的视音频格式:mp3/mp4/mkv/avi/3gp/rmvb/mov/flv等。
支持功能 :
1.2.1 当然最重要的是播放功能,含播放控制(播放、暂停,声音、亮度调整等)
1.2.2 可以扫描SDcard,用列表展现出来,可以搜索
1.2.3 可以播放网络视音频(http、rtsp、mms)
//设置全屏播放
setVideoLayout(VideoView.VIDEO_LAYOUT_STRETCH, 0);
public static final int VIDEO_LAYOUT_ORIGIN
缩放参数,原始画面大小。
常量值:0
public static final int VIDEO_LAYOUT_SCALE
缩放参数,画面全屏。
常量值:1
public static final int VIDEO_LAYOUT_STRETCH
缩放参数,画面拉伸。
常量值:2
public static final int VIDEO_LAYOUT_ZOOM
缩放参数,画面裁剪。
常量值:3
6、其他说明可以参考vitamio官网API。