使用AudioRecord以.mp3格式录制音频

时间:2017-11-23 09:46:34

标签: android audio audio-recording

我想使用AudioRecord类以.mp3格式录制和保存音频。目前它以.pcm格式录制。我使用下面的代码进行记录 -

  private void writeAudioDataToFile() {
    // Write the output audio in byte

    String filePath = "/sdcard/voice8K16bitmono.pcm";
    short sData[] = new short[BufferElements2Rec];

    FileOutputStream os = null;
    try {
        os = new FileOutputStream(filePath);
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

    while (isRecording) {
        // gets the voice output from microphone to byte format

        m_audioRecord.read(sData, 0, BufferElements2Rec);
        System.out.println("Short wirting to file" + sData.toString());
        try {
            // // writes the data to file from buffer
            // // stores the voice buffer

            byte bData[] = short2byte(sData);

            os.write(bData, 0, BufferElements2Rec * BytesPerElement);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    try {
        os.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

   private byte[] short2byte(short[] sData) {
    int shortArrsize = sData.length;
    byte[] bytes = new byte[shortArrsize * 2];

    for (int i = 0; i < shortArrsize; i++) {
        bytes[i * 2] = (byte) (sData[i] & 0x00FF);
        bytes[(i * 2) + 1] = (byte) (sData[i] >> 8);
        sData[i] = 0;
    }
    return bytes;

}

以上两种方法是以.pcm格式录制文件。这可以使用AudioRecord类以.mp3格式保存音频吗?

1 个答案:

答案 0 :(得分:0)

没有编码器可以在android中记录mp3中的文件。您无法使用本机功能实现mp3。您可以使用任何第三方库来实现此目的。

查看this帖子,这可能会对您有所帮助。