Známé problémy v sadách SDK a rozhraních API
Tyto články obsahují informace o omezeních a známých problémech souvisejících s rozhraními SDK pro volání služeb Azure Communication Services a rozhraníMI API pro automatizaci volání komunikačních služeb.
Důležité
Existuje několik faktorů, které můžou ovlivnit kvalitu vašeho prostředí volání. Další informace o konfiguraci sítě a testování síťových služeb najdete v tématu Doporučení sítě.
Volání webové sady SDK
Následující části obsahují informace o známých problémech souvisejících se sadami SDK pro hlasové a videohovory v JavaScriptu ve službě Azure Communication Services.
Chrome M115 – regrese
Chrome verze 115 pro Android zavedla regresi při videohovorech – výsledkem této chyby je uživatel, který volá komunikační služby Azure s touto verzí Chromu, nemá žádné odchozí video ve skupinách a voláních Microsoft Teams služby Azure Communication Services.
- Tato regrese je známý problém zavedený v Chromiu.
- Krátkodobé zmírnění rizik uživatelům, aby používali Microsoft Edge nebo Firefox na Androidu nebo se vyhnuli používání Google Chrome 115/116 na Androidu
Známé problémy s Firefoxem
Podpora desktopového prohlížeče Firefox je teď dostupná ve verzi Public Preview. Známé problémy jsou:
- Výčet reproduktorů není k dispozici: Pokud používáte Firefox, vaše aplikace nemůže vytvořit výčet ani vybrat reproduktory prostřednictvím správce zařízení Komunikační služby. V tomto scénáři musíte vybrat zařízení prostřednictvím operačního systému.
- Virtuální kamery nejsou v současné době podporovány při provádění stolního zvuku nebo videohovorů Firefoxu.
Známé problémy s iOSem Chrome
Podpora prohlížeče iOS Chrome je teď dostupná ve verzi Public Preview. Známé problémy jsou:
- Při přepínání prohlížeče na pozadí nebo uzamčení zařízení není žádný odchozí a příchozí zvuk. Tento problém byl opravený v iOSu verze 16.4 nebo novější.
- Z náhlavní soupravy Bluetooth nepřichází žádný příchozí/odchozí zvuk. Když uživatel připojí náhlavní soupravu Bluetooth uprostřed hovoru služby Azure Communication Services, zvuk se z reproduktoru pořád dostane, dokud se uživatel nezamkne a odemkne telefon. Tento problém jsme viděli ve starších verzích iOS (15.6, 15.7) a v iOSu 16 se nedá reprodukovat.
Safari pro iOS zobrazuje nesprávnou velikost rozlišení náhledu fotoaparátu.
K této chybě dochází ve verzích iOS 16.7 nebo iOS 17 starších než 17.4, když uživatelé otočí telefon nebo povolí nebo zakáže video během hovoru. Náhled kamery krátce zobrazí nesprávnou velikost rozlišení před návratem do normálního stavu. Problém není reprodukovatelný v iOSu 17.4 Beta. Související chyba WebKitu.
iOS 16 zavedl chyby při vkládání prohlížeče na pozadí během volání
Verze pro iOS 16 zavedla chybu, která může zastavit audio a videohovory ve službě Azure Communication Services při použití mobilního prohlížeče Safari. Apple o tomto problému ví a hledá opravu na své straně. Dopad může být v tom, že hovor služby Azure Communication Services může během hovoru přestat fungovat a jediným řešením, jak ho znovu získat, je, aby koncový zákazník restartoval telefon.
Reprodukování této chyby:
- Požádejte uživatele, aby používal i Telefon se systémem iOS 16
- Připojení k hovoru služby Azure Communication Services (pouze se zvukem nebo zvukem a videem) pomocí mobilního prohlížeče Safari pro iOS
- Pokud během hovoru někdo umístí prohlížeč Safari na pozadí a zobrazí YouTube NEBO obdrží faceTime\telefonní hovor při připojení přes zařízení Bluetooth
Výsledky:
- Po několika minutách této situace může příchozí a odchozí video přestat fungovat.
- Jediným způsobem, jak znovu volat služby Azure Communication Services, je restartovat telefon koncovým uživatelem.
Chrome M98 – regrese
Chrome verze 98 zavedla regresi s neobvyklou generováním klíčových snímků videa, které mají vliv na rozlišení odeslaného video streamu negativně pro většinu uživatelů (70 %+).
- Tato regrese je známý problém zavedený v Chromiu.
Během hovoru do veřejné telefonní sítě může uživatel stále slyšet zvuk z hovoru služby ACS.
K tomuto problému dochází, když uživatel Androidu Chrome zaznamená příchozí hovor do veřejné telefonní sítě po přijetí hovoru ve veřejné telefonní síti, mikrofon ve volání služby ACS se ztlumí. Odchozí zvuk hovoru služby ACS je ztlumený, takže ostatní účastníci neslyší uživatele, který je voláním do veřejné telefonní sítě. Stojí za zmínku, že příchozí zvuk uživatele není ztlumený a toto chování je vlastní prohlížeči.
Během hovoru není žádný příchozí zvuk
Někdy se může stát, že uživatel v hovoru služby Azure Communication Services neslyší zvuk od vzdálených účastníků. Existuje související chyba Chromium, která způsobuje tento problém. Problém je možné zmírnit opětovným připojením partnerského vztahu Připojení. Toto alternativní řešení jsme přidali od sady SDK 1.9.1 (stabilní) a sady SDK 1.10.0 (beta).
Pokud se uživatel v Androidu Chrome několikrát připojí k volání služby Azure Communication Services, příchozí zvuk může také zmizet. Uživatel nemůže slyšet zvuk od ostatních účastníků, dokud se stránka neaktualizuje. Opravili jsme tento problém v sadě SDK 1.10.1-beta.1 a vylepšili jsme využití zvukových prostředků.
Některá zařízení s Androidem, která selhávají při volání, s výjimkou skupinových volání.
Mnoha konkrétním zařízením s Androidem se nedaří spustit, přijmout hovory a schůzky. Zařízení, na která narazí na tento problém, se nemůžou obnovit a při každém pokusu se nezdaří. Jedná se většinou o zařízení Samsung Model A, zejména modely A326U, A125U a A215U.
- Tato regrese je známý problém zavedený v Chromiu.
Android Chrome ztlumí hovor po tom, co prohlížeč přejde na pozadí po dobu jedné minuty
Pokud je uživatel v Androidu Chrome na volání služby Azure Communication Services a umístí prohlížeč na pozadí po dobu jedné minuty. Mikrofon ztratí přístup a ostatní účastníci hovoru neslyší zvuk od uživatele. Jakmile uživatel přenese prohlížeč do popředí, mikrofon je opět k dispozici. Související chyby chromia zde a tady
Mobilní uživatel (iOS a Android) hovor zrušil, ale stále se zobrazuje v seznamu účastníků.
K problému může dojít, pokud mobilní uživatel opustí volání skupiny Azure Communication Services bez použití rozhraní Call.hangUp() API. Když mobilní uživatel zavře prohlížeč nebo aktualizuje webovou stránku bez zablokování, ostatní účastníci hovoru ve skupině můžou tohoto mobilního uživatele na seznamu účastníků zobrazit asi 60 sekund.
IOS Safari aktualizuje stránku, pokud uživatel přejde do jiné aplikace a vrátí se zpět do prohlížeče.
K problému může dojít v případě, že uživatel ve službě Azure Communication Services volá s iOSem Safari a nějakou dobu přepne do jiné aplikace. Jakmile se uživatel vrátí zpět do prohlížeče, může se stránka prohlížeče aktualizovat. Důvodem je to, že operační systém ukončuje prohlížeč. Jedním zezpůsobůch
Uživatelé s iOSem 15.1, kteří se připojují ke skupinám hovorů nebo schůzek v Microsoft Teams
- Někdy se při přijetí příchozí veřejné telefonní sítě karta s hovorem nebo schůzkou zablokuje. Související chyby WebKitu tady a tady.
Místní mikrofon nebo kamera se ztlumí, když dojde k určitým přerušením v iOSu Safari a Android Chrome.
K tomuto problému může dojít, pokud jiná aplikace nebo operační systém převezme kontrolu nad mikrofonem nebo kamerou. Tady je několik příkladů, ke kterým může dojít, když je uživatel ve volání:
- Příchozí hovor dorazí přes veřejnou telefonní síť (veřejná přepnulá telefonní síť) a zachytí přístup k mikrofonnímu zařízení.
- Uživatel například přehrává video z YouTube nebo spustí hovor FaceTime. Přepnutím na jinou nativní aplikaci můžete zachytit přístup k mikrofonu nebo fotoaparátu.
- Uživatel povolí Siri, který zachycuje přístup k mikrofonu.
Například v iOSu je při volání služby Azure Communication Services vyvolán hovor do veřejné telefonní sítě, pak je vyvolán mikrofonMutedUnexepectedly bad UFD a zvuk přestane proudit ve volání Azure Communication Services a volání se označí jako ztlumené. Po dokončení volání do veřejné telefonní sítě musí uživatel zrušit ztlumení volání služby Azure Communication Services, aby se zvuk začal znovu spouštět při volání služby Azure Communication Services. V případě Android Chrome, když přijde volání do veřejné telefonní sítě, zvuk přestane proudit ve volání služeb Azure Communication Services a volání Azure Communication Services není označené jako ztlumené. V tomto případě neexistuje žádný mikrofonMutedUnexepectedly UFD událost. Jakmile je hovor do veřejné telefonní sítě hotový, Android Chrome znovu získá zvuk automaticky a zvuk začne při volání azure Communication Services normálně přetékat.
V případě, že je kamera zapnutá a dojde k přerušení, může nebo nemusí dojít ke ztrátě kamery ve službě Azure Communication Services. Pokud dojde ke ztrátě, kamera je označená jako vypnutá a uživatel ji musí po uvolnění kamery zase zapnout.
V některých případech se mikrofon nebo zařízení fotoaparátů nevolají včas a můžou způsobovat problémy s původním voláním. Pokud se například uživatel pokusí zrušit ztlumení při sledování videa z YouTube nebo pokud je hovor do veřejné telefonní sítě aktivní současně.
Příchozí streamy videa nepřestávají vykreslovat, pokud je uživatel v iOSu 15.2 nebo novější a používá sadu SDK verze 1.4.1-beta.1+, k restartování odchozího zvuku a videa se stále vyžaduje postup zrušení ztlumení a spuštění videa.
U iOSu 15.4+, zvuk a video by se měly ve většině případů automaticky obnovit. V některých hraničních případech musí aplikace zrušit ztlumení voláním rozhraní API pro zrušení ztlumení (může to být výsledkem akce uživatele), aby se obnovil odchozí zvuk.
IOS s chybou Safari a aktualizuje stránku, pokud se uživatel pokusí přepnout z přední kamery na zadní kameru.
Sada SDK pro volání služeb Azure Communication Services verze 1.2.3-beta.1 zavedla chybu, která má vliv na všechna volání provedená z iOS Safari. K tomuto problému dochází, když se uživatel pokusí přepnout stream videa z fotoaparátu z přední na zadní. Přepnutím fotoaparátu v prohlížeči Safari dojde k chybovému ukončení a opětovnému načtení stránky.
Tento problém je opravený v sadě SDK pro volání služeb Azure Communication Services verze 1.3.1-beta.1 +
- iOS Safari verze: 15.1
Sdílení obrazovky v macOS Ventura Safari (v16.3 a nižší)
Sdílení obrazovky nefunguje v macOS Ventura Safari(v16.3 a nižší). Známý problém ze safari a opravený ve verzi 16.4 nebo novější.
Aktualizace stránky okamžitě neodebere uživatele ze svého hovoru.
Pokud je uživatel v hovoru a rozhodne se stránku aktualizovat, služba médií komunikační služby neodebere tohoto uživatele okamžitě z hovoru. Čeká, až se uživatel znovu připojí. Uživatel se odebere z hovoru po vypršení časového limitu služby médií.
Nejlepší je vytvářet uživatelská prostředí, která nevyžadují, aby koncoví uživatelé během hovoru aktualizovali stránku aplikace. Pokud uživatel stránku aktualizuje, znovu použijte stejné ID uživatele služby Communication Services, jakmile se tento uživatel vrátí zpět do aplikace. Opětovným spojením se stejným ID uživatele je uživatel reprezentován jako stejný existující objekt v kolekci remoteParticipants
. Z pohledu ostatních účastníků hovoru zůstane uživatel v hovoru během doby, která trvá aktualizace stránky, až minutu nebo dvě.
Pokud uživatel odeslal video před aktualizací, kolekce uchovává předchozí informace o datovém proudu, videoStreams
dokud služba nevysadí časový limit a neodebere ho. V tomto scénáři se aplikace může rozhodnout sledovat všechny nové datové proudy přidané do kolekce a vykreslit jeden s nejvyšším id
.
Z více zařízení na webu není možné vykreslit více náhledů.
Jedná se o známé omezení. Další informace najdete v tématu Přehled volání sady SDK.
Výčet zařízení není v Safari možné, když aplikace běží v iOSu nebo iPadOS
Aplikace nemůžou v Safari iOS nebo iPadOS vyčíslit ani vybrat zařízení reproduktorů (například Bluetooth). Tento problém je známým omezením těchto operačních systémů.
Pokud používáte Safari v systému macOS, vaše aplikace nemůže vytvořit výčet ani vybrat reproduktory prostřednictvím správce zařízení komunikačních služeb. V tomto scénáři musíte vybrat zařízení prostřednictvím operačního systému. Pokud používáte Chrome v systému macOS, může aplikace vytvořit výčet nebo vybrat zařízení prostřednictvím správce zařízení komunikačních služeb.
- iOS Safari verze: 15.1
Opakované přepínání videozalohovacích zařízení může způsobit dočasné zastavení streamování videa.
Přepnutí mezi videozařízením může způsobit pozastavení streamu videa, když se stream získá z vybraného zařízení. Časté přepínání mezi zařízeními může způsobit snížení výkonu. Nejlepší je, aby vývojáři před spuštěním jiného datového proudu zařízení zastavili.
Mikrofon s mikrofonem Bluetooth se během hovoru v Safari v iOSu nerozpoznal ani neslyšitelný
Safari v iOSu nepodporuje náhlavní soupravy Bluetooth. Vaše zařízení Bluetooth není uvedené v dostupných možnostech mikrofonu a ostatní účastníci vás neslyší, pokud se pokusíte používat Bluetooth přes Safari.
Tato regrese představuje známé omezení operačního systému. V prohlížeči Safari v systémech macOS a iOS/iPadOS není možné vytvořit výčet ani vybrat zařízení mluvčího prostřednictvím správce zařízení komunikačních služeb. Důvodem je to, že Safari nepodporuje výčet ani výběr mluvčích. V tomto scénáři použijte operační systém k aktualizaci výběru zařízení.
Otočení zařízení může vytvořit špatnou kvalitu videa
Když uživatelé otočí zařízení, může tento pohyb snížit kvalitu videa, které streamuje.
K tomuto problému dochází v následujících prostředích:
- Ovlivněná zařízení: Google Pixel 5, Google Pixel 3a, Apple iPad 8 a Apple iPad X
- Klientská knihovna: Volání (JavaScript)
- Prohlížeče: Safari, Chrome
- Operační systémy: iOS, Android
Kamera přepínání způsobí ukotvení obrazovky
Když se uživatel služby Communication Services připojí k volání pomocí sady JAVAScript call SDK a pak vybere tlačítko přepínače fotoaparátu, uživatelské rozhraní může přestat reagovat. Uživatel pak musí aplikaci aktualizovat nebo odeslat prohlížeč na pozadí.
K tomuto problému dochází v následujících prostředích:
- Ovlivněná zařízení: Google Pixel 4a
- Klientská knihovna: Volání (JavaScript)
- Prohlížeč: Chrome
- Operační systémy: iOS, Android
Problém s signálem videa, když je hovor ve stavu připojení
Pokud uživatel zapne a vypne video rychle, když je hovor ve stavu Připojení, může tato akce vést k problému se streamem získaným pro hovor. Nejlepší je, aby vývojáři vytvořili své aplikace způsobem, který nevyžaduje zapnutí a vypnutí videa v době, kdy je hovor ve stavu Připojení. Snížení výkonu videa může nastat v následujících scénářích:
- Pokud uživatel začne zvukem a pak spustí a zastaví video, zatímco hovor je ve stavu Připojení.
- Pokud uživatel začne zvukem a pak spustí a zastaví video, zatímco hovor je ve stavu Předsálí .
Vytvoření výčtu nebo přístupu k zařízením pro Safari v macOS a iOS
V určitých prostředích si můžete všimnout, že se oprávnění zařízení po určité době resetují. V macOS a iOSu safari dlouho neuchová oprávnění, pokud se nezíská datový proud. Nejjednodušší způsob, jak toto omezení obejít, je volat DeviceManager.askDevicePermission()
rozhraní API před voláním rozhraní API výčtu zařízení správce zařízení. Tato rozhraní API výčtu zahrnují DeviceManager.getCameras()
, DeviceManager.getSpeakers()
a DeviceManager.getMicrophones()
. Pokud jsou oprávnění k dispozici, uživatel nic nevidí. Pokud tam oprávnění nejsou, zobrazí se uživateli výzva k dalšímu zadání oprávnění.
K tomuto problému dochází v následujících prostředích:
- Ovlivněné zařízení: i Telefon
- Klientská knihovna: Volání (JavaScript)
- Prohlížeč: Safari
- Operační systém: iOS
Zpoždění vykreslování videí vzdálených účastníků
Během probíhajícího skupinového hovoru předpokládejme, že uživatel A odesílá video a uživatel B se připojí k hovoru. Uživatel B někdy nevidí video z uživatele A nebo video uživatele A začne vykreslovat po dlouhé prodlevě. Příčinou tohoto zpoždění může být problém s konfigurací síťového prostředí. Další informace najdete v tématu Doporučení sítě.
Když během hovoru použijete knihovny třetích stran, může dojít ke ztrátě zvuku.
Pokud v aplikaci používáte getUserMedia
samostatně, dojde ke ztrátě zvukového streamu. Zvukový stream se ztratí, protože knihovna třetí strany převezme přístup zařízení z knihovny Azure Communication Services.
- Nepoužívejte knihovny třetích stran, které během volání používají
getUserMedia
rozhraní API interně. - Pokud stále potřebujete použít knihovnu třetí strany, jediným způsobem, jak obnovit zvukový stream, je změnit vybrané zařízení (pokud má uživatel více než jednu) nebo restartovat hovor.
K tomuto problému dochází v následujících prostředích:
- Prohlížeč: Safari
- Operační systém: iOS
Příčinou tohoto problému může být, že získání vlastního datového proudu ze stejného zařízení má vedlejší vliv na konflikty časování. Získání datových proudů z jiných zařízení může uživatele vést k nedostatečné šířce pásma USB/V a sourceUnavailableError
rychlost přecházení.
Nadměrné používání určitých rozhraní API, jako je ztlumení nebo zrušení ztlumení, vede k omezování infrastruktury služeb Azure Communication Services.
V důsledku ztlumení nebo zrušení ztlumení volání rozhraní API informuje infrastruktura služeb Azure Communication Services ostatní účastníky hovoru o stavu zvuku místního účastníka, který vyvolal ztlumení nebo zrušení ztlumení, aby účastníci hovoru věděli, kdo je ztlumený nebo netlumený. Nadměrné použití ztlumení nebo zrušení ztlumení je blokováno v infrastruktuře služeb Azure Communication Services. K omezování dochází v případě, že se účastník (nebo aplikace jménem účastníka) pokusí ztlumit nebo zrušit ztlumení nepřetržitě, každou sekundu, více než 15krát v 30sekundovém klouzavém okně.
Rozhraní API pro automatizaci volání
Následující omezení jsou známé problémy v rozhraních API služby Communication Services Pro automatizaci volání:
Jediným ověřováním aktuálně podporovaným serverovým aplikacím je použití připojovací řetězec.
Volání proveďte pouze mezi entitami stejného prostředku komunikační služby. Komunikace mezi prostředky je blokovaná.
Volání mezi uživateli microsoft Teams a komunikačními službami mezi uživateli klienta nebo entitami serverových aplikací nejsou povolená.
Pokud aplikace vytočí dvě nebo více identit veřejné telefonní sítě a pak hovor ukončí, volání mezi ostatními entitami veřejné telefonní sítě se ukončí.
Následující části obsahují informace o známých problémech souvisejících s nativními a nativními sadami SDK uživatelského rozhraní služby Azure Communication Services.
Emulátory rozhraní Android API
Při používání emulátorů rozhraní Android API v Androidu 5.0 (úroveň rozhraní API 21) a Androidu 5.1 (úroveň rozhraní API 22) se očekává některá chybové ukončení.
Konflikt modulu Trouter pro Android
Když jsou sada SDK pro chat a volání pro Android ve stejné aplikaci společně, funkce oznámení v reálném čase sady SDK chatu nefunguje. Může se stát, že se problém vyřeší pomocí závislosti.
Zatímco pracujeme na řešení, můžete funkci oznámení v reálném čase vypnout tak, že do souboru build.gradle aplikace přidáte následující informace o závislostech a místo toho se na rozhraní GetMessages API dotazujete, aby se uživatelům zobrazovaly příchozí zprávy.
Java
implementation ("com.azure.android:azure-communication-chat:1.0.0") {
exclude group: 'com.microsoft', module: 'trouter-client-android'
}
implementation 'com.azure.android:azure-communication-calling:1.0.0'
Poznámka: Pokud se aplikace pokusí kontaktovat některá z rozhraní API oznámení, jako chatAsyncClient.startRealtimeNotifications()
je nebo chatAsyncClient.addEventHandler()
, dojde k chybě za běhu.
Průběžný obrázek videa v iOSu (PiP)
Příchozí video se zastaví, když aplikace přejde na pozadí. Pokud je aplikace v popředí, video se správně vykresluje.
Příchozí hovor v iOSu přes CallKit
Nastavení odchozího zvuku by se nepoužádá, když je povolená sada CallKit a uživatelé zodpoví příchozí hovory přímo přes CallKit.
Knihovna uživatelského rozhraní
Můžete sledovat stránku wikiwebu známých problémů v úložištích GitHubu.