我正在製作一個靜音和取消靜音功能的應用程序。問題是,當我打靜音時,鈴聲靜音成功,但MediaPlayer
的音頻仍在播放。順便說一句:音頻在b背景中的服務中播放,並且我正在從不同的活動中將設備靜音,以阻止音頻播放。我曾嘗試多次更改流,但它仍然不會靜音。我也嘗試添加許多權限到我的清單讓它工作,但沒有運氣...簡單的靜音問題?
這裏是代碼,不用擔心我的全球變種。 X,它只是控制靜音/取消靜音是否會被稱爲反:
public void mute(View view) {
mutebutton = (ImageButton) findViewById(R.id.mutebutton);
if ((variableForMute.x % 2) != 0) { //If it's odd UNMUTE
Toast.makeText(Main_Menu.this, "UNMUTED", Toast.LENGTH_SHORT).show();
mAudioManager.setStreamVolume(AudioManager.STREAM_RING, userVolumeOnStart.userVolume, 0);
variableForMute.x++;
Log.v(TAG, variableForMute.x + "UNMUTED");
} else { //If its even MUTE
userVolumeOnStart.userVolume = mAudioManager.getStreamVolume(AudioManager.STREAM_RING);
mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
// mAudioManager.setRingerMode(0);
Toast.makeText(Main_Menu.this, "MUTED", Toast.LENGTH_SHORT).show();
variableForMute.x++;
Log.v(TAG, variableForMute.x + "MUTED");
}
}
這裏是清單的截圖:
非常感謝幫助我這個有趣的問題。這很有趣,因爲在嘗試使用不同的方法來完成同樣的工作之後,問題仍然會持續不斷。例如,使用官方靜音方法(audioManager.RINGER_MODE_SILENT
),手動將音量設置爲零(AudioManager.STREAM_RING, 0, 0
),在清單中添加權限等。您會在我的代碼中注意到很多評論,這些評論來自我的其他一些(很多! )我在解決這個問題時所做的嘗試。
注: 當我使用靜音按鈕減小音量和靜音這種方式,音頻確實成功靜音,但是我的手機沒有在頂部通知欄的小靜音圖標。否則,使用靜音按鈕,我會得到靜音圖標和,它不會成功靜音。
謝謝,讓我知道如果你需要別的東西,我希望我已經提供了足夠的信息!
爲什麼當你在'STREAM_MUSIC'上播放音樂時,你是否將'STREAM_RING'靜音? – ianhanniballake