Rychlý start: Začínáme s knihovnou uživatelského rozhraní

Začněte pracovat s knihovnou uživatelského rozhraní Azure Communication Services, která umožňuje rychlou integraci komunikačních prostředí do vašich aplikací. V tomto rychlém startu se dozvíte, jak integrovat složené složky knihovny uživatelského rozhraní do aplikace a nastavit prostředí pro uživatele aplikace.

Knihovna uživatelského rozhraní komunikačních služeb vykreslí kompletní komunikační prostředí přímo ve vaší aplikaci. Postará se o připojení k hovoru a nastaví účast uživatele na hovoru na pozadí. Jako vývojář se musíte starat o to, kde v uživatelském prostředí vaší aplikace chcete, aby se spustilo komunikační prostředí. Složený soubor uživatele provede nastavením svých zařízení, připojením k hovoru a jeho účastí a vykreslením dalších účastníků.

Podívejte se na toto video s přehledem:

Poznámka:

Podrobnou dokumentaci a rychlá zprovoznění o knihovně webového uživatelského rozhraní najdete v článku o knihovně webových uživatelských rozhraní.

Požadavky

Přístup k následujícím rychlým startům

Získejte ukázkovou aplikaci pro Android pro tento rychlý start v opensourcové knihovně uživatelského rozhraní Azure Communication Services pro Android.

Předpoklady

Nastavení projektu

Dokončete následující části a nastavte projekt rychlého startu.

Vytvoření nového projektu Android

V Android Studiu vytvořte nový projekt:

  1. V nabídce Soubor vyberte Nový>projekt.

  2. V novém projektu vyberte šablonu projektu Prázdná aktivita .

    Screenshot that shows the New Project dialog in Android Studio with Empty Activity selected.

  3. Vyberte Další.

  4. V části Prázdná aktivita pojmenujte projekt UILibraryQuickStart. Jako jazyk vyberte Java/Kotlin. Pro minimální sadu SDK vyberte rozhraní API 21: Android 5.0 (Lollipop) nebo novější.

  5. Vyberte Dokončit.

    Screenshot that shows new project options and the Finish button selected.

Instalace balíčků

Podle následujících částí nainstalujte požadované balíčky aplikací.

Přidání závislosti

Do souboru UILibraryQuickStart/app/build.gradle na úrovni aplikace (ve složce aplikace) přidejte následující závislost:

dependencies {
    ...
    implementation 'com.azure.android:azure-communication-ui-calling:+'
    ...
}

Přidání úložišť Maven

K integraci knihovny se vyžadují dvě úložiště Maven:

  • MavenCentral
  • Úložiště balíčků Azure

Přidání úložišť:

  1. Ve skriptech Gradle projektu se ujistěte, že jsou přidána následující úložiště. Pro Android Studio (2020.*) repositories je v settings.gradlečásti dependencyResolutionManagement(Gradle version 6.8 or greater). Pro starší verze Android Studia (4.*) repositories je na úrovni build.gradleprojektu v části allprojects{}.

    // dependencyResolutionManagement
    repositories {
        ...
        mavenCentral()
        maven {
            url "https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1"
        }
        ...
    }
    
  2. Synchronizujte projekt se soubory Gradle. Pokud chcete projekt synchronizovat, vyberte v nabídce Soubor možnost Synchronizovat projekt se soubory Gradle.

Přidání tlačítka do souboru Activity_main.xml

V souboru rozložení app/src/main/res/layout/activity_main.xml přidejte následující kód, který vytvoří tlačítko pro spuštění složeného souboru:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/startButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Launch"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

Inicializace složeného

Inicializace složeného kódu:

  1. Umožňuje přejít na MainActivity.

  2. Přidejte následující kód pro inicializaci složených komponent pro volání. Nahraďte "GROUP_CALL_ID" ID skupiny pro váš hovor. Nahraďte "DISPLAY_NAME" svým jménem. Nahraďte "USER_ACCESS_TOKEN" tokenem.

