Android 多媒体之 Silk 格式音频解码

编程入门 行业动态 更新时间:2024-10-06 01:45:51

Android 多媒体之 Silk 格式<a href=https://www.elefans.com/category/jswz/34/1767680.html style=音频解码"/>

Android 多媒体之 Silk 格式音频解码

1 编译 Silk 源码

1.1 下载源码

由于官方的网站已经无法访问,可以到这里下载github/zly394/Silk…

下载后解压,目录结构如下:

根据不同的 CPU 分了不同文件夹,我这里使用的是 SILK_SDK_SRC_ARM_v1.0.9。

1.2 编写编译脚本

省略 ndk 环境配置过程

进入 SILK_SDK_SRC_ARM_v1.0.9 目录

在该目录下创建配置脚本:

build.sh

# ndk 目录根据你的安装目录
ANDROID_NDK=/Users/zhuleiyue/Library/Android/sdk/ndk-bundle
# 指定 CPU 架构
CPU=armeabi-v7a# 最低支持的 Android 版本
ANDROID_API=android-18
# CPU 架构
ARCH=arch-arm
# 工具链版本
TOOLCHAIN_VERSION=4.9
# 指定工具链 CPU 架构
TOOLCHAIN_CPU=arm-linux-androideabi
# 指定编译工具 CPU 架构
CROSS_CPU=arm-linux-androideabi
# 优化参数
ADDED_CFLAGS="-fpic -pipe "case $CPU in
armeabi-v7a)ARCH=arch-armTOOLCHAIN_CPU=arm-linux-androideabiCROSS_CPU=arm-linux-androideabiTARGET_ARCH=armv7-aADDED_CFLAGS+="-DNO_ASM";;
arm64-v8a)ARCH=arch-arm64ANDROID_API=android-21TOOLCHAIN_CPU=aarch64-linux-androidCROSS_CPU=aarch64-linux-androidTARGET_ARCH=armv8-aADDED_CFLAGS+="-D__ARMEL__";;
*)echo "不支持的架构 $CPU";exit 1;;
esac# 设置编译针对的平台
# 最低支持的 android 版本,CPU 架构
SYSROOT=$ANDROID_NDK/platforms/$ANDROID_API/$ARCH
# 设置编译工具前缀
export TOOLCHAIN_PREFIX=$ANDROID_NDK/toolchains/$TOOLCHAIN_CPU-$TOOLCHAIN_VERSION/prebuilt/darwin-x86_64/bin/$CROSS_CPU-
# 设置编译工具后缀
export TOOLCHAIN_SUFFIX=" --sysroot=$SYSROOT"
# 设置 CPU 架构
export TARGET_ARCH
# 设置优化参数
export ADDED_CFLAGSmake clean all复制代码

对于 armeabi-v7a 的 CPU 架构需要设置 NO_ASM 来禁用 asm,对于 arm64-v8a 架构,需要设置 ARMEL 支持 big endian。

1.3 编译

给 build.sh 赋予可执行权限:

chmod +x build.sh复制代码

然后运行编译脚本进行编译:

./build.sh复制代码

编译完成后会在当前目录生成静态库 libSKP_SILK_SDK.a。

2 引入到 Android 项目

2.1 添加静态库和头文件

创建支持 C/C++ 的项目

在 app 的 build.gradle 文件中 defaultConfig 标签下添加如下配置:


 
          

更多推荐

Android 多媒体之 Silk 格式音频解码

本文发布于:2024-02-28 06:46:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768490.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:音频   多媒体   格式   Android   Silk

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!