Ajánlott eljárások: SDK-k meghívása az Azure Communication Servicesben
Ez a cikk az Azure Communication Services hívó SDK-kkal kapcsolatos ajánlott eljárásokról nyújt tájékoztatást.
Ajánlott eljárások az Azure Communication Services Calling Web SDK-hoz
Ez a szakasz az Azure Communication Services Calling Web (JavaScript) SDK-val kapcsolatos ajánlott eljárásokról nyújt tájékoztatást a hang- és videohíváshoz.
Mikrofon csatlakoztatása vagy mikrofon engedélyezése az eszközkezelőből hívás közben
Ha egy Azure Communication Services-hívás elején nem áll rendelkezésre mikrofon, és egy mikrofon elérhetővé válik, a módosítás diagnosztikai eseményt noMicrophoneDevicesEnumerated
vált ki. Amikor ez az esemény bekövetkezik, az alkalmazásnak meg kell hívnia askDevicePermission
a felhasználói hozzájárulást az eszközök számbavételéhez. A felhasználó ezután elnémíthatja vagy visszahangosíthatja a mikrofont.
A VideoStreamRendererView eltávolítása
A Communication Services-alkalmazásoknak rendelkeznie VideoStreamRendererView
kell a szülőpéldányával VideoStreamRenderer
, ha már nincs rá szükség.
Hívás lefagyása egy helyszíni eseményen
Az alkalmazásnak meg kell hívnia call.hangup
az onbeforeunload
esemény kibocsátásakor.
Több hívás kezelése több lapon
Az alkalmazásnak nem szabad egyszerre több böngészőlapról érkező hívásokhoz csatlakoznia a mobileszközökön. Ez a helyzet nem definiált viselkedést okozhat az eszköz mikrofonjának és kamerájának erőforrás-lefoglalása miatt. Javasoljuk a fejlesztőknek, hogy mindig lefagyjanak a hívásokról, amikor a háttérben befejeződnek, mielőtt újat indítanának.
Hívás elnémításának kezelése a telefonhívások érkezésekor
Egy Azure Communication Services-hívás során (iOS és Android rendszeren is) ha telefonhívás érkezik, vagy a hangsegéd aktiválva van, az operációs rendszer automatikusan elnémítja a felhasználó mikrofonját és kameráját. Android rendszeren a hívás automatikusan visszahangosul, és a videó újraindul a telefonhívás befejeződése után. iOS rendszeren a videó visszahangosításához és újraindításához felhasználói művelet szükséges.
A minőségi esemény microphoneMuteUnexpectedly
használatával figyelheti a mikrofon váratlan elnémításáról szóló értesítést. Ne feledje, hogy a hívások megfelelő újracsatlakozásához az SDK 1.2.3-béta.1 vagy újabb verzióját kell használnia.
const latestMediaDiagnostic = call.api(SDK.Features.Diagnostics).media.getLatest();
const isIosSafari = (getOS() === OSName.ios) && (getPlatformName() === BrowserName.safari);
if (isIosSafari && latestMediaDiagnostic.microphoneMuteUnexpectedly && latestMediaDiagnostic.microphoneMuteUnexpectedly.value) {
// received a QualityEvent on iOS that the microphone was unexpectedly muted - notify user to unmute their microphone and to start their video stream
}
Az alkalmazásnak meg kell hívnia call.startVideo(localVideoStream);
, hogy elindítsa a videostreamet, és a hang visszahangosítására kell használnia this.currentCall.unmute();
.
Eszközök kezelése
Az Azure Communication Services SDK-val kezelheti eszközeit és médiaműveleteit.
Az alkalmazásnak nem szabad natív böngésző API-kat használnia getUserMedia
getDisplayMedia
az SDK-n kívüli streamek beszerzéséhez. Ha igen, manuálisan kell megsemmisítenie a médiastreameket, mielőtt a Communication Services SDK-val használ DeviceManager
vagy más eszközfelügyeleti API-kat.
Eszközengedélyek kérése
Az SDK használatával eszközengedélyeket kérhet. Az alkalmazásnak hang- és/vagy videoeszközökhöz való hozzáférést kell DeviceManager.askDevicePermission
kérnie.
Ha a felhasználó tagadja a hozzáférést, DeviceManager.askDevicePermission
a lap frissítése után is visszaad false
egy adott eszköztípust (hang- vagy videoképet). Ebben az esetben az alkalmazásnak a következőnek kell lennie:
- Észleli, hogy a felhasználó korábban megtagadta a hozzáférést.
- Utasítja a felhasználót, hogy manuálisan állítsa alaphelyzetbe vagy explicit módon adjon hozzáférést egy adott eszköztípushoz.
Egy másik folyamat által használt kamera viselkedésének kezelése
Windows Chrome-on és Windows Microsoft Edge-en: Ha videoképekkel indít, csatlakozik vagy fogad hívást, és egy másik folyamat (a webes SDK által futtatott böngésző kivételével) a kameraeszközt használja, a hívás csak hanggal és videó nélkül indul el. A
cameraStartFailed
rendszer azért emeli ki a felhasználóhoz néző diagnosztikai jelzőt, mert a kamera nem indult el.Ugyanez a helyzet a videohívások bekapcsolására is vonatkozik. A másik folyamat során kikapcsolhatja a kamerát, így a folyamat felengedi a kameraeszközt, majd újra elindíthatja a videót a hívásból. A videó ezután be van kapcsolva a híváshoz, és a távoli résztvevők elkezdik látni a videót.
Ez a probléma nem létezik a macOS Chrome-ban vagy a macOS Safariban, mert az operációs rendszer lehetővé teszi a folyamatok és szálak megosztását a kameraeszközön.
Mobileszközökön: Ha egy ProcessA kéri a kameraeszközt, miközben a ProcessB használja, akkor a ProcessA megelőzi a kameraeszközt, és a ProcessB leállítja a használatát.
iOS Safari esetén: Nem lehet bekapcsolva a kamera több hívási ügyfél számára ugyanazon a lapon vagy a lapok között. Amikor bármely hívásügyfél használja a kamerát, az megelőzi a kamerát az azt használó korábbi hívásügyféltől. Az előző hívásügyfél lekéri a
cameraStoppedUnexpectedly
Felhasználóhoz való diagnosztika jelzőt.
Képernyőmegosztás kezelése
Az alkalmazás bezárása nem akadályozza meg a megosztást
Tegyük fel, hogy a Chromiumból képernyőre osztja a Microsoft Teams alkalmazást. Ezután a Teams-alkalmazás X gombjára kattintva bezárhatja azt. Bár az ablak bezárult, a Teams-alkalmazás továbbra is a háttérben fut. Az ikon továbbra is megjelenik az asztali tálcán. Mivel a Teams-alkalmazás továbbra is fut, a képernyő továbbra is meg van osztva a távoli résztvevőkkel.
Az alkalmazás képernyőmegosztásának leállításához hajtsa végre az alábbi műveletek egyikét:
- Kattintson a jobb gombbal az alkalmazás ikonra az asztali tálcán, majd válassza a Kilépés lehetőséget.
- Válassza a Megosztás leállítása gombot a böngészőben.
- Hívja meg az SDK API-műveletét
Call.stopScreenSharing()
.
A Safari csak teljes képernyős megosztást végezhet
A Safari csak a teljes képernyőn engedélyezi a képernyőmegosztást. Ez a viselkedés eltér a Chromiumtól, amely lehetővé teszi a teljes képernyő, egy adott asztali alkalmazás vagy egy adott böngészőlap megosztását.
Képernyőmegosztási engedélyeket adhat a macOS-en
A macOS Safari vagy a macOS Chrome képernyőmegosztásához adja meg a szükséges engedélyeket a böngészőknek az operációs rendszer menüjében: System Preferences>Security & Privacy>Screen Recording.
Ajánlott eljárások a natív SDK-t hívó Azure Communication Serviceshez
Ez a szakasz az Azure Communication Services natív SDK-val kapcsolatos ajánlott eljárásokkal kapcsolatos információkat nyújt a hang- és videohíváshoz.
Támogatott platformok
Az operációs rendszer minimális platformkövetelményei a natív hívó SDK optimális működésének biztosításához.
- Az iOS 10.0+ támogatása buildeléskor és iOS 12.0+ futtatókörnyezetben
- Xcode 12.0+
- Az iPadOS 13.0+ támogatása
Eszközengedélyek ellenőrzése alkalmazáskérésekhez
Ha a Natív hívási SDK-t szeretné használni hívások indításához vagy fogadásához, a felhasználóknak engedélyeznie kell az egyes platformokat az eszközerőforrások eléréséhez. Fejlesztőként fel kell kérnie a felhasználót a hozzáférésre, és meg kell győződnie arról, hogy az engedélyek engedélyezve vannak. A fogyasztó engedélyezi ezeket a hozzáférési jogosultságokat, ezért ellenőrizze, hogy jelenleg rendelkezik-e a szükséges engedélyekkel.
NSMicrophoneUsageDescription
mikrofon-hozzáféréshezNSCameraUsageDescription
kamerahozzáféréshez
A naplók konfigurálása
A naplófájlok lekéréséről szóló oktatóanyagban ismertetett naplózás megvalósítása minden eddiginél kritikusabb. A részletes naplók segítenek a minimális SDK-feltételeknek megfelelő eszközmodellekkel vagy operációsrendszer-verziókkal kapcsolatos problémák diagnosztizálásában. Javasoljuk a fejlesztőknek, hogy a Logs API használatával konfigurálják a naplókat. A Naplók nélkül a Microsoft támogatási csapata nem tud segíteni a hívások hibakeresésében és hibaelhárításában.
Hívásazonosító nyomon követése
CallID
a hívás egyedi azonosítója. Azonosítja az összes résztvevő és végpont korrelált eseményeit, amelyek egyetlen hívás során csatlakoznak. A legtöbb esetben a naplók áttekintésére használja. A Microsoft ügyfélszolgálata csapata kéri, hogy segítsen a hívások hibaelhárításában.
Nyomon kell követnie az CallID
alkalmazásban konfigurált telemetriai értékeket. Az egyes platformok értékének lekéréséhez kövesse a hibaelhárítási útmutató útmutatását.
Feliratkozás felhasználói diagnosztikai és médiaminőségi statisztikákra
Az Azure Communication Services alábbi funkcióival javíthatja a felhasználói élményt:
- Felhasználói diagnosztika: A hívás tulajdonságainak vizsgálata az ügyfeleket érintő problémák okának meghatározásához.
- Médiaminőségi statisztikák: A bejövő és kimenő hívási metrikák alacsony szintű hang-, video- és képernyőmegosztási minőségi metrikáinak vizsgálata. Javasoljuk, hogy a hívás befejezése után gyűjtse össze az adatokat, és küldje el a folyamatbetöltésnek.
Hibakezelés kezelése
Ha a hívás vagy a megvalósítás során hiba történik, a metódusok hibakódokat tartalmazó hibaobjektumokat adnak vissza. Fontos, hogy ezeket a hibaobjektumokat a megfelelő hibakezeléshez és a riasztások megjelenítéséhez használja. A hívásállapotok hibakódokat is visszaadnak a híváshibák okainak azonosításához. A problémák megoldásához tekintse meg a hibaelhárítási útmutatót .
Videostreamek kezelése
Ügyeljen arra, hogy ne jelenjen VideoStreamRendererView
meg, ha a felhasználói felület már nem jeleníti meg a videót. A stream típusának meghatározására használható VideoStreamType
.
Általános memóriakezelés végrehajtása
Erőforrások előzetes üzembe helyezése. Inicializálja a hívó ügyfelet és a szükséges erőforrásokat az alkalmazás indítási fázisában, nem pedig igény szerint. Ez a módszer csökkenti a hívás indításának késését.
Dobja el megfelelően. Használat után semmisítse meg az összes hívásobjektumot, hogy felszabadítsa a rendszer erőforrásait, és elkerülje a memóriavesztést. Mindenképpen leiratkozhat azokról az eseményekről, amelyek memóriavesztést okozhatnak.
Fontolja meg, hogyan férnek hozzá a folyamatok a kamerához vagy a mikrofonhoz
Mobileszközökön, ha egyszerre több folyamat is megpróbál hozzáférni a kamerához vagy a mikrofonhoz, a hozzáférés kérésének első folyamata átveszi az eszköz irányítását. Ennek eredményeképpen a második folyamat azonnal elveszíti a hozzáférését.
Kódtár méretének optimalizálása
A kódtárak méretének optimalizálása a szoftverfejlesztésben a következő okok miatt kulcsfontosságú, különösen az alkalmazások összetettebbé és erőforrásigényesebbé válása miatt:
Alkalmazásteljesítmény: A kisebb kódtárak csökkentik az alkalmazás által betöltendő, elemezendő és végrehajtható kód mennyiségét. Ez a csökkentés jelentősen javíthatja az alkalmazás indítási idejét és általános teljesítményét, különösen a korlátozott erőforrásokkal rendelkező eszközökön.
Memóriahasználat: A tár méretének minimalizálásával csökkentheti az alkalmazások futtatókörnyezeti memóriaigényét. Ez a csökkenés fontos a mobileszközök esetében, ahol a memória gyakran korlátozott. Az alacsonyabb memóriahasználat kevesebb rendszerösszeomlást és jobb többfeladatos teljesítményt eredményezhet.
További információk: