Az SDK-k és API-k ismert problémái
Ezek a cikkek tájékoztatást nyújtanak az Azure Communication Services call SDK-kkal és a Communication Services Call Automation API-kkal kapcsolatos korlátozásokról és ismert problémákról.
Fontos
Több tényező is befolyásolhatja a hívási élmény minőségét. A Communication Services hálózatkonfigurációjáról és az ajánlott eljárások teszteléséről további információt a Hálózati javaslatok című témakörben talál.
Webes SDK hívása
A következő szakaszok az Azure Communication Services JavaScript hang- és videohívási SDK-kkal kapcsolatos ismert problémáival kapcsolatos információkat tartalmaznak.
Chrome M115 – regresszió
Az Android Chrome 115-ös verziója regressziót vezetett be a videohívások során – ennek a hibának az az eredménye, hogy egy felhasználó hívást kezdeményez az Azure Communication Servicesen a Chrome ezen verziójával, és nem rendelkezik kimenő videóval a Csoportos és az Azure Communication Services-Microsoft Teams hívásokban.
- Ez a regresszió a Chromiumon bevezetett ismert probléma
- Rövid távú megoldásként utasítsa a felhasználókat a Microsoft Edge vagy a Firefox androidos használatára, vagy kerülje a Google Chrome 115/116 androidos használatát
A Firefox ismert problémái
A Firefox asztali böngésző támogatása mostantól nyilvános előzetes verzióban érhető el. Ismert problémák:
- A hangszórók felsorolása nem érhető el: Ha Firefoxot használ, az alkalmazás nem tud számbavételt vagy hangszórók kiválasztását a Communication Services eszközkezelőn keresztül. Ebben a forgatókönyvben az operációs rendszeren keresztül kell kiválasztania az eszközöket.
- A virtuális kamerák jelenleg nem támogatottak a Firefox asztali hang- és videohívásai során.
Az iOS Chrome ismert problémái
Az iOS Chrome böngésző támogatása mostantól nyilvános előzetes verzióban érhető el. Ismert problémák:
- Nincs kimenő és bejövő hang, amikor a böngészőt háttérre váltja vagy zárolja az eszközt. Ezt a problémát az iOS 16.4+-os verziójában javítottuk.
- Nincs bejövő/kimenő hang a bluetooth headsetről. Amikor egy felhasználó bluetooth headsetet csatlakoztat az Azure Communication Services-hívás közepén, a hang továbbra is kijön a hangszóróból, amíg a felhasználó nem zárolja és nem oldja fel a telefont. Láttuk ezt a problémát a régebbi iOS-verziókban (15.6, 15.7), és iOS 16-on nem reprodukálható.
Az iOS Safari helytelen felbontásméretet jelenít meg a kamera előnézetében
Ez a hiba az iOS 16.7 vagy az iOS 17 17 17.4-nél korábbi verzióiban fordul elő, amikor a felhasználók elforgatják a telefonjukat, vagy engedélyezik/letiltják a videoképet a hívás során. A kamera előnézete rövid időre helytelen felbontást jelenít meg, mielőtt visszatér a normál állapotba. A probléma nem reprodukálható az iOS 17.4 bétaverzióban. Kapcsolódó WebKit hiba itt.
Az iOS 16 hibákat vezetett be, amikor a böngészőt a háttérben helyezték el egy hívás során
Az iOS 16-os kiadás olyan hibát vezetett be, amely leállíthatja az Azure Communication Services hang- és videohívását a Safari mobilböngésző használatakor. Az Apple tisztában van ezzel a problémával, és javítást keres az oldalukon. Ennek az lehet az oka, hogy egy Azure Communication Services-hívás leállhat egy hívás közben, és az egyetlen megoldás, hogy újra működjön, ha a végfelhasználó újraindítja a telefonját.
A hiba reprodukálása:
- Felhasználó használata iOS 16-ot futtató i TELEFON
- Csatlakozás Azure Communication Services-híváshoz (csak hanggal vagy hanggal és videóval) a Safari iOS mobilböngészővel
- Ha egy hívás során valaki a háttérben helyezi el a Safari böngészőt, és megtekinti a YouTube-ot, VAGY FaceTime-hívást kap, miközben Bluetooth-eszközön keresztül csatlakozik
Eredmények:
- Néhány perc elteltével a bejövő és kimenő videó működése leállhat.
- Az Azure Communication Services újrahívásának egyetlen módja, ha a végfelhasználó újraindítja a telefonját.
Chrome M98 – regresszió
A Chrome 98-es verziója olyan regressziót vezetett be a videokulcskeretek rendellenes generációjával, amely negatívan befolyásolja az elküldött videóstreamek felbontását a felhasználók többsége (70%+) számára.
- Ez a regresszió a Chromiumon bevezetett ismert probléma
PSTN-hívás közben a felhasználó továbbra is hallhatja az ACS-hívás hangját
Ez a probléma akkor fordul elő, ha egy Android Chrome-felhasználó bejövő PSTN-hívást tapasztal a PSTN-hívás fogadása után az ACS-hívás mikrofonja elnémul. Az ACS-hívás kimenő hangja el van némítva, így a többi résztvevő nem hallja a PSTN-hívást végző felhasználót. Érdemes megjegyezni, hogy a felhasználó bejövő hangja nincs elnémítva, és ez a viselkedés a böngésző velejárója.
Hívás közben nincs bejövő hang
Előfordulhat, hogy egy Azure Communication Services-hívás felhasználója nem hallja a távoli résztvevők hanganyagát. A problémát egy kapcsolódó Chromium-hiba okozza, a probléma a társ Csatlakozás ion újracsatlakoztatásával hárítható el. Ezt a kerülő megoldást az SDK 1.9.1 (stabil) és az SDK 1.10.0 (bétaverzió) óta vettük fel.
Android Chrome-on, ha egy felhasználó többször csatlakozik az Azure Communication Services-híváshoz, a bejövő hang is eltűnhet. A felhasználó a lap frissítéséig nem hallja a többi résztvevő hangját. Kijavítottuk ezt a problémát az SDK 1.10.1-beta.1-ben, és javítottuk a hangerőforrás-használatot.
Egyes Android-eszközök nem fogadnak hívási forgatókönyveket, kivéve a csoportos hívásokat.
Számos androidos eszköz nem indul el, fogad hívásokat és értekezleteket. A problémába ütköző eszközök nem állíthatók helyre és sikertelenek minden kísérlet során. Ezek többnyire Samsung A modell eszközök, különösen az A326U, A125U és A215U modellek.
Az Android Chrome elnémítja a hívást, miután a böngésző egy percre háttérbe kerül
Android Chrome-on, ha egy felhasználó egy Azure Communication Services-híváson van, és egy percre háttérbe helyezi a böngészőt. A mikrofon elveszíti a hozzáférést, és a hívás többi résztvevője nem hallja a felhasználó hangját. Miután a felhasználó előtérbe helyezi a böngészőt, a mikrofon ismét elérhető lesz. Kapcsolódó krómhibák itt és itt
Egy mobilfelhasználó (iOS és Android) elvetette a hívást, de továbbra is megjelenik a résztvevők listájában.
A probléma akkor fordulhat elő, ha egy mobilfelhasználó a Call.hangUp() API használata nélkül hagyja el az Azure Communication Services-csoporthívást. Ha egy mobilfelhasználó bezárja a böngészőt, vagy lefagyás nélkül frissíti a weblapot, a csoporthívás többi résztvevője körülbelül 60 másodpercig továbbra is láthatja ezt a mobilfelhasználót a résztvevők listájában.
Az iOS Safari frissíti a lapot, ha a felhasználó egy másik alkalmazásba megy vissza, és visszatér a böngészőbe
A probléma akkor fordulhat elő, ha egy felhasználó egy Azure Communication Services-hívásban iOS Safarit használ, és egy ideig másik alkalmazásra vált. Miután a felhasználó visszatért a böngészőbe, a böngészőoldal frissíthető. Ennek az az oka, hogy az operációs rendszer megöli a böngészőt. A probléma megoldásának egyik módja, ha megtart néhány állapotot, és helyreáll az oldalfrissítések után.
Az iOS 15.1-felhasználók csoportos hívásokat vagy Microsoft Teams-értekezleteket csatlakoznak.
- Néha, amikor a bejövő PSTN-t fogadják, a hívás vagy az értekezlet lefagy. Kapcsolódó WebKit-hibák itt és itt.
A helyi mikrofon/kamera elnémul, ha bizonyos megszakítások történnek az iOS Safariban és az Android Chrome-ban.
Ez a probléma akkor fordulhat elő, ha egy másik alkalmazás vagy operációs rendszer átveszi a mikrofon vagy a kamera vezérlését. Íme néhány példa, amelyek akkor fordulhatnak elő, amikor egy felhasználó a hívásban van:
- A bejövő hívás PSTN-en (nyilvános telefonhálózaton) keresztül érkezik, és rögzíti a mikrofon eszköz hozzáférését.
- A felhasználó lejátszhat például egy YouTube-videót, vagy elindíthat egy FaceTime-hívást. Ha másik natív alkalmazásra vált, rögzítheti a mikrofonhoz vagy a kamerához való hozzáférést.
- A felhasználó engedélyezi a Sirit, amely rögzíti a mikrofonhoz való hozzáférést.
iOS-en például egy Azure Communication Services-hívás esetén, ha PSTN-hívás érkezik, egy mikrofonMutedUnexepectedlyly bad UFD jön létre, és a hang leáll az Azure Communication Services-hívásban, és a hívás elnémítottként van megjelölve. Miután a PSTN-hívás befejeződött, a felhasználónak vissza kell hívnia az Azure Communication Services hanghívását, hogy újra elinduljon az Azure Communication Services-hívásban. Az Android Chrome esetében, amikor PSTN-hívás érkezik, a hang leáll az Azure Communication Services-hívásban, és az Azure Communication Services-hívás nem lesz elnémítva. Ebben az esetben nincs mikrofonMutedUnexepectedly UFD esemény. A PSTN-hívás befejezése után az Android Chrome automatikusan visszanyeri a hangot, és a hang újra normálisan áramlik az Azure Communication Services-hívásban.
Ha a kamera be van kapcsolva, és megszakad a probléma, előfordulhat, hogy az Azure Communication Services hívása elveszíti a kamerát. Ha elveszett, akkor a kamera ki van jelölve, és a felhasználónak vissza kell kapcsolnia a megszakítás után.
Előfordulhat, hogy a mikrofon- vagy kameraeszközök nem jelennek meg időben, és ez problémákat okozhat az eredeti hívással kapcsolatban. Ha például a felhasználó egy YouTube-videó megtekintése közben próbál visszahangosítani, vagy ha egy PSTN-hívás egyidejűleg aktív.
A bejövő videostreamek nem hagyják abba a renderelést, ha a felhasználó az iOS 15.2+-on van, és az SDK 1.4.1-béta.1+-os verzióját használja, a visszahangosítás/indítás videó lépései továbbra is szükségesek a kimenő hang és a videó újraindításához.
Az iOS 15.4+-os verzió esetén a hang- és videoképnek a legtöbb esetben automatikusan helyre kell állnia. Egyes peremhálózati esetekben a visszahangosításhoz az alkalmazásnak le kell hívnia egy API-t a "visszahangosításra" (ez a felhasználói művelet eredménye lehet) a kimenő hang helyreállításához.
A Safarit használó iOS összeomlik, és frissíti az oldalt, ha egy felhasználó megpróbál váltani az előtér kameráról a háttér kamerára.
Az Azure Communication Services Calling SDK 1.2.3-beta.1-es verziója olyan hibát vezetett be, amely az iOS Safariból indított összes hívást érinti. A probléma akkor fordul elő, ha egy felhasználó megpróbálja átállítani a kamerás videostreamet elölről hátra. A kamera váltásával a Safari böngésző összeomlik, és újra betölti az oldalt.
Ez a probléma az Azure Communication Services Calling SDK 1.3.1-beta.1 + verziójában van kijavítva
- iOS Safari-verzió: 15.1
Képernyőmegosztás a macOS Ventura Safariban (16.3-os vagy újabb verzió)
A képernyőmegosztás nem működik a macOS Ventura Safariban (16.3-os vagy újabb verzió). A Safari ismert hibája, és a 16.4-s verzióban lesz javítva.
A lap frissítése nem távolítja el azonnal a felhasználót a hívásból
Ha egy felhasználó hívásban van, és úgy dönt, hogy frissíti a lapot, a Communication Services médiaszolgáltatás nem távolítja el azonnal a felhasználót a hívásból. Megvárja, amíg a felhasználó újra csatlakozik. A rendszer eltávolítja a felhasználót a hívásból, miután a médiaszolgáltatás túllépte az időkorlátot.
A legjobb, ha olyan felhasználói élményt hoz létre, amely nem követeli meg a végfelhasználóktól az alkalmazás lapjának frissítését hívás közben. Ha egy felhasználó frissíti a lapot, használja újra ugyanazt a Communication Services-felhasználói azonosítót, miután a felhasználó visszatér az alkalmazáshoz. Ugyanazzal a felhasználói azonosítóval való újracsatlakozással a felhasználó ugyanazként jelenik meg, mint a gyűjtemény meglévő objektuma remoteParticipants
. A hívás többi résztvevője szempontjából a felhasználó a lap frissítésének időtartama alatt, akár egy-két percig is a hívásban marad.
Ha a felhasználó a frissítés előtt videót küldött, a videoStreams
gyűjtemény megőrzi az előző streamadatokat, amíg a szolgáltatás időtúllépést nem végez, és eltávolítja azt. Ebben a forgatókönyvben az alkalmazás úgy dönthet, hogy megfigyeli a gyűjteményhez hozzáadott új streameket, és a legmagasabb id
megjelenítést jeleníti meg.
Nem lehet több előnézetet renderelni több eszközről a weben
Ez a probléma egy ismert korlátozás. További információ: Az SDK hívásának áttekintése.
Az eszközök számbavétele nem lehetséges a Safariban, ha az alkalmazás iOS vagy iPadOS rendszeren fut
Az alkalmazások nem tudják számba vagy kiválasztani a beszélőeszközöket (például Bluetooth-t) a Safari iOS-en vagy iPadOS-en. Ez a probléma az operációs rendszerek ismert korlátozása.
Ha macOS rendszeren használja a Safarit, az alkalmazás nem tud számbavételt vagy hangszórók kiválasztását a Communication Services eszközkezelőjén keresztül. Ebben a forgatókönyvben az operációs rendszeren keresztül kell kiválasztania az eszközöket. Ha macOS rendszeren használja a Chrome-ot, az alkalmazás a Communication Services eszközkezelőjén keresztül számba vehet vagy kiválaszthat eszközöket.
- iOS Safari-verzió: 15.1
A videoeszközök ismételt váltása a videostreamelés ideiglenes leállítását okozhatja
A videoeszközök közötti váltás miatt a videostream szüneteltetődhet, amíg a streamet a kiválasztott eszközről szerzi be. Az eszközök közötti gyakori váltás teljesítménycsökkenést okozhat. A fejlesztők számára a legjobb, ha leállítja az egyik eszközstreamet, mielőtt elindítanak egy másikat.
A Bluetooth-headset mikrofonja nem észlelhető vagy hallható az iOS-es Safari hívása során
Az iOS-en futó Safari nem támogatja a Bluetooth-headseteket. A Bluetooth-eszköz nem szerepel a rendelkezésre álló mikrofonbeállítások között, és a többi résztvevő nem hallja Önt, ha a Safarion keresztül próbál Bluetooth-t használni.
Ez a regresszió ismert operációsrendszer-korlátozás. MacOS-en és iOS-en/iPadOS-en futó Safari esetén nem lehet számba adni vagy kiválasztani a beszélő eszközöket a Communication Services eszközkezelőjén keresztül. Ennek az az oka, hogy a Safari nem támogatja a beszélők számbavételét vagy kiválasztását. Ebben a forgatókönyvben az operációs rendszer használatával frissítse az eszközválasztást.
Az eszköz elforgatása gyenge videominőséget okozhat
Amikor a felhasználók elforgatnak egy eszközt, ez a mozgás ronthatja a streamelt videók minőségét.
Ez a probléma a következő környezetekben fordul elő:
- Érintett eszközök: Google Pixel 5, Google Pixel 3a, Apple iPad 8 és Apple iPad X
- Ügyfélkódtár: Hívás (JavaScript)
- Böngészők: Safari, Chrome
- Operációs rendszerek: iOS, Android
Kamera váltással a képernyő lefagy
Ha egy Communication Services-felhasználó a JavaScript hívó SDK-val csatlakozik egy híváshoz, majd kiválasztja a kamerakapcsoló gombot, előfordulhat, hogy a felhasználói felület nem válaszol. A felhasználónak ezután frissítenie kell az alkalmazást, vagy le kell küldenie a böngészőt a háttérbe.
Ez a probléma a következő környezetekben fordul elő:
- Érintett eszközök: Google Pixel 4a
- Ügyfélkódtár: Hívás (JavaScript)
- Böngésző: Chrome
- Operációs rendszerek: iOS, Android
Videojel-probléma, ha a hívás csatlakozási állapotban van
Ha egy felhasználó gyorsan be- és kikapcsolja a videót, miközben a hívás Csatlakozás állapotban van, ez a művelet problémát okozhat a híváshoz beszerzett adatfolyammal kapcsolatban. A fejlesztők számára a legjobb, ha olyan módon készítik el az alkalmazásaikat, hogy ne kelljen be- és kikapcsolni a videót, amíg a hívás Csatlakozás állapotban van. A videoteljesítmény romlása a következő esetekben fordulhat elő:
- Ha a felhasználó hanggal indul, majd elindítja és leállítja a videót, miközben a hívás Csatlakozás állapotban van.
- Ha a felhasználó hanggal indul, majd elindítja és leállítja a videót, miközben a hívás a Lobby állapotban van.
Eszközök számbavétele vagy elérése a Safarihoz macOS-en és iOS-en
Bizonyos környezetekben előfordulhat, hogy bizonyos idő elteltével az eszközengedélyek alaphelyzetbe állnak. MacOS-en és iOS-en a Safari nem őrzi meg sokáig az engedélyeket, hacsak nem szerez be streamet. Ennek a korlátozásnak a legegyszerűbb módja, ha meghívja az DeviceManager.askDevicePermission()
API-t, mielőtt meghívja az eszközkezelő eszköz-enumerálási API-jait. Ezek az enumerálási API-k a következők: DeviceManager.getCameras()
, DeviceManager.getSpeakers()
és DeviceManager.getMicrophones()
. Ha az engedélyek ott vannak, a felhasználó nem lát semmit. Ha az engedélyek nincsenek meg, a rendszer ismét kéri a felhasználótól az engedélyeket.
Ez a probléma a következő környezetekben fordul elő:
- Érintett eszköz: i Telefon
- Ügyfélkódtár: Hívás (JavaScript)
- Böngésző: Safari
- Operációs rendszer: iOS
Távoli résztvevők videóinak megjelenítésének késleltetése
Egy folyamatban lévő csoportos hívás során tegyük fel, hogy az A felhasználó videót küld, majd a B felhasználó csatlakozik a híváshoz. Előfordulhat, hogy a B felhasználó nem látja az A felhasználó videóját, vagy az A felhasználó videója hosszú késés után elkezd renderelni. A hálózati környezet konfigurációs problémája okozhatja ezt a késést. További információ: Hálózati javaslatok.
Ha harmadik féltől származó kódtárakat használ a hívás során, az hangvesztést okozhat
Ha külön használja getUserMedia
az alkalmazást, a hangstream elveszik. A hangstream elveszik, mert egy harmadik féltől származó kódtár veszi át az eszközhozzáférést az Azure Communication Services-kódtárból.
- Ne használjon külső kódtárakat, amelyek belsőleg használják az
getUserMedia
API-t a hívás során. - Ha továbbra is külső kódtárat kell használnia, a hangstream helyreállításának egyetlen módja a kiválasztott eszköz módosítása (ha a felhasználó egynél többel rendelkezik), vagy a hívás újraindítása.
Ez a probléma a következő környezetekben fordul elő:
- Böngésző: Safari
- Operációs rendszer: iOS
A probléma oka az lehet, hogy a saját stream beszerzése ugyanabból az eszközről versenyhelyzetekbe ütközik. Ha más eszközökről szerzi be a streameket, a felhasználó nem elegendő USB/IO-sávszélességhez vezethet, és a sourceUnavailableError
sebesség az egekbe szökhet.
Bizonyos API-k, például a némítás/visszahangosítás túlzott használata szabályozást eredményez az Azure Communication Services-infrastruktúrában
Az API-hívás elnémítása/visszahangosítása miatt az Azure Communication Services-infrastruktúra tájékoztatja a hívás többi résztvevőét a némítást/visszahangosítást kezdeményező helyi résztvevő hangállapotáról, hogy a hívás résztvevői tudják, hogy ki van elnémítva/elnémítva. A némítás/visszahangosítás túlzott használata le van tiltva az Azure Communication Services-infrastruktúrában. Szabályozás akkor történik, ha a résztvevő (vagy a résztvevő nevében történő alkalmazás) folyamatosan, másodpercenként, több mint 15 alkalommal próbál elnémítani/visszahangosítani egy 30 másodperces gördülő ablakban.
Automation API-k meghívása
A Communication Services hívásautomatizálási API-jaiban az alábbi korlátozások ismert problémák:
A kiszolgálóalkalmazások esetében jelenleg az egyetlen támogatott hitelesítés egy kapcsolati sztring használata.
Csak ugyanahhoz a Communication Services-erőforráshoz tartozó entitások között kezdeményez hívásokat. Az erőforrásközi kommunikáció le van tiltva.
A Microsoft Teams bérlői felhasználói és a Communication Services-felhasználók vagy kiszolgálóalkalmazás-entitások közötti hívások nem engedélyezettek.
Ha egy alkalmazás két vagy több PSTN-identitáshoz tárcsáz, majd kilép a hívásból, a többi PSTN-entitás közötti hívás megszakad.
A következő szakaszok az Azure Communication Services natív és natív felhasználói SDK-kkal kapcsolatos ismert problémáival kapcsolatos információkat tartalmaznak.
Android API-emulátorok
Az Android API emulátorainak androidos 5.0-s (21-es API-szintű) és Android 5.1-es (API 22-es szintű) használatakor néhány összeomlás várható.
Android Trouter modul ütközése
Ha az Android Chat and Calling SDK ugyanabban az alkalmazásban van együtt, a Csevegő SDK valós idejű értesítési funkciója nem működik. Előfordulhat, hogy függőségi problémát old meg.
Miközben egy megoldáson dolgozunk, kikapcsolhatja a valós idejű értesítések funkciót úgy, hogy hozzáadja a következő függőségi információkat az alkalmazás build.gradle fájljához, és ehelyett lekérdezi a GetMessages API-t a bejövő üzenetek felhasználók számára való megjelenítéséhez.
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'
Megjegyzés: ha az alkalmazás megpróbál megérinteni bármelyik értesítési API-t, például chatAsyncClient.startRealtimeNotifications()
vagy chatAsyncClient.addEventHandler()
, futásidejű hiba lép fel.
iOS folyamatban lévő videó képe a képben (PiP)
A bejövő videó leáll, amikor az alkalmazás háttérbe kerül. Ha az alkalmazás előtérben van, a videó megfelelően jelenik meg.
iOS bejövő hívás fogadása a CallKiten keresztül
A kimenő hangbeállítások nem érvényesek, ha a CallKit engedélyezve van, és a felhasználók közvetlenül a CallKiten keresztül fogadják a bejövő hívásokat.
Felhasználói felületi kódtár
Az ismert problémák wikilapja a GitHub-adattárakban követhető nyomon.