Menampilkan status transkripsi panggilan pada klien

Penting

Fungsionalitas yang dijelaskan dalam dokumen ini saat ini berada dalam pratinjau publik. Versi pratinjau ini disediakan tanpa perjanjian tingkat layanan, dan tidak disarankan untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Saat menggunakan transkripsi panggilan, Anda mungkin ingin memberi tahu pengguna bahwa panggilan sedang ditranskripsi. Berikut caranya.

Prasyarat

Memasang SDK

Temukan build.gradle tingkat proyek Anda dan pastikan untuk menambahkan mavenCentral() ke daftar repositori di bawah buildscript dan allprojects

buildscript {
    repositories {
    ...
        mavenCentral()
    ...
    }
}
allprojects {
    repositories {
    ...
        mavenCentral()
    ...
    }
}

Kemudian, di level modul build.gradle tambahkan baris berikut ke bagian dependensi

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

Menginisialisasi objek yang diperlukan

Untuk membuat instans CallAgent, Anda harus memanggil metode createCallAgent pada instans CallClient. Ini secara asinkron mengembalikan objek instans CallAgent. Metode createCallAgent mengambil CommunicationUserCredential sebagai argumen, yang merangkum token akses. Untuk mengakses DeviceManager, instans callAgent harus dibuat terlebih dahulu, kemudian Anda dapat menggunakan metode CallClient.getDeviceManager untuk mendapatkan DeviceManager.

String userToken = '<user token>';
CallClient callClient = new CallClient();
CommunicationTokenCredential tokenCredential = new CommunicationTokenCredential(userToken);
android.content.Context appContext = this.getApplicationContext(); // From within an Activity for instance
CallAgent callAgent = callClient.createCallAgent(appContext, tokenCredential).get();
DeviceManager deviceManager = callClient.getDeviceManager(appContext).get();

Untuk mengatur nama tampilan penelepon, gunakan metode alternatif ini:

String userToken = '<user token>';
CallClient callClient = new CallClient();
CommunicationTokenCredential tokenCredential = new CommunicationTokenCredential(userToken);
android.content.Context appContext = this.getApplicationContext(); // From within an Activity for instance
CallAgentOptions callAgentOptions = new CallAgentOptions();
callAgentOptions.setDisplayName("Alice Bob");
DeviceManager deviceManager = callClient.getDeviceManager(appContext).get();
CallAgent callAgent = callClient.createCallAgent(appContext, tokenCredential, callAgentOptions).get();

Peringatan

Hingga versi 1.1.0 dan rilis beta versi 1.1.0-beta.1 dari Azure Communication Services Calling Android SDK memiliki isTranscriptionActive dan addOnIsTranscriptionActiveChangedListener merupakan bagian Call dari objek . Untuk rilis beta baru, API tersebut telah dipindahkan sebagai fitur perluasan Call seperti yang dijelaskan berikut.

Catatan

API ini disediakan sebagai pratinjau untuk pengembang dan dapat berubah menurut umpan balik yang kami terima. Jangan gunakan API ini dalam lingkungan produksi. Untuk menggunakan api ini, silakan gunakan rilis 'beta' dari Azure Communication Services Memanggil Android SDK

Transkripsi panggilan adalah fitur yang diperluas dari objek inti Call . Anda harus terlebih dahulu mendapatkan objek fitur transkripsi:

TranscriptionCallFeature callTranscriptionFeature = call.feature(Features.TRANSCRIPTION);

Kemudian, untuk memeriksa apakah panggilan sedang ditranskripsi, periksa properti isTranscriptionActive dari callTranscriptionFeature. Hal ini mengembalikan boolean.

boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();

Anda juga dapat berlangganan perubahan transkripsi:

private void handleCallOnIsTranscriptionChanged(PropertyChangedEvent args) {
    boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();
}

callTranscriptionFeature.addOnIsTranscriptionActiveChangedListener(handleCallOnIsTranscriptionChanged);

Siapkan sistem Anda

Buat proyek Xcode

Di Xcode, buat proyek iOS baru dan pilih templat Single View App. Tutorial ini menggunakan kerangka kerja SwiftUI, jadi Anda harus mengatur Bahasa pemrograman ke Swift dan Antarmuka Pengguna ke SwiftUI.

Anda tidak akan membuat tes unit selama proses mulai cepat ini. Jangan ragu untuk menghapus kotak teks Sertakan Tes Unit dan Sertakan Tes UI.

