Guida introduttiva: Aggiungere sottotitoli chiusi all'app chiamante

Importante

La funzionalità descritta in questa sezione è attualmente disponibile in anteprima privata. L'anteprima privata include l'accesso agli SDK e alla documentazione per scopi di test che non sono ancora disponibili pubblicamente. Richiedere di diventare un early adopter compilando il modulo per l'accesso in anteprima a Servizi di comunicazione di Azure.

Prerequisiti

Fare riferimento alla guida introduttiva chiamata vocale per configurare un'app di esempio con chiamate vocali.

Modelli

Nome Descrizione
CaptionsCallFeature API per le didascalie delle chiamate.
StartCaptionsOptions Usato per rappresentare le opzioni per avviare sottotitoli chiusi
CaptionsHandler Definizione di callback per la gestione dell'evento CaptionsReceivedEventType.
CaptionsInfo Struttura dei dati ricevuta per ogni evento CaptionsReceivedEventType.

Metodi

Avviare le didascalie

  1. Ottenere l'oggetto chiamata in corso stabilito durante i passaggi dei prerequisiti.
  2. Ottiene l'oggetto feature captions.
  3. Impostare il captionsReceived gestore eventi tramite l'API on .
  4. Chiamare startCaptions sull'oggetto funzionalità con le opzioni desiderate.
const captionsHandler = (data: CaptionsInfo) => { /* USER CODE HERE - E.G. RENDER TO DOM */ };

try {
    const callCaptionsApi = call.feature(Features.Captions);
    callCaptionsApi.on('captionsReceived', captionsHandler);
    if (!callCaptionsApi.isCaptionsActive) {
        await callCaptionsApi.startCaptions({ language: 'en-us' });
    }
} catch (e) {
    console.log('Internal error occurred when Starting Captions');
}

Arresto delle didascalie

  1. Ottiene l'oggetto feature captions.
  2. Chiamare off con il gestore specificato precedente.

Nota

Le didascalie verranno comunque elaborate, ma il client smetterà di gestirle.

const callCaptionsApi = call.feature(Features.Captions);
callCaptionsApi.off('captionsReceived', captionsHandler);

Ottenere le lingue disponibili

Accedere alla availableLanguages proprietà nell'API call.feature(Features.Captions) .

const callCaptionsApi = call.feature(Features.Captions);
const availableLanguages = callCaptionsApi.availableLanguages;

Aggiornare la lingua

Passare un valore dalla matrice di lingue disponibili per assicurarsi che la lingua richiesta sia supportata.

await callCaptionsApi.selectLanguage(availableLanguages[0]);

Eseguire la pulizia

Per pulire e rimuovere una sottoscrizione di Servizi di comunicazione, è possibile eliminare la risorsa o il gruppo di risorse. Eliminando il gruppo di risorse vengono eliminate anche tutte le altre risorse associate. Altre informazioni sulla pulizia delle risorse sono disponibili qui.

Prerequisiti

Fare riferimento alla guida introduttiva chiamata vocale per configurare un'app di esempio con chiamate vocali.

Modelli

Nome Descrizione
CaptionsCallFeature Usato per avviare e gestire sottotitoli chiusi.
StartCaptionsOptions Utilizzato per rappresentare le opzioni per avviare sottotitoli chiusi.
CaptionsListener Usato per gestire gli eventi delle didascalie.
CaptionsInfo Utilizzato per rappresentare i dati delle didascalie.

Metodi

Avviare le didascalie

  1. Ottenere l'oggetto chiamata in corso stabilito durante i passaggi dei prerequisiti.
  2. Ottenere l'oggetto Captions Feature
CaptionsCallFeature captionsCallFeature = call.api(Features.CAPTIONS);
  1. Definire CaptionsListener
CaptionsListener captionsListener = new CaptionsListener() {
    @Override
    public void onCaptions(CaptionsInfo captionsInfo) {
        String captionsText = captionsInfo.getText(); // get transcribed text
        String speakerName = captionsInfo.getSpeaker().getDisplayName; // get display name of current speaker
        Date timeStamp = captionsInfo.getTimestamp(); // get timestamp corresponding to caption

        // display captionsText and information as needed...
    }
};
  1. Registrare captionsListener
  2. Richiamare startCaptions con le opzioni desiderate.
