我正在设计一个后台录音代码,如下所示
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(outputformat);
mediaRecorder.setAudioEncoder(audioencoder);
mediaRecorder.setOutputFile(mRecFile.getAbsolutePath());
mediaRecorder.prepare();
mediaRecorder.start();
Thread.sleep(mDuration);
mediaRecorder.stop();
mediaRecorder.reset();
mediaRecorder.release();
此代码在线程的 run() 中,当服务被主活动绑定时,线程将启动。如果我按“返回”键离开活动(将释放绑定),我发现录制将继续。但是,当我将 mDuration 设置为非常大的 num(3600000(1 小时))时,录制会在一段时间后停止,并且mediaRecorder.stop();
永远不会执行。
如果我不离开活动。录音总是会正常停止。我想知道的是,为什么我不能做背景录音很长一段时间?