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

Posted

技术标签:

【中文标题】使用 AudioRecord 以 .mp3 格式录制音频【英文标题】:Recording audio in .mp3 format by using AudioRecord 【发布时间】:2017-11-23 09:46:33 【问题描述】:

我想使用 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 格式保存音频?

【问题讨论】:

在此处添加您尝试过的代码 我已添加代码 你要录制自动通话录音吗.. 没有。它是对讲机应用程序。 pcm格式可以在android中播放吗?或者还有哪些可以尝试的其他格式? 【参考方案1】:

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

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

【讨论】:

以上是关于使用 AudioRecord 以 .mp3 格式录制音频的主要内容,如果未能解决你的问题,请参考以下文章

Android制作一个视频录制器

Android制作一个视频录制器

Android MP3录音实现

增加录制 Android AudioRecord 的音量

Android开发笔记(一百八十九)利用LAME录制MP3音频

Android开发笔记(一百八十九)利用LAME录制MP3音频