DirectSound學(xué)習(xí)指南之設(shè)備性能

字號(hào):

設(shè)備性能
    DirectSound使你的應(yīng)用程序可以檢查聲音設(shè)備的硬件性能。許多應(yīng)用程序不需要這么做,因?yàn)镈irectSound自動(dòng)利用任何可用的硬件加速。然而,性能良好的應(yīng)用程序能夠使用這些信息,根據(jù)可用的硬件擴(kuò)展它們的聲音需求。比如,如果硬件混頻可用,一個(gè)應(yīng)用程序可能選擇播放多道聲音。
    在調(diào)用DirectSoundCreate8 函數(shù)創(chuàng)建一個(gè)設(shè)備對(duì)象后,你的應(yīng)用程序能夠通過(guò)調(diào)用IDirectSound8::GetCaps方法獲取聲音設(shè)備的性能。
    下面的例子獲取了由IDirectSound8接口指針lpDirectSound標(biāo)識(shí)的設(shè)備的性能。
    DSCAPS dscaps;
    dscaps.dwSize = sizeof(DSCAPS);
    HRESULT hr = lpDirectSound->GetCaps(&dscaps);
    if (FAILED(hr))
    ...{
    ErrorHandler(hr); // Add error-handling here.
    }
    DSCAPS結(jié)構(gòu)獲取了聲音設(shè)備的性能和資源信息,包括各種資源的量和當(dāng)前可用資源數(shù)。注意這個(gè)結(jié)構(gòu)的dwSize成員必須在方法調(diào)用前被初始化。
    如果你的應(yīng)用程序依賴于硬件性能,你必須在每次緩沖區(qū)定位期間調(diào)用IDirectSound8::GetCaps方法,以決定是否擁有足夠資源來(lái)創(chuàng)建下一個(gè)緩沖區(qū)。
    揚(yáng)聲器配置
    DirectSound使用揚(yáng)聲器配置-即揚(yáng)聲器相對(duì)于聽(tīng)眾的位置-以優(yōu)化用戶聲音系統(tǒng)的3D效果。
    在Windows 98,Windows 2000,及以后的操作系統(tǒng)中,揚(yáng)聲器配置能由用戶在控制面板中設(shè)置。一個(gè)應(yīng)用程序能夠通過(guò)使用IDirectSound8::GetSpeakerConfig 來(lái)獲取這個(gè)值。應(yīng)用程序不應(yīng)該通過(guò)調(diào)用IDirectSound8::SetSpeakerConfig 來(lái)覆蓋設(shè)置,因?yàn)檫@是一個(gè)全局設(shè)置,它將影像其他用戶和應(yīng)用程序。