ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-03-16 21:32:33  阅读:344  来源: 互联网

标签:集成 0.8 ijkplayer tv Demo project android com


接上一篇编译篇

这里接着讲怎么运行播放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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有