您的位置:首页 > 移动开发 > Android开发

Android Studio下编译lame

2016-05-11 15:49 543 查看
在项目中要实装lame的开源库实现录音转码mp3的功能。

期间遇到了诸多问题,在win和ubuntu下来回切。Android Studio本身的ndk功能还处于试验状态(2.1).

最终成功解决。

1.首先下载lame的源码。需要自备梯子。

http://lame.sourceforge.net/download.php

http://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz

下载好之后解压。将libmp3lame/ 目录拷贝到项目下的jni目录下,同时将将 lame-x.xx.x/include/ 目录下的 lame.h 也复制到 jni/libmp3lame/中

2.在jni文件夹下创建Application.mk和Android.mk文件

这里不赘述,重点在于如果是x86_64的话需要在Application.mk中加上

APP_CFLAGS += -DSTDC_HEADERS

否则会有错误

undefined reference to `bcopy'

collect2: error: ld returned 1 exit status



3.修改源代码

fft.c中去掉#include “vector/lame_intrin.h”。这个是用Intel CPU的特性进行优化, ARM上用不到。
set_get.h中将#include改成#include “lame.h”。
utils.h中将extern ieee754_float32_t fast_log2(ieee754_float32_t x);用extern float fast_log2(float x);替换。


4.build

这个时候在终端里切换到jni目录,执行ndk-build就可以了。前提是将ndk-build的目录添加到了系统环境变量中
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息