27

アプリケーション ボタンからグローバル サウンドをミュートする方法はありますか?

4

6 に答える 6

20

提供された回答は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);
    }
}

お役に立てれば...

于 2016-08-27T11:00:27.843 に答える
11

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);
于 2012-06-05T10:59:27.950 に答える
4
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);
于 2016-11-23T16:54:25.720 に答える
4

これを行うにはsetRingerMode()メソッドを使用できます

AudioManager audioManager=(AudioManager)getSystemService(AUDIO_SERVICE);
audioManager.setRingerMode(audioManager.RINGER_MODE_SILENT);

ミュート &バイブ RINGER_MODE_VIBRATEフラグ

ミュート解除: RINGER_MODE_NORMAL

于 2014-11-08T23:24:40.983 に答える
3

技術的には、グローバルボリュームのようなものはありません。バルガフの答えはあなたを正しい軌道に乗せるはずです。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を掛けて、対応するストリームに設定します。

于 2012-06-21T13:21:24.197 に答える