欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android studio集成ijkplayer的示例代码

程序员文章站 2023-12-13 19:23:10
介绍 ijkplayer是一款非常火的开源视频播放器,android和ios通用。关于怎么编译怎么导入android studio中自己的项目,其中坑很多,本篇记录下自己...

介绍

ijkplayer是一款非常火的开源视频播放器,android和ios通用。关于怎么编译怎么导入android studio中自己的项目,其中坑很多,本篇记录下自己的操作记录。ijkplayer现在的版本是0.8.3,当然是使用最新的版本集成了。

编译ijkplayer

关于编译,我是在ubuntu上编译后拷贝到win10中的,ijkplayer源码需要gcc编译,windows各种不好用,如果使用cynwin还不如在ubuntu下编译。

编译的过程是下载sdk,ndk。设置环境变量后按照github上的说明编译即可.

android studio集成ijkplayer

1.导入到你的项目中

android studio打开你的项目,file->import module...选择ijkplayer的anroid/ijkplayer目录,ijk-example依赖所有库,所以导入后所有项目都会导入到你的项目中。

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

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

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

android studio集成ijkplayer的示例代码

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

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

先修改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')

 

}

注意:

  1. apply plugin: 'com.android.application'要改为apply plugin: 'com.android.library'
  2. applicationid "tv.danmaku.ijk.media.example"这句要去掉
  3. compile 'com.android.support:appcompat-v7:25.0.0'
    1. compile 'com.android.support:preference-v7:23.0.1'
    2. compile 'com.android.support:support-annotations:23.0.1'
    3. 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.在自己的项目中添加依赖项,如下图所示:

android studio集成ijkplayer的示例代码

完成上述操作,点击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'
几个版本必须要统一,如果不统一会出现各种问题。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

上一篇:

下一篇: