Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym temacie przedstawiono omówienie silnika audio systemu Windows Vista. Koncentruje się on na pojęciach, które pomogą zrozumieć, w jaki sposób APO i sAPO współpracują ze sobą.
Na poniższym diagramie przedstawiono uproszczony układ wewnętrznej struktury aparatu audio.
Jak pokazano na diagramie, systemowo dostarczane APO i sAPO są podstawowymi blokami konstrukcyjnymi aparatu audio. Silnik audio konfiguruje dostarczone przez system APO i sAPO w składniki nazywane potokami. Aparat audio ma dwa typy potoków:
Rury strumienia składają się z obiektów APOs i sAPOs, które wykonują lokalne przetwarzanie cyfrowego dźwięku w strumieniu z jednej aplikacji. Obiekt sAPO w tym typie rury jest określany jako lokalne efekty sAPO (LFX sAPO).
Strumienie urządzeń składają się z obiektów APOs i sAPOs, które wykonują cyfrowe przetwarzanie audio globalnie wpływające na wszystkie strumienie. Obiekt sAPO w tym typie potoku jest nazywany globalnymi efektami sAPO (GFX sAPO).
W poniższej tabeli przedstawiono sAPOs, które są dostępne w silniku audio systemu Windows Vista oraz typ stosowanych przez nich efektów systemowych.
| SAPO systemu Windows Vista | Efekt systemowy |
|---|---|
Wzmocnienie basów |
LFX |
Zarządzanie basami |
LFX |
Wyrównywanie głośności |
LFX |
Ochrona o niskiej częstotliwości |
LFX |
Uzupełnienie dźwięku z głośnika |
LFX |
Symulowanie prelegenta |
LFX |
Wirtualny Dźwięk Przestrzenny |
LFX |
Zwirtualizowany dźwięk przestrzenny za pomocą słuchawek |
LFX |
Ulepszony dźwięk dla komputerów przenośnych |
GFX |
Korekta pomieszczenia |
GFX |
Gdy aplikacja audio inicjuje przetwarzanie dźwięku, aparat audio konfiguruje dostarczane przez system obiekty APO i sAPO w grafie audio do przetwarzania cyfrowych danych audio. Mechanizm używany przez aparat audio do tworzenia grafu audio jest szczegółem systemu i nie zostanie omówiony.
Aplikacja audio może zainicjować połączenie w trybie udostępnionym lub trybie wyłącznym. Mimo że domyślny zestaw sAPOs jest zainstalowany w systemie Windows Vista, sAPOs nie są uważane za składniki systemowe i dlatego można je dostosowywać.
Tryb współdzielony
W trybie udostępnionym aplikacja audio udostępnia sprzęt audio innym aplikacjom audio uruchomionym w innych procesach. Aparat audio miesza strumienie z tych aplikacji i odtwarza wynikową mieszankę przez sprzęt. Każda aplikacja, która otwiera strumień w trybie udostępnionym, musi wybrać format miksowania używany przez silnik audio. Zaletą korzystania z trybu udostępnionego jest to, że silnik audio systemu Windows Vista zapewnia wbudowany obiekt przetwarzania dźwięku (APO), który dostarcza niezbędne wsparcie funkcjonalne. Wadą korzystania z trybu udostępnionego jest to, że opóźnienie strumienia audio jest wyższe niż w trybie wyłączności. Poniższy przykład kodu przedstawia składnię inicjowania strumienia audio w trybie udostępnionym.
hResult = pAudioClient->Initialize(
AUDCLNT_SHAREMODE_SHARED,
0,
0,
0,
pWfx,
&m_SubmixGuid);
Tryb wyłączny
Natomiast gdy aplikacja otworzy strumień w trybie wyłącznym, aplikacja ma wyłączny dostęp do sprzętu audio. W tym trybie aplikacja może wybrać dowolny format audio obsługiwany przez punkt końcowy. Zaletą korzystania z trybu wyłącznego jest to, że opóźnienie strumienia audio jest niższe niż w trybie udostępnionym. Wadą korzystania z trybu wyłącznego jest konieczność posiadania własnego obiektu APO do obsługi funkcji pomocniczych silnika audio. Tylko niewielka liczba aplikacji na poziomie zawodowym wymaga tego trybu działania. Poniższy przykład kodu przedstawia składnię inicjowania strumienia audio w trybie wyłącznym.
hResult = pAudioClient->Initialize(
AUDCLNT_SHAREMODE_EXCLUSIVE,
0,
0,
0,
pWfxEx,
&m_SubmixGuid);
Gdy aplikacja inicjuje przetwarzanie audio, konstruktor grafu konfiguruje obiekty sAPO w grafie audio, a także je inicjuje. Następnie usługa audio negocjuje z LFX APO w celu ustalenia formatu danych audio na wejściu i wyjściu APO. Aby uzyskać więcej informacji, zobacz Format Negocjacji.