Google 音声を継続的に使用するテスト アプリがあり、Google 認識サービスが呼び出されるたびにビープ音が鳴ります。ビープ音を消そうとしています。音楽ストリームをミュートするスレッドを読みましたが、それはうまくいきません。
ビープファイルの場所を見つけようとしているので、システムから削除することができます。このスレッドに従いましたが、5.0 システム ファイルにファイルが表示されません。
Google 音声を継続的に使用するテスト アプリがあり、Google 認識サービスが呼び出されるたびにビープ音が鳴ります。ビープ音を消そうとしています。音楽ストリームをミュートするスレッドを読みましたが、それはうまくいきません。
ビープファイルの場所を見つけようとしているので、システムから削除することができます。このスレッドに従いましたが、5.0 システム ファイルにファイルが表示されません。
独自のサウンドを再生することに関心があるため、すべてのストリームをミュートしたくない場合は、これが解決策になる可能性があります: Audio Focus APIを使用します。
したがって、次のようなものになります。
AudioManager am = mContext.getSystemService(Context.AUDIO_SERVICE);
...
// Request audio focus for playback
int result = am.requestAudioFocus(afChangeListener,
// Use the music stream.
AudioManager.STREAM_MUSIC,
// Request permanent focus.
AudioManager.AUDIOFOCUS_GAIN);
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
am.registerMediaButtonEventReceiver(RemoteControlReceiver);
// Play your own sound (or play silence)
}
am.abandonAudioFocus(afChangeListener);
Google アプリ (ビープ音を鳴らす) がこの要求に準拠しているかどうかはテストしていませんが、通常は機能するはずであり、試してみる価値があります。
もう 1 つのオプションは、Google アプリからのすべての音 (Google 音声認識のビープ音を含む) を直接ミュートすることです。この方法の利点は、他のストリーミング オーディオとの干渉がないことです。以下は詳細へのリンクです。ただし、これにはルート アクセスが必要であることに注意してください: https://android.stackexchange.com/questions/128588/how-do-i-disable-the-google-voice-typing-voice-search-ding-sound。
ビープ音の認識をミュートするために私が見つけた唯一の解決策は次のとおりです。
audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audio.setStreamVolume(AudioManager.STREAM_MUSIC, 0, AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
ボリュームを保存する前に、たとえば次のようにします。
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
current_volume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
サナダムシなどの音量レベルを元に戻すには:
audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
audio.setStreamVolume(AudioManager.STREAM_MUSIC, audio.getStreamMaxVolume(AudioManager.STREAM_MUSIC),
AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
何かのお役に立てば幸いです