在 Android 中,使用 MediaRecorder 类可以进行音频录制操作。以下是使用 MediaRecorder 进行录音的基本入门信息:

1. 添加录音权限:
在 AndroidManifest.xml 文件中添加录音权限:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2. 初始化 MediaRecorder:
在你的 Activity 或 Fragment 中,首先创建 MediaRecorder 对象:
private MediaRecorder mediaRecorder;
private String outputFile;

在 onCreate 方法或其他适当的地方初始化 MediaRecorder:
outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/audio.3gp";

mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setOutputFile(outputFile);

3. 开始录音:
try {
    mediaRecorder.prepare();
    mediaRecorder.start();
} catch (IOException e) {
    e.printStackTrace();
}

4. 停止录音:
mediaRecorder.stop();
mediaRecorder.release();
mediaRecorder = null;

5. 添加动态权限处理:
在 Android 6.0 及以上版本,需要处理动态权限请求。你可以使用 [EasyPermissions](https://github.com/googlesamples/easypermissions) 库简化权限请求流程。
@AfterPermissionGranted(REQUEST_RECORD_AUDIO_PERMISSION)
private void requestRecordAudioPermission() {
    String[] perms = {Manifest.permission.RECORD_AUDIO, Manifest.permission.WRITE_EXTERNAL_STORAGE};
    if (EasyPermissions.hasPermissions(this, perms)) {
        // 已经获取录音权限,执行录音操作
        startRecording();
    } else {
        // 申请录音权限
        EasyPermissions.requestPermissions(this, "需要录音权限", REQUEST_RECORD_AUDIO_PERMISSION, perms);
    }
}

// 处理权限请求结果
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
}

// 权限授予成功的回调
@Override
public void onPermissionsGranted(int requestCode, List<String> perms) {
    // 录音权限授予成功,执行录音操作
    startRecording();
}

// 权限拒绝的回调
@Override
public void onPermissionsDenied(int requestCode, List<String> perms) {
    // 处理权限被拒绝的情况
}

6. 添加录音文件保存和读取权限:
如果你希望保存和读取录音文件,还需要添加相应的权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

7. 注意事项:
  •  在使用 MediaRecorder 时,确保在合适的生命周期方法(例如 onDestroy)中释放资源,避免内存泄漏。

  •  在录音结束后,可以通过 outputFile 所指定的路径来获取录音文件。


这是一个简单的使用 MediaRecorder 进行录音的例子。


转载请注明出处:http://www.zyzy.cn/article/detail/15241/Android