Mulai Cepat: Mulai menggunakan Pustaka UI

Mulai menggunakan Pustaka Antarmuka Pengguna Azure Communication Services untuk mengintegrasikan pengalaman komunikasi dengan cepat ke dalam aplikasi Anda. Dalam mulai cepat ini, pelajari cara mengintegrasikan komposit Pustaka UI ke dalam aplikasi dan menyiapkan pengalaman untuk pengguna aplikasi Anda.

Pustaka Antarmuka Pengguna Communication Services merender pengalaman komunikasi lengkap tepat di aplikasi Anda. Ini mengurus koneksi ke panggilan, dan menyiapkan partisipasi pengguna dalam panggilan di belakang layar. Sebagai pengembang, Anda perlu khawatir tentang di mana dalam pengalaman pengguna aplikasi Anda, Anda ingin pengalaman komunikasi diluncurkan. Komposit memandu pengguna menyiapkan perangkat mereka, bergabung dengan panggilan sekaligus berpartisipasi di dalamnya, dan merender peserta lain.

Lihat video ini untuk gambaran umum:

Catatan

Untuk dokumentasi terperinci dan mulai cepat tentang Pustaka UI Web, kunjungi Buku Cerita Pustaka UI Web.

Prasyarat

Anda dapat mengakses mulai cepat berikut

Dapatkan contoh aplikasi Android untuk mulai cepat ini di pustaka antarmuka pengguna Azure Communication Services sumber terbuka untuk Android.

Prasyarat

Menyiapkan proyek

Selesaikan bagian berikut untuk menyiapkan proyek mulai cepat.

Membuat proyek Android baru

Di Android Studio, buat proyek baru:

  1. Di menu File, pilih> Proyek Baru.

  2. Di Proyek Baru, pilih templat proyek Aktivitas Kosong.

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

  3. Pilih Selanjutnya.

  4. Di Aktivitas Kosong, beri nama proyek UILibraryQuickStart. Untuk bahasa, pilih Java/Kotlin. Untuk SDK minimum, pilih API 21: Android 5.0 (Lollipop) atau yang lebih baru.

  5. Pilih Selesai.

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

Menginstal paket

Lengkapi bagian berikut untuk menginstal paket aplikasi yang diperlukan.

Menambahkan dependensi

Di file UILibraryQuickStart/app/build.gradle tingkat aplikasi Anda (di folder aplikasi), tambahkan dependensi berikut:

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

Menambahkan repositori Maven

Dua repositori Maven diperlukan untuk mengintegrasikan pustaka:

  • MavenCentral
  • Repositori paket Azure

Untuk menambahkan repositori:

  1. Dalam skrip Gradle proyek Anda, pastikan bahwa repositori berikut ditambahkan. Untuk Android Studio (2020.*), repositories berada di , di settings.gradlebawah dependencyResolutionManagement(Gradle version 6.8 or greater). Untuk versi Android Studio (4.*) yang lebih lama, repositories berada di tingkat build.gradleproyek , di bawah allprojects{}.

    // dependencyResolutionManagement
    repositories {
        ...
        mavenCentral()
        maven {
            url "https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1"
        }
        ...
    }
    
  2. Sinkronkan proyek Anda dengan file Gradle. Untuk menyinkronkan proyek, pada menu File , pilih Sinkronkan Proyek Dengan File Gradle.

Menambahkan tombol ke Activity_main.xml

Dalam file tata letak app/src/main/res/layout/activity_main.xml, tambahkan kode berikut untuk membuat tombol untuk memulai komposit:

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

Menginisialisasi komposit

Untuk menginisialisasi komposit:

  1. Buka MainActivity.

  2. Tambahkan kode berikut untuk menginisialisasi komponen komposit Anda untuk panggilan. Ganti "GROUP_CALL_ID" dengan ID grup untuk panggilan Anda. Ganti "DISPLAY_NAME" dengan nama Anda. Ganti "USER_ACCESS_TOKEN" dengan token Anda.

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

Menjalankan kode

Di Android Studio, buat dan mulai aplikasi:

  1. Pilih Luncurkan.
  2. Terima izin, lalu pilih pengaturan perangkat, mikrofon, dan video.
  3. Pilih Gabungkan panggilan.

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

