Visualizzare lo stato di trascrizione delle chiamate nel client
Nota
Lo stato di trascrizione delle chiamate è disponibile solo nelle riunioni di Teams. Attualmente non è disponibile alcun supporto per lo stato di trascrizione delle chiamate per Servizi di comunicazione di Azure alle chiamate Servizi di comunicazione di Azure.
Quando si usa la trascrizione delle chiamate, è possibile informare gli utenti che una chiamata è in corso di trascrizione. Ecco come.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Una risorsa di Servizi di comunicazione distribuita. Creare una risorsa di Servizi di comunicazione.
- Token di accesso utente per abilitare il client chiamante. Per altre informazioni, vedere Creare e gestire i token di accesso.
- Facoltativo: Completare la guida introduttiva per aggiungere chiamate vocali all'applicazione
Installazione dell'SDK
Individuare il file build.gradle a livello di progetto e aggiungere mavenCentral()
all'elenco dei repository in buildscript
e allprojects
:
buildscript {
repositories {
...
mavenCentral()
...
}
}
allprojects {
repositories {
...
mavenCentral()
...
}
}
Quindi, nel file build.gradle a livello di modulo aggiungere le righe seguenti alla dependencies
sezione :
dependencies {
...
implementation 'com.azure.android:azure-communication-calling:1.0.0'
...
}
Inizializzare gli oggetti necessari
Per creare un'istanza CallAgent
di , è necessario chiamare il metodo in un'istanza createCallAgent
CallClient
di . Questa chiamata restituisce in modo asincrono un CallAgent
oggetto istanza.
Il createCallAgent
metodo accetta CommunicationUserCredential
come argomento, che incapsula un token di accesso.
Per accedere a DeviceManager
, è prima necessario creare un'istanza callAgent
di . È quindi possibile usare il CallClient.getDeviceManager
metodo per ottenere 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();
Per impostare un nome visualizzato per il chiamante, usare questo metodo alternativo:
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();
Avviso
Fino alla versione 1.1.0 e alla versione beta 1.1.0-beta.1 del Servizi di comunicazione di Azure Calling Android SDK include isTranscriptionActive
e addOnIsTranscriptionActiveChangedListener
fanno parte dell'oggetto Call
. Per le nuove versioni beta, tali API sono state spostate come funzionalità estesa di Call
come descritto di seguito.
La trascrizione delle chiamate è una funzionalità estesa dell'oggetto principale Call
. È prima necessario ottenere l'oggetto funzionalità di trascrizione:
TranscriptionCallFeature callTranscriptionFeature = call.feature(Features.TRANSCRIPTION);
Quindi, per verificare se la chiamata viene trascritta, controllare la isTranscriptionActive
proprietà di callTranscriptionFeature
. Restituisce boolean
.
boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();
È anche possibile sottoscrivere le modifiche nella trascrizione:
private void handleCallOnIsTranscriptionChanged(PropertyChangedEvent args) {
boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();
}
callTranscriptionFeature.addOnIsTranscriptionActiveChangedListener(handleCallOnIsTranscriptionChanged);
Configurare il sistema
Creare il progetto Xcode
In Xcode creare un nuovo progetto iOS e selezionare il modello Single View Application. Questa guida introduttiva usa il framework SwiftUI, quindi è consigliabile impostare Language su Swift e impostare Interface su SwiftUI.
Durante questa guida introduttiva non verranno creati test. Deselezionare la casella di controllo Includi test .
Installare il pacchetto e le dipendenze usando CocoaPods
Creare un podfile per l'applicazione, come nell'esempio seguente:
platform :ios, '13.0' use_frameworks! target 'AzureCommunicationCallingSample' do pod 'AzureCommunicationCalling', '~> 1.0.0' end
Eseguire
pod install
.Aprire
.xcworkspace
con Xcode.
Richiedere l'accesso al microfono
Per accedere al microfono del dispositivo, è necessario aggiornare l'elenco delle proprietà delle informazioni dell'app usando NSMicrophoneUsageDescription
. Impostare il valore associato su una stringa che verrà inclusa nella finestra di dialogo usata dal sistema per richiedere l'accesso dall'utente.
Fare clic con il pulsante destro del mouse sulla voce Info.plist dell'albero del progetto e quindi scegliere Apri come>codice sorgente. Aggiungere le righe seguenti nella sezione di primo livello <dict>
e quindi salvare il file.
<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>
Configurare il framework dell'app
Aprire il file ContentView.swift del progetto. Aggiungere una import
dichiarazione all'inizio del file per importare la AzureCommunicationCalling
libreria. Inoltre, importare AVFoundation
. Sarà necessario per le richieste di autorizzazione audio nel codice.
import AzureCommunicationCalling
import AVFoundation
Inizializzare CallAgent
Per creare un'istanza CallAgent
da CallClient
, è necessario usare un callClient.createCallAgent
metodo che restituisce in modo asincrono un CallAgent
oggetto dopo l'inizializzazione.
Per creare un client di chiamata, passare un CommunicationTokenCredential
oggetto :
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)
}
Passare l'oggetto CommunicationTokenCredential
creato a CallClient
e impostare il nome visualizzato:
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")
}
})
Avviso
Fino alla versione 1.1.0 e alla versione beta 1.1.0-beta.1 di Servizi di comunicazione di Azure Calling iOS SDK ha come isTranscriptionActive
parte dell'oggetto Call
e didChangeTranscriptionState
fa parte del CallDelegate
delegato. Per le nuove versioni beta, tali API sono state spostate come funzionalità estesa di Call
come descritto di seguito.
La trascrizione delle chiamate è una funzionalità estesa dell'oggetto principale Call
. È prima necessario ottenere l'oggetto funzionalità di trascrizione:
let callTranscriptionFeature = call.feature(Features.transcription)
Quindi, per verificare se la chiamata è trascritta, controllare la isTranscriptionActive
proprietà di callTranscriptionFeature
. Restituisce Bool
.
let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive;
È anche possibile sottoscrivere le modifiche di trascrizione implementando TranscriptionCallFeatureDelegate
il delegato nella classe con l'evento didChangeTranscriptionState
:
callTranscriptionFeature.delegate = self
// didChangeTranscriptionState is a member of TranscriptionCallFeatureDelegate
public func transcriptionCallFeature(_ transcriptionCallFeature: TranscriptionCallFeature, didChangeTranscriptionState args: PropertyChangedEventArgs) {
let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive
}
Configurare il sistema
Creare il progetto di Visual Studio
Per un'app UWP, in Visual Studio 2022 creare un nuovo progetto App vuota (Windows universale). Dopo aver immesso il nome del progetto, è possibile scegliere qualsiasi Windows SDK successivo alla versione 10.0.17763.0.
Per un'app WinUI 3, creare un nuovo progetto con il modello App vuota, In pacchetto (WinUI 3 in Desktop) per configurare un'app WinUI 3 a pagina singola. SDK per app di Windows versione 1.3 o successiva è necessario.
Installare il pacchetto e le dipendenze usando NuGet Gestione pacchetti
Le API e le librerie di Calling SDK sono disponibili pubblicamente tramite un pacchetto NuGet.
I passaggi seguenti illustrano come trovare, scaricare e installare il pacchetto NuGet di Calling SDK:
- Aprire Gestione pacchetti NuGet selezionando Strumenti>NuGet Gestione pacchetti> Gestisci pacchetti NuGet per la soluzione.
- Selezionare Sfoglia e quindi immettere
Azure.Communication.Calling.WindowsClient
nella casella di ricerca. - Assicurarsi che la casella di controllo Includi versione preliminare sia selezionata.
- Selezionare il
Azure.Communication.Calling.WindowsClient
pacchetto e quindi selezionareAzure.Communication.Calling.WindowsClient
1.4.0-beta.1 o una versione più recente. - Selezionare la casella di controllo corrispondente al progetto Servizi di comunicazione nella scheda a destra.
- Selezionare il pulsante Installa.
La trascrizione delle chiamate è una funzionalità estesa dell'oggetto principale Call
. È prima necessario ottenere l'oggetto funzionalità di trascrizione:
TranscriptionCallFeature transcriptionFeature = call.Features.Transcription;
Quindi, per verificare se la chiamata viene trascritta, controllare la IsTranscriptionActive
proprietà di transcriptionFeature
. Restituisce boolean
.
boolean isTranscriptionActive = transcriptionFeature.isTranscriptionActive;
È anche possibile sottoscrivere le modifiche nella trascrizione:
private async void Call__OnIsTranscriptionActiveChanged(object sender, PropertyChangedEventArgs args)
boolean isTranscriptionActive = transcriptionFeature.IsTranscriptionActive();
}
transcriptionFeature.IsTranscriptionActiveChanged += Call__OnIsTranscriptionActiveChanged;