public void startCallCaptions() {
    captionsCallFeature.addOnCaptionsReceivedListener(captionsListener);
    if (!captionsCallFeature.isCaptionsActive) {
        StartCaptionsOptions startCaptionsOptions = new StartCaptionsOptions();
        startCaptionsOptions.setLanguage("en-us");

        try {
            captionsCallFeature.startCaptions(startCaptionsOptions);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Arresto delle didascalie

Rimuovere l'oggetto registrato captionsListenerin precedenza.

public void stopCaptions() {
    captionsCallFeature.removeOnCaptionsReceivedListener(captionsListener);
}

Ottenere le lingue disponibili

Chiamare il getAvailableLanguages metodo nell'API CaptionsCallFeature .

String[] captionsAvailableLanguages = captionsCallFeature.getAvailableLanguages();

Aggiornare la lingua

Passare un valore dalla matrice di lingue disponibili per assicurarsi che la lingua richiesta sia supportata.

public void switchCaptionsLanguage() {
    if (!captionsCallFeature.isCaptionsActive) {
        return;
    }
    try {
        captionsCallFeature.select(captionsAvailableLanguages[0]);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Eseguire la pulizia

Altre informazioni sulla pulizia delle risorse sono disponibili qui.

Prerequisiti

Fare riferimento alla guida introduttiva chiamata vocale per configurare un'app di esempio con chiamate vocali.

Modelli

Nome Descrizione
CaptionsCallFeature Usato per avviare e gestire sottotitoli chiusi.
StartCaptionsOptions Utilizzato per rappresentare le opzioni per avviare sottotitoli chiusi.
CaptionsCallFeatureDelegate Usato per gestire gli eventi delle didascalie.
CaptionsInfo Utilizzato per rappresentare i dati delle didascalie.

Metodi

Avviare le didascalie

  1. Ottenere l'oggetto chiamata in corso stabilito durante i passaggi dei prerequisiti.
  2. Ottenere l'oggetto Captions Feature
var captionsFeature = self.call!.feature(Features.captions)
  1. Definire captionsCallFeatureDelegate
@State var callObserver:CallObserver?
extension CallObserver: CaptionsCallFeatureDelegate {
    init(view:<nameOfView>) {
        owner = view
        super.init()
    }
    public func captionsCallFeature(_ captionsFeature: CaptionsCallFeature, didChangeCaptionsState args: PropertyChangedEventArgs) {
        os_log("Call captions state changed to %d", log:log, captionsFeature.isCaptionsActive)
    }
    
    public func captionsCallFeature(_ captionsFeature: CaptionsCallFeature, didReceiveCaptions: CaptionsInfo) {
        let formatter = DateFormatter()
        formatter.dateStyle = .short
        formatter.timeStyle = .short
        let displayedTime = formatter.string(from: didReceiveCaptions.timestamp)
        let captionsText = "\(displayedTime) \(didReceiveCaptions.speaker.displayName): \(didReceiveCaptions.text)"
        // next display captionsText
    }
}
self.callObserver = CallObserver(view:self)
  1. Registrare il delegato della funzionalità sottotitoli.
  2. Richiamare startCaptions con le opzioni desiderate.
func startCaptions() {
    captionsFeature!.delegate = self.callObserver
    if(!captionsFeature!.isCaptionsActive) {
        let startCaptionsOptions = StartCaptionsOptions()
        startCaptionsOptions.language = "en-us"
        captionsFeature!.startCaptions(startCaptionsOptions: startCaptionsOptions, completionHandler: { (error) in
            if (error != nil) {
                print ("Call captions Failed to start caption %@", error! as Error)
            }
        })
    }
}

Arresto delle didascalie

Rimuovere il delegato registrato in precedenza.

func stopCaptions() {
    captionsFeature?.delegate = nil
}

Ottenere le lingue disponibili

Accedere alla availableLanguages proprietà nell'API CaptionsCallFeature .

var captionsAvailableLanguages = captionsFeature!.availableLanguages

Aggiornare la lingua

Passare un valore dalla matrice di lingue disponibili per assicurarsi che la lingua richiesta sia supportata.

func switchCaptionsLanguage() {
    if (!captionsFeature!.isCaptionsActive) {
        return
    }
    captionsFeature!.select(language: captionsAvailableLanguages[0], completionHandler: { (error) in
        if (error != nil) {
            print ("Call captions Failed to switch language %@", error! as Error)
        }
    })
}

Eseguire la pulizia

Altre informazioni sulla pulizia delle risorse sono disponibili qui.

Pulire le risorse

Per pulire e rimuovere una sottoscrizione di Servizi di comunicazione, è possibile eliminare la risorsa o il gruppo di risorse. Eliminando il gruppo di risorse vengono eliminate anche tutte le altre risorse associate. Vedere altre informazioni sulla pulizia delle risorse.

Passaggi successivi

Per altre informazioni, vedere gli articoli seguenti: