编译的过程是在Mac + Parallels + Ubuntu 14的环境(Linux)下完成的。
1,新建home文件夹,然后在其中创建AndroidNDK和FFmpeg文件夹,分别用来放置ndk和ffmpeg源码;
2,下载ndk,并配置ndk开发环境
3,去FFmpeg官网(http://ffmpeg.org/)下载源码,解压(命令: )到FFmpeg文件夹中
4,复制一份version.sh,然后将其重命名为build_android.sh(这样做可以保证不会出现编码的问题,至少我是这么认为的),然后修改其文件内容,如下():
#!/bin/bash
NDK=/home/AndroidNDK
PLATFORM=$NDK/platforms/android-9/arch-arm/
PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt
function build_one
{
./configure --target-os=linux --prefix=$PREFIX \
--enable-cross-compile \
--enable-runtime-cpudetect \
--disable-asm \
--arch=arm \
--cc=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-gcc \
--cross-prefix=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi- \
--disable-stripping \
--nm=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-nm \
--sysroot=$PLATFORM \
--enable-gpl --disable-shared --enable-static --enable-small \
--disable-ffprobe --disable-ffplay --disable-ffmpeg --disable-ffserver --disable-debug \
--extra-cflags="-fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -marm -march=armv7-a"
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
需要说明的是:
1)
--disable shared --enable static 打成一个so库的设置
--enable shared --disable static 打成多个so库的设置
2)
前三行需要设置为自己本地的NDK环境变量,就是NDK PLATFORM PREBUILT
(因为我知道的,就这么多)
5,修改configure中的内容
修改前
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'
修改后
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'
6,开始执行命令./configure
7,执行命令./build_android.sh
8,执行完毕后,当前目录下会多出一个android的文件夹(Parallel里的Ubuntu文件不能实时刷新),里面的文件夹armeabi就是我们所需要的
9,去github上下载EasyDarwin/EasyAudioDecoder,地址是https://github.com/EasyDarwin/EasyAudioDecoder,并解压,得到文件夹EasyAudioDecoder-master
10,将armeabi复制到EasyAudioDecoder-master\Android\AudioCodec\jni\ffmpeg文件夹下
11,打开Application.mk,将内容改为APP_ABI := armeabi,保存,关闭
12,在jni目录下执行命令ndk-build
13,在EasyAudioDecoder-master\Android\AudioCodec\libs下就能拿到所需要的so库(libAudioCodecer.so)了
----------------------------------------------------------我是华丽丽的分割线----------------------------------------------------------
附注:静静地等待晚上的补齐;顺便附上我汪帅气的照片