Model objek

Kelas dan antarmuka berikut menangani beberapa fitur utama antarmuka pengguna Android Azure Communication Services:

Nama Deskripsi
CallComposite Komponen komposit yang merender pengalaman panggilan dengan galeri dan kontrol peserta
CallCompositeBuilder Penyusun yang membangun CallComposite dengan opsi
CallCompositeJoinMeetingLocator Peluncuran yang diteruskan CallComposite untuk memulai panggilan grup
CallCompositeTeamsMeetingLinkLocator Diteruskan untuk CallComposite diluncurkan untuk bergabung dalam rapat Microsoft Teams
CallCompositeLocalizationOptions Disuntikkan sebagai opsional untuk CallCompositeBuilder mengatur bahasa komposit

Fungsionalitas Pustaka Antarmuka Pengguna

Dapatkan kode untuk membuat fitur komunikasi utama untuk aplikasi Android Anda.

Membuat CallComposite

Untuk membuat CallComposite, di dalam startCallComposite fungsi, inisialisasi CallCompositeBuilder instans dan CallComposite instans.

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

Mengonfigurasikan autentikasi

Untuk menyiapkan autentikasi, di startCallComposite dalam fungsi, inisialisasi CommunicationTokenCredential instans. Ganti "USER_ACCESS_TOKEN" dengan token akses Anda.

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

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

val communicationTokenCredential = CommunicationTokenCredential(communicationTokenRefreshOptions)

Menyiapkan panggilan grup

Untuk menyiapkan panggilan grup, inisialisasi CallCompositeGroupCallLocator dan berikan ke CallCompositeRemoteOptions objek.

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

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

Menyiapkan rapat Teams

Untuk menyiapkan rapat Microsoft Teams, inisialisasi CallCompositeTeamsMeetingLinkLocator dan berikan ke CallCompositeRemoteOptions objek.

val locator = CallCompositeTeamsMeetingLinkLocator("TEAMS_MEETING_LINK")

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

Menyiapkan panggilan Rooms

Penting

Fitur Azure Communication Services ini saat ini dalam pratinjau.

API pratinjau dan SDK disediakan tanpa perjanjian tingkat layanan. Kami menyarankan agar Anda tidak menggunakannya untuk beban kerja produksi. Beberapa fitur mungkin tidak didukung, atau mungkin memiliki kemampuan yang dibatasi.

Untuk informasi selengkapnya, tinjau Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Untuk menyiapkan panggilan Azure Communication Services Rooms, inisialisasi CallCompositeRoomLocator, berikan ke CallCompositeRemoteOptions objek dan atur CallCompositeParticipantRole ke CallCompositeLocalOptions oleh setRoleHint(). CallComposite akan menggunakan petunjuk peran sebelum menyambungkan ke panggilan. Setelah panggilan tersambung, peran peserta terbaru aktual diambil dari Azure Communication Services.

Untuk informasi selengkapnya tentang Ruang, cara membuat dan mengelolanya lihat Mulai Cepat Ruang

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)

Luncurkan komposit

Untuk meluncurkan UI panggilan, di dalam startCallComposite fungsi, panggil launch instans CallComposite .

callComposite.launch(context, remoteOptions)

Berlangganan peristiwa kesalahan CallComposite

Untuk menerima peristiwa kesalahan, hubungi setOnErrorHandler dengan CallComposite.

Nilai berikut errorCode mungkin dikirim ke penanganan kesalahan:

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

Contoh berikut menunjukkan peristiwa kesalahan untuk peristiwa komposit yang gagal.

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

Menerapkan konfigurasi tema

Untuk mengubah warna utama komposit, buat gaya tema baru di src/main/res/values/themes.xml dan src/main/res/values-night/themes.xml dengan menggunakan AzureCommunicationUICalling.Theme sebagai tema induk. Untuk menerapkan tema, masukkan ID tema di 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()

Menerapkan konfigurasi pelokalan

