其他分享
首页 > 其他分享> > 带有标志的AudioManager setStreamVolume

带有标志的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