package com.example.uilibraryquickstart

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import com.azure.android.communication.common.CommunicationTokenCredential
import com.azure.android.communication.common.CommunicationTokenRefreshOptions
import com.azure.android.communication.ui.calling.CallComposite
import com.azure.android.communication.ui.calling.CallCompositeBuilder
import com.azure.android.communication.ui.calling.models.CallCompositeGroupCallLocator
import com.azure.android.communication.ui.calling.models.CallCompositeJoinLocator
import com.azure.android.communication.ui.calling.models.CallCompositeRemoteOptions
import java.util.UUID

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        val startButton: Button = findViewById(R.id.startButton)
        startButton.setOnClickListener { l -> startCallComposite() }
    }

    private fun startCallComposite() {
        val communicationTokenRefreshOptions = CommunicationTokenRefreshOptions({ fetchToken() }, true)
        val communicationTokenCredential = CommunicationTokenCredential(communicationTokenRefreshOptions)

        val locator: CallCompositeJoinLocator = CallCompositeGroupCallLocator(UUID.fromString("GROUP_CALL_ID"))
        val remoteOptions = CallCompositeRemoteOptions(locator, communicationTokenCredential, "DISPLAY_NAME")

        val callComposite: CallComposite = CallCompositeBuilder().build()
        callComposite.launch(this, remoteOptions)
    }

    private fun fetchToken(): String? {
        return "USER_ACCESS_TOKEN"
    }
}

Spuštění kódu

V Android Studiu sestavte a spusťte aplikaci:

  1. Vyberte Spustit.
  2. Přijměte oprávnění a pak vyberte nastavení zařízení, mikrofonu a videa.
  3. Vyberte Připojit se k hovoru.

GIF animation that shows an example of how the project runs on an Android device.

Objektový model

Následující třídy a rozhraní zpracovávají některé klíčové funkce uživatelského rozhraní Azure Communication Services pro Android:

Název Popis
CallComposite Složená komponenta, která vykresluje prostředí volání s galerií účastníků a ovládacími prvky
CallCompositeBuilder Tvůrce, který sestavuje CallComposite s možnostmi
CallCompositeJoinMeetingLocator CallComposite Předané spuštění pro zahájení skupinového hovoru
CallCompositeTeamsMeetingLinkLocator CallComposite Předání ke spuštění pro připojení ke schůzce v Microsoft Teams
CallCompositeLocalizationOptions Vložené jako volitelné CallCompositeBuilder pro nastavení jazyka složeného souboru

Funkce knihovny uživatelského rozhraní

Získejte kód pro vytvoření klíčových komunikačních funkcí pro vaši aplikaci pro Android.

Vytvoření callcomposite

Chcete-li vytvořit CallComposite, uvnitř startCallComposite funkce inicializovat CallCompositeBuilder instanci a CallComposite instanci.

val callComposite: CallComposite = CallCompositeBuilder().build()

Nastavení ověřování

Pokud chcete nastavit ověřování, inicializujete CommunicationTokenCredential instanci uvnitř startCallComposite funkce. Nahraďte "USER_ACCESS_TOKEN" přístupovým tokenem.

val callComposite: CallComposite = CallCompositeBuilder().build()

val communicationTokenRefreshOptions = CommunicationTokenRefreshOptions(this::fetchToken, true)

val communicationTokenCredential = CommunicationTokenCredential(communicationTokenRefreshOptions)

Nastavení skupinového hovoru

Chcete-li nastavit skupinové volání, inicializovat CallCompositeGroupCallLocator a zadat jej do objektu CallCompositeRemoteOptions .

val locator = CallCompositeGroupCallLocator(UUID.fromString("GROUP_CALL_ID"))

val remoteOptions = CallCompositeRemoteOptions(
    locator,
    communicationTokenCredential,            
    "DISPLAY_NAME",
)

Nastavení schůzky v Teams

Pokud chcete nastavit schůzku v Microsoft Teams, inicializujete CallCompositeTeamsMeetingLinkLocator ji a zadáte objektu CallCompositeRemoteOptions .

val locator = CallCompositeTeamsMeetingLinkLocator("TEAMS_MEETING_LINK")

val remoteOptions = CallCompositeRemoteOptions(
    locator,
    communicationTokenCredential,            
    "DISPLAY_NAME",
)