Untuk mengubah bahasa komposit, gunakan CallCompositeSupportedLocale untuk membuat CallCompositeLocalizationOptions dengan Locale. Untuk menerapkan bahasa, masukkan konfigurasi pelokalan di CallCompositeBuilder. Secara default, semua label teks menggunakan string bahasa Inggris (en). Anda dapat menggunakan CallCompositeLocalizationOptions untuk mengatur nilai yang berbeda untuk language. Secara default, Pustaka UI menyertakan sekumpulan language nilai yang dapat Anda gunakan dengan komponen UI. CallCompositeSupportedLocale menyediakan lokal yang didukung. Misalnya, untuk mengakses lokal bahasa Inggris, Anda dapat menggunakan CallCompositeSupportedLocale.EN. CallCompositeSupportedLocale.getSupportedLocales() menyediakan daftar objek lokal untuk bahasa yang didukung.

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

Berlangganan peristiwa perubahan status panggilan CallComposite

Untuk menerima peristiwa perubahan status panggilan, hubungi addOnCallStateChangedEventHandler dengan CallComposite.

Contoh berikut menunjukkan peristiwa untuk status panggilan yang diubah.

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

Menutup CallComposite dan berlangganan peristiwa yang dihentikan

Untuk menerima pemberhentian, hubungi addOnDismissedEventHandler dengan CallComposite. Untuk menutup CallComposite, panggil dismiss.

Contoh berikut menunjukkan peristiwa untuk status panggilan yang diubah.

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

callComposite.dismiss()

Fitur lainnya

Daftar kasus penggunaan memiliki informasi terperinci tentang lebih banyak fitur.

Menambahkan pemberitahuan ke aplikasi seluler Anda

Azure Communication Services terintegrasi dengan Azure Event Grid dan Azure Notification Hubs, sehingga Anda dapat menambahkan pemberitahuan push ke aplikasi Anda di Azure. Anda dapat menggunakan pemberitahuan push untuk mengirim informasi dari aplikasi Anda ke perangkat seluler pengguna. Pemberitahuan push dapat menampilkan dialog, memutar suara, atau menampilkan UI panggilan masuk.

Dapatkan contoh aplikasi iOS untuk mulai cepat ini di pustaka antarmuka pengguna Azure Communication Services sumber terbuka untuk iOS.

Prasyarat

Menyiapkan proyek

Selesaikan bagian berikut untuk menyiapkan proyek mulai cepat.

Buat proyek Xcode baru

Di Xcode, buat proyek baru:

  1. Di menu File, pilih Proyek Baru>.

  2. Di Pilih templat untuk proyek baru Anda, pilih platform iOS dan pilih templat Aplikasi . Mulai cepat menggunakan papan cerita UIKit. Mulai cepat tidak membuat pengujian, sehingga Anda dapat menghapus kotak centang Sertakan Pengujian .

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

  3. Di Pilih opsi untuk proyek baru Anda, untuk nama produk, masukkan UILibraryQuickStart. Untuk antarmuka, pilih Storyboard.

    Screenshot that shows setting new project options in Xcode.

Menginstal paket dan dependensi

  1. (Opsional) Untuk MacBook dengan M1, instal dan aktifkan Rosetta di Xcode.

  2. Di direktori akar proyek Anda, jalankan pod init untuk membuat Podfile. Jika Anda mengalami kesalahan, perbarui CocoaPods ke versi saat ini.

  3. Tambahkan kode berikut ke Podfile Anda. Ganti UILibraryQuickStart dengan nama proyek Anda.

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

  5. Di Xcode, buka file .xcworkspace yang dihasilkan.

Meminta akses ke perangkat keras perangkat

Untuk mengakses perangkat keras perangkat, termasuk mikrofon dan kamera, perbarui daftar properti informasi aplikasi Anda. Atur nilai terkait ke string yang disertakan dalam dialog yang digunakan sistem untuk meminta akses dari pengguna.

  1. Klik kanan Info.plist entri pohon proyek dan pilih Buka Sebagai>Kode Sumber. Tambahkan baris berikut ke bagian tingkat <dict> atas, lalu simpan file.

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

    Berikut adalah contoh Info.plist kode sumber dalam file Xcode:

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

  2. Untuk memverifikasi bahwa permintaan izin perangkat ditambahkan dengan benar, pilih Buka Sebagai>Daftar Properti. Periksa apakah daftar properti informasi terlihat mirip dengan contoh berikut:

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

