Sdílet prostřednictvím


Integrace vývojářů s multimediálním přesměrováním pro volání aplikací založených na WebRTC ve vzdálené relaci

Přesměrování multimédií přesměruje přehrávání videa a volání ve vzdálené relaci z Azure Virtual Desktopu, cloudového počítače s Windows 365 nebo Microsoft Dev Boxu na místní zařízení pro rychlejší zpracování a vykreslování.

Přesměrování volání optimalizuje zvuková volání pro volající aplikace založené na WebRTC, snižuje latenci a zlepšuje kvalitu hovorů. Připojení probíhá mezi místním zařízením a serverem telefonní aplikace, kde se volání WebRTC přesměrují ze vzdálené relace na místní zařízení. Po navázání připojení se kvalita volání změní na závislosti na webové stránce nebo poskytovatelích aplikací, stejně jako při volání bez přesměrování.

Přesměrování volání může fungovat s většinou aplikací založených na WebRTC bez úprav. Existují však nepodporované scénáře nebo můžete chtít poskytnout jiné prostředí ve vzdálené relaci.

Tento článek obsahuje informace o podporovaných rozhraních API a metodách instancí a ukazuje fragmenty kódu JavaScriptu, které můžete použít s mediaDevices vlastností rozhraní Navigator.

Rozhraní navigátoru je součástí rozhraní Media Capture a Streams API pro integraci webu s přesměrováním volání. Společně s rozhraním WebRTC API poskytují tato rozhraní API podporu streamování zvukových dat a videosouborů pomocí aplikací založených na WebRTC. Multimediální přesměrování nahrazuje implementaci objektu mediaDevices v rozhraních API za účelem zjišťování přesměrování volání, zpracování událostí odpojení a opětovného připojení a shromažďování diagnostických informací.

Tip

Pokud chcete otestovat integraci s přesměrováním multimédií, můžete povolit přesměrování volání, aby bylo dostupné pro všechny weby. Další informace najdete v tématu Povolení přesměrování volání pro všechny weby pro účely testování.

Podporovaná rozhraní API a metody instancí

Přesměrování volání je navržené tak, aby bez problémů nahradilo standardní použití WebRTC implementací, která přesměruje volání ze vzdálené relace na místní zařízení.

Tady je seznam podporovaných rozhraní a metod instancí používaných přesměrováním volání z rozhraní MEDIA Capture a Streams API a rozhraní WebRTC API:

Známá omezení

Přesměrování volání má následující omezení rozhraní API:

  • V současné době se podporuje pouze omezený počet WebAudio uzlů.

  • setSinkIdHTMLAudioElement pro stopy WebRTCsrcObject, ale jakékoli místní přehrávání, jako je vyzváněcí tón, se vždy přehrává na výchozím zvukovém výstupu vzdálené relace.

  • Vzhledem k tomu, že některá rozhraní API vrací synchronně za normálních podmínek, ale při použití s přesměrováním volání musí být proxy, je možné, že stav objektu není okamžitě dostupný.

Detekce přesměrování volání

Pokud chcete zjistit, jestli je přesměrování volání aktivní, můžete zkontrolovat isCallRedirectionEnabled vlastnost objektu MediaDevices . Pokud je truetato vlastnost , přesměrování volání je aktivní. Pokud je undefined tato vlastnost nebo false, přesměrování volání není aktivní.

window.navigator.mediaDevices['isCallRedirectionEnabled'] = true;

Zjištění odpojení od vzdálené relace

Když se uživatel odpojí a znovu připojí ke vzdálené relaci při použití přesměrování volání na webové stránce, místní instance WebRTC, která podporuje objekty, už nebude dostupná. Obvykle platí, že pokud uživatel aktualizuje stránku, může znovu volat.

Webová stránka dokáže rozpoznat a zpracovat tyto události odpojení a opětovného připojení tím, že odstraní a znovu vytvoří všechny objekty WebRTC, zvukové prvky nebo video prvky a MediaStream rozhraní MediaStreamTrack . Tento přístup eliminuje potřebu aktualizovat webovou stránku.

Chcete-li získat oznámení o těchto událostech, zaregistrujte rdpClientConnectionStateChanged událost objektu MediaDevices , jak je znázorněno v následujícím příkladu. Tato událost obsahuje nový stav, který může být buď connected nebo disconnected.

navigator.mediaDevices.addEventListener('rdpClientConnectionStateChanged', () => 
    console.log("state change: " + event.detail.state);
);

Diagnostika přesměrování volání

Následující příklad uvádí vlastnosti vystavené objektu MediaDevices . Poskytují konkrétní diagnostické informace o verzích přesměrování volání, které se používají, a identifikátory relací. Tyto informace jsou užitečné při hlášení problémů microsoftu a doporučujeme, abyste je shromáždili jako součást vlastních telemetrických nebo diagnostických dat.

window.navigator.mediaDevices['mmrClientVersion'];
window.navigator.mediaDevices['mmrHostVersion'];
window.navigator.mediaDevices['mmrExtensionVersion'];

window.navigator.mediaDevices['activityId'];
window.navigator.mediaDevices['connectionId'];

Jednotlivé vlastnosti představují následující:

  • mmrClientVersion: verze souboru MsMmrDVCPlugin.dll na místním počítači, která je součástí aplikace pro Windows a aplikace Vzdálená plocha.

  • mmrHostVersion: verze souboru MsMMRHost.exe nainstalovaného na hostiteli relace, v Cloud PC nebo vývojovém poli.

  • mmrExtensionVersion: verze rozšíření Microsoft Multimedia Redirection spuštěné v prohlížeči.

  • activityId: jedinečný identifikátor, který Microsoft používá k přidružení telemetrie ke konkrétní relaci a mapuje na aktuální přesměrování multimédií webové stránky, je přesměrování.

  • connectionId: jedinečný identifikátor, který Microsoft používá k přidružení telemetrie ke konkrétní relaci a vztahuje se k danému připojení mezi místním zařízením a vzdálenou relací.

Všechny tyto informace jsou koncovému uživateli k dispozici v podrobnostech rozšíření prohlížeče, ale tento příklad poskytuje programový způsob, jak je shromáždit.

Protokoly přesměrování volání

Ve výchozím nastavení se přesměrování multimédií do konzoly nepřihlašuje. Rozšíření prohlížeče má tlačítko pro uživatele ke shromažďování protokolů. Následující příklad ukazuje, jak povolit protokoly konzoly prostřednictvím kódu programu. Protokoly konzoly můžete chtít povolit programově, pokud pracujete na integraci nebo zaznamenáváte problém, který vyžaduje delší spouštění protokolů než možnost v rozhraní rozšíření prohlížeče.

window.navigator.mediaDevices['mmrConsoleLoggingEnabled'] = true;

Můžete také chtít programově shromažďovat protokoly přesměrování multimédií, které vám pomůžou při vyšetřování. Všechny protokoly pro webovou stránku jsou k dispozici také registrací mmrExtensionLog události v dokumentu.

Objekt události má v podrobnostech dvě vlastnosti:

  • Úroveň: označuje, jaký druh trasování je položka, a umožňuje filtrovat konkrétní události. Úroveň je jedna z následujících hodnot:

    • informace
    • verbose
    • upozornění
    • chyba
  • Zpráva: textová zpráva trasování.

Následující příklad ukazuje, jak zaregistrovat událost mmrExtensionLog :

document.addEventListener('mmrExtensionLog', () =>
    console.log("MMR event, level:" + event.detail.level + " : " + event.detail.message);
);

Přečtěte si další informace o přesměrování multimédií pro přehrávání videa a volání ve vzdálené relaci.