0

我正在使用 Androids MediaPlayer 播放服务中的一些音乐。播放音乐时,可以通过音量摇键改变音乐音量。但是我不希望用户可以在播放过程中更改音乐音量。

如何才能做到这一点?

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

我的另一个想法是打电话

setVolumeControlStream( AudioManager.STREAM_RING );

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

或者是否可以在另一个流(响铃或闹钟)上播放音乐,但让音量摇杆仍然改变音乐流?

有任何想法吗?

4

2 回答 2

0

'当你的应用程序在后台时,你不能拦截密钥,而是监听 KeyPress 本身。您可以注册一个 ContentObserver'

是否有音量变化的广播动作?

于 2012-05-15T11:57:04.240 回答
0

由于我还没有找到另一种方法,因此如果音量已更改,我会以每秒约 5 次的速度检查计时器。如果有,我把它改回来。

这是一个非常丑陋的解决方案,但它确实有效,如果没有其他方法可以做到这一点,我必须像这样离开它。

唯一真正可怕的是,当您按下音量摇杆时会出现音量对话框。有没有办法禁用音量对话框?

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

于 2012-05-18T18:55:32.113 回答