Aracılığıyla paylaş


Hızlı Başlangıç: Kullanıcı Arabirimi Kitaplığı'yla çalışmaya başlama

İletişim deneyimlerini uygulamalarınızla hızla tümleştirmek için Azure İletişim Hizmetleri kullanıcı arabirimi kitaplığını kullanmaya başlayın. Bu hızlı başlangıçta UI Kitaplığı bileşiklerini bir uygulamayla tümleştirmeyi ve uygulama kullanıcılarınız için deneyimi ayarlamayı öğrenin.

İletişim Hizmetleri Kullanıcı Arabirimi Kitaplığı, doğrudan uygulamanızda tam bir iletişim deneyimi oluşturur. Aramaya bağlanmayı üstlenir ve kullanıcının arka planda aramaya katılımını ayarlar. Geliştirici olarak, uygulamanızın kullanıcı deneyiminde iletişim deneyiminin nerede başlatılmasını istediğiniz konusunda endişelenmeniz gerekir. Bileşik, kullanıcıyı cihazlarını ayarlama, aramaya katılma ve buna katılma ve diğer katılımcıları işleme yoluyla alır.

Genel bakış için bu videoya bakın:

Dekont

Web Kullanıcı Arabirimi Kitaplığı hakkında ayrıntılı belgeler ve hızlı başlangıçlar için Web UI Kitaplığı Hikaye Kitabı'nı ziyaret edin.

Ön koşullar

Aşağıdaki hızlı başlangıçlara erişebilirsiniz

Android için açık kaynak Azure İletişim Hizmetleri Kullanıcı Arabirimi Kitaplığı'nda bu hızlı başlangıç için örnek Android uygulamasını edinin.

Ön koşullar

Projeyi ayarlama

Hızlı başlangıç projesini ayarlamak için aşağıdaki bölümleri tamamlayın.

Yeni bir Android projesi oluşturma

Android Studio'da yeni bir proje oluşturun:

  1. Dosya menüsünde Yeni Yeni Proje'yi> seçin.

  2. Yeni Proje'de Boş Etkinlik proje şablonunu seçin.

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

  3. İleri’yi seçin.

  4. Boş Etkinlik bölümünde projeyi UILibraryQuickStart olarak adlandırın. Dil için Java/Kotlin'i seçin. En düşük SDK için API 21: Android 5.0 (Lollipop) veya üzerini seçin.

  5. Son'u seçin.

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

Paketleri yükleme

Gerekli uygulama paketlerini yüklemek için aşağıdaki bölümleri tamamlayın.

Bağımlılık ekleme

Uygulama düzeyi UILibraryQuickStart/app/build.gradle dosyanıza (uygulama klasöründe) aşağıdaki bağımlılığı ekleyin:

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

Maven depoları ekleme

Kitaplığı tümleştirmek için iki Maven deposu gerekir:

  • MavenCentral
  • Azure paket deposu

Depoları eklemek için:

  1. Proje Gradle betiklerinize aşağıdaki depoların eklendiğinden emin olun. Android Studio için (2020.*), repositories altında dependencyResolutionManagement(Gradle version 6.8 or greater)içindedirsettings.gradle. Android Studio'nun önceki sürümleri için (4.*), repositories altında allprojects{}proje düzeyindedirbuild.gradle.

    // dependencyResolutionManagement
    repositories {
        ...
        mavenCentral()
        maven {
            url "https://pkgs.dev.azure.com/MicrosoftDeviceSDK/DuoSDK-Public/_packaging/Duo-SDK-Feed/maven/v1"
        }
        ...
    }
    
  2. Projenizi Gradle dosyalarıyla eşitleyin. Projeyi eşitlemek için Dosya menüsünde Projeyi Gradle Dosyalarıyla Eşitle'yi seçin.

Activity_main.xml dosyasına düğme ekleme

app/src/main/res/layout/activity_main.xml düzen dosyasına aşağıdaki kodu ekleyerek bileşik uygulamayı başlatacak bir düğme oluşturun:

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

Bileşik başlatma

Bileşikleri başlatmak için:

  1. Şuraya git: MainActivity.

  2. Bileşik bileşenlerinizi çağırmak üzere başlatmak için aşağıdaki kodu ekleyin. öğesini aramanızın grup kimliğiyle değiştirin "GROUP_CALL_ID" . değerini adınız ile değiştirin "DISPLAY_NAME" . değerini belirtecinizle değiştirin "USER_ACCESS_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"
    }
}

Kodu çalıştırma

