Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V režimu zpětné smyčky může klient WASAPI zachytit zvukový stream, který přehrává zařízení koncového bodu vykreslování. Pokud chcete datový proud otevřít v režimu zpětné smyčky, klient musí:
- Získejte rozhraní IMMDevice pro zařízení koncového bodu vykreslování.
- Inicializujte datový proud zachycení v režimu zpětné smyčky na zařízení pro vykreslování koncového bodu.
Po provedení těchto kroků může klient volat metodu IAudioClient::GetService k získání IAudioCaptureClient rozhraní na zařízení koncového bodu vykreslování.
WASAPI poskytuje zpětnovazební režim primárně pro podporu zrušení akustické ozvěny (AEC). Jiné typy zvukových aplikací ale můžou najít režim zpětné smyčky užitečný pro zachycení systémového mixu, který přehrává zvukový modul.
V příkladu kódu v Capturing a Stream lze funkci RecordAudioStream snadno upravit tak, aby nakonfigurovala stream zachycení v režimu smyčky. Požadované úpravy:
- Při volání IMMDeviceEnumerator::GetDefaultAudioEndpoint metoda změňte první parametr (tok dat) z eCapture na eRender.
- Při volání metody IAudioClient::Initialize změňte hodnotu druhého parametru (StreamFlags) z 0 na AUDCLNT_STREAMFLAGS_LOOPBACK.
Ve verzích Windows starších než Windows 10 1703 klient pro zachytávání v režimu pull neobdrží žádné události, když je stream inicializován s ukládáním do vyrovnávací paměti řízené událostmi a má povolenou zpětnou smyčku. Pokud chcete tento problém obejít, inicializujete stream vykreslení v režimu řízeném událostmi. Pokaždé, když klient přijme událost pro vykreslovací stream, musí dát pokyn klientovi pro zachycení, aby spustil vlákno, které čte další sadu vzorků z vyrovnávací paměti koncového bodu zachycení. Ve Windows 10 verze 1703 a novějších se podporují klienti zpětné smyčky řízené událostmi a už nepotřebují alternativní řešení týkající se streamu vykreslování.
Klient může povolit režim zpětné smyčky pouze pro stream sdíleného režimu (AUDCLNT_SHAREMODE_SHARED). Streamy s výhradním režimem nemohou fungovat v režimu zpětné smyčky.
Implementace zpětné smyčky prostřednictvím WASAPI závisí na schopnostech hardwaru. Pokud hardware podporuje pin smyčky zpětné vazby na výstupním bodu vykreslení, WASAPI použije pro smyčkový stream zvuk z tohoto pinu. Pokud hardware nepodporuje loopback pin, WASAPI zkopíruje výstupní datový proud ze zvukového modulu do vyrovnávací paměti pro zpětné zachycení aplikace, kromě kopírování zvukových dat do hardwarového pinu pro vykreslování.
Někteří dodavatelé hardwaru implementují ve svých zvukových adaptérech zařízení zpětné smyčky (na rozdíl od připnutí instancí na vykreslovacích zařízeních). I když se zařízení zpětné smyčky hardwaru podobají režimu zpětné smyčky WASAPI, může být obtížnější je použít.
Hardwarová zařízení zpětné smyčky mají pro zvukové aplikace následující nevýhody:
- Ne všechny zvukové adaptéry mají zařízení zpětné smyčky. Aplikace, které na nich závisejí, proto nebudou fungovat ve všech systémech.
- Aby aplikace mohla zaznamenat ze zařízení zpětné smyčky, musí uživatel identifikovat zařízení zpětné smyčky a povolit ho pro použití.
Různí dodavatelé dávají svým hardwarovým zařízením pro zpětnou smyčku různé názvy. Příklady jsou následující názvy:
- Stereo Mix
- Waveout Mix
- Smíšený výstup
- Co uslyšíte
Nedostatek standardizovaných názvů může způsobit, že uživatelé budou mít potíže s identifikací zařízení zpětné smyčky v seznamu názvů zařízení.
Zařízení pro hardwarovou zpětnou smyčku je zařízení pro zachytávání. Pokud tedy adaptér podporuje zařízení zpětné smyčky, může zvuková aplikace nahrávat ze zařízení stejným způsobem jako záznamy z jakéhokoli jiného zařízení pro zachycení.
Například, pokud vyberete hardwarové zařízení zpětné smyčky jako výchozí zachytávací zařízení, můžete použít funkci RecordAudioStream (bez úprav) v příkladu kódu v Zachytávání streamu k zachycení proudu ze zařízení. (K zachycení datového proudu ze zařízení můžete použít také starší zvukové rozhraní API, jako jsou multimediální waveInXxx funkce.)
Pokud váš zvukový adaptér obsahuje hardwarové zařízení zpětné smyčky, můžete pomocí multimediálního ovládacího panelu Windows, Mmsys.cpl, určit zařízení jako výchozí zařízení pro zachytávání. Postup je následující:
Pokud chcete spustit Mmsys.cpl, otevřete okno příkazového řádku a zadejte následující příkaz:
control mmsys.cplAlternativně můžete spustit Mmsys.cpl tak, že kliknete pravým tlačítkem myši na ikonu reproduktoru v oznamovací oblasti, která se nachází na pravé straně hlavního panelu, a vyberete Nahrávací zařízení.
Po otevření okna Mmsys.cpl klikněte pravým tlačítkem na libovolné místo v seznamu zařízení pro záznam a ověřte, že je zaškrtnutá možnost Zobrazit zakázaná zařízení. (Pokud je zařízení zpětné smyčky zakázané, nezobrazí se v seznamu.)
V seznamu zařízení pro záznam vyhledejte zařízení zpětné smyčky (pokud existuje). Pokud je zařízení zpětné smyčky zakázané, povolte ho tak, že kliknete pravým tlačítkem myši na zařízení a kliknete na Povolit.
Nakonec vyberte zařízení zpětné smyčky, které má být nastaveno jako výchozí zařízení pro záznam, klikněte pravým tlačítkem myši na zařízení a klikněte na Nastavit jako výchozí zařízení.
WASAPI podporuje nahrávání zpětného smyčkování bez ohledu na to, zda zvukový hardware obsahuje zařízení zpětného smyčkování nebo zda je zařízení uživatelem povoleno.
Systém Windows Vista poskytuje správu digitálních práv (DRM). Poskytovatelé obsahu spoléhají na DRM, aby chránili svou vlastní hudbu nebo jiný obsah před neoprávněným kopírováním a jinými nelegálními použitími. Podobně důvěryhodný zvukový ovladač nepovoluje zařízení zpětné smyčky zachytávat digitální streamy, které obsahují chráněný obsah. Systém Windows Vista umožňuje přehrávání chráněného obsahu pouze důvěryhodnými ovladači. Další informace o důvěryhodných ovladačích a DRM najdete v dokumentaci k sadě Windows DDK.
Ve výchozím nastavení obsahuje WASAPI loopback směs veškerého přehrávaného zvuku bez ohledu na relaci Terminálových služeb, odkud zvuk pochází. Můžete například spustit klienta zpětné smyčky ve službě běžící v relaci 0 a zachytit zvuk ze všech uživatelských relací, stejně jako zvuk přehrávaný z relace 0.
Vzdálená plocha umožňuje přesměrování zvuku na klienta. To je implementováno vytvořením nových zvukových zařízení, která se zobrazí pouze pro danou relaci.
Související témata