Screenshot that shows the window for creating a project within Xcode.

Menginstal paket dan dependensi dengan CocoaPods

  1. Buat Podfile untuk aplikasi Anda, seperti ini:

    platform :ios, '13.0'
    use_frameworks!
    target 'AzureCommunicationCallingSample' do
        pod 'AzureCommunicationCalling', '~> 1.0.0'
    end
    
  2. Jalankan pod install.

  3. Buka .xcworkspace dengan Xcode.

Meminta akses ke mikrofon

Untuk mengakses mikrofon perangkat, Anda perlu memperbarui daftar properti informasi aplikasi Anda dengan NSMicrophoneUsageDescription. Anda mengatur nilai yang terkait ke string yang akan disertakan dalam dialog yang digunakan sistem untuk meminta akses dari pengguna.

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

<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>

Siapkan kerangka kerja aplikasi

Buka file ContentView.swift proyek Anda dan tambahkan import deklarasi ke bagian atas file untuk diimpor ke AzureCommunicationCalling pustaka. Selain itu, impor AVFoundation. Anda akan memerlukannya untuk permintaan izin audio dalam kode.

import AzureCommunicationCalling
import AVFoundation

Inisialisasi CallAgent

Untuk membuat CallAgent instans dari CallClient, Anda harus menggunakan callClient.createCallAgent metode yang secara asinkron mengembalikan CallAgent objek setelah diinisialisasi.

Untuk membuat klien panggilan, Anda harus meneruskan CommunicationTokenCredential objek.

import AzureCommunication

let tokenString = "token_string"
var userCredential: CommunicationTokenCredential?
do {
    let options = CommunicationTokenRefreshOptions(initialToken: token, refreshProactively: true, tokenRefresher: self.fetchTokenSync)
    userCredential = try CommunicationTokenCredential(withOptions: options)
} catch {
    updates("Couldn't created Credential object", false)
    initializationDispatchGroup!.leave()
    return
}

// tokenProvider needs to be implemented by Contoso, which fetches a new token
public func fetchTokenSync(then onCompletion: TokenRefreshOnCompletion) {
    let newToken = self.tokenProvider!.fetchNewToken()
    onCompletion(newToken, nil)
}

Berikan CommunicationTokenCredential objek yang Anda buat ke CallClient, dan atur nama tampilan.

self.callClient = CallClient()
let callAgentOptions = CallAgentOptions()
options.displayName = " iOS Azure Communication Services User"

self.callClient!.createCallAgent(userCredential: userCredential!,
    options: callAgentOptions) { (callAgent, error) in
        if error == nil {
            print("Create agent succeeded")
            self.callAgent = callAgent
        } else {
            print("Create agent failed")
        }
})

Peringatan

Hingga versi 1.1.0 dan rilis beta versi 1.1.0-beta.1 dari Azure Communication Services Memanggil iOS SDK memiliki isTranscriptionActive sebagai bagian Call dari objek dan didChangeTranscriptionState merupakan bagian CallDelegate dari delegasi. Untuk rilis beta baru, API tersebut telah dipindahkan sebagai fitur perluasan Call seperti yang dijelaskan berikut.

Catatan

API ini disediakan sebagai pratinjau untuk pengembang dan dapat berubah menurut umpan balik yang kami terima. Jangan gunakan API ini dalam lingkungan produksi. Untuk menggunakan api ini, gunakan rilis 'beta' Azure Communication Services Memanggil iOS SDK

Transkripsi panggilan adalah fitur yang diperluas dari objek inti Call . Anda harus terlebih dahulu mendapatkan objek fitur transkripsi:

let callTranscriptionFeature = call.feature(Features.transcription)

Kemudian, untuk memeriksa apakah panggilan ditranskrip, periksa properti isTranscriptionActivecallTranscriptionFeature. Hal ini mengembalikan Bool.

let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive;

Anda juga dapat berlangganan perubahan transkripsi dengan menerapkan delegasi TranscriptionCallFeatureDelegate di kelas Anda dengan peristiwa didChangeTranscriptionState:

callTranscriptionFeature.delegate = self

// didChangeTranscriptionState is a member of TranscriptionCallFeatureDelegate
public func transcriptionCallFeature(_ transcriptionCallFeature: TranscriptionCallFeature, didChangeTranscriptionState args: PropertyChangedEventArgs) {
    let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive
}

Langkah berikutnya