有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java简单静音问题?

我正在制作一款具有静音和取消静音功能的应用程序。问题是,当我按下静音键时,振铃器成功静音,,但来自MediaPlayer的音频仍在播放。顺便说一句:音频正在b后台的服务中播放,我正在从另一个活动中禁用设备,以阻止该音频播放。我尝试过多次更改流,但它仍然无法静音。我还尝试在清单中添加许多权限以使其生效,但没有成功

下面是代码,不要担心我的全局变量x,它只是一个计数器,控制是否调用mute/unmute:

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");
    }
}

以下是清单的屏幕截图:

enter image description here

非常感谢你帮我解决这个有趣的问题。这很有趣,因为在尝试了这么多不同的方法之后,这个问题仍然存在。例如,使用官方的静音方法(audioManager.RINGER_MODE_SILENT)、手动将卷设置为零(AudioManager.STREAM_RING, 0, 0)、在清单中添加权限等等。您会注意到我的代码中有很多注释,这是来自我的其他一些注释(很多!)我试图解决这个问题

注意: 当我使用静音按钮降低音量并以这种方式将其静音时,音频会成功静音,但我的手机在顶部通知栏上没有小的静音图标。否则,使用静音按钮,我会得到静音图标它无法成功静音

谢谢,如果你还需要什么,请告诉我,我希望我已经提供了足够的信息


共 (1) 个答案

  1. # 1 楼答案

    MediaPlayer mp=MediaPlayer。创建(上下文,R.raw.sound_文件_1); 议员。开始()

    哑巴

    议员。设定体积(0,0)

    &;取消静音或满音量

    议员。设定体积(1,1)