天天看點

安卓學習日記——Vitamio架構

Vitamio中文名稱“維他蜜”,是一款Android與IOS平台上的全能多媒體開發架構,全面支援硬體解碼與GPU渲染。Vitamio能夠流程播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常見格式的視訊,還可以在Android與IOS上跨平台支援MMS,RTSP,RTMP,HLS等常見的多種視訊流媒體協定,包括點播與直播。

下載下傳位址:https://github.com/yixia/VitamioBundle

引用Vitamio包流程

在建立的工程目錄下建立一個檔案夾,這邊取名libraries

安卓學習日記——Vitamio架構

将下載下傳好的檔案,解壓,把vitamio檔案夾複制粘貼過來

安卓學習日記——Vitamio架構

再把dist檔案夾下的arm_x86_mips檔案夾下的libs檔案夾裡的mips和x86複制粘貼到libraries檔案夾下的vitamio檔案夾下的libs檔案夾

安卓學習日記——Vitamio架構
安卓學習日記——Vitamio架構

打開工程的settings.gradle,導入如圖

安卓學習日記——Vitamio架構

右鍵app打開設定

安卓學習日記——Vitamio架構
安卓學習日記——Vitamio架構

添加

對照工程的build.gradle修改vitamio的build.gradle,主要修改框起來的部分

安卓學習日記——Vitamio架構
安卓學習日記——Vitamio架構

之後重新建立一下

安卓學習日記——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)+"/zhh.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();
    }
}

           

權限設定

<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

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

播放視訊

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) {
        super.onCreate(savedInstanceState);
        if (!LibsChecker.checkVitamioLibs(this))
            return;
        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();
    }
}

           
安卓學習日記——Vitamio架構