麦克风的状态
问题描述:
我写一个使用MediaRecorder录制音频的应用。 (我使用的是Android 2.1)麦克风的状态
- 开始录制之前我想知道麦克风的状态(是忙还是不忙)?
- 如果麦克风忙,我可以得到它独占访问?
在此先感谢!
答
回答1问题: 阅读很多文章,我意识到,这是不可能的了。
答
这是一个老问题,但我告诉我解决这个问题的方式。也许有人需要这个帮助。注意:这是一种肮脏的方式,但它对我有用。
您可以try/catch 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();
}
以我的经验,如果一个应用程序不释放麦克风,那么你将无法访问它,你将得到一个异常。但是,另一方面是,一旦你锁定了它,其他应用程序就无法从你那里窃取它(除非你的应用程序被操作系统在后台销毁)。 –
谢谢Aaron C!你回答了我的问题的第二部分 – XXX