背景音频记录将自行停止

时间:2013-09-05 09:52:43

标签: android audio recording

我正在设计一个背景音频录制代码,如“

            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();

此代码位于Thread的run()中,当主服务绑定服务时,线程将启动。如果我按“后退”键(将释放绑定)离开活动,我发现录音将继续。但是,当我将mDuration设置为一个非常大的数量(3600000(1小时))时,录制将在一段时间后停止,并且mediaRecorder.stop();将永远不会执行。

如果我不离开活动。录音总是正常停止。我想知道的是为什么我不能长时间进行背景录音?

1 个答案:

答案 0 :(得分:0)

您应该使用ForegroundService在后​​台录制音频。

  

前台服务是一种被认为是用户主动意识到的内容的服务,因此在内存不足时不会被系统杀死。前台服务必须提供状态栏的通知,该通知位于“正在进行”标题下,这意味着除非服务被停止或从前台删除,否则无法解除通知。

您可以获取有关Android前台服务HERE

的更多信息