アプリケーション ボタンからグローバル サウンドをミュートする方法はありますか?
6 に答える
提供された回答はAndroid M(API 23)から廃止されたようですので、これは代替ソリューションを提供します
public void MuteAudio(){
AudioManager mAlramMAnager = (AudioManager) aActivity.getSystemService(aContext.AUDIO_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mAlramMAnager.adjustStreamVolume(AudioManager.STREAM_NOTIFICATION, AudioManager.ADJUST_MUTE, 0);
mAlramMAnager.adjustStreamVolume(AudioManager.STREAM_ALARM, AudioManager.ADJUST_MUTE, 0);
mAlramMAnager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_MUTE, 0);
mAlramMAnager.adjustStreamVolume(AudioManager.STREAM_RING, AudioManager.ADJUST_MUTE, 0);
mAlramMAnager.adjustStreamVolume(AudioManager.STREAM_SYSTEM, AudioManager.ADJUST_MUTE, 0);
} else {
mAlramMAnager.setStreamMute(AudioManager.STREAM_NOTIFICATION, true);
mAlramMAnager.setStreamMute(AudioManager.STREAM_ALARM, true);
mAlramMAnager.setStreamMute(AudioManager.STREAM_MUSIC, true);
mAlramMAnager.setStreamMute(AudioManager.STREAM_RING, true);
mAlramMAnager.setStreamMute(AudioManager.STREAM_SYSTEM, true);
}
}
public void UnMuteAudio(){
AudioManager mAlramMAnager = (AudioManager) aActivity.getSystemService(aContext.AUDIO_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
mAlramMAnager.adjustStreamVolume(AudioManager.STREAM_NOTIFICATION, AudioManager.ADJUST_UNMUTE, 0);
mAlramMAnager.adjustStreamVolume(AudioManager.STREAM_ALARM, AudioManager.ADJUST_UNMUTE, 0);
mAlramMAnager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_UNMUTE,0);
mAlramMAnager.adjustStreamVolume(AudioManager.STREAM_RING, AudioManager.ADJUST_UNMUTE, 0);
mAlramMAnager.adjustStreamVolume(AudioManager.STREAM_SYSTEM, AudioManager.ADJUST_UNMUTE, 0);
} else {
mAlramMAnager.setStreamMute(AudioManager.STREAM_NOTIFICATION, false);
mAlramMAnager.setStreamMute(AudioManager.STREAM_ALARM, false);
mAlramMAnager.setStreamMute(AudioManager.STREAM_MUSIC, false);
mAlramMAnager.setStreamMute(AudioManager.STREAM_RING, false);
mAlramMAnager.setStreamMute(AudioManager.STREAM_SYSTEM, false);
}
}
お役に立てれば...
Android には 4 種類のサウンド設定があります。
- 警報
- 音楽
- 着信音
- 通知
まず、AudioManager
クラスのオブジェクトを作成します。
AudioManager amanager=(AudioManager)getSystemService(Context.AUDIO_SERVICE);
音量を設定する場合は、次を使用します。
通知用
amanager.setStreamVolume(AudioManager.STREAM_NOTIFICATION,
AudioManager.FLAG_SHOW_UI + AudioManager.FLAG_PLAY_SOUND);
アラーム用
amanager.setStreamVolume(AudioManager.STREAM_ALARM,
AudioManager.FLAG_SHOW_UI + AudioManager.FLAG_PLAY_SOUND);
音楽用
amanager.setStreamVolume(AudioManager.STREAM_MUSIC,
AudioManager.FLAG_SHOW_UI + AudioManager.FLAG_PLAY_SOUND);
着信音用
amanager.setStreamVolume(AudioManager.STREAM_RING,
AudioManager.FLAG_SHOW_UI + AudioManager.FLAG_PLAY_SOUND);
mAlramMAnager.adjustStreamVolume(AudioManager.STREAM_NOTIFICATION, AudioManager.ADJUST_TOGGLE_MUTE, 0);
mAlramMAnager.adjustStreamVolume(AudioManager.STREAM_ALARM, AudioManager.ADJUST_TOGGLE_MUTE, 0);
mAlramMAnager.adjustStreamVolume(AudioManager.STREAM_MUSIC, AudioManager.ADJUST_TOGGLE_MUTE,0);
mAlramMAnager.adjustStreamVolume(AudioManager.STREAM_RING, AudioManager.ADJUST_TOGGLE_MUTE, 0);
mAlramMAnager.adjustStreamVolume(AudioManager.STREAM_SYSTEM, AudioManager.ADJUST_TOGGLE_MUTE, 0);
これを行うにはsetRingerMode()メソッドを使用できます
AudioManager audioManager=(AudioManager)getSystemService(AUDIO_SERVICE);
audioManager.setRingerMode(audioManager.RINGER_MODE_SILENT);
ミュート &バイブ RINGER_MODE_VIBRATEフラグ
ミュート解除: RINGER_MODE_NORMAL
技術的には、グローバルボリュームのようなものはありません。バルガフの答えはあなたを正しい軌道に乗せるはずです。AudioManagerクラスで制御できるさまざまな「ストリーム」があります。つまり、音楽、呼び出し音、通話中、アラーム、通知、システム、DMTFです。これらの個々のストリームすべてのボリュームを0に設定する必要があります。これは、示されているようにBhargavのように非常に単純なプロセスです。
Audiomanagerオブジェクトを作成するだけです:-
AudioManager audioManager=(AudioManager)getSystemService(Context.AUDIO_SERVICE);
次に、それを使用してすべてのストリームの音量を変更します。-
audioManager.setStreamVolume(AudioManager.Stream, Extra Flags or null);
AudioManager.Streamと入力する代わりに、「AudioManager」と入力します。Ctrl +スペースバーを押して、使用できるさまざまなストリームをすべて表示します。音量が変更されたときに音やバイブレーションを追加したり、音量UIを表示したりできるさまざまな種類のフラグについては、ドキュメントを確認してください。
ストリームごとに最大ボリュームが異なる場合があるため、単一の値を使用してすべてのストリームを編集する場合は、必ずgetMaxStreamVolumeを使用して最大値を取得し、それに応じてボリュームを設定してください。したがって、ユーザーがグローバルボリュームを50%に設定する場合は、各ストリームの最大ボリュームを取得し、それらに0.5を掛けて、対応するストリームに設定します。