在非常长时间搜索通过耳机播放通知噪音 的方式(插入时)后,在与{{1}分开的流上Android以一种可以打断并完全听到任何背景音乐的方式,最终推出了AudioAttributes API。通过使用以下代码,我能够实现我想要的通知,至少在API 21或更高版本中(STREAM_MUSIC
是我为较低版本找到的最佳选择):
STREAM_MUSIC
不幸的是,似乎没有办法在我的应用程序设置中调整声波化的音量。我目前以下列方式使用AudioAttributes audioAttributes = new AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.build();
,但它只允许对流进行音量调整,而不允许对AudioManager
,STREAM_ALARM
,STREAM_NOTIFICATION
或STREAM_RING
进行调整适用于任何用于超声处理的路由策略:
STREAM_MUSIC
有没有人对如何设置与audioManager.setStreamVolume(AudioManager.STREAM_NOTIFICATION, originalVolume, 0);
输出相对应的音量有任何建议?请注意,音频实际上是用于实际通知的AudioAttributes
,而音频设置只会在某些设置BroadcastReceiver
中指定。
答案 0 :(得分:4)
好吧,我似乎错过了API文档中的关键表: https://source.android.com/devices/audio/attributes.html
似乎STREAM_SYSTEM
相当于我尝试用AudioAttributes
做的事情。基本上,使用我上面的代码对于API 21和转发就足够了,使用STREAM_SYSTEM
可以完成AudioManager
和21之前的API所需的一切。