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

问题描述:

我一直在搜索互联网超过一周,现在正在寻找一种处理Android SDK中音频文件的好方法。我的目标是对音频应用特殊效果。可能有人指向我可以帮助我的资源吗?我不得不转向StackOverflow,因为它是我知道的唯一可靠的答案。我应该从哪里开始进行Android音频编程?

我假设你的意思是你想要数字操纵音频文件,即通过一些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。当然,如果现有文件的格式不是线性PCM(例如MP3),那么在应用任何DSP类型操作之前,您可能需要将其解码为线性PCM。 Cick here有关将文件读入字节数组的示例。 Click here用于指向读取MP3文件并获得解码的原始PCM数据的示例的链接。

Ringdroid是开源的,值得一看。不知道这是否是你想要的。