音訊磁帶音量控件
IAudioEndpointVolume 介面會管理音訊磁帶的音量控件。 這些控制件非常適合顯示磁碟區滑桿的 Windows 應用程式。 對於系結至音頻磁帶音量控件的音量滑桿,滑桿位置上的每個變更都會產生與滑桿所移動距離成正比的感知聲度變更。 對於特定的移動距離,無論滑桿的下部、上部或中間部分的滑桿移動是否在滑桿的移動範圍中,感知到的聲響增加或減少量大致相同。 感知到的聲響度會隨著音訊號電源的對數以線性方式變化。
音訊錐線一詞最初是指在音頻電子裝置中用作音量控制的有效計中抗拒元素的磁帶形狀。 音訊磁帶抗拒性元素在零音量位置最寬,最大音量位置最窄。 強量計會控制裝置透過喇叭播放的音訊號電壓等級。 縮小設計目的是要產生約線性關聯性,其位於力計雨刷器的位置與喇叭的感知聲度之間。 喇叭位置與電壓之間的關聯性是非線性的。
相反地,具有線性錐線的抗拒元素在強速器移動範圍上具有統一的寬度。 因此,喇叭的電壓會隨著雨刷位置而線性變化。 雨刷位置和響度之間的關係是非線性的。
同樣地,顯示音量滑桿的 Windows 應用程式會定義滑桿位置與喇叭輸出訊號層級之間的關聯性。 關聯性實際上可以是線性磁帶或音頻磁帶。
下圖顯示滑桿位置與輸出電壓的對應,以及線性磁帶音量控制的感知聲度。
在上圖左側,音訊數位對模擬轉換器(DAC)的輸出電壓等級會隨著音量滑桿從最小位置(標記為Min)向最大位置(標示為 Max)的移動而線性增加。 垂直軸上的標籤 VFS 代表全比例 DAC 輸出電壓。
不過,感知到的音量大約會隨著音訊號的對數而有所不同,如上圖右側所示。 因此,滑桿在接近最小設定的間隔移動會導致感知的響度變化相對較大,但滑桿在接近最大設定的間隔內移動會導致感知的響度變化相對較小。
在上圖右側,垂直軸上的音量是以分貝 (dB) 測量,相對於全比例電源設定(以0分貝為單位)。 聲度曲線會將垂直軸交集在零下無限大,但只有從 0 分貝到 –96 分貝的曲線部分會出現在圖表中。 只顯示曲線這個部分的決定有點任意,但 –96 分貝可方便地表示相對於全階功率的下一到最低 16 位 DAC 輸出層級的功率。 此值會計算為 20。log₁₀(1/65535)。
由於滑桿位置在上圖中接近最低設定的小型變更會導致大聲變化,因此使用者可能會發現無法控制此區域的音量。 相對較小的滑桿移動可以推入磁碟區遠高於或低於所需的水準。 改善的音量控制可提供滑桿位置與音量之間的更線性關聯性。
下圖顯示滑桿位置與輸出電壓的對應,以及音訊磁帶音量控制的感知聲度。
如上圖右側所示,感知到的響度會隨著滑桿位置的變化而線性變化。 若要發生這種情況,DAC 電壓必須與位置不一樣,如下圖所示。 當滑桿從最大設定向左移動時,曲線以每小時0伏特的方式接近0伏特。 最小滑桿位置的電壓非常小,但可能不是完全零。
IAudioEndpointVolume 介面中的下列方法會使用以分貝為單位的磁碟區設定:
- IAudioEndpointVolume::GetChannelVolumeLevel
- IAudioEndpointVolume::GetMasterVolumeLevel
- IAudioEndpointVolume::SetChannelVolumeLevel
- IAudioEndpointVolume::SetMasterVolumeLevel
這些方法會產生音量設定與感知的響度之間的近似線性關聯性。 這些方法所管理之音量控件的分貝音量範圍取決於音訊端點裝置。 若要判斷特定裝置的磁碟區範圍,請呼叫 IAudioEndpointVolume::GetVolumeRange 方法。
相反地,IAudioEndpointVolume 介面中下列方法的磁碟區設定會遵循磁碟區範圍的更溫和的磁帶曲線:
- IAudioEndpointVolume::GetChannelVolumeLevelScalar
- IAudioEndpointVolume::GetMasterVolumeLevelScalar
- IAudioEndpointVolume::SetChannelVolumeLevelScalar
- IAudioEndpointVolume::SetMasterVolumeLevelScalar
- IAudioEndpointVolume::VolumeStepDown
- IAudioEndpointVolume::VolumeStepUp
在 Windows Vista 中,這些方法會使用上圖所示音訊磁帶曲線與線性磁帶曲線之間的中間曲線。 請注意,曲線的形狀可能會在未來版本的 Windows 中變更。 上述清單中的前四種方法會將磁碟區層級表示為0.0(最小磁碟區)到1.0(最大磁碟區)的標準化值。 針對清單中的最後兩種方法,呼叫 IAudioEndpointVolume::GetVolumeStepInfo 方法,以取得磁碟區範圍中的步驟數目。
下列介面會針對其磁碟區設定使用線性磁帶曲線:
如需這些介面的詳細資訊,請參閱 會話磁碟區控件。 如需各種 Windows 版本中音量範圍和預設音量層級的相關信息,請參閱預設音訊音量 設定。
相關主題