Nastavení hovoru v místnostech

Důležité

Tato funkce služeb Azure Communication Services je aktuálně ve verzi Preview.

Rozhraní API a sady SDK verze Preview jsou poskytovány bez smlouvy o úrovni služeb. Doporučujeme je nepoužívat pro produkční úlohy. Některé funkce nemusí být podporované nebo můžou mít omezené možnosti.

Další informace najdete v dodatečných podmínkách použití pro verze Preview Microsoft Azure.

Chcete-li nastavit volání místností služby Azure Communication Services, inicializovat CallCompositeRoomLocator, zadat jej objektu CallCompositeRemoteOptions a nastavit CallCompositeParticipantRole podle setRoleHint()CallCompositeLocalOptions . CallComposite před připojením k volání použije nápovědu role. Po připojení volání se ze služeb Azure Communication Services načte skutečná aktuální role účastníka.

Další informace o místnostech najdete v tématu Rychlý start k vytvoření a správě místností.

val locator = CallCompositeRoomLocator("<ROOM_ID>")

val remoteOptions = CallCompositeRemoteOptions(
    locator,
    communicationTokenCredential,            
    "DISPLAY_NAME",
)

val localOptions = CallCompositeLocalOptions().setRoleHint(participantRole)

val callComposite = CallCompositeBuilder().build()
callComposite.launch(context, remoteOptions, localOptions)

Spuštění složeného souboru

Pokud chcete spustit uživatelské rozhraní volání, zavolejte launchCallComposite v startCallComposite rámci funkce instanci.

callComposite.launch(context, remoteOptions)

Přihlášení k odběru chybových událostí CallComposite

Chcete-li zobrazit chybové události, zavolejte setOnErrorHandler s CallComposite.

Do obslužné rutiny chyby se můžou odeslat následující errorCode hodnoty:

  • CallCompositeErrorCode.CALL_JOIN_FAILED
  • CallCompositeErrorCode.CALL_END_FAILED
  • CallCompositeErrorCode.TOKEN_EXPIRED
  • CallCompositeErrorCode.CAMERA_FAILURE
  • CallCompositeErrorCode.MICROPHONE_PERMISSION_NOT_GRANTED
  • CallCompositeErrorCode.NETWORK_CONNECTION_NOT_AVAILABLE

Následující příklad ukazuje chybovou událost neúspěšné složené události.

callComposite.addOnErrorEventHandler { callCompositeErrorEvent ->
    println(callCompositeErrorEvent.errorCode)
}

Použití konfigurace motivu

Pokud chcete změnit primární barvu složeného souboru, vytvořte nový styl motivu v souboru src/main/res/values/themes.xml a src/main/res/values-night/themes.xml pomocí AzureCommunicationUICalling.Theme nadřazeného motivu. Pokud chcete použít motiv, zadejte ID motivu do CallCompositeBuilder:

<style name="MyCompany.CallComposite" parent="AzureCommunicationUICalling.Theme">
    <item name="azure_communication_ui_calling_primary_color">#27AC22</item>
    <item name="azure_communication_ui_calling_primary_color_tint10">#5EC65A</item>
    <item name="azure_communication_ui_calling_primary_color_tint20">#A7E3A5</item>
    <item name="azure_communication_ui_calling_primary_color_tint30">#CEF0CD</item>
</style>
val callComposite: CallComposite =
        CallCompositeBuilder()
            .theme(R.style.MyCompany_CallComposite)
            .build()

Použití konfigurace lokalizace

Chcete-li změnit jazyk složeného souboru, použijte k vytvoření CallCompositeLocalizationOptions s CallCompositeSupportedLocale příponou Locale. Chcete-li použít jazyk, vložení konfigurace lokalizace do CallCompositeBuilder. Ve výchozím nastavení všechny textové popisky používají anglické (en) řetězce. Můžete použít CallCompositeLocalizationOptions k nastavení jiné hodnoty pro language. Knihovna uživatelského rozhraní ve výchozím nastavení obsahuje sadu language hodnot, které můžete použít s komponentami uživatelského rozhraní. CallCompositeSupportedLocale poskytuje podporovaná národní prostředí. Například pro přístup k anglickému národnímu prostředí můžete použít CallCompositeSupportedLocale.EN. CallCompositeSupportedLocale.getSupportedLocales() poskytuje seznam objektů národního prostředí pro podporované jazyky.