Android Studio'da uygulamayı derleyin ve başlatın:

  1. Başlat'ı seçin.
  2. İzinleri kabul edin ve ardından cihaz, mikrofon ve video ayarlarını seçin.
  3. Aramaya katıl'ı seçin.

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

Nesne modeli

Aşağıdaki sınıflar ve arabirimler, Azure İletişim Hizmetleri Android kullanıcı arabiriminin bazı önemli özelliklerini işler:

Ad Tanım
CallComposite Katılımcı galerisi ve denetimleriyle çağrı deneyimini işleyen bileşik bileşen
CallCompositeBuilder Seçeneklerle derleyen CallComposite oluşturucu
CallCompositeJoinMeetingLocator Grup araması başlatmak için geçişli CallComposite başlatma
CallCompositeTeamsMeetingLinkLocator Microsoft Teams toplantısına CallComposite katılmak için başlatmaya geçirildi
CallCompositeLocalizationOptions Bileşik dili ayarlamak için isteğe CallCompositeBuilder bağlı olarak eklendi

UI Kitaplığı işlevselliği

Android uygulamanız için temel iletişim özellikleri oluşturmak için kodu alın.

CallComposite Oluşturma

oluşturmak CallCompositeiçin işlevinin startCallComposite içinde bir CallCompositeBuilder örneği ve örneği CallComposite başlatın.

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

Kimlik doğrulaması kurulumu

Kimlik doğrulamasını ayarlamak için işlevinin startCallComposite içinde bir CommunicationTokenCredential örnek başlatın. değerini erişim belirtecinizle değiştirin "USER_ACCESS_TOKEN" .

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

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

val communicationTokenCredential = CommunicationTokenCredential(communicationTokenRefreshOptions)

Grup araması ayarlama

Grup çağrısı ayarlamak için bir CallCompositeGroupCallLocator başlatın ve bunu nesnesine CallCompositeRemoteOptions sağlayın.

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

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

Teams toplantısı ayarlama

Microsoft Teams toplantısı ayarlamak için bir CallCompositeTeamsMeetingLinkLocator başlatın ve bunu nesnesine CallCompositeRemoteOptions sağlayın.

val locator = CallCompositeTeamsMeetingLinkLocator("TEAMS_MEETING_LINK")

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

Rooms araması ayarlama

Önemli

Azure İletişim Hizmetleri'nin bu özelliği şu anda önizleme aşamasındadır.

Önizleme API'leri ve SDK'ları hizmet düzeyi sözleşmesi olmadan sağlanır. Bunları üretim iş yükleri için kullanmamanızı öneririz. Bazı özellikler desteklenmeyebilir veya kısıtlı özelliklere sahip olabilir.

Daha fazla bilgi için Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları'nı gözden geçirin.

Azure İletişim Hizmetleri Rooms çağrısı ayarlamak için bir CallCompositeRoomLocatorbaşlatın, bunu nesnesine CallCompositeRemoteOptions sağlayın ve değerine setRoleHint()ayarlayın CallCompositeParticipantRoleCallCompositeLocalOptions. CallComposite çağrısına bağlanmadan önce rol ipucunu kullanır. Çağrı bağlandıktan sonra, gerçek güncel katılımcı rolü Azure İletişim Hizmetleri alınır.

Odalar hakkında daha fazla bilgi için bkz. Odalar Hızlı Başlangıcı

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)

Bileşik başlatma

Çağrı kullanıcı arabirimini başlatmak için işlevinin startCallComposite içinde örnekte çağrısı launch oluşturun CallComposite .

callComposite.launch(context, remoteOptions)

CallComposite hata olaylarına abone olma

Hata olaylarını almak için ile CallCompositeçağrısında bulunursetOnErrorHandler.

Hata işleyicisine aşağıdaki errorCode değerler gönderilebilir:

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

Aşağıdaki örnekte, başarısız bileşik olay için bir hata olayı gösterilmektedir.

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

Tema yapılandırması uygulama

Bileşik bileşenin birincil rengini değiştirmek için, üst tema olarak kullanarak AzureCommunicationUICalling.Theme src/main/res/values/themes.xml ve src/main/res/values-night/themes.xml içinde yeni bir tema stili oluşturun. Temayı uygulamak için, içinde tema kimliğini CallCompositeBuilderekleyin:

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

Yerelleştirme yapılandırması uygulama

