Quickstart: Aan de slag met ui-bibliotheek

Ga aan de slag met de UI-bibliotheek van Azure Communication Services om communicatie-ervaringen snel te integreren in uw toepassingen. In deze quickstart leert u hoe u UI Library-samenstellingen integreert in een toepassing en hoe u de ervaring voor uw app-gebruikers instelt.

Communication Services UI Library geeft een volledige communicatie-ervaring rechtstreeks in uw toepassing. Het zorgt ervoor dat er verbinding wordt gemaakt met het gesprek en de deelname van de gebruiker aan de oproep achter de schermen wordt ingesteld. Als ontwikkelaar moet u zich zorgen maken over waar in de gebruikerservaring van uw app de communicatie-ervaring moet worden gestart. Het samengestelde neemt de gebruiker door hun apparaten in te stellen, deel te nemen aan het gesprek en eraan deel te nemen en andere deelnemers weer te geven.

Bekijk deze video voor een overzicht:

Notitie

Voor gedetailleerde documentatie en quickstarts over de webgebruikersinterfacebibliotheek gaat u naar het artikelboek van de webgebruikersinterfacebibliotheek.

Vereisten

U hebt toegang tot de volgende quickstarts

Download de Android-voorbeeldtoepassing voor deze quickstart in de open source Azure Communication Services UI Library voor Android.

Vereisten

Het project instellen

Voltooi de volgende secties om het quickstartproject in te stellen.

Een nieuw Android-project maken

Maak in Android Studio een nieuw project:

  1. Selecteer nieuw>project in het menu Bestand.

  2. Selecteer in Nieuw project de projectsjabloon Lege activiteit .

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

  3. Selecteer Volgende.

  4. Geef in Empty Activity de naam van het project UILibraryQuickStart. Selecteer Java/Kotlin als taal. Voor de minimale SDK selecteert u API 21: Android 5.0 (Lollipop) of hoger.

  5. Selecteer Voltooien.

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

De pakketten installeren

Voltooi de volgende secties om de vereiste toepassingspakketten te installeren.

Een afhankelijkheid toevoegen

Voeg in uw UILibraryQuickStart/app/build.gradle-bestand (in de app-map) de volgende afhankelijkheid toe:

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

Maven-opslagplaatsen toevoegen

Er zijn twee Maven-opslagplaatsen vereist om de bibliotheek te integreren:

  • MavenCentral
  • De Azure-pakketopslagplaats

De opslagplaatsen toevoegen:

  1. Zorg ervoor dat in uw project Gradle-scripts de volgende opslagplaatsen worden toegevoegd. Voor Android Studio (2020.*) bevindt zich repositories in settings.gradle, onder dependencyResolutionManagement(Gradle version 6.8 or greater). Voor eerdere versies van Android Studio (4.*) bevindt zich repositories op projectniveau build.gradle, onder allprojects{}.

    // dependencyResolutionManagement
    repositories {
        ...
        mavenCentral()
        maven {
            url "https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1"
        }
        ...
    }
    
  2. Synchroniseer uw project met de Gradle-bestanden. Als u het project wilt synchroniseren, selecteert u Project synchroniseren met Gradle-bestanden in het menu Bestand.

Een knop toevoegen aan Activity_main.xml

Voeg in het indelingsbestand app/src/main/res/layout/activity_main.xml de volgende code toe om een knop te maken om het samengestelde bestand te starten:

<?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>

Het samengestelde initialiseren

De samenstelling initialiseren:

  1. Ga naar MainActivity.

  2. Voeg de volgende code toe om de samengestelde onderdelen voor aanroepen te initialiseren. Vervang "GROUP_CALL_ID" door de groeps-id voor uw oproep. Vervang "DISPLAY_NAME" door uw naam. Vervang "USER_ACCESS_TOKEN" door uw token.

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"
    }
}

De code uitvoeren

Bouw en start de toepassing in Android Studio:

  1. Selecteer Starten.
  2. Accepteer machtigingen en selecteer vervolgens apparaat-, microfoon- en video-instellingen.
  3. Selecteer Deelnemen aan gesprek.

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

Objectmodel

