如何在MediaPlayer中保持音量固定

时间:2015-04-30 07:18:09

标签: android

我正在使用MediaPlayer播放声音,下面是我的代码

    mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.sound);
    mediaPlayer.setLooping(true);
    mediaPlayer.setVolume(0.5f, 0.5f);
    mediaPlayer.start();

MediaPlayer播放给定音量中的声音,但可以使用硬件键增加或减少音量。无论用户使用硬件密钥保持什么音量,我想知道是否有办法保持mediaPlayer的音量不变

提前致谢

1 个答案:

答案 0 :(得分:1)

AFASIK Media Player不提供任何此类监听器。您需要覆盖按键事件以检查

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    int action = event.getAction();
    int keyCode = event.getKeyCode();
        switch (keyCode) {
        case KeyEvent.KEYCODE_VOLUME_UP:
            if (action == KeyEvent.ACTION_DOWN) {
                //TODO
            }
            return true;
        case KeyEvent.KEYCODE_VOLUME_DOWN:
            if (action == KeyEvent.ACTION_DOWN) {
                //TODO
            }
            return true;
        default:
            return super.dispatchKeyEvent(event);
        }
    }

MediaPlayer提供isPlaying布尔值以了解正在使用的mediaPlayer,您可以将其与KeyPress事件结合使用。