0

私は以下のようにアプリ内でミュートボタンを使用したい:

ImageView muteMusic = (ImageView) findViewById(R.id.muteMusic);
    mAudioManager = (AudioManager) getSystemService(AUDIO_SERVICE);


public void mute(View v) {

    switch (mAudioManager.getRingerMode()) {
    case AudioManager.RINGER_MODE_NORMAL:
        mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
        break;
    case AudioManager.RINGER_MODE_SILENT:
        mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
        break;

    }
}

XML

<ImageView
            android:id="@+id/muteMusic"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="200dp"
            android:layout_marginTop="120dp"
            android:layout_toRightOf="@id/info"
            android:onClick="mute"
            android:src="@drawable/volbutton" />

しかし、うまくいきません。理由はわかりません。エラーもクラッシュもありません!しかし、クリックしても何のアクションも起こしません

4

2 に答える 2

1

問題は、音楽ストリームではなく呼び出し音をミュートしていることです。

使用する代わりに

mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);

使用する

mAudioManager.setStreamMute(AudioManager.STREAM_MUSIC, true);

リソースの解放に関してアプリケーション内でミュート/ミュート解除を管理する方法については、 APIドキュメントを参照してください。

于 2013-01-27T11:19:25.663 に答える
1

mediaPlayer.setVolume(0,0)を使用できます

于 2013-01-27T11:37:23.037 に答える