我有一个程序可以记录麦克风的声音并将声音保存在 .pcm 文件中。
我在程序中有一个单独的函数,它使用 MediaCodec 和 MediaMuxer 将 .pcm 转换为 aac。
是否可以修改我的程序,以便使用 MediaCodec 直接将 .pcm 转换为 aac?我该怎么做?是否有指南或代码示例可以做到这一点?
这是我的程序中记录麦克风声音的代码片段:
recorder = new AudioRecord(
MediaRecorder.AudioSource.MIC,
RECORDER_SAMPLERATE,
RECORDER_CHANNELS,
RECORDER_AUDIO_ENCODING,
bufferSize);
recorder.startRecording();
isRecording = true;
FileOutputStream os = null;
try {
os = new FileOutputStream(filePathAudioRec);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
while (isRecording) {
// gets the voice output from microphone to byte format
recorder.read(sData, 0, BufferElements2Rec);
try {
// writes the data to file from buffer
// stores the voice buffer
byte bData[] = short2byte(sData);
os.write(bData, 0, BufferElements2Rec * BytesPerElement); //do I need to write it to a file ??
} catch (IOException e) {
e.printStackTrace();
}
// inside while loop: add code to convert to .mp4 while the data is collected from the MIC
}