音量

Fuchsia 提供的音訊串流音量有五項因素,

用途

「使用情形」可讓系統向使用者傳達音訊內容的意義。兩種支援用法MEDIA:音樂和影片等媒體內容,以及用於幹擾使用者工作的 INTERRUPTION 用法。每項用量都有各自的音量控制項。

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 不同,因為音量可能會在設為靜音的情況下發生變更,但串流仍然無法聲音播放。

取消靜音後,如果串流期間未經修改,串流將根據先前的音量設定繼續輸出。

提升調整項的考量

音量並不是精準的線性圖,而對於人耳而言,音量相對接近。

增益是對數,因此增減對音量的影響有很大的差異,具體取決於套用該值的串流目前音量。