音量

Fuchsia 上给定音频流的音量是五个因素的乘积:

用法

用法提示系统,音频对用户有何含义。两种支持的用法:MEDIA(适用于音乐和视频等媒体内容)和 INTERRUPTION(适用于会中断用户任务的闹钟等)。每种使用情况都有一个单独的音量控件。

必须使用 Usage 对音频流(例如 AudioRenderersAudioCapturers)进行标记。

使用量

音量是 0 到 1 之间的浮点值,其中 0 表示静音,1 表示音频流的最大音量。

请参见以下示例:

  • 如果 MEDIA 的音量设置为 0.5 且 INTERRUPTION 设置为 1.0,则标记为 INTERRUPTION 的流如果改为以 MEDIA 流形式播放,则会以其音量的一半进行播放。
  • 如果 INTERRUPTION 的音量设置为 0,则用户听不到所有标记为 INTERRUPTION 的音频流。

使用增益调整

为了实现音频流,Fuchsia 音频子系统必须转换每个输出设备的音量设置(以 dbfs 为单位)。由于设备的增益范围不同,而且音量与增益之间的映射也不同,因此这种转换可能会导致每个输出设备的值有所不同。

完成此转换后,系统将应用使用情况的增益调整。增益调整是一种持久性设置,以增益 dbfs 为单位。

这对于在同一卷上强制执行两次增量操作非常有用。

例如,如果 MEDIAINTERRUPTION 的音量均设置为 0.7,但 MEDIA 的增益调整为 -10db,则标记为 INTERRUPTION 的音频流的音量不会像标记为 MEDIA 一样播放。

音频流增益调整

另一个增益调整可以直接应用于直播。该增益调整值是本地的。

例如,如果系统上存在两个 AudioRenderer,并且其中一个的增益调整为 -5db,则另一个的增益调整值(如果未修改)仍为空操作增益调整 0db。

静音状态

音频流或使用情况可能会被静音。流被静音后,就不会输出给用户。将某个使用情况静音后,系统不会将使用该使用情况标记的流输出给用户。

在静音期间,其他设置(如音量和增益)会保留下来;静音与 0 音量不同,因为静音时音量可以改变,但声音流仍不可听。

取消静音后,直播将按照先前的音量设置恢复输出(如果在静音期间未设置这些设置)。

收益调整注意事项

音量与音量并非精确线性映射,但对于人耳来说相对接近。

增益是对数的,因此增益调整对响度的影响很大,具体取决于应用该调整的当前声音流的音量。