Android:防止音乐音量被更改

时间:2012-05-15 11:52:22

标签: android volume

我正在使用Androids MediaPlayer播放一些音乐。播放音乐时,可以通过音量摇杆键更改音乐音量。但是我不希望用户在播放期间更改音乐音量。

如何做到这一点?

获取keydown事件并返回true是可能的,但这仅在应用程序位于顶部时才有效。由于我从服务中播放音乐,因此在屏幕关闭或背景中的应用程序时也会播放,因此音量仍可以更改。

我的另一个想法是打电话

setVolumeControlStream( AudioManager.STREAM_RING );

在开始播放音乐之后,我不能从服务中调用它,而只能从活动中调用...

或者是否可以在另一个音乐节上播放音乐(铃声或闹钟),但是音量摇杆还是会改变音乐流吗?

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

'当您的应用程序处于后台时,您无法拦截密钥,而是不会收听KeyPress本身。您可以注册ContentObserver'

Is there a broadcast action for volume changes?

答案 1 :(得分:0)

由于我还没有找到另一种方法,如果音量已经改变,我会每秒检查一次计时器大约5次。如果有,我改回来。

这是一个非常难看的解决方案,但它有效,如果没有其他方法可以做到这一点,我必须这样做。

唯一真正可怕的是,按音量摇杆时会显示音量对话框。有没有办法禁用音量对话框?

或者您知道更好的解决方案吗?