其他分享
首页 > 其他分享> > ijkplayer学习二:运行Demo并集成到项目

ijkplayer学习二:运行Demo并集成到项目

作者:互联网

接上一篇编译篇

这里接着讲怎么运行播放ijkplayer的sample中自带的Demo并把ijkplayer集成到项目中。

运行环境

首先我的运行环境如下

Android Studio版本:4.1.2
buildToolsVersion “30.0.3”

gradle版本:
图片:运行环境一

拷贝文件

把ijkplayer-android\android\ijkplayer从Ubuntu中拷贝到windows中。

如果之前安装了VMware Tools则把ijkplayer文件夹压缩后从Ubuntu拖出来到Windows再解压即可。

ijkplayer的目录如下:

目录图片

再AndroidStudio中打开ijkplayer

打开项目图片

更改ijkplayer项目中的build.gradle

可以根据自己AS和gradle版本来进行更改,注意代码中的汉字注释

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        // 镜像地址,便于构建项目
        maven{url 'http://maven.aliyun.com/nexus/content/groups/public/'}
        maven{url "https://jitpack.io"}
        google()
    }
    dependencies {
        // 根据自己的具体情况更改
        classpath "com.android.tools.build:gradle:4.1.2"

        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
    	// 镜像地址,便于构建项目
        maven{url 'http://maven.aliyun.com/nexus/content/groups/public/'}
        google()
    }
}

ext {
    compileSdkVersion = 30 //根据自己的具体情况更改
    buildToolsVersion = "30.0.3" //根据自己的具体情况更改

    targetSdkVersion = 30 //根据自己的具体情况更改

    versionCode = 800800
    versionName = "0.8.8"
}

wrapper {
    gradleVersion = '6.5' //根据自己的具体情况更改
}

更改ijkplayer-example中的build.gradle

主要是主要将complie修改成implementation。

添加flavorDimensions "default"避免Error:All flavors must now belong to a named flavor dimension.报错

修改all32 { minSdkVersion 21 }避免 The minSdk version should not be declared in the android manifest file.报错

apply plugin: 'com.android.application'

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 {
        applicationId "tv.danmaku.ijk.media.example"
        minSdkVersion 9
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode rootProject.ext.versionCode
        versionName rootProject.ext.versionName
        // 添加
        flavorDimensions "default"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
        all32 { minSdkVersion 21 } // 修改
        all64 { minSdkVersion 21 }
        // armv5 {}
        // armv7a {}
        // arm64 { minSdkVersion 21 }
        // x86 {}
    }
}

dependencies {
    // 下边的所有compile修改成implementation
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:23.0.1'
    implementation 'com.android.support:preference-v7:23.0.1'
    implementation 'com.android.support:support-annotations:23.0.1'

    implementation 'com.squareup:otto:1.3.8'

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

    all32Implementation project(':ijkplayer-armv5')
    all32Implementation project(':ijkplayer-armv7a')
    all32Implementation project(':ijkplayer-x86')

    all64Implementation project(':ijkplayer-armv5')
    all64Implementation project(':ijkplayer-armv7a')
    all64Implementation project(':ijkplayer-arm64')
    all64Implementation project(':ijkplayer-x86')
    all64Implementation project(':ijkplayer-x86_64')

    // compile 'tv.danmaku.ijk.media:ijkplayer-java:0.8.8'
    // compile 'tv.danmaku.ijk.media:ijkplayer-exo:0.8.8'

    // all32Compile 'tv.danmaku.ijk.media:ijkplayer-armv5:0.8.8'
    // all32Compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'
    // all32Compile 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8'

    // all64Compile 'tv.danmaku.ijk.media:ijkplayer-armv5:0.8.8'
    // all64Compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.8.8'
    // all64Compile 'tv.danmaku.ijk.media:ijkplayer-arm64:0.8.8'
    // all64Compile 'tv.danmaku.ijk.media:ijkplayer-x86:0.8.8'
    // all64Compile 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.8.8'

    // armv5Compile project(':player-armv5')
    // armv7aCompile project(':player-armv7a')
    // arm64Compile project(':player-arm64')
    // x86Compile project(':player-x86')
    // x86_64Compile project(':player-x86_64')
}

其他修改

这时候你可以试着运行下,根据AS的报错信息进行修改

每个模块下的build.gradle,需要将complie修改成implementation。(不该不一定会报错)

错误之一及解法
图片:example错误图片一

编译成功后,运行例子

模拟器界面

图片:模拟器一

点击Sample,然后点击其中一个例子。

图片:模拟器二

有的不成功,都试试,有能播的

图片:模拟器三

集成进项目

由于有很好的博文来讲这个了,就不自己写了(套娃)

ijkplayer demo编译后导入到项目中

集成参考:

Ijkplayer demo 基本使用

按照上面步骤一步一步完成后,发现了Androidx和support冲突的问题,下面是解决方案:

Android 迁移到 Androidx

需要一步一步对照表来更改库名称:

google官方库映射表

参考博客

ijkplayer的编译和使用

标签:集成,0.8,ijkplayer,tv,Demo,project,android,com
来源: https://blog.csdn.net/casemate/article/details/114767343