import com.azure.android.communication.ui.calling.models.CallCompositeLocalizationOptions
import com.azure.android.communication.ui.calling.models.CallCompositeSupportedLocale

// CallCompositeSupportedLocale provides list of supported locale
val callComposite: CallComposite =
            CallCompositeBuilder().localization(
                CallCompositeLocalizationOptions(CallCompositeSupportedLocale.EN)
            ).build()

Přihlášení k odběru události změny stavu volání CallComposite

Chcete-li přijímat události změny stavu volání, zavolejte s addOnCallStateChangedEventHandlerCallComposite.

Následující příklad ukazuje událost pro změněný stav volání.

callComposite.addOnCallStateChangedEventHandler { callStateChangedEvent ->
    println(callStateChangedEvent.code)
}

Zavřít CallComposite a přihlásit se k odběru zamítnuté události

Chcete-li přijmout zamítnutí, zavolejte addOnDismissedEventHandler s CallComposite. Chcete-li zavřít CallComposite, zavolejte dismiss.

Následující příklad ukazuje událost pro změněný stav volání.

callComposite.addOnDismissedEventHandler { callCompositeDismissedEvent ->
    println(callCompositeDismissedEvent.errorCode)
}

callComposite.dismiss()

Další funkce

Seznam případů použití obsahuje podrobné informace o dalších funkcích.

Přidání oznámení do mobilní aplikace

Služba Azure Communication Services se integruje se službou Azure Event Grid a Službou Azure Notification Hubs, takže můžete do svých aplikací v Azure přidávat nabízená oznámení . Nabízená oznámení můžete použít k odesílání informací z vaší aplikace do mobilních zařízení uživatelů. Nabízené oznámení může zobrazit dialogové okno, přehrát zvuk nebo zobrazit uživatelské rozhraní příchozího volání.

Získejte ukázkovou aplikaci pro iOS pro tento rychlý start v opensourcové knihovně uživatelského rozhraní Azure Communication Services pro iOS.

Předpoklady

Nastavení projektu

Dokončete následující části a nastavte projekt rychlého startu.

Vytvoření nového projektu Xcode

V Xcode vytvořte nový projekt:

  1. V nabídce Soubor vyberte Nový>projekt.

  2. V části Zvolte šablonu pro nový projekt, vyberte platformu pro iOS a vyberte šablonu aplikace aplikace . Rychlý start používá scénáře UIKit. Rychlý start nevytvoří testy, takže můžete zrušit zaškrtnutí políčka Zahrnout testy .

    Screenshot that shows the Xcode new project dialog, with iOS and the App template selected.

  3. V části Zvolte možnosti pro nový projekt jako název produktu zadejte UILibraryQuickStart. Pro rozhraní vyberte Storyboard.

    Screenshot that shows setting new project options in Xcode.

Instalace balíčku a závislostí

  1. (Volitelné) Pro MacBook s M1 nainstalujte a povolte Rosetta v Xcode.

  2. V kořenovém adresáři projektu spusťte pod init příkaz pro vytvoření souboru Podfile. Pokud dojde k chybě, aktualizujte CocoaPods na aktuální verzi.

  3. Do souboru Podfile přidejte následující kód. Nahraďte UILibraryQuickStart názvem projektu.

    platform :ios, '15.0'
    
    target 'UILibraryQuickStart' do
        use_frameworks!
        pod 'AzureCommunicationUICalling'
    end
    
  4. Spusťte pod install --repo-update.

  5. V Xcode otevřete vygenerovaný soubor .xcworkspace .

Vyžádání přístupu k hardwaru zařízení

