在寻找了很长时间如何仅通过耳机(插入时)播放通知声音的方法,以及如何在与STREAM_MUSIC
不同的流中实现完全可听的中断和背景音乐,Android终于推出了AudioAttributes API。 通过使用以下代码,在API 21或更高版本中,我能够完全实现我想要的通知效果(对于较低版本,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
,而音频设置将在某些设置Activity
中指定。