要使用MediaRecorder仅录制音频,请按照以下步骤操作:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
private void checkPermissions() {
if (ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO, Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_CODE);
}
}
private MediaRecorder mediaRecorder;
private String outputFile;
private void initMediaRecorder() {
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
outputFile = Environment.getExternalStorageDirectory().getAbsolutePath() + "/recorded_audio.3gp";
mediaRecorder.setOutputFile(outputFile);
}
private void startRecording() {
try {
initMediaRecorder();
mediaRecorder.prepare();
mediaRecorder.start();
} catch (IOException e) {
e.printStackTrace();
}
}
private void stopRecording() {
mediaRecorder.stop();
mediaRecorder.release();
mediaRecorder = null;
}
请注意,上述代码示例假定您已经有了一个活动类,并在其中实现了这些方法。在运行时,请确保已授予所需的权限。
领取专属 10元无门槛券
手把手带您无忧上云