Pokud chcete získat přístup k hardwaru zařízení, včetně mikrofonu a kamery, aktualizujte seznam vlastností informací vaší aplikace. Nastavte přidruženou hodnotu na řetězec, který je součástí dialogového okna, který systém používá k vyžádání přístupu od uživatele.

  1. Klikněte pravým tlačítkem myši na Info.plist položku stromu projektu a vyberte Otevřít jako>zdrojový kód. Do oddílu nejvyšší úrovně <dict> přidejte následující řádky a pak soubor uložte.

    <key>NSCameraUsageDescription</key>
    <string></string>
    <key>NSMicrophoneUsageDescription</key>
    <string></string>
    

    Tady je příklad zdrojového Info.plist kódu v souboru Xcode:

    Screenshot that shows an example of the info plist source code in an Xcode file.

  2. Chcete-li ověřit, že jsou žádosti o oprávnění zařízení přidány správně, vyberte otevřít jako>seznam vlastností. Zkontrolujte, že seznam vlastností informací vypadá podobně jako v následujícím příkladu:

    Screenshot that shows the camera and microphone device privacy in Xcode.

Vypnutí bitcode

V projektu Xcode v části Sestavení Nastavení nastavte možnost Povolit bitcode na Ne. Pokud chcete nastavení najít, změňte filtr ze Základní na Vše nebo použijte panel hledání.

Screenshot that shows the Build Settings option to turn off Bitcode.

Inicializace složeného

Inicializace složeného kódu:

  1. Umožňuje přejít na ViewController.

  2. Přidejte následující kód pro inicializaci složených komponent pro volání. Nahraďte <GROUP_CALL_ID> BUĎ ID skupiny pro hovor, nebo UUID() vygenerujte ID skupiny pro hovor. Nahraďte <DISPLAY_NAME> svým jménem. (Omezení délky řetězce je <DISPLAY_NAME> 256 znaků.) Nahraďte <USER_ACCESS_TOKEN> přístupovým tokenem.

    import UIKit
    import AzureCommunicationCalling
    import AzureCommunicationUICalling
    
    class ViewController: UIViewController {
    
        private var callComposite: CallComposite?
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            let button = UIButton(frame: CGRect(x: 100, y: 100, width: 200, height: 50))
            button.contentEdgeInsets = UIEdgeInsets(top: 10.0, left: 20.0, bottom: 10.0, right: 20.0)
            button.layer.cornerRadius = 10
            button.backgroundColor = .systemBlue
            button.setTitle("Start Experience", for: .normal)
            button.addTarget(self, action: #selector(startCallComposite), for: .touchUpInside)
    
            button.translatesAutoresizingMaskIntoConstraints = false
            self.view.addSubview(button)
            button.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
            button.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
        }
    
        @objc private func startCallComposite() {
            let callCompositeOptions = CallCompositeOptions()
    
            callComposite = CallComposite(withOptions: callCompositeOptions)
    
            let communicationTokenCredential = try! CommunicationTokenCredential(token: "<USER_ACCESS_TOKEN>")
    
            let remoteOptions = RemoteOptions(for: .groupCall(groupId: UUID(uuidString: "<GROUP_CALL_ID>")!),
                                              credential: communicationTokenCredential,
                                              displayName: "<DISPLAY_NAME>")
            callComposite?.launch(remoteOptions: remoteOptions)
        }
    }
    

Spuštění kódu

Pokud chcete sestavit a spustit aplikaci v simulátoru iOS, vyberte Spustit produkt>nebo použijte klávesovou zkratku (⌘-R). Pak vyzkoušejte prostředí volání v simulátoru:

  1. Vyberte Spustit prostředí.

  2. Přijměte zvuková oprávnění a pak vyberte nastavení zařízení, mikrofonu a videa.

  3. Vyberte Zahájit hovor.

GIF animation that demonstrates the final look and feel of the quickstart iOS app.

Objektový model

Následující třídy a rozhraní zpracovávají některé klíčové funkce klientské knihovny uživatelského rozhraní služby Azure Communication Services:

Název Popis
CallComposite Komponenta, která vykresluje prostředí volání, které má galerii účastníků a ovládací prvky
CallCompositeOptions Nastavení pro možnosti, jako jsou motivy a zpracování událostí
RemoteOptions Možnosti vzdáleného odeslání do Azure Communication Services pro připojení ke skupinovému hovoru nebo ke schůzce v Teams
ThemeOptions Možnosti přizpůsobení složeného motivu
LokalizaceOptions Jazykové možnosti složeného

