Android学习——Vitamio框架

Vitamio框架

Vitamio框架简介

Vitamio中文名称“维他蜜”,是一款Android与IOS平台上的全能多媒体开发框架,全面支持硬件解码与GPU渲染。Vitamio 凭借其简洁易用的 API 接口赢得了全球众多开发者的青睐,到目前,全球已经有超过 10,000 种应用在使用 Vitamio,覆盖用户超过5亿。
Vitamio能够流程播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在Android与IOS上跨平台支持MMS,RTSP,RTMP,HLS等常见的多种视频流媒体协议,包括点播与直播。
官网:http://www.vitamio.org/en/
下载地址:https://github.com/yixia/VitamioBundle
引用Vitamio包流程
在创建的工程目录下创建一个文件夹,这边取名libraries
在这里插入图片描述
将VitamioBundle下的vitamio复制到libraries当中
在这里插入图片描述
再把dist文件夹下的arm_x86_mips文件夹下的libs文件夹里的mips和x86复制粘贴到libraries文件夹下的vitamio文件夹下的libs文件夹
在这里插入图片描述在这里插入图片描述
引入工程
在这里插入图片描述
添加依赖
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190425150615490.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1VVVVVVbHRyYW1hbg==,size_16,color_FFFFFF,t_70
添加
对照工程的build.gradle修改vitamio的build.gradle,主要修改框起来的部分
在这里插入图片描述)
之后重新构建一下,如果还有问题,根据报错信息修改

然后查看vitamio-sample的清单文件,并将以下代码复制到自己的清单文件中

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


<activity android:name="io.vov.vitamio.activity.InitActivity"
            android:windowSoftInputMode="stateAlwaysHidden"
            android:theme="@android:style/Theme.NoTitleBar"
            android:launchMode="singleTop"
            android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"/>

以上是准备工作

在应用中使用Vitamio框架

播放音频

package com.example.vitamio;

import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

import java.io.IOException;

import io.vov.vitamio.LibsChecker;
import io.vov.vitamio.MediaPlayer;

public class MainActivity extends AppCompatActivity implements MediaPlayer.OnPreparedListener {

    private MediaPlayer mediaPlayer;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //加载so类库(通常使用C或C++编写)
        if (!LibsChecker.checkVitamioLibs(this))
            return;
        setContentView(R.layout.activity_main);
        initMediaPlay();
    }

    private void initMediaPlay() {
        mediaPlayer=new MediaPlayer(this);

    }

    public void play(View v){
        String path= Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC)+"/fyzx.mp3";
        try {
            mediaPlayer.reset();
            mediaPlayer.setDataSource(path);
            mediaPlayer.setOnPreparedListener(this);
            mediaPlayer.prepareAsync();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void pause(View v){
        mediaPlayer.pause();
    }

    public void stop(View v){
        mediaPlayer.stop();
        mediaPlayer.release();
    }

    @Override
    public void onPrepared(MediaPlayer mp) {
        mp.start();
    }
}

播放视频 VideoView

package com.example.vitamio;

import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import io.vov.vitamio.LibsChecker;
import io.vov.vitamio.widget.MediaController;
import io.vov.vitamio.widget.VideoView;

public class Main2Activity extends AppCompatActivity {
    private VideoView vv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        //加载so类库(通常使用C或C++编写)
        if (!LibsChecker.checkVitamioLibs(this)) {
            return;
        }
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        vv=findViewById(R.id.surface_view);
        MediaController mc=new MediaController(this);
        vv.setMediaController(mc);
        String path= Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES)+"2.mp4";
        vv.setVideoPath(path);
        vv.requestFocus();//获取焦点
        vv.start();
    }
}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".Main2Activity">

    <io.vov.vitamio.widget.VideoView
        android:id="@+id/surface_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

</LinearLayout>

猜你喜欢

转载自blog.csdn.net/UUUUUltraman/article/details/89518782