设置AudioAttributes音量

4

在寻找了很长时间如何仅通过耳机(插入时)播放通知声音的方法,以及如何在与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 中指定。

1个回答

5

嗯,看来我错过了API文档中的一个关键表格:https://source.android.com/devices/audio/attributes.html

似乎STREAM_SYSTEM就是我之前尝试使用AudioAttributes实现的等效内容。基本上,我上面的代码对于API 21及以上版本已经足够了,而使用STREAM_SYSTEM则可以完成AudioManager和API 21之前版本所需的所有操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接