从其他Android应用请求录制焦点

时间:2017-06-30 05:08:01

标签: android audio audio-recording

我正在开发一个用于VoIP通话的Android应用程序,并有以下问题:

如果像Hangouts或Skype这样的任何其他应用已经启用了呼叫,那么即使我从我的应用程序调用了AudioManager的requestAudioFocus API,麦克风/录音控件也会保留。播放控制来到我的应用程序,但录制控件保留在早期的应用程序中。

Android中是否有办法请求录制焦点?

1 个答案:

答案 0 :(得分:1)

就像相机访问一样,一次只有一个应用可以访问麦克风。在这种情况下您可以处理的只是请求麦克风,如果您没有得到它,请通知用户相关问题 - “Microphone is used by other applicationMicrophone is busy

您可以使用以下代码检查麦克风可用性 -

private boolean validateMicAvailability(){
    Boolean available = true;
    AudioRecord recorder =
            new AudioRecord(MediaRecorder.AudioSource.MIC, 44100,
                    AudioFormat.CHANNEL_IN_MONO,
                    AudioFormat.ENCODING_DEFAULT, 44100);
    try{
        if(recorder.getRecordingState() != AudioRecord.RECORDSTATE_STOPPED ){
            available = false;

        }

        recorder.startRecording();
        if(recorder.getRecordingState() != AudioRecord.RECORDSTATE_RECORDING){
            recorder.stop();
            available = false;

        }
        recorder.stop();
    } finally{
        recorder.release();
        recorder = null;
    }

    return available;
}

您可以查看 here

的独立帖子