Funkce knihovny uživatelského rozhraní

Získejte kód pro vytvoření klíčových komunikačních funkcí pro vaši aplikaci pro iOS.

Vytvoření callcomposite

Pokud chcete vytvořit CallCompositeinstanci a CallComposite instanci, inicializujete CallCompositeOptions ji uvnitř startCallComposite funkce:

@objc private func startCallComposite() {
    let callCompositeOptions = CallCompositeOptions()

    callComposite = CallComposite(withOptions: callCompositeOptions)
}

Nastavení ověřování

Pokud chcete nastavit ověřování, inicializujete CommunicationTokenCredential instanci uvnitř startCallComposite funkce. Nahraďte <USER_ACCESS_TOKEN> přístupovým tokenem.

let communicationTokenCredential = try! CommunicationTokenCredential(token: "<USER_ACCESS_TOKEN>")

Pokud ještě přístupový token nemáte, vytvořte přístupový token služby Azure Communication Services.

Nastavení skupinového hovoru

Chcete-li nastavit skupinové volání, uvnitř startCallComposite funkce inicializuje RemoteOptions instanci pro .groupCall lokátor. Nahraďte <GROUP_CALL_ID> ID skupiny pro váš hovor. Nahraďte <DISPLAY_NAME> svým jménem.

// let uuid = UUID() to create a new call
let uuid = UUID(uuidString: "<GROUP_CALL_ID>")!
let remoteOptions = RemoteOptions(for: .groupCall(groupId: uuid),
                                  credential: communicationTokenCredential,
                                  displayName: "<DISPLAY_NAME>")

Další informace o použití ID skupiny pro volání najdete v tématu Správa volání.

Nastavení schůzky v Teams

Pokud chcete nastavit schůzku Microsoft Teams, inicializujte RemoteOptions instanci startCallComposite pro .teamsMeeting lokátor. Nahraďte <TEAMS_MEETING_LINK> odkazem na schůzku Teams pro váš hovor. Nahraďte <DISPLAY_NAME> svým jménem.

let remoteOptions = RemoteOptions(for: .teamsMeeting(teamsLink: "<TEAMS_MEETING_LINK>"),
                                  credential: communicationTokenCredential,
                                  displayName: "<DISPLAY_NAME>")

Odkaz na schůzku v Microsoft Teams můžete získat pomocí rozhraní Graph API. Tento proces je podrobně popsaný v dokumentaci k Graphu.

Sada SDK pro volání komunikačních služeb přijímá úplný odkaz na schůzku Microsoft Teams. Tento odkaz se vrátí jako součást onlineMeeting prostředku v rámci vlastnosti joinWebUrl. Požadované informace o schůzce můžete získat také z adresy URL pro připojení ke schůzce přímo v pozvánce na schůzku v Teams.

Nastavení hovoru v místnostech

Důležité

Tato funkce služeb Azure Communication Services je aktuálně ve verzi Preview.

Rozhraní API a sady SDK verze Preview jsou poskytovány bez smlouvy o úrovni služeb. Doporučujeme je nepoužívat pro produkční úlohy. Některé funkce nemusí být podporované nebo můžou mít omezené možnosti.

Další informace najdete v dodatečných podmínkách použití pro verze Preview Microsoft Azure.

Chcete-li nastavit volání místností azure Communication Services uvnitř startCallComposite funkce, inicializovat RemoteOptions instanci pro .roomCall lokátor. Nahraďte <ROOM_ID> ID místnosti pro váš hovor. Inicializace LocalOptions instance pomocí roleHint.

Nahraďte <DISPLAY_NAME> svým jménem.

CallComposite před připojením k volání použije nápovědu role. Po připojení volání se ze služeb Azure Communication Services načte skutečná aktuální role účastníka.

Další informace o místnostech najdete v tématu Rychlý start k vytvoření a správě místností.

let remoteOptions = RemoteOptions(for: .roomCall(roomId: "<ROOM_ID>"),
                                  credential: communicationTokenCredential,
                                  displayName: "<DISPLAY_NAME>")