De volgende klassen en interfaces verwerken enkele belangrijke functies van de Android-gebruikersinterface van Azure Communication Services:

Naam Beschrijving
CallComposite Samengesteld onderdeel waarmee een gesprekservaring wordt weergegeven met de galerie en besturingselementen van deelnemers
CallCompositeBuilder Opbouwfunctie die bouwt CallComposite met opties
CallCompositeJoinMeetingLocator Doorgegeven start CallComposite om een groepsgesprek te starten
CallCompositeTeamsMeetingLinkLocator Gestart om deel te CallComposite nemen aan een Microsoft Teams-vergadering
CallCompositeLocalizationOptions Opgenomen als optioneel in CallCompositeBuilder het instellen van de taal van de samengestelde

Ui-bibliotheekfunctionaliteit

Haal de code op om belangrijke communicatiefuncties voor uw Android-toepassing te maken.

CallComposite maken

Als u een exemplaar en een CallComposite exemplaar wilt makenCallComposite, initialiseert u binnen CallCompositeBuilder de startCallComposite functie.

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

Verificatie instellen

Als u verificatie wilt instellen, initialiseert u binnen de startCallComposite functie een CommunicationTokenCredential exemplaar. Vervang "USER_ACCESS_TOKEN" door uw toegangstoken.

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

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

val communicationTokenCredential = CommunicationTokenCredential(communicationTokenRefreshOptions)

Een groepsoproep instellen

Als u een groepsoproep wilt instellen, initialiseert u een CallCompositeGroupCallLocator groepsaanroep en geeft u deze op aan het CallCompositeRemoteOptions object.

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

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

Een Teams-vergadering instellen

Als u een Microsoft Teams-vergadering wilt instellen, initialiseert u een CallCompositeTeamsMeetingLinkLocator vergadering en geeft u deze aan het CallCompositeRemoteOptions object op.

val locator = CallCompositeTeamsMeetingLinkLocator("TEAMS_MEETING_LINK")

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

Een telefoongesprek met ruimten instellen

Belangrijk

Deze functie van Azure Communication Services is momenteel beschikbaar als preview-versie.

Preview-API's en SDK's worden aangeboden zonder een service level agreement. U wordt aangeraden deze niet te gebruiken voor productieworkloads. Sommige functies worden mogelijk niet ondersteund of hebben mogelijk beperkte mogelijkheden.

Raadpleeg aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews voor meer informatie.

Als u een aanroep van Azure Communication Services-ruimten wilt instellen, initialiseert u een CallCompositeRoomLocatoraanroep, geeft u deze op aan het object en stelt u CallCompositeParticipantRole deze CallCompositeRemoteOptions in op de CallCompositeLocalOptions bysetRoleHint(). CallComposite gebruikt rolhint voordat u verbinding maakt met de aanroep. Zodra de oproep is verbonden, wordt de werkelijke up-to-date deelnemersrol opgehaald uit Azure Communication Services.

Zie de quickstart ruimten voor meer informatie over ruimten, hoe u er een kunt maken en beheren

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)

De samengestelde

Als u de aanroepgebruikersinterface wilt starten, roept launch u binnen de startCallComposite functie het CallComposite exemplaar aan.

callComposite.launch(context, remoteOptions)

Abonneren op CallComposite-fout gebeurtenissen

Als u foutevenementen wilt ontvangen, belt u setOnErrorHandler met CallComposite.

De volgende errorCode waarden kunnen naar de fouthandler worden verzonden:

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

In het volgende voorbeeld ziet u een foutgebeurtenis voor een mislukte samengestelde gebeurtenis.

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

Een themaconfiguratie toepassen

Als u de primaire kleur van het samengestelde wilt wijzigen, maakt u een nieuwe themastijl in src/main/res/values/themes.xml en src/main/res/values-night/themes.xml met behulp van AzureCommunicationUICalling.Theme het bovenliggende thema. Als u het thema wilt toepassen, injecteert u de thema-id in 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()

Een lokalisatieconfiguratie toepassen

