Menampilkan status transkripsi panggilan pada klien
Catatan
Status transkripsi panggilan hanya tersedia dari rapat Teams. Saat ini tidak ada dukungan untuk status transkripsi panggilan untuk panggilan Azure Communication Services ke Azure Communication Services.
Saat menggunakan transkripsi panggilan, Anda mungkin ingin memberi tahu pengguna bahwa panggilan sedang ditranskripsi. Berikut caranya.
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Sumber daya Communication Services yang disebarkan. Buat sumber daya Azure Communication Services.
- Token akses pengguna untuk mengaktifkan klien panggilan. Untuk informasi selengkapnya, lihat Membuat dan mengelola token akses.
- Opsional: Selesaikan panduan memulai cepat untuk menambahkan panggilan suara ke aplikasi Anda
Pasang SDK
Temukan file build.gradle tingkat proyek Anda dan tambahkan mavenCentral()
ke daftar repositori di bawah buildscript
dan allprojects
:
buildscript {
repositories {
...
mavenCentral()
...
}
}
allprojects {
repositories {
...
mavenCentral()
...
}
}
Kemudian, di file build.gradle tingkat modul Anda, tambahkan baris berikut ke bagian dependencies
:
dependencies {
...
implementation 'com.azure.android:azure-communication-calling:1.0.0'
...
}
Menginisialisasi objek yang diperlukan
Untuk membuat CallAgent
instans, Anda harus memanggil createCallAgent
metode pada CallClient
instans. Panggilan ini secara asinkron mengembalikan objek instans CallAgent
.
Metode ini createCallAgent
mengambil CommunicationUserCredential
sebagai argumen, yang merangkum token akses.
Untuk mengakses DeviceManager
, Anda harus membuat instans terlebih callAgent
dahulu. Kemudian Anda dapat menggunakan CallClient.getDeviceManager
metode 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 tambahan dari Call
seperti yang dijelaskan di bawah ini.
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 Aplikasi Tampilan Tunggal. Mulai cepat ini menggunakan kerangka kerja SwiftUI, jadi Anda harus mengatur Bahasa ke Swift dan mengatur Antarmuka ke SwiftUI.
Anda tidak akan membuat pengujian selama mulai cepat ini. Jangan ragu untuk menghapus kotak centang Sertakan Pengujian.
Pasang paket dan dependensi dengan menggunakan CocoaPods
Buat Podfile untuk aplikasi Anda, seperti contoh ini:
platform :ios, '13.0' use_frameworks! target 'AzureCommunicationCallingSample' do pod 'AzureCommunicationCalling', '~> 1.0.0' end
Jalankan
pod install
.Buka
.xcworkspace
dengan menggunakan Xcode.
Minta akses ke mikrofon
Untuk mengakses mikrofon perangkat, Anda perlu memperbarui daftar properti informasi aplikasi dengan menggunakan NSMicrophoneUsageDescription
. Anda mengatur nilai terkait ke string yang akan disertakan dalam dialog yang digunakan sistem untuk meminta akses dari pengguna.
Klik kanan entri Info.plist dari pohon proyek, lalu 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>
Menyiapkan kerangka kerja aplikasi
Buka file ContentView.swift proyek Anda. import
Tambahkan deklarasi ke bagian atas file untuk mengimpor 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, berikan 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)
}
Teruskan 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 Calling 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 tambahan dari Call
seperti yang dijelaskan di bawah ini.
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 isTranscriptionActive
callTranscriptionFeature
. 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
}
Siapkan sistem Anda
Membuat proyek Visual Studio
Untuk aplikasi UWP, di Visual Studio 2022, buat proyek Aplikasi Kosong (Universal Windows) baru. Setelah Anda memasukkan nama proyek, jangan ragu untuk memilih Windows SDK apa pun yang lebih baru dari 10.0.17763.0.
Untuk aplikasi WinUI 3, buat proyek baru dengan templat Aplikasi Kosong, Dipaketkan (WinUI 3 di Desktop) untuk menyiapkan aplikasi WinUI 3 satu halaman. SDK Aplikasi Windows versi 1.3 atau yang lebih baru diperlukan.
Instal paket dan dependensi dengan menggunakan NuGet Package Manager
API dan pustaka SDK Panggilan tersedia untuk umum melalui paket NuGet.
Langkah-langkah berikut ini mencontohkan cara menemukan, mengunduh, dan menginstal paket NuGet SDK Panggilan:
- Buka Manajer Paket NuGet dengan memilih Alat>Pengelola>Paket NuGet Kelola Paket NuGet untuk Solusi.
- Pilih Telusuri, lalu masukkan
Azure.Communication.Calling.WindowsClient
di kotak pencarian. - Pastikan bahwa kotak centang Sertakan prarilis dipilih.
Azure.Communication.Calling.WindowsClient
Pilih paket, lalu pilihAzure.Communication.Calling.WindowsClient
1.4.0-beta.1 atau versi yang lebih baru.- Pilih kotak centang yang sesuai dengan proyek Communication Services di tab sisi kanan.
- Pilih tombol Instal.
Transkripsi panggilan adalah fitur yang diperluas dari objek inti Call
. Anda harus terlebih dahulu mendapatkan objek fitur transkripsi:
TranscriptionCallFeature transcriptionFeature = call.Features.Transcription;
Kemudian, untuk memeriksa apakah panggilan sedang ditranskripsi, periksa properti IsTranscriptionActive
dari transcriptionFeature
. Hal ini mengembalikan boolean
.
boolean isTranscriptionActive = transcriptionFeature.isTranscriptionActive;
Anda juga dapat berlangganan perubahan transkripsi:
private async void Call__OnIsTranscriptionActiveChanged(object sender, PropertyChangedEventArgs args)
boolean isTranscriptionActive = transcriptionFeature.IsTranscriptionActive();
}
transcriptionFeature.IsTranscriptionActiveChanged += Call__OnIsTranscriptionActiveChanged;