Android音频录制MediaRecorder之简易的录音软件实现代码


下面是一个使用Android的`MediaRecorder`类来实现简易录音软件的示例代码。请注意,这只是一个基本的框架,你可能需要根据你的具体需求进行调整。


import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.widget.Button;
import android.view.View;

import java.io.File;
import java.io.IOException;

public class AudioRecorderActivity extends Activity {

    private MediaRecorder mediaRecorder;
    private String outputFile;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_audio_recorder); // 确保你有对应的布局文件

        // 设置录音文件的存储路径
        File externalStorage = Environment.getExternalStorageDirectory();
        outputFile = externalStorage.getAbsolutePath() + "/audio_record_test.3gp";

        // 初始化MediaRecorder
        mediaRecorder = new MediaRecorder();

        // 设置录音源为麦克风
        mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);

        // 设置输出格式为3GPP
        mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

        // 设置音频编码器为AMR_NB
        mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

        // 设置输出文件
        mediaRecorder.setOutputFile(outputFile);

        // 初始化UI组件,例如按钮
        Button startButton = findViewById(R.id.start_button);
        Button stopButton = findViewById(R.id.stop_button);

        startButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    // 准备录音
                    mediaRecorder.prepare();
                    // 开始录音
                    mediaRecorder.start();
                } catch (IllegalStateException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });

        stopButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 停止录音
                if (mediaRecorder != null) {
                    mediaRecorder.stop();
                    mediaRecorder.release(); // 释放资源
                    mediaRecorder = null;
                }
            }
        });
    }

    // 确保在Activity销毁时释放资源
    @Override
    protected void onDestroy() {
        if (mediaRecorder != null) {
            mediaRecorder.release();
            mediaRecorder = null;
        }
        super.onDestroy();
    }
}

**注意**:

- 确保你的应用有写入外部存储的权限。在Android 6.0(API 级别 23)及以上,你需要在运行时请求权限。

- 替换`R.layout.activity_audio_recorder`和`R.id.start_button`、`R.id.stop_button`为你的实际布局和按钮ID。

- 录音文件被保存在外部存储的根目录下,你可能需要根据你的应用需求调整存储位置。

- 这是一个非常基础的示例,没有包含错误处理、用户反馈等高级功能。你可能需要根据你的应用需求进行扩展。