这个问题的原因是安卓12中对MediaRecorder的默认设置进行了修改,限制了录制时间。可以通过手动设置MediaRecorder的最大录制时间来解决这个问题。
示例代码如下:
MediaRecorder mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setMaxDuration(60000); // 设置最大录制时间为60秒
mediaRecorder.setOutputFile(fileName);
try {
mediaRecorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
mediaRecorder.start();
在上面的代码中,setMaxDuration方法设置最大录制时间为60秒。将其更改为需要的时间即可解决问题。