Bileşik dili değiştirmek için ile Localeoluşturmak CallCompositeLocalizationOptions için kullanınCallCompositeSupportedLocale. Dil uygulamak için yerelleştirme yapılandırmasını 'ye CallCompositeBuilderekleme. Varsayılan olarak, tüm metin etiketleri İngilizce (en) dizeleri kullanır. için farklı bir değer ayarlamak için languagekullanabilirsinizCallCompositeLocalizationOptions. Varsayılan olarak, KULLANıCı Arabirimi Kitaplığı, kullanıcı arabirimi bileşenleriyle kullanabileceğiniz bir değer kümesi language içerir. CallCompositeSupportedLocale desteklenen yerel ayarları sağlar. Örneğin, İngilizce yerel ayarına erişmek için kullanabilirsiniz CallCompositeSupportedLocale.EN. CallCompositeSupportedLocale.getSupportedLocales() desteklenen diller için yerel ayar nesnelerinin listesini sağlar.

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

CallComposite çağrı durumu değiştirildi olayına abone olma

Çağrı durumu değiştirilmiş olayları almak için ile CallCompositeçağrısında addOnCallStateChangedEventHandler bulunur.

Aşağıdaki örnekte, çağrı durumunun değiştiği bir olay gösterilmektedir.

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

CallComposite'ı kapatma ve kapatılan olaya abone olma

Kapatmayı almak için ile CallCompositeçağrısında bulunuraddOnDismissedEventHandler. CallComposite'ı kapatmak için öğesini arayın dismiss.

Aşağıdaki örnekte, çağrı durumunun değiştiği bir olay gösterilmektedir.

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

callComposite.dismiss()

Diğer özellikler

Kullanım örnekleri listesinde daha fazla özellik hakkında ayrıntılı bilgiler bulunur.

Mobil uygulamanıza bildirim ekleme

Azure İletişim Hizmetleri ile tümleşirAzure Event Grid ve Azure Notification Hubs ile Azure uygulamalarınıza anında iletme bildirimleri ekleyebilirsiniz. Uygulamanızdaki bilgileri kullanıcıların mobil cihazlarına göndermek için anında iletme bildirimlerini kullanabilirsiniz. Anında iletme bildirimi bir iletişim kutusu gösterebilir, ses çalabilir veya gelen arama kullanıcı arabirimini görüntüleyebilir.

Bu hızlı başlangıç için iOS için açık kaynak Azure İletişim Hizmetleri Kullanıcı Arabirimi Kitaplığı'nda örnek iOS uygulamasını alın.

Ön koşullar

Projeyi ayarlama

Hızlı başlangıç projesini ayarlamak için aşağıdaki bölümleri tamamlayın.

Yeni bir Xcode projesi oluşturma

Xcode'da yeni bir proje oluşturun:

  1. Dosya menüsünde Yeni Proje'yi> seçin.

  2. Yeni projeniz için şablon seçin bölümünde iOS platformunu ve ardından Uygulama uygulaması şablonunu seçin. Hızlı başlangıçta UIKit görsel taslakları kullanılır. Hızlı başlangıçta testler oluşturulmaz, bu nedenle Testleri Dahil Et onay kutusunu temizleyebilirsiniz.

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

  3. Yeni projeniz için seçenekleri seçin alanına ürün adı olarak UILibraryQuickStart girin. Arabirim için Görsel Taslak'ı seçin.

    Screenshot that shows setting new project options in Xcode.

Paketi ve bağımlılıkları yükleme

  1. (İsteğe bağlı) M1 yüklü MacBook için, Xcode'da Rosetta'yı yükleyin ve etkinleştirin.

  2. Proje kök dizininizde bir Podfile oluşturmak için komutunu çalıştırın pod init . Hatayla karşılaşırsanız CocoaPods'ı geçerli sürüme güncelleştirin.

  3. Podfile'ınıza aşağıdaki kodu ekleyin. değerini proje adınız ile değiştirin UILibraryQuickStart .

    platform :ios, '15.0'
    
    target 'UILibraryQuickStart' do
        use_frameworks!
        pod 'AzureCommunicationUICalling'
    end
    
  4. pod install --repo-update öğesini çalıştırın.

  5. Xcode'da, oluşturulan .xcworkspace dosyasını açın.

Cihaz donanımına erişim isteme

Mikrofon ve kamera dahil olmak üzere cihazın donanımına erişmek için uygulamanızın bilgi özellik listesini güncelleştirin. İlişkili değeri, sistemin kullanıcıdan erişim istemek için kullandığı iletişim kutusuna eklenmiş bir dize olarak ayarlayın.

  1. Proje ağacının girdisine Info.plist sağ tıklayın ve Kaynak Kodu Olarak>Aç'ı seçin. Aşağıdaki satırları en üst düzey <dict> bölüme ekleyin ve dosyayı kaydedin.

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

    Xcode dosyasındaki kaynak kodun Info.plist bir örneği aşağıda verilmiştir:

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

  2. Cihaz izin isteklerinin doğru eklendiğini doğrulamak için Özellik Listesi Olarak>Aç'ı seçin. Bilgi özellik listesinin aşağıdaki örneğe benzer olup olmadığını denetleyin:

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

