共用方式為


設定音訊串流

音訊資料流程通常是最直接的設定。 使用 IWMCodecInfo 方法從編解碼器取得資料流程組態,如 從編解碼器取得串流設定資訊中所述。 在大部分情況下,您不應該改變所擷取的設定。

您從這些列舉中選取的編解碼器格式,取決於使用設定檔建立的 ASF 檔案預定用途。 IWMCodecInfo2::GetCodecFormatDesc所擷取的編解碼器格式描述摘要說明格式的特性。 如果您的應用程式未顯示要在它們之間進行選擇的描述,您可以在編解碼器格式的IWMStreamConfig介面上呼叫QueryInterface,以取得IWMMediaProps介面。 然後,您可以呼叫IWMMediaProps::GetMediaType來擷取WM_MEDIA_TYPE結構。 藉由檢查 所指向的WM_MEDIA_TYPE 結構和 其所指向的一個顯示方式 ,您可以判斷編解碼器格式的設定,並將其與您的需求進行比較。

取得 A/V 同步處理的音訊格式

Windows Media Audio 編解碼器和 Windows Media Audio Professional 編解碼器都支援僅限音訊檔案和音訊/視訊檔案的格式。 僅限音訊格式會針對只包含音訊資料的檔案進行優化,而音訊/視訊格式則針對具有視訊串流之檔案中的音訊進行優化。 列舉這些編解碼器的編解碼器格式時,音訊/視訊格式會位於僅限音訊的格式之後。 音訊/視訊格式描述全部都包含字串 「 (A/V) 」。 您可以檢查每秒封包數目,以程式設計方式識別音訊/視訊同步處理所設計的格式。 如果位元速率大於或等於每秒 32,000 位,同步處理的格式每秒會有 5 個以上的封包。 每秒使用 32,000 位以下的位元速率格式,可以搭配同步處理視訊使用每秒 3 或更多封包。 [尋找音訊格式]主題中的程式碼範例包含進行這項檢查所需的程式碼:

if((pWave->nAvgBytesPerSec / pWave->nBlockAlign) >= 
       ((pWave->nAvgBytesPerSec >= 4000) ? 5.0 : 3.0))
{
    // Set this stream configuration as the new best match.
}

取得Low-Delay音訊格式

Windows Media 9.1 編解碼器和 Windows Media Audio 9.1 Professional 編解碼器都支援低延遲格式。 這些格式的緩衝區視窗比其他音訊格式小。 低延遲音訊旨在改善檔案或資料流程經常切換的案例中的效能;例如,列出一些在使用者介面中串流的歌曲的應用程式,可讓使用者任意在兩者之間切換。

低延遲格式僅適用于 CBR 模式, (一次或雙階段) 。 低延遲格式描述全部都包含字串 「Low Delay」。 您可以檢查格式的位元速率值,以程式設計方式識別格式。 低延遲格式會指派小於對等標準格式之位元速率 1 KB 的位速率。 例如,Windows Media Audio 9.1 編解碼器支援位元速率為 192 kbps 的單一傳遞 CBR 格式。 對等低延遲格式的位元速率為 191 kbps。 此外,除了 Windows Media Audio 9.1 編解碼器支援的 5 kbps 單聲道格式之外,低延遲格式是唯一具有奇數位元速率值的格式。

設定變數位元速率音訊

當您需要其中一個 Windows 媒體編解碼器 (VBR) 格式的變數位元速率時,您可以在 IWMCodecInfo3::SetCodecEnumerationSetting 方法中設定列舉設定來取得它。 將g_wszVBREnabled設定為 True,並將品質型 VBR g_wszNumPasses設定為 1,或針對雙階段 VBR (限制或不受限制) 將 g_wszNumPasses設定為 1。 如果您使用受限制的雙階段 VBR,您必須使用 IWMPropertyVault 的方法手動設定資料流程的最大位元速率和緩衝區視窗,如 設定 VBR 資料流程中所述。

在以品質為基礎的 VBR 設定檔中,在 LOWATEX結構的nAvgBytesPerSec成員包含品質等級 (1 到 100) ,而三個高序位元組會設定為 0x7fffff。 請勿手動修改此值來嘗試修改品質設定;您必須使用 格式,因為它是從編解碼器擷取。 若要使用不同的品質值,您必須列舉格式,直到找到符合您需求的格式為止。 此外, nAvgBytesPerSec 將不會保留在 ASF 檔案中;當您取得已使用讀取器物件開啟之檔案的 CURVEATEX 結構時, nAvgBytesPerSec 包含代表每秒平均位元組數目的近似值。

注意

設定音訊資料流程時,您絕對不應該有大於檔案中任何視訊資料流程值的音訊緩衝區視窗值。 通常這不是問題,因為音訊緩衝區視窗值的範圍應該介於 1.5 到 3 秒之間,而視訊值的範圍應該介於 3 到 5 秒之間。 如果音訊緩衝區視窗大於視訊緩衝區視窗,檔案會以稍微不同步的資料流程播放。

 

所有資料流程通用的設定

設定資料流程

尋找音訊格式