我应该从哪里开始Android音频编程?

时间:2012-04-11 20:46:51

标签: android audio

我已经在互联网上搜索了一个多星期,现在正在寻找一种在Android SDK中操纵音频文件的好方法。我的目标是对音频应用特殊效果。有人可以指点我一个可以帮助我的资源吗?我不得不求助于StackOverflow,因为它是我所知道的唯一可靠的答案。

2 个答案:

答案 0 :(得分:1)

我假设您想要通过某种DSP技术以数字方式操作音频文件,即字节级别?

如果您想实时操作(即从微信中),请查看android.media.AudioRecord.AudioRecord。例如:

audioRecord = new AudioRecord(
    MediaRecorder.AudioSource.MIC,
    8000,
    AudioFormat.CHANNEL_IN_STEREO,
    AudioFormat.ENCODING_PCM_16BIT,
    AudioTrack.getMinBufferSize(
        8000,
        AudioFormat.CHANNEL_IN_STEREO,
        AudioFormat.ENCODING_PCM_16BIT)*20);

audioRecord.startRecording();
byte[] readBuffer = new byte[640];
int nbytes = audioRecord.read(readBuffer.getData(),0,readBuffer.length);

这将使您可以访问原始音频数据(在上面的示例中,线性PCM 16位立体声)。

如果您想阅读现有的存储文件(例如来自SD卡)并操纵音频,请查看java.io.FileInputStream。当然,如果现有文件的格式不是Linear PCM(例如MP3),那么在应用任何DSP类型操作之前,您可能希望将其解码为Linear PCM。 Cick here表示将文件读入字节数组的示例。 Click here表示读取MP3文件并获取解​​码的原始PCM数据的示例的链接。

答案 1 :(得分:0)

Ringdroid是开源的,值得关注。不确定这是否符合您的要求。