用于Android的Lame MP3编码器编译

用于Android的Lame MP3编码器编译,android,audio,mp3,Android,Audio,Mp3,我想为Android编译lame编码器。我怎样才能找到Lame及其针对Android平台编译的教程 谢谢,曾经有一个关于如何为Android编译lame的好方法,但由于某种原因,它已经离线了一段时间,并且只在一些不可靠的中国网站上可用 我将复制以下内容: 使用Android NDK将编译lame编码器移植到Android ARM arch上 我在Android Market上寻找mp3编码应用程序, 而且发现很少,这就是我认为Android不支持mp3的原因 编码是因为mp3是专利技术。另一个原

我想为Android编译lame编码器。我怎样才能找到Lame及其针对Android平台编译的教程

谢谢,

曾经有一个关于如何为Android编译lame的好方法,但由于某种原因,它已经离线了一段时间,并且只在一些不可靠的中国网站上可用

我将复制以下内容:

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

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

然而,使用Android编译适用于Android的libmp3lame库 NDK其实很简单

  • 下载androidndk(您还需要androidsdk和带有ADT插件的Eclipse)并创建简单的项目
  • 在项目目录中创建名为“jni”的目录
  • 下载lame源代码,将所有源代码从libmp3lame目录提取、复制到jni目录。还要复制lame.h,它位于lame源的include目录中
  • 创建jni/Android.mk文件。应该是这样的:
  • 清理lame源代码,清除GNU自动工具中的剩余内容,
    Makefile.am
    Makefile.in
    libmp3lame\u vc8.vcproj
    logoe.ico
    depcomp
    ,文件夹
    i386
    vector
  • 编辑文件
    jni/utils.h
    ,并替换定义
    extern ieee754\u float32\u fast\u log2(ieee754\u float32\u t x)
    使用此
    extern float fast_log2(float x)
  • 转到Android项目的根目录,运行
    $pathtoandroidndk/ndk build
    ,完成后,将编译
    limp3lame.so
  • 此外,以下关于SO的问题可能会引起您的兴趣,因为它涉及到在为Android编译lame之后的一些问题:


      • 上述解决方案对我有效,除了:

        • 不要从源目录中删除
          向量
          目录
        • 您可以通过添加编译器标志来消除编译警告:
          LOCAL\u CFLAGS=-DSTDC\u HEADERS

        1。不要移除向量floder;2.一些源代码包括使用“lame.h”的lame.h,一些源代码使用,因此您必须在Android.mk中添加-I./flags如何将其编译为可与ffmpeg一起使用的静态库?我有一个mp3文件,在转换任何webm/wave后,它只带有噪音,就像没有信号的收音机一样
        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)