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文件夹
引入工程
添加依赖
添加
对照工程的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>