Visa samtaltranskriberingstillstånd på klienten

Viktigt

Funktioner som beskrivs i det här dokumentet är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

När du använder samtalstranskribering kanske du vill meddela användarna att ett anrop transkriberas. Gör så här.

Förutsättningar

Installera SDK:n

Leta upp din build.gradle på projektnivå och lägg mavenCentral() till i listan över lagringsplatsen under buildscript och allprojects

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

Lägg sedan till följande rader i avsnittet beroenden i build.gradle på modulnivå

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

Initiera nödvändiga objekt

Om du vill CallAgent skapa en instans måste du anropa metoden på en createCallAgent CallClient instans. Detta returnerar asynkront ett CallAgent instansobjekt. Metoden createCallAgent tar ett som ett argument som kapslar in en CommunicationUserCredential åtkomsttoken. För att komma åt måste en callAgent-instans skapas först och sedan kan du använda metoden DeviceManager CallClient.getDeviceManager för att hämta 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();

Om du vill ange ett visningsnamn för anroparen använder du den här alternativa metoden:

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

Varning

Fram till version 1.1.0 och betaversion 1.1.0-beta.1 av ACS Calling Android SDK har och ingår i isTranscriptionActive addOnIsTranscriptionActiveChangedListener objektet Call . För nya betaversionerna har dessa API:er flyttats som en utökad funktion av Call precis som beskrivs nedan.

Anteckning

Detta API tillhandahålls som en förhandsversion för utvecklare och kan komma att ändras utifrån den feedback vi får. Använd inte detta API i en produktionsmiljö. Om du vill använda det här API:et använder du betaversionen av ACS Calling Android SDK

Samtaltranskriskription är en utökad funktion i Call kärnobjektet. Du måste först hämta transkriptionsfunktionsobjektet:

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

Kontrollera sedan om anropet transkriberas genom att granska isTranscriptionActive egenskapen för callTranscriptionFeature . Den returnerar boolean .

boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();

Du kan också prenumerera på ändringar i transkriptionen:

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

callTranscriptionFeature.addOnIsTranscriptionActiveChangedListener(handleCallOnIsTranscriptionChanged);

Konfigurera systemet

Skapa Xcode-projektet

Skapa ett nytt iOS-projekt i Xcode och välj mallen App med enkel vy. Den här snabbstarten använder SwiftUI-ramverket, så du bör ange Språket till Swift och Användargränssnitt till SwiftUI.

Du kommer inte att skapa enhetstester eller UI-tester under den här snabbstarten. Du kan rensa textrutorna Include Unit Tests (Inkludera enhetstester) och Include UI Tests (Inkludera UI-tester).

Skärmbild som visar fönstret för att skapa ett projekt i Xcode.

Installera paketet och beroenden med CocoaPods

  1. Skapa en podfile för ditt program så här:

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

  3. Öppna .xcworkspace med Xcode.

Begär åtkomst till mikrofonen

För att få åtkomst till enhetens mikrofon måste du uppdatera appens egenskapslista för information med NSMicrophoneUsageDescription . Du anger det associerade värdet till string en som ska ingå i den dialogruta som systemet använder för att begära åtkomst från användaren.

Högerklicka på posten Info.plist i projektträdet och välj Öppna som > källkod. Lägg till följande rader i avsnittet på <dict> den översta nivån och spara sedan filen.

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

Konfigurera appramverket

Öppna projektets ContentView.swift-fil och lägg till import en deklaration överst i filen för att importera AzureCommunicationCalling biblioteket. Importera dessutom AVFoundation . Du behöver den för ljudbehörighetsbegäranden i koden.

import AzureCommunicationCalling
import AVFoundation

Initiera CallAgent

Om du vill skapa en -instans från måste du använda en -metod som asynkront returnerar CallAgent CallClient ett callClient.createCallAgent CallAgent -objekt när det har initierats.

Om du vill skapa en anropsklient måste du skicka ett CommunicationTokenCredential -objekt.

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

Skicka objektet CommunicationTokenCredential som du skapade till och ange CallClient visningsnamnet.

self.callClient = CallClient()
let callAgentOptions = CallAgentOptions()
options.displayName = " iOS ACS 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")
        }
})

Varning

Fram till version 1.1.0 och betaversion 1.1.0-beta.1 av ACS Calling iOS SDK har som en del av objektet och är en del av isTranscriptionActive Call didChangeTranscriptionState CallDelegate ombudet. För nya betaversionerna har dessa API:er flyttats som en utökad funktion av Call precis som beskrivs nedan.

Anteckning

Detta API tillhandahålls som en förhandsversion för utvecklare och kan komma att ändras utifrån den feedback vi får. Använd inte detta API i en produktionsmiljö. Om du vill använda det här API:et använder du betaversionen av ACS Calling iOS SDK

Samtaltranskriskription är en utökad funktion i Call kärnobjektet. Du måste först hämta transkriptionsfunktionsobjektet:

let callTranscriptionFeature = call.feature(Features.transcription)

Kontrollera sedan om anropet transkriberas genom att granska isTranscriptionActive egenskapen för callTranscriptionFeature . Den returnerar Bool .

let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive;

Du kan också prenumerera på transkriptionsändringar genom att TranscriptionCallFeatureDelegate implementera ombud för klassen med händelsen didChangeTranscriptionState :

callTranscriptionFeature.delegate = self

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

Nästa steg