我正在创建一个具有静音和取消静音功能的应用。问题是,当我点击静音时,铃声成功静音,但来自ViewModel
的音频仍在播放。顺便说一句:音频正在b背景中的服务中播放,我正在静音来自其他活动的设备以阻止音频播放。我曾尝试多次更改流,但它仍然不会静音。我也尝试在我的清单中添加许多权限以使其工作,但没有运气......
这是代码,不用担心我的全局变量。 x,它只是一个控制是否调用静音/取消静音的计数器:
MediaPlayer
以下是清单的屏幕截图:
非常感谢帮助我解决这个有趣的问题。这很有趣,因为在尝试这么多不同的方式后,问题仍然存在。例如,使用官方静音方法(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
),在清单中添加权限等。您将在我的代码中注意到很多注释,这是我解决这个问题的其他一些尝试(很多!)。
注意: 当我使用静音按钮减小音量并将其静音时,音频 成功静音,但我的手机在顶部通知栏上没有静音图标。否则,使用静音按钮,我会获得静音图标和,但它没有成功静音。
谢谢,如果您还有其他需要,请告诉我,我希望我提供了足够的信息!
答案 0 :(得分:0)
MediaPlayer mp = MediaPlayer.create(context,R.raw.sound_file_1); mp.start();
用于静音
mp.setVolume(0,0);
&安培;取消静音或全音量
mp.setVolume(1,1);