Fuchsia 上给定音频流的音量是五个因素的乘积:
用法
用法提示系统,音频对用户有何含义。两种支持的用法:MEDIA
(适用于音乐和视频等媒体内容)和 INTERRUPTION
(适用于会中断用户任务的闹钟等)。每种使用情况都有一个单独的音量控件。
必须使用 Usage 对音频流(例如 AudioRenderers
和 AudioCapturers
)进行标记。
使用量
音量是 0 到 1 之间的浮点值,其中 0 表示静音,1 表示音频流的最大音量。
请参见以下示例:
- 如果
MEDIA
的音量设置为 0.5 且INTERRUPTION
设置为 1.0,则标记为INTERRUPTION
的流如果改为以MEDIA
流形式播放,则会以其音量的一半进行播放。 - 如果
INTERRUPTION
的音量设置为 0,则用户听不到所有标记为INTERRUPTION
的音频流。
使用增益调整
为了实现音频流,Fuchsia 音频子系统必须转换每个输出设备的音量设置(以 dbfs 为单位)。由于设备的增益范围不同,而且音量与增益之间的映射也不同,因此这种转换可能会导致每个输出设备的值有所不同。
完成此转换后,系统将应用使用情况的增益调整。增益调整是一种持久性设置,以增益 dbfs 为单位。
这对于在同一卷上强制执行两次增量操作非常有用。
例如,如果 MEDIA
和 INTERRUPTION
的音量均设置为 0.7,但 MEDIA
的增益调整为 -10db,则标记为 INTERRUPTION
的音频流的音量不会像标记为 MEDIA
一样播放。
音频流增益调整
另一个增益调整可以直接应用于直播。该增益调整值是本地的。
例如,如果系统上存在两个 AudioRenderer
,并且其中一个的增益调整为 -5db,则另一个的增益调整值(如果未修改)仍为空操作增益调整 0db。
静音状态
音频流或使用情况可能会被静音。流被静音后,就不会输出给用户。将某个使用情况静音后,系统不会将使用该使用情况标记的流输出给用户。
在静音期间,其他设置(如音量和增益)会保留下来;静音与 0 音量不同,因为静音时音量可以改变,但声音流仍不可听。
取消静音后,直播将按照先前的音量设置恢复输出(如果在静音期间未设置这些设置)。
收益调整注意事项
音量与音量并非精确线性映射,但对于人耳来说相对接近。
增益是对数的,因此增益调整对响度的影响很大,具体取决于应用该调整的当前声音流的音量。