首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制音量键

控制音量键
EN

Stack Overflow用户
提问于 2010-12-21 14:35:40
回答 2查看 3.4K关注 0票数 4

在我的应用程序中,为了捕获卷键事件,我重写了onKeyDown()onKeyUp()函数。我使用这些事件来控制我的应用程序卷。我用音乐流来播放我的声音。当检测到这样的事件时,我还会显示一个定制的吐司(类似于Android所显示的)。我面临的问题是:

  1. Android总是在音量键事件
  2. 上播放声音,声音总是以相同的强度播放。

我想要的是以以下方式控制默认声音的播放强度(也是播放的流):如果可能的话,音量更大,音量更低,声音更低。或者一种方法,可以禁用默认声音,并按我刚设置的强度播放我的自定义声音。

EN

回答 2

Stack Overflow用户

发布于 2011-06-16 12:47:09

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

代码语言:javascript
复制
@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);
}

(这对我有用:)

票数 9
EN

Stack Overflow用户

发布于 2011-01-27 20:52:19

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

代码语言:javascript
复制
am.setStreamVolume(AudioManager.STREAM_MUSIC, progress,AudioManager.FLAG_PLAY_SOUND);

这就是我在我的应用程序中使用的。am是AudioManager的实例,您可以通过编写:

代码语言:javascript
复制
AudioManager am = (AlarmManager) getSystemService(AUDIO_SERVICE);

要禁用声音,您可以将AudioManager.FLAG_PLAY_SOUND替换为"0“值--应该禁用它的值。

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

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4500354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档