代码之家  ›  专栏  ›  技术社区  ›  bramp Madhur Ahuja

如何在Android设备上将WAV编码成mp3

  •  40
  • bramp Madhur Ahuja  · 技术社区  · 14 年前

    在Android设备上,有哪些选项可以将原始PCM音频数据压缩到mp3。

    我在我的Android手机上创建了一个合成器,我一直在生成PCM数据发送到扬声器。现在我想知道我是否可以将这个PCM数据编码为mp3保存到SD卡。这个 MediaRecorder 对象可以将来自麦克风的音频编码为各种格式,但不允许从编程生成的音频数据进行编码。

    所以我的问题是,有没有标准的Android API来编码音频?如果没有,有什么纯Java或NDK的解决方案?你能推荐其中任何一种吗?

    如果做不到这一点,我只能将生成的音频保存为WAV文件,我可以很容易地做到这一点。

    3 回复  |  直到 9 年前
        1
  •  32
  •   Paul Gregoire    14 年前

    纯Java
    查看Tritonus的javasound的洁净室实现,它提供了一个 MP3编码器 http://www.tritonus.org/plugins.html
    http://www.javazoom.net/javalayer/javalayer.html (这可能只是解码,不确定)
    http://www.javaworld.com/javaworld/jw-11-2000/jw-1103-mp3.html

    原生路线
    跛子: http://lame.sourceforge.net/

        2
  •  9
  •   NagyI    14 年前

    据我所知,您不能只使用SDK中的工具来实现这一点。根据官方的开发者指南,平台中没有MP3编码器( Android Supported Media Formats ),因此您必须使用NDK自己移植一个编码器,然后编写一些包装器代码来通过JNI接收音频样本。

    我目前正在为我自己的音乐播放器移植Rockbox项目中的一些音频解码器,它可以将音频录制到MP3中,所以也许你应该尝试查看它的源代码并找到编码器库。大多数解码器都有ARM优化,这加快了一些值得注意的事情,所以我猜一些编码器也有这个附加功能。

        3
  •  1
  •   Mohit    11 年前