简介:如何检查语音记录是否已在其他某个应用的后台运行。android:媒体记录器:启动失败:-38
详细信息:如果语音录制已经在本机应用程序:Voice recorder的后台运行。 现在我已将语音录制功能作为我应用程序中的一项功能。
问题:当我在我的同时应用程序尝试记录,提示错误:在第100行
: E/MediaRecorder: start failed: -38
: E/MyApp: [1162][com.sec.MyApp.multimedia.RecordMyVoice]java.lang.IllegalStateException
: E/MyApp: at android.media.MediaRecorder.start(Native Method)
: E/MyApp: at com.sec.MyApp.multimedia.RecordMyVoice.doInBackground(RecordMyVoice.java:100)
守则RecordMyVoice.java:
mRecorder = new MediaRecorder();
mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mRecorder.setOutputFile(mFileName);
mRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mRecorder.prepare();
mRecorder.start(); //code at 100th line
但问题是,因为已经录音在后台运行。 因此,是否有任何方法来停止语音录制,如果它运行在其他应用程序。
任何输入都会有很大的帮助。
如果它已经在运行,那么它应该有一个原因,不是吗?如果他想使用_your_录制功能,可以提示用户停止。不是一个令人满意的答案,因此只是一个评论。也许有人有一个更好的主意。 – Fildor
您应该至少捕获'prepare'和'start'引发的异常。 – Michael
我已经添加了try catch块,但仍然处理程序返回错误消息,并且在那里显示吐司作为失败记录。但是我想让后台记录器停止。 – parul