说明
目前android上面不支持G711A,项目中有时候需要将音频文件ACC转成G711A,或者G711A转成ACC格式的,这时候就需要用到三方库faad2。
步骤
1.将faad2库解压到自己的目录,比如:/home/zhoujy/faad2-2.7。
2.下载android-ndk-r14b-linux-x86_64.zip文件,解压到zhoujy这个目录下。
3.在faad2-2.7目录下新建一个build_android.sh文件。
NDK目录就是上面下载和解压的android-ndk-r14b-linux-x86_64.zip目录
NDK=/home/zhoujy/android-ndk-r14b/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/
export PLATFORM=$NDK/platforms/android-24/arch-arm/
function build_faad2
{
pwd
CFLAGS="-fpic -DANDROID -fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -DANDROID -Wa,--noexecstack -MMD -MP "
#FLAGS="--host=arm-androideabi-linux --enable-static --enable-shared --prefix=$HOME --enable-armv5e "
CROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi-
export CPPFLAGS="$CFLAGS"
export CFLAGS="$CFLAGS"
export CXXFLAGS="$CFLAGS"
export CXX="${CROSS_COMPILE}g++ --sysroot=${PLATFORM}"
export LDFLAGS="$LDFLAGS"
export CC="${CROSS_COMPILE}gcc --sysroot=${PLATFORM}"
export NM="${CROSS_COMPILE}nm"
export STRIP="${CROSS_COMPILE}strip"
export RANLIB="${CROSS_COMPILE}ranlib"
export AR="${CROSS_COMPILE}ar"
export LIBS="-lm"
./configure \
--prefix=$PREFIX \
--without-mp4v2 \
--enable-static \
--enable-shared \
--host=arm-linux
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
build_faad2
make clean && make && make install
4.修改build_android.sh权限:chmod 0777 build_android.sh
5.编译faad2库:./ build_android.sh
执行shell脚本后,在faad2-2.7目录下会生成一个android文件夹,里面的lib文件夹放的就是编译好的库文件: