Udostępnij za pośrednictwem


Przegląd XAPO

Interfejs API XAPO umożliwia tworzenie międzyplatformowych obiektów przetwarzania audio (XAPO) do użycia w interfejsie XAudio2 w systemach Windows i Xbox 360. Obiekt XAPO to jednostka, która pobiera przychodzące dane audio i wykonuje pewną operację na danych przed ich przekazaniem dalej. Można użyć obiektu XAPO do wykonywania różnych zadań, w tym dodawania reverb do strumienia audio i monitorowania szczytowych poziomów głośności.

Tworzenie Nowych XAPOs

Interfejs API XAPO udostępnia interfejs IXAPO oraz klasę CXAPOBase do tworzenia nowych typów XAPO. Interfejs IXAPO zawiera wszystkie metody, które należy zaimplementować w celu stworzenia nowego XAPO. Klasa CXAPOBase zapewnia podstawową implementację interfejsu IXAPO. CXAPOBase implementuje wszystkie metody interfejsu IXAPO IXAPO, z wyjątkiem metody IXAPO::P rocess, która jest unikatowa dla każdego obiektu XAPO.

Aby zapoznać się z przykładem tworzenia nowego obiektu XAPO, zobacz Instrukcje: tworzenie obiektu XAPO.

Aby zapoznać się z przykładem tworzenia obiektu XAPO akceptującego parametry czasu wykonywania, zobacz Instrukcje: dodawanie obsługi parametrów czasu wykonywania do obiektu XAPO.

XAPOs i COM

XAPOs implementują interfejs IUnknown. Interfejsy IXAPO i IXAPOParameters obejmują trzy metody IUnknown: QueryInterface, AddRefi Release. CXAPOBase udostępnia implementacje wszystkich trzech metod IUnknown. Nowe wystąpienie CXAPOBase będzie miało liczbę odwołań wynoszącą 1. Zostanie zniszczone, gdy jego liczba odwołań osiągnie wartość 0. Implementacje IXAPO i IXAPOParameters powinny być zgodne z tym samym wzorcem, aby umożliwić właściwe zarządzanie w przypadku użycia z XAudio2.

Wystąpienia XAPO są przekazywane do XAudio2 jako interfejsy IUnknown. XAudio2 używa QueryInterface do uzyskania interfejsu IXAPO i wykrywania, czy XAPO implementuje interfejs IXAPOParameters. Implementacje IXAPO muszą akceptować żądania __uuidof(IXAPO). Jeśli zaimplementowano IXAPOParameters, musi również zaakceptować żądania __uuidof(IXAPOParameters).

Używanie obiektu XAPO w środowisku XAudio2

XAPOs są używane w XAudio2 przez przyłączenie ich do głosów. Każdy głos XAudio2 ma łańcuch efektu zawierający zero lub więcej efektów dźwiękowych. Dane dźwiękowe wysyłane do głosu są przekazywane przez każdy efekt w łańcuchu, zanim zostaną wysłane do celów wyjściowych głosu. Dane przekazywane są z wypowiedzi do każdego efektu przy użyciu parametru pInputProcessParameters metody IXAPO::Process. Następnie jest zwracany do głosu przy użyciu parametru pOutputProcessParameters. Głos pobiera dane wyjściowe każdego efektu i karmi go do następnego efektu w łańcuchu, aż żadne efekty nie zostaną pozostawione w łańcuchu.

Aby uzyskać więcej informacji na temat łańcuchów efektów XAudio2, zobacz XAudio2 Audio Effects.

Aby zapoznać się z przykładem użycia obiektu XAPO w środowisku XAudio2, zobacz Jak używać obiektu XAPO w XAudio2.

Biblioteki efektów

Biblioteka efektu XAPO zawiera kilka obiektów XAPOs i wspólną metodę ich tworzenia. Aby uzyskać informacje na temat XAPOFX, zobacz XAPOFX Overview (Omówienie XAPOFX). Ponadto XAudio2 ma wbudowane efekty reverb i miernik głośności. Aby uzyskać więcej informacji na temat wbudowanych efektów XAudio2, odnieś się do XAudio2 Efekty dźwiękowe.

efekty dźwiękowe

Efekty dźwiękowe XAudio2