【发布时间】:2012-09-20 11:54:15
【问题描述】:
我正在开发 android 应用程序,它将记录 wav 文件,然后它应该从声音数据中生成波形。
我正在使用 AudioRecorder 录制麦克风的声音。 `
bufferSize = AudioRecord.getMinBufferSize(44100,AudioFormat.CHANNEL_IN_STEREO,AudioFormat.ENCODING_PCM_16BIT);
AudioRecord recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
44100,AudioFormat.CHANNEL_IN_STEREO,AudioFormat.ENCODING_PCM_16BIT, bufferSize);
recorder.startRecording();
isRecording = true;
recordingThread = new Thread(new Runnable() {
@Override
public void run() {
writeAudioDataToFile();
}
},"Innovolt AudioRecorder Thread");
recordingThread.start();
这将作为 wav 文件存储在内存中。 到这一步就OK了。
现在我必须从录制的声音文件中获取幅度变化。
有没有办法从录制的 wav 文件中获取振幅数组而不播放它? `
【问题讨论】:
-
wav 文件通常只是原始 PCM 数据,文件开头有一个短标题。因此,您可以将其作为二进制文件打开并从中读取示例。
标签: android android-ndk avaudioplayer audio