web-dev-qa-db-ja.com

Googleの音声認識ビープ音をミュートする

Google Voiceを継続的に使用するテストアプリがあり、Google認識サービスが呼び出されるたびにビープ音が鳴ります。ビープ音を消そうとしています。音楽ストリームをミュートするスレッドを読んだことがありますが、それではうまくいきません。

ビープファイルの場所を見つけようとしているので、システムから削除するだけです。 this スレッドをフォローしましたが、5.0システムファイルにファイルが表示されません。

10
con_9

独自のサウンドを再生することに関心があるためにすべてのストリームをミュートしたくない場合は、これが解決策になる可能性があります。 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 -音

6
REG1

ビープ音の認識をミュートするために私が見つけた唯一の解決策は次のとおりです。

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);

私はそれが何かであなたを助けることを願っています

オーディオマネージャーを使用してサウンドを制御できます

  AudioManager audioManager=(AudioManager)getSystemService(Context.AUDIO_SERVICE);

通話の認識を開始する前に

 audioManager.setStreamMute(AudioManager.STREAM_MUSIC, true);

認識が完了した後

audioManager.setStreamMute(AudioManager.STREAM_MUSIC, false);
2
NIPHIN

私は別の解決策の魔女が私のためにうまくいくのを見つけました。メディアプレーヤーのオーディオストリームを別のストリームに設定したので、音楽ストリームをミュートできました。それが他の誰かにも役立つことを願っています。

afd = context.getResources().openRawResourceFd(R.raw.duduuudududu2);

mp.reset();
mp.setAudioStreamType(AudioManager.STREAM_ALARM);
myAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC,0,0);

try 
{
   mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
   mp.prepare();
} 
catch (IOException e) 
{
   e.printStackTrace();
}

mp.start();
0
jabok r