java - 简单的静音问题?

标签 java android multithreading user-interface audio

我正在制作具有静音和取消静音功能的应用程序。问题是,当我按下静音键时,铃声会成功静音,但MediaPlayer中的音频仍会播放。顺便说一句:音频正在b背景中播放,并且我正在从其他 Activity 中禁用设备来停止播放该音频。我已经尝试过多次更改流,但是它仍然不会静音。我也尝试过在 list 中添加许多权限以使其正常运行,但是没有运气...

这是代码,不用担心我的全局变量。 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");
    }
}

这是 list 的屏幕截图:

enter image description here

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

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

谢谢,让我知道您是否还有其他需要,希望我提供了足够的信息!

最佳答案

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

静音

mp.setVolume(0,0);

&取消静音或全音量

mp.setVolume(1,1);

关于java - 简单的静音问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33603646/

相关文章:

java - 可调用线程与可运行线程与扩展线程

java - JAXB 混合内容列表包含换行符

java - 更改 AppEngine DataStore 主键

android - 如何取消警报对话框?

java - 将 session 记录转换为人类可读的格式

c++ - 在多线程中跟踪对数据的引用(多少/谁)

java - 如何从静态内部类构造函数创建 Spring bean?

Java EE REST + xml 支持 : javax. xml.bind.JAXBContext 缺失

java - 解决SecurityException : Permission Denial: starting Intent. 我需要什么权限?

python - 并发和 Selenium - 多处理与多线程