use*_*982 4 notifications volume android-audiomanager android-5.0-lollipop
寻找一个经过很长一段时间的方式来播放通知,噪音只有通过耳机(在插入时),在流分开STREAM_MUSIC,在某种程度上,可能中断,并在任何背景音乐完全听得见,安卓终于想出了音频属性 API。通过使用以下代码,我能够准确地实现我想要的通知,至少在 API 21 或更高版本中(这STREAM_MUSIC是我为较低版本找到的最佳选择):
AudioAttributes audioAttributes = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.build();
Run Code Online (Sandbox Code Playgroud)
不幸的是,似乎没有任何方法可以在我的应用设置中调整声音的音量。我目前AudioManager按以下方式使用 ,但它只允许对流进行音量调整,并且STREAM_ALARM, STREAM_NOTIFICATION, STREAM_RING, 或都不STREAM_MUSIC适用于用于声音化的任何路由策略:
audioManager.setStreamVolume(AudioManager.STREAM_NOTIFICATION, originalVolume, 0);
Run Code Online (Sandbox Code Playgroud)
有没有人对如何设置与AudioAttributes输出相对应的音量有任何建议?请记住,音频实际上是在BroadcastReceiver用于实际通知的 中播放的,并且音频设置将仅在某些设置中指定Activity。
好吧,看来我错过了 API 文档中的一个关键表:https : //source.android.com/devices/audio/attributes.html
似乎这STREAM_SYSTEM相当于我试图用AudioAttributes. 基本上,使用我上面的代码足以满足 API 21 及更高版本,并且使用21 之前的 API 和 APISTREAM_SYSTEM所需的一切AudioManager。