第三方SDK接入–Vitamio
说明
由于公司的需求,app需要能播放多种格式的视频,并能实时播放直播的视频流。所以这里使用了一款开放的,功能强大的全能多媒体开发框架—Vitamio。
接下来简单说明下整个Vitamio接入的具体步骤及注意事项。
注:写该文档时使用的Vitamio版本是5.0.0。
所需Vitamio资源
使用第三方SDK必不可少的就是需要多多去官网爬你需要的文档等资源。
Vitamio官网地址:https://www.vitamio.org/。
首页虽然简介了点,但是很明显,了解到他强大的功能后我们可以直接去下载页面下载我们需要的SDK。
红色选中的就是我们所需的文件了。下载后,解压文件,目录大致如下:
VitamioBundle20151118
—– .idea
—–dist
—–vitamio(这个文件夹是我们所需的)
|—–libs(一些so文件)
|—–res
|—–src
|—–(其他的文件)
—–vitamio-sample(示例Demo,可多做参考)
—– 其他的文件
APP集成Vitamio
这里的开发工具我使用的是Android Studio,Eclipse的请参照官方网站上的教程。
1、 将Viamio作为Moduel引入
Android Studio中点击File—New—Import Module:
选择我们刚才解压好的文件中的vitamio文件夹,点击OK。
此时,估计导入后会有一处错误(没有错误的请无视该步骤),具体错误内容如下:
点击Open File 后,错误所在为vitamio的build.gradle文件:
因为我们project中并没有配置这些,所以你可以直接把上面的红框部分修改为同你工程的build.gradle文件中配置的一样即可。比如我这里的修改为:
修改完毕后点击Try Again即可导入成功。
2、 将Viamio作为项目依赖
点击File—Project Structure,弹出如下页面:
选中你的项目,我这里为app,然后点击Dependencies,点击右上角的绿色“+”号,选择3 Module Dependency:
然后选择我们导入的vitamio即可添加完成。
3、 代码中的使用
首先需要注意在配置文件AndroidManifest.xml中添加权限:
<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" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
XML代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:gravity="center">
<io.vov.vitamio.widget.VideoView
android:id="@+id/video_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
然后java类中的使用方式如下:
package com.amailive.helper.amaihelper.videos;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.WindowManager;
import com.amailive.helper.amaihelper.R;
import com.amailive.helper.amaihelper.base.BaseActivty;
import io.vov.vitamio.MediaPlayer;
import io.vov.vitamio.Vitamio;
import io.vov.vitamio.widget.MediaController;
import io.vov.vitamio.widget.VideoView;
public class VideoActivity extends BaseActivty {
private VideoView videoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Vitamio.isInitialized(this);//千万别忘了这里的初始化操作
setContentView(R.layout.activity_video);
playVideo();
}
private void playVideo() {
videoView = (VideoView) findViewById(R.id.video_view);
Sring path=”你视频的网址”;
videoView.setVideoPath(path);
videoView.setMediaController(new MediaController(this));
videoView.requestFocus();
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
//设置快进的倍速
mediaPlayer.setPlaybackSpeed(1.0f);
//设置缓冲大小
mediaPlayer.setBufferSize(512 * 1024);
}
});
}
}
最后根据官方的说法,别忘了修改VideoActivity.java的配置文件:
<activity
android:name=".videos.VideoActivity"
android:configChanges=
"orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation"
android:process=":vitamio"/>
android:process=”:vitamio” 关闭Activity时直接kill,防止底层库可能存在的BUG导致的崩溃问题。同理也可以通过关闭Activity、重新startActivity来切换剧集。
至此,最最最基本的集成方法已经讲解完毕。接下来项目中需要的时候再对文档进行完善。