首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在我的Android应用程序中理智地管理音频量?

如何在我的Android应用程序中理智地管理音频量?
EN

Stack Overflow用户
提问于 2009-03-10 01:54:07
回答 5查看 31.4K关注 0票数 35

我有一个应用程序,当它的活动打开时播放断续的声音,用户总是期待它发出这些声音,但不幸的是,它受到音乐流音量的限制。因此,我发现的选择如下:

  1. 调整音乐流的音量,如果用户当时正在播放音乐,可能会震耳欲聋。如果音乐流的音量为0时,
  2. Call MediaPlayer.setVolume()是无效的。
  3. 处理音量按钮按下自己,这会出现两个问题:音量按钮按下音量,除非我的音频正在播放,否则音量会调整,而且到目前为止,我还无法通过使用my OnKeyListener按音量按钮来捕捉onKey事件。如果有什么方法迫使我的活动有焦点的时候,调整应用到音乐流中,或者只需要自己按下按钮就可以了。
  4. 在后台播放一段无声的循环音频,以使音乐流保持在音量调整的上下文中。

我认为第三个选项可能是最好的,因为它将音量的控制权让给了用户,但是如果有某种方法可以在单个mediaplayer实例中重写系统卷,那么它也可以工作。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-03-23 16:53:58

通过谷歌集团获得了另一个建议,那就是我一直在寻找的平台集成解决方案,而且效果很好:

--请不要自己处理卷键--几乎不可能保证您不会破坏卷键的行为。

在onCreate()中调用这个API:

setVolumeControlStream(AudioManager.STREAM_MUSIC);

这告诉AudioManager,当应用程序有焦点时,音量键应该调整音乐音量.。

票数 76
EN

Stack Overflow用户

发布于 2011-04-13 05:55:22

这个API: setVolumeControlStream(AudioManager.STREAM_MUSIC);是有用的。

除非这一点,否则我将花费更多的时间来修复这个卷错误。

票数 2
EN

Stack Overflow用户

发布于 2015-10-25 10:08:56

如果您使用的是“OnKeyDown”方法,可以通过执行以下操作来解决此问题:

代码语言:javascript
运行
复制
public boolean onKeyDown(int keyCode, KeyEvent event) {    
if (keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
                setVolumeControlStream(AudioManager.STREAM_MUSIC);}}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/628659

复制
相关文章

相似问题

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