畢設系列—客戶端:Vitamio框架開發(1)初次安裝及配置

Android使用Vitamio播放視頻,網上的資源都太舊了,沒有最新版的新手教程,而且使用的還是Andorid Studio2.0,自己查,心好累……

準備工作

IDE : Andorid Studio 2.0
Vitamio SDK : Vitamio 5.0.1
幫助文檔 : API

引入library

Android Studo 2.0 : 導入時候出了些問題,這一塊簡直太噁心了,網上的教程都沒有,自己折騰了兩天……

步驟1:AS2.0新建一個項目,命名爲Vitamio_Demo

步驟2:下載 Vitamio 5.0.1到本地

步驟3:解壓該文件,將其中vitamio項目中的build.gradle信息更改一下

VitamioBundle

vitamio

查看之前新建Vitamio_Demo的 build.gradle(Module:app)
build.gradle(Module:app)

修改的文件信息

apply plugin: 'com.android.library'

dependencies {
}

android {
    compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
    buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION

    defaultConfig {
        minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
        targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
    }
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            jniLibs.srcDirs = ['libs']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
        }

    }

}

修改的文件信息

apply plugin: 'com.android.library'

dependencies {
}

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 23
    }
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            jniLibs.srcDirs = ['libs']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
        }

    }

}
步驟4:正常導入module即可

1、File->New->import module

2、選擇剛纔解壓文件夾下修改過的 vitamio 文件 等待 Gradle編譯完成
3、打開Vitamio_Demo 的build.gradle 在 dependencies 中添加 compile project(‘:vitamio’) 如果你導入module中更改過名字的話 要改成修改後的名字 如圖:
添加compile project(':vitamio')

4、再次等待 Gradle編譯完成 然後打開 AndroidManifest.xml權限文件添加視頻播放的Activity聲明,以及權限的添加

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.vitamio_demo">

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

</manifest>

至此, Vitamio 導入完成,之下可以使用

代碼部分

佈局文件:activity_video_play.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context="com.vitamio_demo.MainActivity">


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

</RelativeLayout>

MainActivity

package com.vitamio_demo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.app.Activity;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;


import java.util.Random;

import io.vov.vitamio.MediaPlayer;
import io.vov.vitamio.Vitamio;
import io.vov.vitamio.widget.MediaController;
import io.vov.vitamio.widget.VideoView;





public class MainActivity extends Activity {

    private VideoView mVideoView;

    private String[] video = {
            "http://dlqncdn.miaopai.com/stream/MVaux41A4lkuWloBbGUGaQ__.mp4",
            "http://movie.ks.js.cn/flv/other/2014/06/20-2.flv",
            "http://movie.ks.js.cn/flv/other/1_0.mp4"
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Vitamio.isInitialized(this);
        setContentView(R.layout.activity_main);
//        m_actionBar.hide();
        playfunction();

    }

    void playfunction(){
        String path = "";
        path = video[new Random().nextInt(video.length)];
        if (path == "") {
            Toast.makeText(this, "請填寫視頻的URL", Toast.LENGTH_LONG).show();
            return;
        }
        mVideoView = (VideoView) findViewById(R.id.surface_view);
        mVideoView.setVideoPath(path);   //設置視頻網絡地址
//      mVideoView.setVideoURI(Uri.parse(path)); //也可以是本地,也可以是網絡地址
        mVideoView.setMediaController(new MediaController(this)); //設置媒體控制器
        mVideoView.setVideoLayout(VideoView.VIDEO_LAYOUT_STRETCH, 0);   //設置視頻的縮放參數,這裏設置爲拉伸
        mVideoView.requestFocus();
        //視頻播放器的準備,此時播放器已經準備好了,此處可以設置一下播放速度,播放位置等等
        mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mediaPlayer) {
                //此處設置播放速度爲正常速度1
                mediaPlayer.setPlaybackSpeed(1.0f);
            }
        });
        //當播放完成後,從頭開始
        mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mediaPlayer) {
                mediaPlayer.seekTo(0);   //轉到第一幀
                mediaPlayer.start();     //開始播放
            }
        });

    }
}

相關API介紹

常量 

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

public void setVideoLayout(int layout, float aspectRatio)
設置視頻的縮放參數
參數
layout 縮放參數
aspectRation 寬高比,爲0將自動檢測。

public void setVideoPath(String path)
設置視頻路徑。

public void setVideoURI(Uri uri)
設置視頻URI。(可以是網絡視頻地址)

public void setMediaController(MediaController controller)
設置媒體控制器。
參數
controller 媒體控制器,注意是io.vov.vitamio.widget.MediaController。

public void setOnPreparedListener(OnPreparedListener l)
註冊一個回調函數,在視頻預處理完成後調用。在視頻預處理完成後被調用。此時視頻的寬度、高度、寬高比信息已經獲取到,此時可調用seekTo讓視頻從指定位置開始播放。

public void setOnCompletionListener(OnCompletionListener l)
註冊一個回調函數,視頻播放完成後調用。

更多參考:
Vitamio API :https://www.vitamio.org/docs/API/2013/0508/9.html幫助文檔

Tip : 模擬器太卡,建議真機調試~~~

運行播放界面
真機運行播放界面

原創:畢設系列—客戶端:Vitamio框架開發(1)初次安裝及配置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章