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

详细信息:如果录音已经从 native 应用程序在后台运行:录音机。
现在我已经实现了录音作为我的应用程序中的功能之一。

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

  : 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

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

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

最佳答案

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

关于android:媒体记录器:启动失败:-38,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12675120/

10-13 03:25