简单的静音问题?

时间:2015-11-09 06:36:22

标签: java android multithreading user-interface audio

我正在创建一个具有静音和取消静音功能的应用。问题是,当我点击静音时,铃声成功静音,但来自ViewModel的音频仍在播放。顺便说一句:音频正在b背景中的服务中播放,我正在静音来自其他活动的设备以阻止音频播放。我曾尝试多次更改流,但它仍然不会静音。我也尝试在我的清单中添加许多权限以使其工作,但没有运气......

这是代码,不用担心我的全局变量。 x,它只是一个控制是否调用静音/取消静音的计数器:

MediaPlayer

以下是清单的屏幕截图:

enter image description here

非常感谢帮助我解决这个有趣的问题。这很有趣,因为在尝试这么多不同的方式后,问题仍然存在。例如,使用官方静音方法(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),在清单中添加权限等。您将在我的代码中注意到很多注释,这是我解决这个问题的其他一些尝试(很多!)。

注意: 当我使用静音按钮减小音量并将其静音时,音频 成功静音,但我的手机在顶部通知栏上没有静音图标。否则,使用静音按钮,我会获得静音图标,但它没有成功静音。

谢谢,如果您还有其他需要,请告诉我,我希望我提供了足够的信息!

1 个答案:

答案 0 :(得分:0)

MediaPlayer mp = MediaPlayer.create(context,R.raw.sound_file_1); mp.start();

用于静音

mp.setVolume(0,0);

&安培;取消静音或全音量

mp.setVolume(1,1);