我应该从哪里开始进行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数据的示例的链接。