控制音量键

时间:2010-12-21 14:35:40

标签: android android-audiomanager

在我的应用程序中,我已覆盖onKeyDown()onKeyUp()函数以捕获音量键事件。我使用这些事件来控制我的应用程序量。我用音乐流来播放我的声音。当检测到这样的事件时,我还会显示自定义吐司(类似于Android显示的那个)。我对此采取的问题是:

  1. Android始终在音量键事件上播放声音
  2. 声音总是以相同的强度播放。
  3. 我想要的是通过以下方式控制播放默认声音的强度(也就是播放的流):较高音量的较大声音和较低音量的较低声音,如果这是可能的。 或者一种禁用播放默认声音并以我刚设置的强度播放自定义声音的方法。

2 个答案:

答案 0 :(得分:9)

实际上声音是在onKeyUp(...)上播放的,因此当你调用音量键时,你可以简单地重载活动中的方法:

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP) || (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)) {
       return true;
    }
    return super.onKeyUp(keyCode, event);
}

这对我有用:)

答案 1 :(得分:0)

这很奇怪,因为我正在编写类似的功能,当你提高流量时,Android似乎会播放更响亮的声音。

am.setStreamVolume(AudioManager.STREAM_MUSIC, progress,AudioManager.FLAG_PLAY_SOUND);

这就是我在申请中使用的内容。 am是AudioManager的实例,您可以通过编写:

AudioManager am = (AlarmManager) getSystemService(AUDIO_SERVICE);

要禁用声音,您可以将AudioManager.FLAG_PLAY_SOUND替换为“0”值,以禁用它。

我不确定是否可以在AudioManager中替换这些声音,但您可以在onKeyDown方法中使用MediaPlayer播放这些自定义声音。

希望这会有所帮助。

相关问题