我有一个应用程序在其活动打开时播放间歇性声音,并且用户总是期望它发出这些噪音,但不幸的是它受到音乐流量的限制.我发现的选项是这样的:
调整音乐流的音量,如果他们碰巧正在播放音乐,可能会使用户震耳欲聋.
如果音乐流的音量为0,则调用MediaPlayer.setVolume()无效.
处理音量按钮按下我自己,这有两个问题:音量按钮按下调整振铃器音量,除非我的音频正在播放,而我仍然无法使用我的OnKeyListener按下音量按钮按下onKey事件.如果有某种方法强制调整应用于音乐流,而我的活动有焦点,或者只是按下按钮按下自己,这将有效.
在后台播放静音循环音频,以将音乐流保持在音量调整的上下文中.
我认为第三个选项可能是最好的,因为它将卷控制权交给用户,但是如果有一些方法可以在单个媒体播放器实例中覆盖系统卷,那么它也会起作用.
通过Google网上论坛得到了另一个建议,这是我正在寻找的平台集成解决方案并且工作正常:
请不要自己处理音量键 - 几乎不可能保证不会破坏音量键的行为.
在onCreate()中调用此API:
setVolumeControlStream(AudioManager.STREAM_MUSIC);
这告诉AudioManager当您的应用程序具有焦点时,音量键应调整音量.