如何阻止SpeechRecognizer
请求音频焦点?我希望禁用 SpeechRecognizer 哔声(静音所有音频不解决方案){{ 1}}仍然可以播放一些音频文件(在另一个上下文中 - 服务)
所以在我的应用程序中,我只为MediaPlayer服务请求音频焦点(音频服务)
MediaPlayer
其他服务中的SpeechRecognizer实例(语音服务):
...
AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
int result = am.requestAudioFocus(null,
AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN);
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
...
mMediaPlayer.start();
}
当SpeechRecognizer开始在语音服务(speech = SpeechRecognizer.createSpeechRecognizer(this);
)中收听时,它会自动请求音频焦点,它仍然可以播放这种恼人的哔声。在音频服务的同时,我在speech.startListening(recognizerIntent);
得到AUDIOFOCUS_LOSS_TRANSIENT
,并且我有代码行来在发生失调焦点丢失时暂停MediaPlayer
甚至可以禁用SpeechRecognizer的蜂鸣声而不使用静音(STREAM_MUSIC / STREAM_SYSTEM)或不使用root?