• androidstudio集成ijkplayer教程



     

    介绍

    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-javasrcmain目录下新建一个名为jniLibs的文件夹,将各个ijkplayer-xxx目录中的srcmainlibs目录下的文件夹拷贝到jniLibs文件夹中,如:ijkplayer--armv7a的该目录下包含armeabi-v7a这个文件夹,其中包含了该平台对应的.so文件,如果希望包含所有平台的,就将所有ijkplayer-xxx下的全部拷过来,如果只希望某几个平台的,就只拷贝它们的。

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

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

    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')
    
    }

    注意:

    • 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'

    几个版本必须要统一,如果不统一会出现各种问题。

    http://www.qingpingshan.com/rjbc/az/334018.html

    http://makaidong.com/XYQ-208910/34380_157556.html

    http://www.th7.cn/Program/Android/201502/385729.shtml

  • 相关阅读:
    【Java基础】浅谈常见设计模式
    面试中的排序算法总结
    Spring Boot中静态资源(JS, 图片)等应该放在什么位置
    分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
    分布式缓存技术redis学习系列(三)——redis高级应用(主从、事务与锁、持久化)
    分布式缓存技术redis学习系列(二)——详细讲解redis数据结构(内存模型)以及常用命令
    Springmvc参数绑定
    SpringMVC框架的图片上传
    全文检索技术ElasticSearch
    MQ(Message Queue)消息队列
  • 原文地址:https://www.cnblogs.com/pengmn/p/9067806.html
Copyright © 2020-2023  润新知