Bitcode'u kapatma

Xcode projesinde, Derleme Ayarlar altında Bit Kodunu Etkinleştir seçeneğini Hayır olarak ayarlayın. Ayarı bulmak için Temel olan filtreyi Tümü olarak değiştirin veya arama çubuğunu kullanın.

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

Bileşik başlatma

Bileşikleri başlatmak için:

  1. Şuraya git: ViewController.

  2. Bir çağrı için bileşik bileşenlerinizi başlatmak için aşağıdaki kodu ekleyin. öğesini, aramanızın grup kimliğiyle veya çağrısı için bir grup kimliği oluşturmak için ile UUID() değiştirin<GROUP_CALL_ID>. değerini adınız ile değiştirin <DISPLAY_NAME> . (için <DISPLAY_NAME> dize uzunluğu sınırı 256 karakterdir.) değerini erişim belirtecinizle değiştirin <USER_ACCESS_TOKEN> .

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

Kodu çalıştırma

Uygulamanızı iOS simülatöründe derlemek ve çalıştırmak için Ürün>Çalıştırma'yı seçin veya (⌘-R) klavye kısayolunu kullanın. Ardından simülatördeki arama deneyimini deneyin:

  1. Deneyimi Başlat'ı seçin.

  2. Ses izinlerini kabul edin ve ardından cihaz, mikrofon ve video ayarlarını seçin.

  3. Aramayı başlat'ı seçin.

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

Nesne modeli

Aşağıdaki sınıflar ve arabirimler, Azure İletişim Hizmetleri UI istemci kitaplığının bazı temel özelliklerini işler:

Ad Tanım
CallComposite Katılımcı galerisi ve denetimleri olan bir arama deneyimini işleyen bileşen
CallCompositeOptions Temalar ve olay işleme gibi seçenekler için Ayarlar
RemoteOptions Grup aramasına veya Teams toplantısına katılmak için Azure İletişim Hizmetleri göndermek için uzak seçenekler.
ThemeOptions Bileşik tema için özelleştirme seçenekleri
LocalizationOptions Bileşik için dil seçenekleri

UI Kitaplığı işlevselliği

iOS uygulamanız için temel iletişim özellikleri oluşturmaya yönelik kodu alın.

CallComposite Oluşturma

CallCompositeoluşturmak için işlevinin startCallComposite içinde bir CallCompositeOptions örneği ve örneği CallComposite başlatın:

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

    callComposite = CallComposite(withOptions: callCompositeOptions)
}

Kimlik doğrulaması kurulumu

Kimlik doğrulamasını ayarlamak için işlevinin startCallComposite içinde bir CommunicationTokenCredential örnek başlatın. değerini erişim belirtecinizle değiştirin <USER_ACCESS_TOKEN> .

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

Henüz erişim belirteciniz yoksa bir Azure İletişim Hizmetleri erişim belirteci oluşturun.

Grup araması ayarlama

Grup çağrısı ayarlamak için işlevinin startCallComposite içinde bulucu için .groupCall bir RemoteOptions örnek başlatın. öğesini aramanızın grup kimliğiyle değiştirin <GROUP_CALL_ID> . değerini adınız ile değiştirin <DISPLAY_NAME> .

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

Aramalar için grup kimliği kullanma hakkında daha fazla bilgi için bkz . Aramaları yönetme.

Teams toplantısı ayarlama

Microsoft Teams toplantısı ayarlamak için işlevinin startCallComposite içinde bulucu için .teamsMeeting bir RemoteOptions örnek başlatın. öğesini aramanızın Teams toplantı bağlantısıyla değiştirin <TEAMS_MEETING_LINK> . değerini adınız ile değiştirin <DISPLAY_NAME> .

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

Graph API'lerini kullanarak Microsoft Teams toplantı bağlantısı alabilirsiniz. Bu işlem Graph belgelerinde ayrıntılı olarak anlatılmıştır.

İletişim Hizmetleri Arama SDK'sı tam bir Microsoft Teams toplantı bağlantısını kabul eder. Bu bağlantı, joinWebUrl özelliği altında kaynağın bir parçası onlineMeeting olarak döndürülür. Ayrıca, Teams toplantı davetinin kendisindeki Toplantıya Katıl URL'sinden de gerekli toplantı bilgilerini alabilirsiniz.