Als u de taal van het samengestelde wilt wijzigen, gebruikt CallCompositeSupportedLocale u deze om te maken CallCompositeLocalizationOptions met Locale. Als u taal wilt toepassen, injecteert u de lokalisatieconfiguratie in CallCompositeBuilder. Standaard gebruiken alle tekstlabels Engelse (en) tekenreeksen. U kunt een CallCompositeLocalizationOptions andere waarde instellen voor language. Ui-bibliotheek bevat standaard een set language waarden die u kunt gebruiken met UI-onderdelen. CallCompositeSupportedLocale biedt de ondersteunde landinstellingen. Als u bijvoorbeeld toegang wilt krijgen tot de Engelse landinstelling, kunt u gebruiken CallCompositeSupportedLocale.EN. CallCompositeSupportedLocale.getSupportedLocales() biedt een lijst met landinstellingenobjecten voor ondersteunde talen.

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()

Abonneren op de gebeurtenis CallComposite-aanroepstatus gewijzigd

Als u gewijzigde gebeurtenissen van de oproepstatus wilt ontvangen, belt addOnCallStateChangedEventHandler u met CallComposite.

In het volgende voorbeeld ziet u een gebeurtenis voor een gewijzigde oproepstatus.

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

CallComposite sluiten en abonneren op gesloten gebeurtenis

Als u sluiten wilt ontvangen, belt addOnDismissedEventHandler u met CallComposite. Als u CallComposite wilt sluiten, roept u aan dismiss.

In het volgende voorbeeld ziet u een gebeurtenis voor een gewijzigde oproepstatus.

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

callComposite.dismiss()

Meer voorzieningen

De lijst met use cases bevat gedetailleerde informatie over meer functies.

Meldingen toevoegen aan uw mobiele app

Azure Communication Services kan worden geïntegreerd met Azure Event Grid en Azure Notification Hubs, zodat u pushmeldingen kunt toevoegen aan uw apps in Azure. U kunt pushmeldingen gebruiken om gegevens van uw toepassing naar mobiele apparaten van gebruikers te verzenden. Een pushmelding kan een dialoogvenster weergeven, een geluid afspelen of een binnenkomende oproepgebruikersinterface weergeven.

Haal de iOS-voorbeeldtoepassing voor deze quickstart op in de open source Azure Communication Services UI Library voor iOS.

Vereisten

Het project instellen

Voltooi de volgende secties om het quickstartproject in te stellen.

Een nieuw Xcode-project maken

Maak in Xcode een nieuw project:

  1. Selecteer Nieuw>project in het menu Bestand.

  2. Selecteer in Kies een sjabloon voor uw nieuwe project het iOS-platform en selecteer de app-toepassingssjabloon. In de quickstart worden de UIKit-storyboards gebruikt. In de quickstart worden geen tests gemaakt, zodat u het selectievakje Inclusief tests kunt wissen.

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

  3. Voer in Choose options for your new project, for the product name, UILibraryQuickStart in. Selecteer Storyboard voor de interface.

    Screenshot that shows setting new project options in Xcode.

Het pakket en afhankelijkheden installeren

  1. (Optioneel) Voor MacBook met M1 installeert en schakelt u Rosetta in Xcode in.

  2. Voer in de hoofdmap van uw project uit pod init om een Podfile te maken. Als er een fout optreedt, werkt u CocoaPods bij naar de huidige versie.

  3. Voeg de volgende code toe aan uw Podfile. Vervang door UILibraryQuickStart de projectnaam.

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

  5. Open in Xcode het gegenereerde .xcworkspace-bestand .

Toegang tot apparaathardware aanvragen

Werk de lijst met gegevenseigenschappen van uw app bij om toegang te krijgen tot de hardware van het apparaat, inclusief de microfoon en camera. Stel de gekoppelde waarde in op een tekenreeks die is opgenomen in het dialoogvenster dat het systeem gebruikt om toegang van de gebruiker aan te vragen.

  1. Klik met de rechtermuisknop op de Info.plist-vermelding van de projectstructuur en selecteer Open As>Source Code. Voeg de volgende regels toe aan de sectie op het hoogste niveau <dict> en sla het bestand op.

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

    Hier volgt een voorbeeld van de Info.plist broncode in een Xcode-bestand:

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

  2. Als u wilt controleren of aanvragen voor apparaatmachtigingen correct zijn toegevoegd, selecteert u Lijst met eigenschappen openen als>. Controleer of de lijst met gegevenseigenschappen er ongeveer uitziet als in het volgende voorbeeld:

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

