4

简介:如何检查语音录制是否已经在其他应用程序的后台运行。

详细信息:如果录音已经在本机应用程序的后台运行:录音机。现在,我已将语音录制作为我的应用程序中的一项功能。

问题:当我尝试同时在我的应用程序中录制时,它给出了错误:

  : 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 中第 100 行的代码:

    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

但问题是因为录音已经在后台运行。因此,如果它在其他应用程序中运行,有什么方法可以停止录音。

任何输入都会有很大帮助。

4

2 回答 2

1

我有同样的错误-38,我发现有另一个后台服务通过(AudioRecord)使用麦克风,当禁用后台服务时,它起作用了。

于 2014-06-01T11:04:50.613 回答
0

检查您的文件路径,该目录必须存在。

于 2014-05-20T02:28:06.160 回答