Sdílet prostřednictvím


Vložení vlastního datového modelu do knihovny uživatelského rozhraní pro aplikaci

Azure Communication Services používá model nezávislý na identitě, ve kterém můžou vývojáři přinést vlastní identity. Vývojáři můžou získat datový model a propojit ho s identitami Azure Communication Services. Datový model pro uživatele s největší pravděpodobností obsahuje informace, jako je zobrazované jméno, profilový obrázek nebo avatar a další podrobnosti. Vývojáři tyto informace používají k vytváření aplikací a platforem.

Knihovna uživatelského rozhraní usnadňuje vkládání uživatelského datového modelu do komponent uživatelského rozhraní. Když vykreslujete komponenty uživatelského rozhraní, zobrazí se uživatelům poskytnuté informace místo obecných informací ze služeb Azure Communication Services.

Požadavky

Nastavení injektáže

Podrobnou dokumentaci a rychlé starty týkající se knihovny webového uživatelského rozhraní najdete v článku o obsahu knihovny webového uživatelského rozhraní.

Další informace najdete v tématu Vlastní uživatelský datový model v knihovně webového uživatelského rozhraní.

Další informace najdete v opensourcové knihovně uživatelského rozhraní Androidu a vzorovém kódu aplikace.

Přizpůsobení zobrazení místního účastníka

Knihovna uživatelského rozhraní umožňuje vývojářům poskytovat přizpůsobené prostředí týkající se informací o účastníkech. Při spuštění můžete volitelně vložit data místních účastníků. Tato místní data nejsou sdílena se serverem a můžete je použít k přizpůsobení zobrazovaného jména a avatara místního uživatele.

Místní možnosti

CallCompositeLocalOptions je datový model, který může mít CallCompositeParticipantViewData a CallCompositeSetupScreenViewData. Představuje místního účastníka.

Ve výchozím nastavení knihovna uživatelského rozhraní pro vzdálené účastníky zobrazuje displayName informace vložené do RemoteOptionssouboru . Tyto informace se odesílají na back-endový server Azure Communication Services. Pokud CallCompositeParticipantViewData se vloží, účastník displayName a avatar informace se zobrazí ve všech komponentách avataru místně.

Podobně platí, že pro CallCompositeSetupScreenViewDatatitle a přepsání CallCompositeSetupScreenViewData názvu a subtitle podnadpisu navigačního panelu na obrazovce přednabídky. Ve výchozím nastavení knihovna uživatelského rozhraní zobrazí instalační program jako název a nic jako podnadpis.

Zobrazení dat místního účastníka

CallCompositeParticipantViewData je třída, která nastavuje displayName, avatarBitmapa scaleType pro avatar řízení. Tato třída se předává CallCompositeLocalOptions , aby bylo možné přizpůsobit informace o zobrazení místních účastníků. Tato třída je uložena v objektu CallCompositeLocalOptions , který představuje možnosti používané místně na zařízení, které provádí volání.

Tato instance displayName se liší od displayName informací předávaných prostřednictvím CallCompositeRemoteOptions:

  • Instance CallCompositeParticipantViewDatadisplayName se používá pouze místně jako přepsání.
  • Instance CallCompositeRemoteOptionsdisplayName se předává na server a sdílí se s ostatními účastníky.

Pokud instanci nezadáte CallCompositeParticipantViewDatadisplayName, aplikace použije CallCompositeRemoteOptions instanci displayName.

Nastavení dat zobrazení obrazovky

CallCompositeSetupScreenViewData je objekt, který nastavuje title navigační subtitle panel na obrazovce nastavení volání. Pokud subtitle není definován, podnadpis je skrytý. Zde je nutné nastavit subtitle, title ale subtitle je volitelné, pokud title je nastavena. Tato třída je místně uložená a její informace se neodesílají na server.

Využití

Chcete-li použít CallCompositeLocalOptions, předejte instanci CallCompositeParticipantViewData a/nebo CallCompositeSetupScreenViewData, a injektujte CallCompositeLocalOptions do callComposite.launch.

val participantViewData: CallCompositeParticipantViewData = CallCompositeParticipantViewData()
    .setAvatarBitmap((Bitmap) avatarBitmap)
    .setScaleType((ImageView.ScaleType) scaleType)
    .setDisplayName((String) displayName)

val setupScreenViewData: CallCompositeSetupScreenViewData = CallCompositeSetupScreenViewData()
    .setTitle((String) title)
    .setSubtitle((String) subTitle)

val localOptions: CallCompositeLocalOptions = CallCompositeLocalOptions()
    .setParticipantViewData(participantViewData)
    .setSetupScreenViewData(setupScreenViewData)

callComposite.launch(callLauncherActivity, remoteOptions, localOptions)
Zobrazení instalace Zobrazení prostředí volání
Screenshot of Android data custom model injection. Screenshot of Android data custom model injection with name.

Přizpůsobení zobrazení vzdáleného účastníka

V některých případech můžete chtít poskytnout místním přepsání vzdáleným účastníkům, aby povolili vlastní avatary a názvy.

Proces je podobný procesu místního účastníka, ale data se nastaví, když se účastníci připojí k hovoru. Jako vývojář byste museli přidat naslouchací proces, když se vzdálení účastníci připojí k hovoru, a pak zavolat metodu, která se nastaví CallCompositeParticipantViewData pro tyto vzdálené uživatele.

Využití

Pokud chcete nastavit data zobrazení pro vzdálené účastníky, nastavte setOnRemoteParticipantJoinedHandler. Při připojení ke vzdálenému účastníkovi slouží setRemoteParticipantViewDatacallComposite k vložení dat zobrazení pro vzdálené účastníky. Identifikátor účastníka CommunicationIdentifier jednoznačně identifikuje vzdáleného účastníka.

