带有标志的AudioManager setStreamVolume
作者:互联网
Android AudioManager有方法
public void setStreamVolume(int streamType,int索引,int标志).
我不想使用任何标志,因为它们全部用于启用反馈.我不需要振动,UI弹出窗口或任何形式的提示.我不想取消当前正在播放的铃声.我只想设置流的音量,该怎么办?
如果在播放铃声时更改音量,铃声的音量会受到影响还是更改仅影响以后的铃声?
这是我可以找到的与该主题最近的帖子,但未回答以下问题:What do the the flag parameter means and range of possible min and max of droid device
解决方法:
要不设置任何标志,请将整数0传递给flags参数.
Kotlin示例:
val am = getSystemService(Context.AUDIO_SERVICE) as AudioManager
am.setStreamVolume(AudioManager.STREAM_NOTIFICATION, volume, 0)
可能的标志包括(source):
FLAG_SHOW_UI = 1 << 0;
FLAG_ALLOW_RINGER_MODES = 1 << 1;
FLAG_PLAY_SOUND = 1 << 2;
FLAG_REMOVE_SOUND_AND_VIBRATE = 1 << 3;
FLAG_VIBRATE = 1 << 4;
FLAG_FIXED_VOLUME = 1 << 5;
FLAG_BLUETOOTH_ABS_VOLUME = 1 << 6;
FLAG_SHOW_SILENT_HINT = 1 << 7;
FLAG_HDMI_SYSTEM_AUDIO_VOLUME = 1 << 8;
FLAG_ACTIVE_MEDIA_ONLY = 1 << 9;
FLAG_SHOW_UI_WARNINGS = 1 << 10;
FLAG_SHOW_VIBRATE_HINT = 1 << 11;
FLAG_FROM_KEY = 1 << 12;
此模式表明整数中的每个位代表一个不同的标志. (通过测试确认)这意味着将0作为flags参数传递给setStreamVolume表示未设置任何标志.
标签:android-audiomanager,android 来源: https://codeday.me/bug/20191108/2007576.html