Menonaktifkan Bitcode

Dalam proyek Xcode, di bawah Build Pengaturan, atur opsi Aktifkan Bitcode ke Tidak. Untuk menemukan pengaturan, ubah filter dari Dasar ke Semua atau gunakan bilah pencarian.

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

Menginisialisasi komposit

Untuk menginisialisasi komposit:

  1. Buka ViewController.

  2. Tambahkan kode berikut untuk menginisialisasi komponen komposit Anda untuk panggilan. Ganti <GROUP_CALL_ID> dengan ID grup untuk panggilan Anda atau dengan UUID() untuk menghasilkan ID grup untuk panggilan tersebut. Ganti <DISPLAY_NAME> dengan nama Anda. (Batas panjang string untuk <DISPLAY_NAME> adalah 256 karakter.) Ganti <USER_ACCESS_TOKEN> dengan token akses Anda.

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

Menjalankan kode

Untuk membuat dan menjalankan aplikasi Anda di simulator iOS, pilih Eksekusi Produk>atau gunakan pintasan keyboard (⌘-R). Kemudian, cobalah pengalaman panggilan pada simulator:

  1. Pilih Mulai Pengalaman.

  2. Terima izin audio, lalu pilih pengaturan perangkat, mikrofon, dan video.

  3. Pilih Mulai panggilan.

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

Model objek

Kelas dan antarmuka berikut menangani beberapa fitur utama pustaka klien UI Azure Communication Services:

Nama Deskripsi
CallComposite Komponen yang merender pengalaman panggilan yang memiliki galeri dan kontrol peserta
CallCompositeOptions Pengaturan untuk opsi seperti tema dan penanganan peristiwa
RemoteOptions Opsi jarak jauh untuk dikirim ke Azure Communication Services untuk bergabung dalam panggilan grup atau rapat Teams.
ThemeOptions Opsi kustomisasi untuk tema komposit
LocalizationOptions Opsi bahasa untuk komposit

Fungsionalitas Pustaka Antarmuka Pengguna

Dapatkan kode untuk membuat fitur komunikasi utama untuk aplikasi iOS Anda.

Membuat CallComposite

Untuk membuat CallComposite, di dalam startCallComposite fungsi, inisialisasi CallCompositeOptions instans dan CallComposite instans:

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

    callComposite = CallComposite(withOptions: callCompositeOptions)
}

Mengonfigurasikan autentikasi

Untuk menyiapkan autentikasi, di startCallComposite dalam fungsi, inisialisasi CommunicationTokenCredential instans. Ganti <USER_ACCESS_TOKEN> dengan token akses Anda.

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

Jika Anda belum memiliki token akses, buat token akses Azure Communication Services.

Menyiapkan panggilan grup

Untuk menyiapkan panggilan grup, di dalam startCallComposite fungsi, inisialisasi RemoteOptions instans untuk pencari .groupCall lokasi. Ganti <GROUP_CALL_ID> dengan ID grup untuk panggilan Anda. Ganti <DISPLAY_NAME> dengan nama Anda.

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

Untuk informasi selengkapnya tentang menggunakan ID grup untuk panggilan, lihat Mengelola panggilan.

Menyiapkan rapat Teams

Untuk menyiapkan rapat Microsoft Teams, di dalam startCallComposite fungsi, inisialisasi RemoteOptions instans untuk pencari .teamsMeeting lokasi. Ganti <TEAMS_MEETING_LINK> dengan tautan rapat Teams untuk panggilan Anda. Ganti <DISPLAY_NAME> dengan nama Anda.

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

Anda bisa mendapatkan tautan rapat Microsoft Teams dengan menggunakan API Graph. Proses ini dirinci dalam dokumentasi Graph.

SDK Panggilan Azure Communication Services menerima tautan rapat Microsoft Teams yang lengkap. Tautan ini dikembalikan sebagai bagian onlineMeeting dari sumber daya, di bawah properti joinWebUrl. Anda juga bisa mendapatkan informasi rapat yang diperlukan dari URL Bergabung dalam undangan rapat Teams itu sendiri.

