1

我有一个程序可以记录麦克风的声音并将声音保存在 .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
   }
4

0 回答 0