android studio集成ijkplayer

介绍

ijkplayer是一款很是火的开源视频播放器,android和IOS通用。关于怎么编译怎么导入android Studio中本身的项目,其中坑不少,本篇记录下本身的操做记录。ijkplayer如今的版本是0.8.3,固然是使用最新的版本集成了。java

编译ijkplayer

关于编译,我是在Ubuntu上编译后拷贝到win10中的,ijkplayer源码须要gcc编译,windows各类很差用,若是使用cynwin还不如在ubuntu下编译。android

编译的过程是下载sdk,ndk。设置环境变量后按照github上的说明编译便可,具体可参考这篇文章.git

android studio集成ijkplayer

1.导入到你的项目中github

android studio打开你的项目,File->Import Module...选择ijkplayer的anroid/ijkplayer目录,ijk-example依赖全部库,因此导入后全部项目都会导入到你的项目中。ubuntu

2.将android/ijkplayer目录下的tools文件夹也拷贝到本身项目的根目录下。windows

3. 在ijkplayer-java\src\main\目录下新建一个名为jniLibs的文件夹,将各个ijkplayer-xxx目录中的\src\main\libs目录下的文件夹拷贝到jniLibs文件夹中,如:ijkplayer--armv7a的该目录下包含armeabi-v7a这个文件夹,其中包含了该平台对应的.so文件,若是但愿包含全部平台的,就将全部ijkplayer-xxx下的所有拷过来,若是只但愿某几个平台的,就只拷贝它们的。app

4.将ijkplayer-xxx的目录所有从项目中删除掉,只保留ijkplayer-example、ijkplayer-java、ijkplayer-exo以及tools文件夹,其中ijkplayer-example依赖于后面几个。android studio删除项目需以下图所示:less

并将相对应的文件夹删除便可。async

5.将ijkplayer-example修改成Module的形式,由于ijkplayer-example自己是一个application工程,默认不生成aar文件,且里面的资源互相依赖,难以像旧版本经过复制所需的几个java文件到本身工程中的方式来使用,因此不如将整个ijkplayer-example转换为咱们工程的一个Module。具体方法是:gradle

先修改ijkplayer-example目录下的build.gradle文件,以下:

apply plugin: 'com.android.library'

android {
    // http://tools.android.com/tech-docs/new-build-system/tips
    //noinspection GroovyAssignabilityCheck
    compileSdkVersion rootProject.ext.compileSdkVersion
    //noinspection GroovyAssignabilityCheck
    buildToolsVersion rootProject.ext.buildToolsVersion

    lintOptions {
        abortOnError false
    }
    defaultConfig {

        minSdkVersion 9
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode rootProject.ext.versionCode
        versionName rootProject.ext.versionName
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    buildToolsVersion '25.0.0'
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:25.0.0'
    compile 'com.android.support:preference-v7:23.0.1'
    compile 'com.android.support:support-annotations:23.0.1'

    compile 'com.squareup:otto:1.3.8'

    compile project(':ijkplayer-java')
    compile project(':ijkplayer-exo')

}

  注意:

  • apply plugin: 'com.android.application'要改成apply plugin: 'com.android.library'
  • applicationId "tv.danmaku.ijk.media.example"这句要去掉
  • compile 'com.android.support:appcompat-v7:25.0.0'

   compile 'com.android.support:preference-v7:23.0.1'

   compile 'com.android.support:support-annotations:23.0.1'

   compile 'com.squareup:otto:1.3.8'

   这几个修改成本身安装的版本。

6.在ijkplayer-example根目录下增长一个gradle.properties文件,内容以下:

POM_NAME=ijkplayer-example
POM_ARTIFACT_ID=ijkplayer-example
POM_PACKAGING=aar

7.在本身的项目中添加依赖项,以下图所示:

 

完成上述操做,点击async gradle便可。

其余错误:

若是出现

Error:(3) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Borderless.Colored'.

如上相似错误,那是几个项目的sdk版本不一样引发的,四个项目包含你本身的项目的compileSdkVersion 、

buildToolsVersion、targetSdkVersion和compile 'com.android.support:appcompat-v7:25.0.0'几个版本必需要统一,若是不统一会出现各类问题。

相关文章
相关标签/搜索