Lame MP3编码器为Android编译

我想编译Android的lame编码器。 我怎样才能找到Lame的教程和它的Android平台编译。

谢谢,


过去有一篇关于如何为Android编译跛脚的好博客文章,但由于某种原因,它已经脱机了一段时间,只能在一些狡猾的中文站点上使用。

我只是复制下面的内容:

使用Android NDK将跛脚编码器移植到Android ARM arch

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

尽管如此,使用Android NDK为Android编译libmp3lame库实际上非常容易。

  • 下载Android NDK(您还需要安装Android SDK和带ADT插件的Eclipse)并创建简单的项目。
  • 在项目目录中创建名为“jni”的目录。
  • 下载lame源文件,将目录libmp3lame中的所有源文件复制到jni目录。 还要复制位于包含lame源代码目录的lame.h。
  • 创建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)
  • 清理跛脚来源,删除GNU autotools, Makefile.amMakefile.inlibmp3lame_vc8.vcprojlogoe.icodepcomp ,文件夹i386vector depcomp
  • 编辑文件jni/utils.h ,并替换定义extern ieee754_float32_t fast_log2(ieee754_float32_t x); 这个extern float fast_log2(float x);
  • 进入你的Android项目的根目录并运行$pathtoandroidndk/ndk-build ,你就完成了,你将会编译limp3lame.so
  • 另外,关于SO的以下问题可能会对您感兴趣,因为它会在编译Android版lame之后处理一些问题:

  • 调用移植库的本地函数

  • 上述解决方案为我工作,除了:

  • 不要从源目录中删除vector目录
  • 您可以通过添加编译器标志来摆脱编译警告: LOCAL_CFLAGS = -DSTDC_HEADERS
  • 链接地址: http://www.djcxy.com/p/96803.html

    上一篇: Lame MP3 Encoder compile for Android

    下一篇: AngularJS performs an OPTIONS HTTP request for a cross