Volání pro setRemoteParticipantViewData vrácení výsledku CallCompositeSetParticipantViewDataResult, který má následující hodnoty:

  • CallCompositeSetParticipantViewDataResult.SUCCESS
  • CallCompositeSetParticipantViewDataResult.PARTICIPANT_NOT_IN_CALL
callComposite.addOnRemoteParticipantJoinedEventHandler { remoteParticipantJoinedEvent -> 
                remoteParticipantJoinedEvent.identifiers.forEach { identifier ->
                    // get displayName, bitmap for identifier
                    callComposite.setRemoteParticipantViewData(identifier,
                        CallCompositeParticipantViewData().setDisplayName("displayName")) // setAvatarBitmap for bitmap
                }
            }
Seznam účastníků
Screenshot of Android remote participant view data injection.

Další informace najdete v opensourcové knihovně uživatelského rozhraní iOS a ukázkovém kódu aplikace.

Injektáž dat místního účastníka

Knihovna uživatelského rozhraní umožňuje vývojářům poskytovat přizpůsobené prostředí. Při spuštění můžete vložit volitelné možnosti místních dat. Tento objekt může obsahovat obrázek uživatelského rozhraní, který představuje avatar pro vykreslení a zobrazovaný název, který se má volitelně zobrazit. Žádné z těchto informací se neposílají do služeb Azure Communication Services. Uchovává se místně v knihovně uživatelského rozhraní.

Místní možnosti

LocalOptions je datový model, který se skládá z ParticipantViewData a SetupScreenViewData.

Ve ParticipantViewDatavýchozím nastavení knihovna uživatelského rozhraní zobrazí displayName informace vložené do RemoteOptionssouboru . Tyto informace se odesílají na back-endový server Azure Communication Services. Pokud ParticipantViewData se vloží, účastník displayName a avatar informace se zobrazí ve všech součástech avataru.

Ve SetupScreenViewDatavýchozím nastavení knihovna uživatelského rozhraní zobrazí instalační program jako název a nic jako podnadpis. Informace title a subtitle informace přepíší SetupScreenViewData název a podnadpis navigačního panelu na obrazovce přednabídky.

Zobrazení dat místního účastníka

ParticipantViewData je objekt, který nastaví displayName obrázek uživatelského avatar rozhraní pro součásti avataru. Tato třída se vloží do knihovny uživatelského rozhraní a nastaví informace o avataru. Ukládá se místně a nikdy se neodesílají na server.

Nastavení dat zobrazení obrazovky

SetupScreenViewData je objekt, který nastavuje title navigační subtitle panel na obrazovce premeetingu (označuje se také jako zobrazení nastavení). Pokud definujete SetupScreenViewData, musíte také zadat title , protože se jedná o povinné pole. Nevyžaduje se ale subtitle .

Pokud ho nedefinujete subtitle, je skrytý. Tato třída je místně uložená a její informace se neodesílají na server.

Využití

// LocalOptions (data not sent to the server)
let localParticipantViewData = ParticipantViewData(avatar: <Some UIImage>,
                                                   displayName: "<DISPLAY_NAME>")
let localSetupScreenViewData = SetupScreenViewData(title: "<NAV_TITLE>",
                                                               subtitle: "<NAV_SUBTITLE>")
let localOptions = LocalOptions(participantViewData: localParticipantViewData, 
                                setupScreenViewData: localSetupScreenViewData)
// RemoteOptions (data sent to the server)
let remoteOptions = RemoteOptions(for: .groupCall(groupId: UUID()),
                                  credential: <Some CommunicationTokenCredential>,
                                  displayName: "<DISPLAY_NAME>")
// Launch
callComposite.launch(remoteOptions: remoteOptions, localOptions: localOptions)
Zobrazení instalace Zobrazení prostředí volání
Screenshot of iOS data custom model injection. Screenshot of iOS data custom model injection with name.

Injektáž dat vzdáleného účastníka

Při připojení ke vzdálenému účastníkovi můžete vložit data zobrazení vzdáleného účastníka. Tato data zobrazení účastníků můžou obsahovat obrázek uživatelského rozhraní, který představuje avatara pro vykreslení a zobrazovaný název, který se má volitelně zobrazit. Žádné z těchto informací se neposílají do služeb Azure Communication Services. Uchovává se místně v knihovně uživatelského rozhraní.

Využití

Pokud chcete nastavit data zobrazení pro vzdálené účastníky, nastavte onRemoteParticipantJoined dokončení obslužné rutiny události. Při připojení ke vzdálenému účastníkovi slouží set(remoteParticipantViewData:, for:, completionHandler:)CallComposite k vložení dat zobrazení pro vzdálené účastníky. Identifikátor CommunicationIdentifier účastníka jednoznačně identifikuje vzdáleného účastníka. K vrácení výsledku operace sady použijete volitelnou obslužnou rutinu dokončení.

callComposite.events.onRemoteParticipantJoined = { [weak callComposite] identifiers in
  for identifier in identifiers {
    // map identifier to displayName
    let participantViewData = ParticipantViewData(displayName: "<DISPLAY_NAME>")
    callComposite?.set(remoteParticipantViewData: participantViewData,
                       for: identifier) { result in
      switch result {
      case .success:
        print("Set participant view data succeeded")
      case .failure(let error):
        print("Set participant view data failed with \(error)")
      }
    }
  }
}
Seznam účastníků
Screenshot of iOS remote participants view data injection.

Další kroky