Anzeige des Anruftranskriptionstatus auf dem Client
Hinweis
Der Anruftranskriptionsstatus ist nur in Teams-Besprechungen verfügbar. Derzeit gibt es keine Unterstützung für den Anruftranskriptionsstatus für Azure Communication Services für Azure Communication Services-Anrufe.
Wenn Sie die Anruftranskription verwenden, möchten Sie Ihre Benutzer vielleicht wissen lassen, dass ein Anruf gerade transkribiert wird. Gehen Sie folgendermaßen vor:
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Eine bereitgestellte Communication Services-Ressource. Erstellen Sie eine Communication Services-Ressource.
- Ein Benutzerzugriffstoken zum Aktivieren des Anrufclients. Weitere Informationen finden Sie unter Erstellen und Verwalten von Zugriffstoken.
- Optional: Arbeiten Sie den Schnellstart zum Hinzufügen von Sprachanrufen zu Ihrer Anwendung durch.
Das SDK installieren
Suchen Sie die Datei „build.gradle“ auf Projektebene, und fügen Sie mavenCentral()
zur Liste der Repositorys unter buildscript
und allprojects
hinzu.
buildscript {
repositories {
...
mavenCentral()
...
}
}
allprojects {
repositories {
...
mavenCentral()
...
}
}
Fügen Sie dann in der Datei „build.gradle“ auf Modulebene die folgenden Zeilen zum Abschnitt „dependencies“ hinzu.
dependencies {
...
implementation 'com.azure.android:azure-communication-calling:1.0.0'
...
}
Initialisieren der erforderlichen Objekte
Zum Erstellen einer CallAgent
-Instanz müssen Sie die createCallAgent
-Methode für eine CallClient
-Instanz aufzurufen. Dadurch wird ein CallAgent
-Instanzobjekt asynchron zurückgegeben.
Die createCallAgent
-Methode verwendet CommunicationUserCredential
als Argument, womit ein Zugriffstoken gekapselt wird.
Für den Zugriff auf DeviceManager
muss zuerst eine CallAgent-Instanz erstellt werden. Anschließend können Sie mit der CallClient.getDeviceManager
-Methode DeviceManager abrufen.
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();
Zum Festlegen eines Anzeigenamens für den Anrufer verwenden Sie diese alternative Methode:
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();
Warnung
Bis zur Version 1.1.0 und der Betaversion 1.1.0-beta.1 des Azure Communication Services Calling Android SDK sind isTranscriptionActive
und addOnIsTranscriptionActiveChangedListener
Teil des Call
-Objekts. Für die neuen Betaversionen wurden diese APIs als erweitertes Feature von Call
verschoben, wie unten beschrieben.
Die Anruftranskription ist ein erweitertes Feature des zentralen Call
-Objekts. Sie müssen zunächst das Objekt des Transkriptionsfeatures abrufen:
TranscriptionCallFeature callTranscriptionFeature = call.feature(Features.TRANSCRIPTION);
Um anschließend herauszufinden, ob der Anruf transkribiert wird, prüfen Sie die Eigenschaft isTranscriptionActive
von callTranscriptionFeature
. Er gibt boolean
zurück.
boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();
Sie können auch Transkriptionsänderungen abonnieren:
private void handleCallOnIsTranscriptionChanged(PropertyChangedEvent args) {
boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();
}
callTranscriptionFeature.addOnIsTranscriptionActiveChangedListener(handleCallOnIsTranscriptionChanged);
Einrichten des Systems
Erstellen des Xcode-Projekts
Erstellen Sie in Xcode ein neues iOS-Projekt, und wählen Sie die Vorlage Single View App (Einzelansicht-App) aus. In dieser Schnellstartanleitung wird das SwiftUI-Framework verwendet. Legen Sie daher Language (Sprache) auf Swift und User Interface (Benutzeroberfläche) auf SwiftUI fest.
Während dieses Schnellstarts werden keine Komponenten- oder Benutzeroberflächentests erstellt. Die Textfelder Include Unit Tests (Komponententests einbeziehen) und Include UI Tests (Benutzeroberflächentests einbeziehen) können daher geleert werden.
Installieren des Pakets und der Abhängigkeiten mit CocoaPods
Erstellen Sie wie folgt eine Podfile für die Anwendung:
platform :ios, '13.0' use_frameworks! target 'AzureCommunicationCallingSample' do pod 'AzureCommunicationCalling', '~> 1.0.0' end
Führen Sie
pod install
aus.Öffnen Sie
.xcworkspace
mit Xcode.
Anfordern des Zugriffs auf das Mikrofon
Um auf das Mikrofon des Geräts zugreifen zu können, müssen Sie die Liste der Informationseigenschaften Ihrer App mit NSMicrophoneUsageDescription
aktualisieren. Legen Sie den zugehörigen Wert auf eine Zeichenfolge (string
) fest. Diese wird in das Dialogfeld eingeschlossen, mit dem das System Zugriff vom Benutzer anfordert.
Klicken Sie mit der rechten Maustaste auf den Eintrag Info.plist
der Projektstruktur, und wählen Sie anschließend Open As (Öffnen als) >Source Code (Quellcode) aus. Fügen Sie im Abschnitt <dict>
der obersten Ebene die folgenden Zeilen hinzu, und speichern Sie dann die Datei.
<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>
Einrichten des App-Frameworks
Öffnen Sie die Datei ContentView.swift Ihres Projekts, und fügen Sie am Anfang der Datei eine Deklaration vom Typ import
hinzu, um die Bibliothek AzureCommunicationCalling
zu importieren. Importieren Sie außerdem AVFoundation
. Dies ist für Audioberechtigungsanforderungen im Code erforderlich.
import AzureCommunicationCalling
import AVFoundation
Initialisieren von „CallAgent“
Um eine CallAgent
-Instanz auf der Grundlage von CallClient
zu erstellen, müssen Sie eine Methode vom Typ callClient.createCallAgent
verwenden, die asynchron ein Objekt vom Typ CallAgent
zurückgibt, nachdem es initialisiert wurde.
Für die Erstellung eines Anrufclients muss ein Objekt vom Typ CommunicationTokenCredential
übergeben werden.
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)
}
Übergeben Sie das von Ihnen erstellte Objekt vom Typ CommunicationTokenCredential
an CallClient
, und legen Sie den Anzeigenamen fest.
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")
}
})
Warnung
Bis zur Version 1.1.0 und der Betaversion 1.1.0-beta.1 des Azure Communication Services Calling iOS SDK wird isTranscriptionActive
als Teil des Call
-Objekts verwendet und didChangeTranscriptionState
ist Teil des CallDelegate
-Delegaten. Für die neuen Betaversionen wurden diese APIs als erweitertes Feature von Call
verschoben, wie unten beschrieben.
Die Anruftranskription ist ein erweitertes Feature des zentralen Call
-Objekts. Sie müssen zunächst das Objekt des Transkriptionsfeatures abrufen:
let callTranscriptionFeature = call.feature(Features.transcription)
Um anschließend herauszufinden, ob der Anruf transkribiert wird, prüfen Sie die Eigenschaft isTranscriptionActive
von callTranscriptionFeature
. Er gibt Bool
zurück.
let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive;
Sie können die Transkriptionsänderungen auch abonnieren, indem Sie den TranscriptionCallFeatureDelegate
-Delegaten für Ihre Klasse mit dem Ereignis didChangeTranscriptionState
implementieren:
callTranscriptionFeature.delegate = self
// didChangeTranscriptionState is a member of TranscriptionCallFeatureDelegate
public func transcriptionCallFeature(_ transcriptionCallFeature: TranscriptionCallFeature, didChangeTranscriptionState args: PropertyChangedEventArgs) {
let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive
}
Einrichten
Erstellen des Visual Studio-Projekts
Erstellen Sie für UWP-Apps in Visual Studio 2022 ein neues Blank App (Universal Windows)
Projekt. Nach der Eingabe des Projektnamens können Sie ein beliebiges Windows SDK mit einer höheren Version als 10.0.17763.0
auswählen.
Erstellen Sie für die WinUI 3-App ein neues Projekt mit der Blank App, Packaged (WinUI 3 in Desktop)
-Vorlage, um eine WinUI 3-App auf einer einzelnen Seite einzurichten. Windows App SDK Version 1.3 und höher ist erforderlich.
Installieren des Pakets und der Abhängigkeiten mit dem NuGet-Paket-Manager
Die Calling SDK-APIs und -Bibliotheken sind über ein NuGet-Paket öffentlich verfügbar. In den folgenden Schritten wird veranschaulicht, wie Sie das NuGet-Paket für das Calling SDK suchen, herunterladen und installieren.
- Öffnen des NuGet-Paket-Managers (
Tools
->NuGet Package Manager
->Manage NuGet Packages for Solution
) - Klicken Sie auf
Browse
, und geben Sie dannAzure.Communication.Calling.WindowsClient
in das Suchfeld ein. - Stellen Sie sicher, dass das Kontrollkästchen
Include prerelease
aktiviert ist. - Klicken Sie auf das
Azure.Communication.Calling.WindowsClient
Paket, wählen SieAzure.Communication.Calling.WindowsClient
"1.4.0-beta.1 " oder "neuere Version" aus. - Aktivieren Sie auf der rechten Registerkarte das Kontrollkästchen, das dem CS-Projekt entspricht.
- Klicken Sie auf die Schaltfläche
Install
.
Die Anruftranskription ist ein erweitertes Feature des zentralen Call
-Objekts. Sie müssen zunächst das Objekt des Transkriptionsfeatures abrufen:
TranscriptionCallFeature transcriptionFeature = call.Features.Transcription;
Um anschließend herauszufinden, ob der Anruf transkribiert wird, prüfen Sie die Eigenschaft IsTranscriptionActive
von transcriptionFeature
. Er gibt boolean
zurück.
boolean isTranscriptionActive = transcriptionFeature.isTranscriptionActive;
Sie können auch Transkriptionsänderungen abonnieren:
private async void Call__OnIsTranscriptionActiveChanged(object sender, PropertyChangedEventArgs args)
boolean isTranscriptionActive = transcriptionFeature.IsTranscriptionActive();
}
transcriptionFeature.IsTranscriptionActiveChanged += Call__OnIsTranscriptionActiveChanged;