Bitcode uitschakelen

Stel in het Xcode-project onder Build Instellingen de optie Bitcode inschakelen in op Nee. Als u de instelling wilt vinden, wijzigt u het filter van Basic in All of gebruikt u de zoekbalk.

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

Het samengestelde initialiseren

De samenstelling initialiseren:

  1. Ga naar ViewController.

  2. Voeg de volgende code toe om de samengestelde onderdelen voor een aanroep te initialiseren. Vervang <GROUP_CALL_ID> door de groeps-id voor uw oproep of door UUID() een groeps-id voor de aanroep te genereren. Vervang <DISPLAY_NAME> door uw naam. (De lengtelimiet voor tekenreeksen <DISPLAY_NAME> is 256 tekens.) Vervang <USER_ACCESS_TOKEN> door uw toegangstoken.

    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)
        }
    }
    

De code uitvoeren

Als u uw app wilt bouwen en uitvoeren in de iOS-simulator, selecteert u Productuitvoering> of gebruikt u de sneltoets (⌘-R). Probeer vervolgens de oproepervaring op de simulator uit:

  1. Selecteer Ervaring starten.

  2. Accepteer audiomachtigingen en selecteer vervolgens apparaat-, microfoon- en video-instellingen.

  3. Selecteer Gesprek starten.

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

Objectmodel

De volgende klassen en interfaces verwerken enkele belangrijke functies van de Azure Communication Services UI-clientbibliotheek:

Naam Beschrijving
CallComposite Onderdeel waarmee een oproepervaring wordt weergegeven met een galerie en besturingselementen van deelnemers
CallCompositeOptions Instellingen voor opties zoals thema's en gebeurtenisafhandeling
RemoteOptions Externe opties voor verzenden naar Azure Communication Services om deel te nemen aan een groepsgesprek of een Teams-vergadering.
ThemeOptions Aanpassingsopties voor het samengestelde thema
LocalizationOptions Taalopties voor de samengestelde

Ui-bibliotheekfunctionaliteit

Haal de code op om belangrijke communicatiefuncties voor uw iOS-toepassing te maken.

CallComposite maken

Als u binnen de startCallComposite functie een CallCompositeOptions exemplaar en een CallComposite exemplaar wilt makenCallComposite, initialiseert u:

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

    callComposite = CallComposite(withOptions: callCompositeOptions)
}

Verificatie instellen

Als u verificatie wilt instellen, initialiseert u binnen de startCallComposite functie een CommunicationTokenCredential exemplaar. Vervang <USER_ACCESS_TOKEN> door uw toegangstoken.

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

Als u nog geen toegangstoken hebt, maakt u een Azure Communication Services-toegangstoken.

Een groepsoproep instellen

Als u een groepsoproep wilt instellen, initialiseert u binnen de startCallComposite functie een RemoteOptions exemplaar voor de .groupCall locator. Vervang <GROUP_CALL_ID> door de groeps-id voor uw oproep. Vervang <DISPLAY_NAME> door uw naam.

// 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>")

Zie Gesprekken beheren voor meer informatie over het gebruik van een groeps-id voor gesprekken.

Een Teams-vergadering instellen

Als u een Microsoft Teams-vergadering wilt instellen, initialiseert u binnen de startCallComposite functie een RemoteOptions exemplaar voor de .teamsMeeting locator. Vervang <TEAMS_MEETING_LINK> deze door de koppeling naar de Teams-vergadering voor uw gesprek. Vervang <DISPLAY_NAME> door uw naam.

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

U kunt een koppeling naar een Microsoft Teams-vergadering ophalen met behulp van Graph-API's. Dit proces wordt beschreven in de Graph-documentatie.

De Communication Services Call SDK accepteert een volledige koppeling naar een Microsoft Teams-vergadering. Deze koppeling wordt geretourneerd als onderdeel van de onlineMeeting resource, onder de eigenschap joinWebUrl. U kunt ook de vereiste vergaderingsgegevens ophalen uit de URL van de deelname aan vergadering in de uitnodiging voor de Teams-vergadering zelf.

