Skip to content

1392492818/ijkplayer-android

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ijkplayer

为了学习 aosp 已经替换 Ubuntu 主开发系统(主要 mac book pro 太贵),脚本适配 Ubuntu 为主,MacOS 尽量适配

构建环境

构建前配置

MacOS

# install homebrew, git, yasm
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install git
brew install yasm

Ubuntu

# 将Shell的解释器改为dash,执行dpkg-reconfigure dash命令,然后选择no
sudo dpkg-reconfigure dash
sudo apt install -y ninja-build git

终端环境变量配置

# add these lines to your ~/.bash_profile or ~/.profile
# export ANDROID_SDK=<your sdk path>
# export ANDROID_NDK=<your ndk path>

拉取源码

git clone https://github.com/ShikinChen/ijkplayer-android --recursive

如果拉取部分模块出错,需要重新拉取项目模块

cd ijkplayer-android
git submodule update --init --remote --recursive --progress

构建和导入

cd ijkplayer-android

#编译ffmpeg一定要使用ndk r27
export ANDROID_NDK=NDK r27的路径
#ndk r27已经不支持armeabi-v7a
cd android/contrib
./compile-ffmpeg.sh arm64

执行完 compile-ffmpeg.sh arm64 编译完 ffmpeg 的 arm64 静态库后,用 android studio 直接将 ijkplayer-android/android/ijkplayer/android/ijkplayer 导入整个项目,并且在设置修改 Gradle JDK 为 java-11

打包

基于 ndk r27 打包 arm64-v8a 版本(项目默认是 ndk r27)

执行之前一样要定义 ANDROID_NDK 环境变量,并且 ffmpeg 已经编译好

export ANDROID_NDK=NDK r27的路径
cd ijkplayer-android/android/ijkplayer
./gradlew :ijkplayer-java:assembleRelease

最后生成的 ijkplayer-java-release.aar 在 ijkplayer-android/android/ijkplayer/ijkplayer-java/build/outputs/aar/目录下

基于 ndk r21 打包 armeabi-v7a 和 arm64-v8a 版本

export ANDROID_NDK=NDK r21的路径

然后修改 ijkplayer-android/android/ijkplayer/ijkplayer-java/build.gradle 的 ndk 和 ndkVersion,如果需要运行 ijkplayer-example 项目也一样修改它的 build.gradle 的 ndk 和 ndkVersion

ndk {
    abiFilters 'armeabi-v7a', 'arm64-v8a'
}
 ndkVersion '21.4.7075529'

重新进行 ffmpeg 编译的 armv7a 和 arm64

cd ijkplayer-android
cd android/contrib
./compile-ffmpeg.sh armv7a
./compile-ffmpeg.sh arm64

打包 aar

cd ../..
cd android/ijkplayer
./gradlew :ijkplayer-java:assembleRelease

Releases

No releases published

Packages

No packages published

Languages

  • Java 60.4%
  • C 26.9%
  • Objective-C 8.2%
  • Shell 3.1%
  • C++ 0.8%
  • Makefile 0.5%
  • Other 0.1%