视频播放框架 - Vitamio的使用

时间:2022-01-23 03:19:45

前言:Vitamio的中文名称为维他蜜,是一款Android 平台上的全能多媒体开发框架。能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在 Android 上支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播

新手入门

使用步骤:

1.导包
去上面的新手入门网址中下载官方的Demo包,约60M,毕竟是支持视频播放的框架,所以体积有些大
下载后解压,然后先在你的AS中新建一个Project,点击File→New→Import Modules…→选择你解压后的文件夹
一共有两个Module,分别是vitamio和vitamio-sample两个Module,都导入进去如图所示:

视频播放框架 - Vitamio的使用
然后AS可能会报错,这是因为你的gradle与SDK与官方Demo不同导致的,解决方法,把vitamio和vitamio-sample下面的build.gradle里面的

compileSdkVersion 
buildToolsVersion 

minSdkVersion 
targetSdkVersion 

这些后面的版本号全部改为默认的Module中的版本号一致,点击同步即可

然后点击File→Project Structure…→选择你要写的Module→Dependencies→右侧加号→Module Dependency→记住要选择vitamio而不是vitamio-sample
不然会报错
等待gradle完成


2.配置AndroidManifest.xml清单文件
在清单文件中加入权限代码

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

主要是联网与读写存储的一些权限必写
然后添加以下内容【必添,直接复制粘贴到你的清单文件中即可】

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

3.使用Vitamio
在布局文件中添加VideoView【Vitamio包下的】

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.usher.vitamio.MainActivity">

    <io.vov.vitamio.widget.VideoView
        android:layout_centerInParent="true"
        android:id="@+id/vitamio_videoview"
        android:layout_width="wrap_content"
        android:layout_height="match_parent" />

</RelativeLayout>
MainActivity.class文件

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";
    private VideoView vitamio_videoview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //检测Vitamio是否解压解码包,一定要加
        if (!io.vov.vitamio.LibsChecker.checkVitamioLibs(this))
            return;

        //初始化Vitamio包下的VideoView
        vitamio_videoview = (VideoView) findViewById(R.id.vitamio_videoview);

        //放入网址
        vitamio_videoview.setVideoURI(Uri.parse("http://www.modrails.com/videos/passenger_nginx.mov"));

        //设置控制栏
        vitamio_videoview.setMediaController(new MediaController(this));

        //获取焦点
        vitamio_videoview.requestFocus();

        //准备播放监听
        vitamio_videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                mp.setPlaybackSpeed(1.0f);//设置播放速度
            }
        });

    }

}

if (!io.vov.vitamio.LibsChecker.checkVitamioLibs(this))
return;
这句话是用来检测Vitamio是否解压解码包,一定要加

效果如图
视频播放框架 - Vitamio的使用