Vitamio自定义的个性化播放器

因为公司项目需要,对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。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值