Android studio 3.5 使用cmake编译Lame3.100库so

因为Android录音不支持MP3,所以要用到音频转码。lame是一个比较有名的开源音频库 是用C语言写的。使用AndroidStudio编译步骤如下:

 1.第一步搭建NDK开发环境Android  studio配置里 Android SDK 选项下的。 SDK Tools 选择LLB NDK CMake 3个并下载                                                            

2.第二步创建一个NDK工程,这里要提一下新版的Android studio 是把支持C++单独提出来作为一个项目类型了

3.下载Lame源码https://lame.sourceforge.io这里使用lame 3.100最新版本

    在项目cpp目录新建文件夹lamemp3,把解压后文件夹libmp3lame里的除i386和vector文件夹里全部.h、.c结尾的文件和include/lame.h复制到cpp/lamemp3里面

 修改lame部分源码  

 (1)注释掉或者删掉ffc.c文件里的include "vector/lame_intrin.h"  

 (2)注释掉set_get.h的第24行 #include <lame.h> 

 (3)修改 util.h 文件的 570 行的 extern ieee754_float32_t fast_log2(ieee754_float32_t x)  extern float fast_log2(float x) 

 4.配置Gradle文件

    追加  cppFlags "-frtti -fexceptions" cFlags "-DSTDC_HEADERS" 2项

5.配置CMakeLists.txt文件内容如下

   把 CMakeLists.txt放到app目录下如下图

cmake_minimum_required(VERSION 3.4.1)

set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/jniLibs/${ANDROID_ABI})

#设置变量SRC_DIR为lamemp3的所在路径
set(SRC_DIR src/main/cpp/lamemp3)

#指定头文件所在,可以多次调用,指定多个路径
include_directories(src/main/cpp/lamemp3)

#设定一个目录
aux_source_directory(src/main/cpp/lamemp3 SRC_LIST)

add_library( 
        lamemp3

        SHARED

         ${SRC_LIST}) #src/main/cpp/native-lib.cpp

find_library( 
        log-lib
        log)

target_link_libraries( 
        lamemp3
        ${log-lib})

6.直接build项目会在配置的jniLibs目录下生成动态so库文件

 

 

参考 : https://www.jianshu.com/p/a9f5996cfd5d

              https://www.jianshu.com/p/f09dbaf72126

              https://www.2cto.com/kf/201804/735129.html

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值