Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
XAudio2 to interfejs API audio niskiego poziomu. Zapewnia ona podstawy przetwarzania sygnałów i mieszania dla gier, które są podobne do swoich poprzedników, DirectSound i XAudio.
XAudio2 jest długo oczekiwanym zamiennikiem DirectSound. Rozwiązuje on kilka niezałatwionych kwestii oraz prośby o nowe funkcje.
Funkcje XAudio2
Poniżej znajduje się lista funkcji XAudio2 i nowych funkcji, które umożliwiają deweloperom poprawę wydajności w swoich grach.
Efekty DSP i filtrowanie na głos
Efekty przetwarzania sygnału cyfrowego (DSP) to cieniowanie pikseli dźwięku. Obsługują wszystko, od przekształcania dźwięku — przekształcania kwiku świni w niski, przerażający dźwięk potwora — do umieszczania dźwięków w środowisku gry przy użyciu pogłosu i okluzji lub filtrów przeszkód. XAudio2 zapewnia elastyczną i zaawansowaną platformę DSP. Zapewnia również wbudowany filtr dla każdego głosu, umożliwiający efektywne filtrowanie dolnoprzepustowe, górnoprzepustowe i pasmowoprzepustowe.
Aby uzyskać więcej informacji na temat efektów DSP i filtrowania na głos, zobacz XAudio2 Audio Effects i IXAudio2Voice::SetFilterParameters.
Podmiksowanie
Submiksowanie łączy kilka dźwięków w jeden strumień audio — na przykład dźwięk silnika składający się z części złożonych, z których wszystkie są odtwarzane jednocześnie. Ponadto można używać podmiksowania do przetwarzania i łączenia podobnych części gry. Można na przykład połączyć wszystkie efekty dźwiękowe gry, aby umożliwić zastosowanie ustawienia głośności użytkownika, podczas gdy oddzielne ustawienie kontroluje głośność muzyki. W połączeniu z DSP podmiksowanie zapewnia typ routingu i przetwarzania danych niezbędnych do dzisiejszych gier. XAudio2 umożliwia dowolne poziomy podmiksowania, umożliwiając tworzenie złożonych dźwięków i mieszanek gier.
Aby uzyskać więcej informacji na temat podmiksowania, zobacz XAudio2 Audio Graph i XAudio2 Voices.
Obsługa skompresowanego dźwięku
Jednym z głównych żądań funkcji directSound jest obsługa skompresowanego dźwięku. XAudio2 obsługuje skompresowane formaty ADPCM natywnie z dekompresją w czasie wykonywania.
Ulepszona obsługa dźwięku wielokanałowego i dźwięku otaczającego
Rozszerzono obsługę dźwięku wielokanałowego, 3D i dźwięku otaczającego. Dźwięk 3D i dźwięk przestrzenny są teraz znacznie bardziej elastyczne i przezroczyste. XAudio2 usuwa limit 6 kanałów na dźwiękach wielokanałowych i obsługuje dźwięk wielokanałowy na dowolnej karcie audio z obsługą wielu kanałów. Karta nie musi być przyspieszona sprzętowo.
Przetwarzanie wielokrateczne
Aby zminimalizować użycie procesora CPU, XAudio2 udostępnia technologię tworzenia wielu grafów przetwarzania audio o niskiej szybkości. Może to znacznie zmniejszyć użycie procesora CPU, umożliwiając grze przetwarzanie dźwięku w tempie materiału źródłowego, jeśli szybkość jest mniejsza niż 48 kHz.
Nieblokujący model interfejsu API
W przypadku kilku wyjątków wywołanie metody XAudio2 nie zablokuje aparatu przetwarzania dźwięku. Oznacza to, że klient może bezpiecznie wykonać zestaw wywołań metod w dowolnym momencie bez blokowania długotrwałych wywołań powodujących opóźnienia. Wyjątki to metoda IXAudio2Voice::DestroyVoice (która może blokować aparat do momentu zakończenia przetwarzania głosu) oraz metody, które przerywają wątek audio: IXAudio2::StopEngine i IXAudio2::Release. Należy pamiętać, że chociaż wywołania metody XAudio2 nie blokują aparatu przetwarzania dźwięku, metody XAudio2 zawierają sekcje krytyczne i mogą zostać zablokowane w pewnych okolicznościach.
Kiedy używać XAudio2
XAudio2 jest przeznaczony przede wszystkim do tworzenia silników audio o wysokiej wydajności dla gier. Dla deweloperów gier, którzy chcą dodać efekty dźwiękowe i muzykę w tle do swoich nowoczesnych gier, XAudio2 oferuje graf audio i silnik miksujący z niskim opóźnieniem i obsługą dynamicznych buforów, synchronicznego, dokładnego odtwarzania próbek oraz niejawnej konwersji częstotliwości źródła. W porównaniu z interfejsem WASAPI XAudio2 wymaga tylko minimalnej ilości kodu, nawet w przypadku złożonych rozwiązań audio. W porównaniu z technologią Media Foundation, XAudio2 to niskopoziomowe, niskolatencyjne API języka C++, które jest przeznaczone do użycia w grach.
W przypadku aplikacji, które po prostu potrzebują regularnego odtwarzania muzyki, aparat Media Foundation może lepiej spełniać wymagania aplikacji.
Tematy pokrewne