Vitamio的简单使用

环境:win10,AS 2.3,Vitamio5.2

这篇说明偏重于先把环境搭建起来,所以文字说明比较少,多辅以图示希望更直观的帮助大家。

1、下载Vitamio最新版本,复制到相应APP project目录下。

2、AS 添加library到settings.gradle

(include ':app', ':vitamio5.2')

103932_axLA_1764723.png

3、sync的时候会出错修改library的build.gradle里面的sdk version和你的phone module的build.gradle一样。

104021_s2C6_1764723.png

4、添加depends到你的phone module下的build.greadle里面

104040_0TEH_1764723.png

5、activity中的主要代码,这里的播放路径可以自己设置,我的来自于其他activity的传递,各位朋在设置的时候可以直接赋值例如:movieUrl  = “/mnt/internal_sd/video.mp4”;

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);



        //必须写这个,初始化加载库文件

        Vitamio.isInitialized(this);



        setContentView(R.layout.activity_vitamio_video_view);



        mVideoView = (VideoView) findViewById(R.id.buffer);



        intent = getIntent();

        movieUrl = intent.getStringExtra("movieUrl");



        //判断path来自于网络还是本地

        if (!movieUrl.isEmpty()) {

            if (movieUrl.startsWith("http:")) {

                mVideoView.setVideoURI(Uri.parse(movieUrl));

            } else {

                mVideoView.setVideoPath(movieUrl);

            }



            mVideoView.setVideoLayout(VideoView.VIDEO_LAYOUT_STRETCH, 0);//全屏

            mVideoView.setVideoQuality(MediaPlayer.VIDEOQUALITY_HIGH);//高画质

            mVideoView.requestFocus();

            mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

                @Override

                public void onPrepared(MediaPlayer mediaPlayer) {

                    mediaPlayer.setPlaybackSpeed(1.0f);

                }

            });

        }



    }

6、xml中的代码

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

                android:layout_width="match_parent"

                android:layout_height="match_parent">



    <io.vov.vitamio.widget.CenterLayout

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:orientation="vertical">



        <io.vov.vitamio.widget.VideoView

            android:id="@+id/buffer"

            android:layout_width="match_parent"

            android:layout_height="match_parent"

            android:layout_centerHorizontal="true"

            android:layout_centerVertical="true" />

    </io.vov.vitamio.widget.CenterLayout>



</RelativeLayout>

7、 manifest中的代码

<uses-permission android:name="android.permission.WAKE_LOCK" />

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />



<application

    android:allowBackup="true"

    android:icon="@mipmap/ic_launcher"

    android:label="@string/app_name"

    android:supportsRtl="true"

    android:theme="@style/AppTheme">

    <activity

        android:name=".MainActivity"

        android:configChanges="orientation|keyboardHidden|screenSize">

        <intent-filter>

            <action android:name="android.intent.action.MAIN" />



            <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>

    </activity>

    <!-- 必须初始化 -->

    <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" />

     <!-- 按照官网的说法给播放器所在的Activity设置android:process,

     关闭Activity时直接kill,防止底层库可能存在的BUG导致的崩溃问题-->

    <activity

        android:name=".VitamioVideoViewActivity"

        android:screenOrientation="landscape"

        android:process=":vitamio" >

    </activity>

</application>

8、关于视频播放时的花屏的问题,修改Vitamio library中的VideoView,在surfaceCreated添加mSurfaceHolder.setFormat(PixelFormat.RGBX_8888);

    public void surfaceCreated(SurfaceHolder holder) {
      mSurfaceHolder = holder;
+     mSurfaceHolder.setFormat(PixelFormat.RGBX_8888);
      if (mMediaPlayer != null && mCurrentState == STATE_SUSPEND && mTargetState == STATE_RESUME) {
        mMediaPlayer.setDisplay(mSurfaceHolder);
        resume();
      } else {
        openVideo();
      }
    }

 

转载于:https://my.oschina.net/u/1764723/blog/861804

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值