Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:防止更改音乐音量_Android_Volume - Fatal编程技术网

Android:防止更改音乐音量

Android:防止更改音乐音量,android,volume,Android,Volume,我正在播放一些来自Androids MediaPlayer服务的音乐。播放音乐时,可以通过音量摇杆键更改音乐音量。但是,我不希望用户可以在播放过程中更改音乐音量 如何做到这一点 当获取keydown事件并返回true时,这是可能的,但这仅在应用程序位于顶部时才起作用。由于我播放的是服务中的音乐,所以在屏幕关闭或应用程序处于后台时也会播放,因此音量仍然可以更改 我的另一个想法是打电话 setVolumeControlStream( AudioManager.STREAM_RING ); 在开始播

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

如何做到这一点

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

我的另一个想法是打电话

setVolumeControlStream( AudioManager.STREAM_RING );
在开始播放音乐后,但我不能从服务中调用它,只能从活动中调用

或者可以在另一个流上播放音乐(铃声或闹钟),但仍让音量摇杆更改音乐流吗


有什么想法吗?

'当应用程序在后台时,您不能截取密钥,而是要听按键本身。您可以注册ContentObserver的


由于我还没有找到另一种方法,所以如果音量发生变化,我会每秒检查计时器5次。如果有,我会把它换回来

这是一个非常丑陋的解决方案,但它是有效的,如果没有其他方法,我不得不这样离开它

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


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

您为什么要阻止这种情况发生?听起来这是一个很好的功能,可以调整音量?这是可行的,但是ContentObserver的onChange方法只有在显示新音量的对话框消失后才被调用。因此,您仍然可以更改卷,卷对话框将显示新卷,当它消失时,您可以重置卷。这不是我想要的。。。您是否可以阻止音乐音量对话框显示,以便立即调用更改?