Rooms araması ayarlama

Önemli

Azure İletişim Hizmetleri'nin bu özelliği şu anda önizleme aşamasındadır.

Önizleme API'leri ve SDK'ları hizmet düzeyi sözleşmesi olmadan sağlanır. Bunları üretim iş yükleri için kullanmamanızı öneririz. Bazı özellikler desteklenmeyebilir veya kısıtlı özelliklere sahip olabilir.

Daha fazla bilgi için Microsoft Azure Önizlemeleri için Ek Kullanım Koşulları'nı gözden geçirin.

Azure İletişim Hizmetleri Rooms çağrısı ayarlamak için işlevinin startCallComposite içinde bulucu için .roomCall bir RemoteOptions örnek başlatın. öğesini aramanızın Oda Kimliği ile değiştirin <ROOM_ID> . ile roleHintbir LocalOptions örneği başlatın.

değerini adınız ile değiştirin <DISPLAY_NAME> .

CallComposite çağrısına bağlanmadan önce rol ipucunu kullanır. Çağrı bağlandıktan sonra, gerçek güncel katılımcı rolü Azure İletişim Hizmetleri alınır.

Odalar hakkında daha fazla bilgi için bkz. Odalar Hızlı Başlangıcı

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)

Bileşik başlatma

işlevinin startCallComposite içinde örneği çağırın launchCallComposite :

callComposite?.launch(remoteOptions: remoteOptions)

Olaylara abone olma

Bileşik olaylar üzerinde işlem yapmak için kapanışları uygulayabilirsiniz. Hata işleyicisine aşağıdaki errorCodes gönderilebilir:

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

Aşağıdaki örnekte, başarısız bileşik olay için bir hata olayı gösterilmektedir:

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

Tema seçeneklerini uygulama

Uygulamanızdaki iletişim deneyimini özelleştirmek için protokolü uygulayan ThemeOptions özel tema seçenekleri oluşturun. içinde yeni sınıfın CallCompositeOptionsbir örneğini ekleyin:

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

Temalı oluşturmanın nasıl çalıştığı hakkında daha fazla bilgi için, bkz . temalı kılavuz.

Yerelleştirme seçeneklerini uygulama

Bileşikteki dili değiştirmek için özel yerelleştirme seçenekleri oluşturun ve bunları öğesine CallCompositeOptionsekleyin. Varsayılan olarak, tüm metin etiketleri İngilizce (SupportedLocale.en) dizeleri kullanır. için farklı bir değer ayarlamak için localekullanabilirsinizLocalizationOptions. Varsayılan olarak, KULLANıCı Arabirimi Kitaplığı, kullanıcı arabirimi bileşenleriyle kullanabileceğiniz bir değer kümesi locale içerir. SupportedLocale.values desteklenen tüm dillerin listesini sağlar.

Aşağıdaki örnekte bileşik Fransızca (fr) olarak yerelleştirilmiştir:

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

Yerelleştirme hakkında daha fazla bilgi edinmek ve desteklenen dillerin listesi için yerelleştirme kılavuzuna bakın.

CallComposite çağrı durumu değiştirildi olayına abone olma

Bileşik olaylar üzerinde işlem yapmak için kapanışları uygulayabilirsiniz. Çağrı durumları, çağrı durumu değiştirilen işleyiciye gönderilir.

Aşağıdaki örnekte, çağrı durumunun değiştiği bir olay gösterilmektedir.

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

CallComposite'ı kapatma ve kapatılan olaya abone olma

CallComposite'ı kapatmak için öğesini arayın dismiss. Çağrı bileşik kapatıldığında aşağıdaki kapatma olayı gönderilir:

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

callComposite.dismiss()

Mobil uygulamanıza bildirim ekleme

Azure İletişim Hizmetleri ile tümleşirAzure Event Grid ve Azure Notification Hubs ile Azure uygulamalarınıza anında iletme bildirimleri ekleyebilirsiniz. Uygulamanızdaki bilgileri kullanıcıların mobil cihazlarına göndermek için anında iletme bildirimlerini kullanabilirsiniz. Anında iletme bildirimi bir iletişim kutusu gösterebilir, ses çalabilir veya gelen arama kullanıcı arabirimini görüntüleyebilir.

Kaynakları temizleme

İletişim Hizmetleri aboneliğini temizlemek ve kaldırmak istiyorsanız, kaynağı veya kaynak grubunu silebilirsiniz.

Kaynak grubunun silinmesi, kaynak grubuyla ilişkili diğer tüm kaynakları da siler.

Kaynakları temizleme hakkında daha fazla bilgi edinin.