Een telefoongesprek met ruimten instellen

Belangrijk

Deze functie van Azure Communication Services is momenteel beschikbaar als preview-versie.

Preview-API's en SDK's worden aangeboden zonder een service level agreement. U wordt aangeraden deze niet te gebruiken voor productieworkloads. Sommige functies worden mogelijk niet ondersteund of hebben mogelijk beperkte mogelijkheden.

Raadpleeg aanvullende gebruiksvoorwaarden voor Microsoft Azure Previews voor meer informatie.

Als u een Azure Communication Services Rooms-aanroep wilt instellen, initialiseert u binnen de startCallComposite functie een RemoteOptions exemplaar voor de .roomCall locator. Vervang <ROOM_ID> door de kamer-id voor uw gesprek. Initialiseer een LocalOptions exemplaar met roleHint.

Vervang <DISPLAY_NAME> door uw naam.

CallComposite gebruikt rolhint voordat u verbinding maakt met de aanroep. Zodra de oproep is verbonden, wordt de werkelijke up-to-date deelnemersrol opgehaald uit Azure Communication Services.

Zie de quickstart ruimten voor meer informatie over ruimten, hoe u er een kunt maken en beheren

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)

De samengestelde

Roep binnen de startCallComposite functie launch het CallComposite exemplaar aan:

callComposite?.launch(remoteOptions: remoteOptions)

Abonneren op gebeurtenissen

U kunt sluitingen implementeren om te reageren op samengestelde gebeurtenissen. De volgende errorCodes kunnen naar de fouthandler worden verzonden:

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

In het volgende voorbeeld ziet u een foutgebeurtenis voor een mislukte samengestelde gebeurtenis:

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

Themaopties toepassen

Als u de communicatie-ervaring in uw toepassing wilt aanpassen, maakt u aangepaste themaopties waarmee het protocol wordt ThemeOptions geïmplementeerd. Neem een exemplaar van de nieuwe klasse op in CallCompositeOptions:

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

Zie de handleiding voor thema's voor meer informatie over hoe thema's werken.

Lokalisatieopties toepassen

Als u de taal in het samengestelde wilt wijzigen, maakt u aangepaste lokalisatieopties en neemt u deze op.CallCompositeOptions Standaard gebruiken alle tekstlabels Engelse (SupportedLocale.en) tekenreeksen. U kunt een LocalizationOptions andere waarde instellen voor locale. De UI-bibliotheek bevat standaard een set locale waarden die u kunt gebruiken met de ui-onderdelen. SupportedLocale.values bevat een lijst met alle ondersteunde talen.

In het volgende voorbeeld is het samengesteld samengesteld op Frans (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) 

Zie de lokalisatiehandleiding voor meer informatie over lokalisatie en voor een lijst met ondersteunde talen.

Abonneren op de gebeurtenis CallComposite-aanroepstatus gewijzigd

U kunt sluitingen implementeren om te reageren op samengestelde gebeurtenissen. De oproepstatussen worden verzonden naar de handler voor de wijziging van de oproepstatus.

In het volgende voorbeeld ziet u een gebeurtenis voor een gewijzigde oproepstatus.

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

CallComposite sluiten en abonneren op gesloten gebeurtenis

Als u CallComposite wilt sluiten, roept u aan dismiss. De volgende sluitgebeurtenis wordt verzonden op samengestelde oproep, gesloten:

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

callComposite.dismiss()

Meldingen toevoegen aan uw mobiele app

Azure Communication Services kan worden geïntegreerd met Azure Event Grid en Azure Notification Hubs, zodat u pushmeldingen kunt toevoegen aan uw apps in Azure. U kunt pushmeldingen gebruiken om gegevens van uw toepassing naar mobiele apparaten van gebruikers te verzenden. Een pushmelding kan een dialoogvenster weergeven, een geluid afspelen of een binnenkomende oproepgebruikersinterface weergeven.

Resources opschonen

Als u een Communication Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen.

Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd.

Meer informatie over het opschonen van resources.