Lame MP3 Encoder编译为Android

Coo*_*חמד 20 audio mp3 android

我想为Android编译跛脚编码器.我怎样才能找到Lame的教程及其Android平台的编译.

谢谢,

MH.*_*MH. 32

曾经有一篇关于如何为Android编译跛脚的好博客文章,但出于某种原因,它已经离线一段时间,只在一些狡猾的中国网站上可用.

我只想复制以下内容:

使用Android NDK将编译lame编码器移植到Android ARM arch

我在Android Market中寻找一个mp3编码应用程序,发现很少,我认为Android不支持mp3编码的原因是因为mp3是专利技术.另一个原因是我猜人们更喜欢Java编程和Android SDK而不是Android原生开发工具包.

尽管如此,使用Android NDK为Android编译libmp3lame库实际上非常简单.

  1. 下载Android NDK(您还需要Android SDK和带ADT插件的Eclipse)并创建简单项目.
  2. 在项目目录中创建名为"jni"的目录.
  3. 下载lame源,解压缩,将目录libmp3lame中的所有源复制到jni目录.同时复制lame.h,它位于lame源的include目录中.
  4. 创建jni/Android.mk文件.它应该是这样的:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)`
LOCAL_MODULE    := mp3lame
LOCAL_SRC_FILES := bitstream.c fft.c id3tag.c mpglib_interface.c presets.c  quantize.c   reservoir.c tables.c  util.c  VbrTag.c
   encoder.c  gain_analysis.c lame.c  newmdct.c   psymodel.c
   quantize_pvt.c set_get.c  takehiro.c vbrquantize.c version.c
include $(BUILD_SHARED_LIBRARY)
Run Code Online (Sandbox Code Playgroud)
  1. 清洁跛脚来源,删除什么从GNU自动离开,Makefile.am,Makefile.in,libmp3lame_vc8.vcproj,logoe.ico,depcomp,文件夹i386,vector.
  2. 编辑文件jni/utils.h,并extern ieee754_float32_t fast_log2(ieee754_float32_t x); 用此替换定义extern float fast_log2(float x);
  3. 转到你的Android项目的根目录并运行$pathtoandroidndk/ndk-build,你已经完成了,你将limp3lame.so编译.

此外,关于SO的以下问题可能对您感兴趣,因为它在编译Android的跛脚后处理一些问题:

  • 1. 不要移除vector floder;2. 一些源码包含 lame.h 使用 "lame.h" 一些源码使用 <lame.h>,所以你必须在 Android.mk 中添加 -I./ 标志 (2认同)

Jam*_*ang 9

以上解决方案对我有用,除了:

  • 不要vector从源目录中删除该目录
  • 您可以通过添加编译器标志来消除编译警告: LOCAL_CFLAGS = -DSTDC_HEADERS