android编译lame

阅读: 评论:0

android编译lame

android编译lame

android编译lame

编译环境

AndroidStudio2.2,如果没有安装ndk,点开File->Setting,选中AndroidSDK,根据官方文档,勾选中CMake,LLDB和NDK三项安装。

CMake用于使用cmake脚本编译(官方例子采用此方式编译),而我编译选择了采用NDK编译。

编译过程

需要去lame官网去下载lame包,最新版本为3.99.5,新建一个android工程,命名为Mp3LameEncoder,然后在app/src/main文件夹下新建一个jni文件夹,将lame官网下载的压缩包解压,把解压后的libmp3lame复制到jni目录下,同时将include目录下的lame.h也拷贝到jni/libmp3lame目录下,同时删除depcomp、、logoe.ico、Makefile.am、Makefile.in、i386文件夹和vector文件夹下的非.h .c文件,这样,前期处理就做好了。

下一步就是要去编写Android.mk文件去编译了,Android.mk文件如下

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LAME_LIBMP3_DIR := libmp3lameLOCAL_MODULE    := mp3lame
LOCAL_SRC_FILES     := $(LAME_LIBMP3_DIR)/bitstream.c $(LAME_LIBMP3_DIR)/encoder.c $(LAME_LIBMP3_DIR)/fft.c $(LAME_LIBMP3_DIR)/gain_analysis.c $(LAME_LIBMP3_DIR)/id3tag.c $(LAME_LIBMP3_DIR)/lame.c $(LAME_LIBMP3_DIR)/mpglib_interface.c $(LAME_LIBMP3_DIR)/newmdct.c $(LAME_LIBMP3_DIR)/presets.c $(LAME_LIBMP3_DIR)/psymodel.c $(LAME_LIBMP3_DIR)/quantize.c $(LAME_LIBMP3_DIR)/quantize_pvt.c $(LAME_LIBMP3_DIR)/reservoir.c $(LAME_LIBMP3_DIR)/set_get.c $(LAME_LIBMP3_DIR)/tables.c $(LAME_LIBMP3_DIR)/takehiro.c $(LAME_LIBMP3_DIR)/util.c $(LAME_LIBMP3_DIR)/vbrquantize.c $(LAME_LIBMP3_DIR)/VbrTag.c $(LAME_LIBMP3_DIR)/version.c LOCAL_LDLIBS := -lloginclude $(BUILD_SHARED_LIBRARY)

编译中的问题

编译中会报各种各样的错误,下面把我遇到的错误及解决方法总结如下:

没有ieee754_float32类型

解决办法: 将util.h的
extern ieee754_float32_t fast_log2(ieee754_float32_t x);
字段改为extern float fast_log2(float x);

提示要将set_get.h文件中的#include
报错undefined reference to ‘bcopy’ undefined reference to ‘index’

解决办法: 这个是最坑爹的,很多文档都没有提到,这里要修改id3tag.c和machine.h,将HAVE_STRCHR和HAVE_MEMCPY的ifdef结构注释掉。

id3tag.c

machine.h

然后在采用ndk-build命令进行编译,就可以顺利完成。

这里也可以在工程项目的adle文件中配置,同时在ModuleSetting中指定NDK路径

然后Build->Make Project就可以自动编译,无需打开命令行窗口敲命令了

本文发布于:2024-01-27 23:08:13,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063680953197.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:android   lame
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23