0

我正在编写一个使用 MediaRecorder 录制音频的应用程序。(我使用安卓 2.1)

  1. 在开始录音之前,我想知道麦克风的状态(是忙还是忙)?
  2. 如果麦克风忙,我可以独占访问它吗?

提前致谢!

4

2 回答 2

1

对1个问题的回答:阅读了很多文章后,我意识到这是不可能的。

于 2012-01-07T10:17:06.987 回答
0

这是一个老问题,但我展示了我解决这个问题的方法。也许有人会需要这种帮助。注意:这是一种肮脏的方式,但它对我有用。

您可以尝试/捕捉MediaRecorderObject.start()。如果麦克风忙,你会得到一个例外

MediaRecorder myAudioRecorder = new MediaRecorder();
myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
myAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
myAudioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
myAudioRecorder.setOutputFile(outputFile);

try {
        myAudioRecorder.prepare();
        myAudioRecorder.start();

    }
    catch (Exception exception) {
        Toast.makeText(getApplicationContext(), "Mic in use", Toast.LENGTH_LONG).show();

    }
于 2016-10-01T03:17:35.183 回答