Menyiapkan panggilan Rooms

Penting

Fitur Azure Communication Services ini saat ini dalam pratinjau.

API pratinjau dan SDK disediakan tanpa perjanjian tingkat layanan. Kami menyarankan agar Anda tidak menggunakannya untuk beban kerja produksi. Beberapa fitur mungkin tidak didukung, atau mungkin memiliki kemampuan yang dibatasi.

Untuk informasi selengkapnya, tinjau Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Untuk menyiapkan panggilan Azure Communication Services Rooms, di dalam startCallComposite fungsi, inisialisasi RemoteOptions instans untuk pencari .roomCall lokasi. Ganti <ROOM_ID> dengan ID Kamar untuk panggilan Anda. Menginisialisasi LocalOptions instans dengan roleHint.

Ganti <DISPLAY_NAME> dengan nama Anda.

CallComposite akan menggunakan petunjuk peran sebelum menyambungkan ke panggilan. Setelah panggilan tersambung, peran peserta terbaru aktual diambil dari Azure Communication Services.

Untuk informasi selengkapnya tentang Ruang, cara membuat dan mengelolanya lihat Mulai Cepat Ruang

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)

Luncurkan komposit

startCallComposite Di dalam fungsi, panggil launch instansCallComposite:

callComposite?.launch(remoteOptions: remoteOptions)

Berlangganan Peristiwa

Anda dapat menerapkan penutupan untuk bertindak pada peristiwa komposit. ErrorCodes berikut mungkin dikirim ke penanganan kesalahan:

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

Contoh berikut menunjukkan peristiwa kesalahan untuk peristiwa komposit yang gagal:

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

Terapkan opsi tema

Untuk menyesuaikan pengalaman komunikasi di aplikasi Anda, buat opsi tema kustom yang mengimplementasikan ThemeOptions protokol. Sertakan instans kelas baru di CallCompositeOptions:

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

Untuk informasi selengkapnya tentang cara kerja tema, lihat panduan tema.

Terapkan opsi pelokalan

Untuk mengubah bahasa dalam komposit, buat opsi pelokalan kustom dan sertakan dalam CallCompositeOptions. Secara default, semua label teks menggunakan string bahasa Inggris (SupportedLocale.en). Anda dapat menggunakan LocalizationOptions untuk mengatur nilai yang berbeda untuk locale. Secara default, Pustaka UI menyertakan sekumpulan locale nilai yang dapat Anda gunakan dengan komponen UI. SupportedLocale.values menyediakan daftar semua bahasa yang didukung.

Dalam contoh berikut, komposit dilokalkan ke Bahasa Prancis (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) 

Untuk informasi selengkapnya tentang pelokalan dan untuk daftar bahasa yang didukung, lihat panduan pelokalan.

Berlangganan peristiwa perubahan status panggilan CallComposite

Anda dapat menerapkan penutupan untuk bertindak pada peristiwa komposit. Status panggilan akan dikirim ke penangan perubahan status panggilan.

Contoh berikut menunjukkan peristiwa untuk status panggilan yang diubah.

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

Menutup CallComposite dan berlangganan peristiwa yang dihentikan

Untuk menutup CallComposite, panggil dismiss. Peristiwa pengabaian berikut dikirim pada komposit panggilan yang dihentikan:

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

callComposite.dismiss()

Menambahkan pemberitahuan ke aplikasi seluler Anda

Azure Communication Services terintegrasi dengan Azure Event Grid dan Azure Notification Hubs, sehingga Anda dapat menambahkan pemberitahuan push ke aplikasi Anda di Azure. Anda dapat menggunakan pemberitahuan push untuk mengirim informasi dari aplikasi Anda ke perangkat seluler pengguna. Pemberitahuan push dapat menampilkan dialog, memutar suara, atau menampilkan UI panggilan masuk.

Membersihkan sumber daya

Jika ingin membersihkan dan menghapus langganan Azure Communication Services, Anda bisa menghapus sumber daya atau grup sumber daya.

Menghapus grup sumber daya juga menghapus sumber daya apa pun yang terkait dengannya.

Pelajari selengkapnya tentang membersihkan sumber daya.