Android编译IJKPlayer

    xiaoxiao2022-06-29  30

    一、首先配置NDK

    下载地址:http://wear.techbrood.com/tools/sdk/ndk/

    打开终端

    1、输入  pico .bash_profile

    或者

    touch ~/.bash_profile

    这个bash_profile其实就是配置文件,这里如果原先不存在这个文件的话就创建一个,原先有了的话不影响。

    open ~/.bash_profile

    2、export ANDROID_NDK=NDK路径

    或者export PATH=$PATH:NDK路径

         export ANDROID_NDK=NDK路径

          保存( control+X) 选 Y

    3、source .bash_profile 更新

    4、检查是否配置成功

         ndk-build

    输出Could not find application project directory ! Android NDK: Please define the NDK_PROJECT_PATH variable to point to it. /Users/Kelvin/Downloads/android-ndk-r10e/build/core/build-local.mk:143: *** Android NDK: Aborting . Stop即为成功

    二、编译

    Android: Gradle # required allprojects { repositories { jcenter() } } dependencies { # required, enough for most devices. compile 'tv.danmaku.ijk.media:ijkplayer-java:0.6.2' compile 'tv.danmaku.ijk.media:ijkplayer-armv7a:0.6.2' # Other ABIs: optional compile 'tv.danmaku.ijk.media:ijkplayer-armv5:0.6.2' compile 'tv.danmaku.ijk.media:ijkplayer-arm64:0.6.2' compile 'tv.danmaku.ijk.media:ijkplayer-x86:0.6.2' compile 'tv.danmaku.ijk.media:ijkplayer-x86_64:0.6.2' # ExoPlayer as IMediaPlayer: optional, experimental compile 'tv.danmaku.ijk.media:ijkplayer-exo:0.6.2' }

    Before Build

    # install homebrew, git, yasm ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" brew install git brew install yasm # add these lines to your ~/.bash_profile or ~/.profile # export ANDROID_SDK=<your sdk path> # export ANDROID_NDK=<your ndk path> # on Cygwin (unmaintained) # install git, make, yams

    Build Android

    git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android cd ijkplayer-android git checkout -B latest k0.6.2 ./init-android.sh cd android/contrib ./compile-ffmpeg.sh clean ./compile-ffmpeg.sh all cd .. ./compile-ijk.sh all # Android Studio: # Open an existing Android Studio project # Select android/ijkplayer/ and import # # define ext block in your root build.gradle # ext { # compileSdkVersion = 23 // depending on your sdk version # buildToolsVersion = "23.0.0" // depending on your build tools version # # targetSdkVersion = 23 // depending on your sdk version # } 完成 

    如果正确编译的话,会分别在ijkplayer-arm64、ijkplayer-armv5、ijkplayer-armv7a、ijkplayer-x86、ijkplayer-x86_64这些项目的src/main/libs/对应的名称 目录下分别生成libijkffmpeg.so、libijkplayer.so、libijksdl.so这三个so文件。

    ijkplayer-arm64,ijkplayer-armv5,ijkplayer-armv7a,ijkplayer-x86,ijkplayer-x86_64是不同体系架构的动态链接库,在当前工程结构里面作为一个模块,如果不想做兼容多平台问题,可以删除其他目录结构,单独保留自己需要的平台目录。

    使用时直接将编译好的so库导入工程即可。

    转载请注明原文地址: https://ju.6miu.com/read-1125025.html

    最新回复(0)