let localOptions = LocalOptions(roleHint: participantRole)

let callComposite = CallComposite()
callComposite.launch(remoteOptions: remoteOptions, localOptions: localOptions)

Spuštění složeného souboru

startCallComposite Uvnitř funkce zavolejte launchCallComposite instanci:

callComposite?.launch(remoteOptions: remoteOptions)

Přihlášení k odběru událostí

Můžete implementovat uzavření, která budou fungovat na složených událostech. Do obslužné rutiny chyby se můžou odeslat následující kódy chyb:

  • callJoin
  • callEnd
  • cameraFailure
  • tokenExpired
  • microphonePermissionNotGranted
  • networkConnectionNotAvailable

Následující příklad ukazuje chybovou událost neúspěšné složené události:

callComposite?.events.onError = { error in
    print("CallComposite failed with error:\(error)")
}

Použití možností motivu

Pokud chcete přizpůsobit komunikační prostředí ve vaší aplikaci, vytvořte vlastní možnosti motivu ThemeOptions , které implementují protokol. Zahrnout instanci nové třídy v CallCompositeOptions:

class CustomThemeOptions: ThemeOptions {
   var primaryColor: UIColor {
       return UIColor.red
   }
}
let callCompositeOptions = CallCompositeOptions(theme: CustomThemeOptions())

Další informace o tom, jak motivy fungují, najdete v průvodci motivy.

Použití možností lokalizace

Pokud chcete změnit jazyk ve složeného souboru, vytvořte vlastní možnosti lokalizace a zahrňte je do CallCompositeOptions. Ve výchozím nastavení všechny textové popisky používají anglické (SupportedLocale.en) řetězce. Můžete použít LocalizationOptions k nastavení jiné hodnoty pro locale. Knihovna uživatelského rozhraní ve výchozím nastavení obsahuje sadu locale hodnot, které můžete použít s komponentami uživatelského rozhraní. SupportedLocale.values poskytuje seznam všech podporovaných jazyků.

V následujícím příkladu je složený soubor lokalizován do francouzštiny (fr):

// Option1: Use IntelliSense to get locales UI Library supports.
let localizationOptions = LocalizationOptions(locale: SupportedLocale.frFR)

// Option2: If UI Library doesn't support the locale you set, the Swift Locale struct defaults to English.
let localizationOptions = LocalizationOptions(locale: Locale(identifier: "fr-FR"))

let callCompositeOptions = CallCompositeOptions(localization: localizationOptions) 

Další informace o lokalizaci a seznamu podporovaných jazyků najdete v průvodci lokalizací.

Přihlášení k odběru události změny stavu volání CallComposite

Můžete implementovat uzavření, která budou fungovat na složených událostech. Stavy volání budou odeslány do obslužné rutiny změny stavu volání.

Následující příklad ukazuje událost pro změněný stav volání.

callComposite?.events.onCallStateChanged = { callStateEvent in
   print("CallComposite call state changed:\(callStateEvent.requestString)")
}

Zavřít CallComposite a přihlásit se k odběru zamítnuté události

Chcete-li zavřít CallComposite, zavolejte dismiss. Při zavření složeného volání se odešle následující událost zavření:

callComposite?.events.onDismissed = { dismissed in
   print("CallComposite dismissed:\(dismissed.errorCode)")
}

callComposite.dismiss()

Přidání oznámení do mobilní aplikace

Služba Azure Communication Services se integruje se službou Azure Event Grid a Službou Azure Notification Hubs, takže můžete do svých aplikací v Azure přidávat nabízená oznámení . Nabízená oznámení můžete použít k odesílání informací z vaší aplikace do mobilních zařízení uživatelů. Nabízené oznámení může zobrazit dialogové okno, přehrát zvuk nebo zobrazit uživatelské rozhraní příchozího volání.

Vyčištění prostředků

Pokud chcete vyčistit a odebrat předplatné služby Communication Services, můžete odstranit prostředek nebo skupinu prostředků.

Odstraněním skupiny prostředků se odstraní také všechny ostatní prostředky, které jsou k ní přidružené.

Přečtěte si další informace o čištění prostředků.