Abilitare sottotitoli per l'interoperabilità di Teams
Informazioni su come consentire agli utenti di abilitare sottotitoli chiusi durante uno scenario di interoperabilità di Teams in cui gli utenti potrebbero trovarsi in una riunione tra un utente Servizi di comunicazione di Azure e un utente client di Teams o dove gli utenti usano Servizi di comunicazione di Azure chiamare SDK con l'identità di Microsoft 365.
Prerequisiti
- Un account Azure con una sottoscrizione attiva, per informazioni dettagliate, vedere Creare un account gratuitamente.
- Risorsa di Servizi di comunicazione di Azure. Vedere Creare una risorsa di Servizi di comunicazione di Azure. Salvare la stringa di connessione per questa risorsa.
- Un'app con chiamate vocali e video, fare riferimento alle guide introduttive per chiamate vocali e video .
- Token di accesso per gli utenti di Microsoft 365.
- Token di accesso per gli utenti di identità esterne.
- Per le didascalie tradotte, è necessario avere una licenza Premium di Teams.
Nota
Si noti che è necessario disporre di un'app per chiamate vocali usando Servizi di comunicazione di Azure gli SDK per chiamare gli SDK per accedere alla funzionalità dei sottotitoli chiusi descritta in questa guida.
Modelli
Nome | Descrizione |
---|---|
CaptionsCallFeature | API per la funzionalità di chiamata delle didascalie |
TeamsCaptions | API per le didascalie di Teams |
StartCaptionOptions | Opzioni di sottotitoli come la lingua parlata |
TeamsCaptionsReceivedEventArgs | Oggetto dati ricevuto per ogni evento ricevuto da didascalie di Teams |
Funzionalità Get closed captions (Ottieni sottotitoli)
Utenti di identità esterne e utenti di Microsoft 365
Se si sta creando un'applicazione che consente agli utenti di Servizi di comunicazione di Azure di partecipare a una riunione di Teams
CaptionsCallFeature captionsCallFeature = call.Features.Captions;
CallCaptions callCaptions = await captionsCallFeature.GetCaptionsAsync();
if (callCaptions.CaptionsKind == CaptionsKind.TeamsCaptions)
{
TeamsCaptions teamsCaptions = callCaptions as TeamsCaptions;
}
Sottoscrivere listener
Aggiungere un listener per ricevere sottotitoli abilitati/disabilitati
teamsCaptions.CaptionsEnabledChanged += OnIsCaptionsEnabledChanged;
private void OnIsCaptionsEnabledChanged(object sender, PropertyChangedEventArgs args)
{
if (teamsCaptions.IsEnabled)
{
}
}
Aggiungere il listener per i dati dei sottotitoli ricevuti
teamsCaptions.CaptionsReceived += OnCaptionsReceived;
private void OnCaptionsReceived(object sender, TeamsCaptionsReceivedEventArgs eventArgs)
{
// Information about the speaker.
// eventArgs.Speaker
// The original text with no transcribed.
// eventArgs.SpokenText
// language identifier for the captions text.
// eventArgs.CaptionLanguage
// language identifier for the speaker.
// eventArgs.SpokenLanguage
// The transcribed text.
// eventArgs.CaptionText
// Timestamp denoting the time when the corresponding speech was made.
// eventArgs.Timestamp
// CaptionsResultKind is Partial if text contains partially spoken sentence.
// It is set to Final once the sentence has been completely transcribed.
// eventArgs.ResultKind
}
Aggiungere un listener per ricevere lo stato attivo della lingua parlata modificata
teamsCaptions.ActiveSpokenLanguageChanged += OnIsActiveSpokenLanguageChanged;
private void OnIsActiveSpokenLanguageChanged(object sender, PropertyChangedEventArgs args)
{
// teamsCaptions.ActiveSpokenLanguage
}
Aggiungere un listener per ricevere lo stato di modifica della lingua della didascalia attiva
teamsCaptions.ActiveCaptionLanguageChanged += OnIsActiveCaptionLanguageChanged;
private void OnIsActiveCaptionLanguageChanged(object sender, PropertyChangedEventArgs args)
{
// teamsCaptions.ActiveCaptionLanguage
}
Avviare le didascalie
Dopo aver configurato tutti i listener, è ora possibile iniziare ad aggiungere didascalie.
private async void StartCaptions()
{
var options = new StartCaptionsOptions
{
SpokenLanguage = "en-us"
};
try
{
await teamsCaptions.StartCaptionsAsync(options);
}
catch (Exception ex)
{
}
}
Interrompi didascalie
private async void StopCaptions()
{
try
{
await teamsCaptions.StopCaptionsAsync();
}
catch (Exception ex)
{
}
}
Rimuovere il listener ricevuto dalla didascalia
teamsCaptions.CaptionsReceived -= OnCaptionsReceived;
Supporto per la lingua parlata
Ottenere l'elenco delle lingue parlate supportate
Ottenere un elenco delle lingue parlate supportate che gli utenti possono selezionare quando si abilitano i sottotitoli chiusi.
// bcp 47 formatted language code
IReadOnlyList<string> sLanguages = teamsCaptions.SupportedSpokenLanguages;```
### Set spoken language
When the user selects the spoken language, your app can set the spoken language that it expects captions to be generated from.
``` cs
public async void SetSpokenLanguage()
{
try
{
await teamsCaptions.SetSpokenLanguageAsync("en-us");
}
catch (Exception ex)
{
}
}
Supporto per la lingua della didascalia
Ottenere la lingua della didascalia supportata
Se l'organizzazione ha una licenza Premium di Teams attiva, gli utenti Servizi di comunicazione di Azure possono abilitare sottotitoli tradotti purché l'organizzatore della riunione abbia una licenza Premium di Teams. Per quanto riguarda gli utenti con identità di Microsoft 365, questo controllo viene eseguito con il proprio account utente se l'organizzatore della riunione non ha una licenza Premium di Teams.
// ISO 639-1 formatted language code
IReadOnlyList<string> cLanguages = teamsCaptions.SupportedCaptionLanguages;
Impostare la lingua della didascalia
public async void SetCaptionLanguage()
{
try
{
await teamsCaptions.SetCaptionLanguageAsync("en");
}
catch (Exception ex)
{
}
}
Prerequisiti
- Un account Azure con una sottoscrizione attiva, per informazioni dettagliate, vedere Creare un account gratuitamente.
- Risorsa di Servizi di comunicazione di Azure. Vedere Creare una risorsa di Servizi di comunicazione di Azure. Salvare la stringa di connessione per questa risorsa.
- Un'app con chiamate vocali e video, fare riferimento alle guide introduttive per chiamate vocali e video .
- Token di accesso per gli utenti di Microsoft 365.
- Token di accesso per gli utenti di identità esterne.
- Per le didascalie tradotte, è necessario avere una licenza Premium di Teams.
Nota
Si noti che è necessario disporre di un'app per chiamate vocali usando Servizi di comunicazione di Azure gli SDK per chiamare gli SDK per accedere alla funzionalità dei sottotitoli chiusi descritta in questa guida.
Modelli
Nome | Descrizione |
---|---|
CaptionsCallFeature | API per didascalie |
CaptionsCommon | Classe di base per le didascalie |
StartCaptionOptions | Opzioni di sottotitoli come la lingua parlata |
TeamsCaptionHandler | Definizione di callback per la gestione dell'evento CaptionsReceivedEventType |
TeamsCaptionsInfo | Struttura dei dati ricevuta per ogni evento CaptionsReceivedEventType |
Funzionalità Get closed captions (Ottieni sottotitoli)
Utenti di identità esterna
Se si sta creando un'applicazione che consente agli utenti di Servizi di comunicazione di Azure di partecipare a una riunione di Teams.
let captionsCallFeature: SDK.CaptionsCallFeature = call.feature(SDK.Features.Captions);
Utenti di Microsoft 365
let captionsCallFeature: SDK.CaptionsCallFeature = teamsCall.feature(SDK.Features.Captions);
Ottenere l'oggetto didascalie di teams
È necessario ottenere ed eseguire il cast dell'oggetto Teams Captions per usare funzionalità specifiche di Teams Captions
let teamsCaptions: SDK.TeamsCaptions;
if (captionsCallFeature.captions.kind === 'TeamsCaptions') {
teamsCaptions = captionsCallFeature.captions as SDK.TeamsCaptions;
}
Sottoscrivere listener
Aggiungere un listener per ricevere i sottotitoli attivi/inattivi
const captionsActiveChangedHandler = () => {
if (teamsCaptions.isCaptionsFeatureActive) {
/* USER CODE HERE - E.G. RENDER TO DOM */
}
}
teamsCaptions.on('CaptionsActiveChanged', captionsActiveChangedHandler);
Aggiungere un listener per i dati dei sottotitoli ricevuti
Gestire l'oggetto dati TeamsCaptionsInfo restituito.
Nota: l'oggetto contiene una proprietà resultType che indica se i dati sono una didascalia parziale o una versione finale della didascalia. ResultType partial
indica la didascalia non modificata dal vivo, mentre final
indica una versione interpretata finalizzata della frase (ad esempio include punteggiatura e maiuscola).
let currentCaptionLanguage : string;
const captionsReceivedHandler : TeamsCaptionsHandler = (data: TeamsCaptionsInfo) => {
/** USER CODE HERE - E.G. RENDER TO DOM
* data.captionLanguage
* data.captionText
* data.resultType
* data.speaker
* data.spokenText
* data.timeStamp
*/
// Example code:
// Create a dom element, i.e. div, with id "captionArea" before proceeding with the sample code
if (!this._currentCaptionLanguage || this._currentCaptionLanguage === data.captionLanguage) {
let mri: string;
switch (data.speaker.identifier.kind) {
case 'communicationUser': { mri = data.speaker.identifier.communicationUserId; break; }
case 'microsoftTeamsUser': { mri = data.speaker.identifier.microsoftTeamsUserId; break; }
case 'phoneNumber': { mri = data.speaker.identifier.phoneNumber; break; }
}
const outgoingCaption = `prefix${mri.replace(/:/g, '').replace(/-/g, '')}`;
let captionArea = document.getElementById("captionArea");
const captionText = `${data.timestamp.toUTCString()}
${data.speaker.displayName}: ${data.captionText ?? data.spokenText}`;
let foundCaptionContainer = captionArea.querySelector(`.${outgoingCaption}[isNotFinal='true']`);
if (!foundCaptionContainer) {
let captionContainer = document.createElement('div');
captionContainer.setAttribute('isNotFinal', 'true');
captionContainer.style['borderBottom'] = '1px solid';
captionContainer.style['whiteSpace'] = 'pre-line';
captionContainer.textContent = captionText;
captionContainer.classList.add(newClassName);
captionArea.appendChild(captionContainer);
} else {
foundCaptionContainer.textContent = captionText;
if (captionData.resultType === 'Final') {
foundCaptionContainer.setAttribute('isNotFinal', 'false');
}
}
}
};
teamsCaptions.on('CaptionsReceived', captionsReceivedHandler);
Aggiungere un listener per ricevere lo stato della lingua parlata modificata
const spokenLanguageChangedHandler = () => {
if (teamsCaptions.activeSpokenLanguage !== currentSpokenLanguage) {
/* USER CODE HERE - E.G. RENDER TO DOM */
}
}
teamsCaptions.on('SpokenLanguageChanged', spokenLanguageChangedHandler)
Aggiungere un listener per ricevere lo stato di modifica della lingua della didascalia
const captionLanguageChangedHandler = () => {
if (teamsCaptions.activeCaptionLanguage !== currentCaptionLanguage) {
/* USER CODE HERE - E.G. RENDER TO DOM */
}
}
teamsCaptions.on('CaptionLanguageChanged', captionLanguageChangedHandler)
Avviare le didascalie
Dopo aver configurato tutti i listener, è ora possibile iniziare ad aggiungere didascalie.
try {
await teamsCaptions.startCaptions({ spokenLanguage: 'en-us' });
} catch (e) {
/* USER ERROR HANDLING CODE HERE */
}
Interrompi didascalie
try {
teamsCaptions.stopCaptions();
} catch (e) {
/* USER ERROR HANDLING CODE HERE */
}
Annullare la sottoscrizione ai listener
teamsCaptions.off('CaptionsActiveChanged', captionsActiveChangedHandler);
teamsCaptions.off('CaptionsReceived', captionsReceivedHandler);
Supporto per la lingua parlata
Ottenere un elenco delle lingue parlate supportate
Ottenere un elenco delle lingue parlate supportate che gli utenti possono selezionare quando si abilitano i sottotitoli chiusi. La proprietà restituisce una matrice di lingue in formato bcp 47.
const spokenLanguages = teamsCaptions.supportedSpokenLanguages;
Impostare la lingua parlata
Passare un valore dalla matrice di lingue parlate supportate per assicurarsi che la lingua richiesta sia supportata. Per impostazione predefinita, se contoso non fornisce alcuna lingua o una lingua non supportata, per impostazione predefinita la lingua parlata è "en-us".
// bcp 47 formatted language code
const language = 'en-us';
// Altneratively, pass a value from the supported spoken languages array
const language = spokenLanguages[0];
try {
teamsCaptions.setSpokenLanguage(language);
} catch (e) {
/* USER ERROR HANDLING CODE HERE */
}
Supporto per la lingua della didascalia
Ottenere un elenco di lingue di didascalie supportate
Se l'organizzazione ha una licenza Premium di Teams attiva, è possibile consentire agli utenti di usare sottotitoli tradotti forniti dai sottotitoli di Teams. Per quanto riguarda gli utenti con un'identità di Microsoft 365, se l'organizzatore della riunione non ha una licenza Premium di Teams attiva, il controllo della lingua delle didascalie viene eseguito con l'account utenti di Microsoft 365.
La proprietà restituisce una matrice di codici linguistici a due lettere nello ISO 639-1
standard.
const captionLanguages = teamsCaptions.supportedCaptionLanguages;
Impostare la lingua della didascalia
// ISO 639-1 formatted language code
const language = 'en';
// Altneratively, pass a value from the supported caption languages array
const language = captionLanguages[0];
try {
teamsCaptions.setCaptionLanguage(language);
} catch (e) {
/* USER ERROR HANDLING CODE HERE */
}
Prerequisiti
- Un account Azure con una sottoscrizione attiva, per informazioni dettagliate, vedere Creare un account gratuitamente.
- Risorsa di Servizi di comunicazione di Azure. Vedere Creare una risorsa di Servizi di comunicazione di Azure. Salvare la stringa di connessione per questa risorsa.
- Un'app con chiamate vocali e video, fare riferimento alle guide introduttive per chiamate vocali e video .
- Token di accesso per gli utenti di Microsoft 365.
- Token di accesso per gli utenti di identità esterne.
- Per le didascalie tradotte, è necessario avere una licenza Premium di Teams.
Nota
Si noti che è necessario disporre di un'app per chiamate vocali usando Servizi di comunicazione di Azure gli SDK per chiamare gli SDK per accedere alla funzionalità dei sottotitoli chiusi descritta in questa guida.
Modelli
Nome | Descrizione |
---|---|
CaptionsCallFeature | API per la funzionalità di chiamata delle didascalie |
TeamsCaptions | API per le didascalie di Teams |
StartCaptionOptions | Opzioni di sottotitoli come la lingua parlata |
TeamsCaptionsListener | Listener per TeamsCaptions addOnCaptionsReceivedListener |
TeamsCaptionsReceivedEvent | Oggetto dati ricevuto per ogni evento TeamsCaptionsListener |
Funzionalità Get closed captions (Ottieni sottotitoli)
Utenti di identità esterne e utenti di Microsoft 365
Se si sta creando un'applicazione che consente agli utenti di partecipare a una riunione di Teams
CaptionsCallFeature captionsCallFeature = call.feature(Features.CAPTIONS);
captionsCallFeature.getCaptions().whenComplete(
((captions, throwable) -> {
if (throwable == null) {
CallCaptions callCaptions = captions;
if (captions.getCaptionsType() == CaptionsType.TEAMS_CAPTIONS) {
// teams captions
TeamsCaptions teamsCaptions = (TeamsCaptions) captions;
}
} else {
// get captions failed
// throwable is the exception/cause
}
}));
Sottoscrivere listener
Aggiungere un listener per ricevere sottotitoli abilitati/disabilitati
public void addOnIsCaptionsEnabledChangedListener() {
teamsCaptions.addOnCaptionsEnabledChangedListener( (PropertyChangedEvent args) -> {
if(teamsCaptions.isEnabled()) {
// captions enabled
}
});
}
Aggiungere il listener per i dati dei sottotitoli ricevuti
TeamsCaptionsListener captionsListener = (TeamsCaptionsReceivedEvent args) -> {
// Information about the speaker.
// CallerInfo participantInfo = args.getSpeaker();
// The original text with no transcribed.
// args.getSpokenText();
// language identifier for the captions text.
// args.getCaptionLanguage();
// language identifier for the speaker.
// args.getSpokenLanguage();
// The transcribed text.
// args.getCaptionText();
// Timestamp denoting the time when the corresponding speech was made.
// args.getTimestamp();
// CaptionsResultType is Partial if text contains partially spoken sentence.
// It is set to Final once the sentence has been completely transcribed.
// args.getResultType() == CaptionsResultType.FINAL;
};
public void addOnCaptionsReceivedListener() {
teamsCaptions.addOnCaptionsReceivedListener(captionsListener);
}
Aggiungere un listener per ricevere lo stato attivo della lingua parlata modificata
public void addOnActiveSpokenLanguageChangedListener() {
teamsCaptions.addOnActiveSpokenLanguageChangedListener( (PropertyChangedEvent args) -> {
// teamsCaptions.getActiveSpokenLanguage()
});
}
Aggiungere un listener per ricevere lo stato di modifica della lingua della didascalia attiva
public void addOnActiveCaptionLanguageChangedListener() {
teamsCaptions.addOnActiveCaptionLanguageChangedListener( (PropertyChangedEvent args) -> {
// teamsCaptions.getActiveCaptionLanguage()
});
}
Avviare le didascalie
Dopo aver configurato tutti i listener, è ora possibile iniziare ad aggiungere didascalie.
public void startCaptions() {
StartCaptionsOptions startCaptionsOptions = new StartCaptionsOptions();
startCaptionsOptions.setSpokenLanguage("en-us");
teamsCaptions.startCaptions(startCaptionsOptions).whenComplete((result, error) -> {
if (error != null) {
}
});
}
Interrompi didascalie
public void stopCaptions() {
teamsCaptions.stopCaptions().whenComplete((result, error) -> {
if (error != null) {
}
});
}
Rimuovere il listener ricevuto dalla didascalia
public void removeOnCaptionsReceivedListener() {
teamsCaptions.removeOnCaptionsReceivedListener(captionsListener);
}
Supporto per la lingua parlata
Ottenere l'elenco delle lingue parlate supportate
Ottenere un elenco delle lingue parlate supportate che gli utenti possono selezionare quando si abilitano i sottotitoli chiusi.
// bcp 47 formatted language code
teamsCaptions.getSupportedSpokenLanguages();
Impostare la lingua parlata
Quando l'utente seleziona la lingua parlata, l'app può impostare la lingua parlata da cui prevede la generazione di didascalie.
public void setSpokenLanguage() {
teamsCaptions.setSpokenLanguage("en-us").whenComplete((result, error) -> {
if (error != null) {
}
});
}
Supporto per la lingua della didascalia
Ottenere la lingua della didascalia supportata
Se l'organizzazione ha una licenza Premium di Teams attiva, gli utenti Servizi di comunicazione di Azure possono abilitare sottotitoli tradotti purché l'organizzatore della riunione abbia una licenza Premium di Teams. Per quanto riguarda gli utenti con identità di Microsoft 365, questo controllo viene eseguito con il proprio account utente se l'organizzatore della riunione non ha una licenza Premium di Teams.
// ISO 639-1 formatted language code
teamsCaptions.getSupportedCaptionLanguages();
Impostare la lingua della didascalia
public void setCaptionLanguage() {
teamsCaptions.setCaptionLanguage("en").whenComplete((result, error) -> {
if (error != null) {
}
});
}
Prerequisiti
- Un account Azure con una sottoscrizione attiva, per informazioni dettagliate, vedere Creare un account gratuitamente.
- Risorsa di Servizi di comunicazione di Azure. Vedere Creare una risorsa di Servizi di comunicazione di Azure. Salvare la stringa di connessione per questa risorsa.
- Un'app con chiamate vocali e video, fare riferimento alle guide introduttive per chiamate vocali e video .
- Token di accesso per gli utenti di Microsoft 365.
- Token di accesso per gli utenti di identità esterne.
- Per le didascalie tradotte, è necessario avere una licenza Premium di Teams.
Nota
Si noti che è necessario disporre di un'app per chiamate vocali usando Servizi di comunicazione di Azure gli SDK per chiamare gli SDK per accedere alla funzionalità dei sottotitoli chiusi descritta in questa guida.
Modelli
Nome | Descrizione |
---|---|
CaptionsCallFeature | API per la funzionalità di chiamata delle didascalie |
TeamsCaptions | API per le didascalie di Teams |
StartCaptionOptions | Opzioni di sottotitoli come la lingua parlata |
TeamsCaptionsDelegate | Delegare per le didascalie di Teams |
TeamsCaptionsReceivedEventArgs | Oggetto dati ricevuto per ogni evento ricevuto da didascalie di Teams |
Funzionalità Get closed captions (Ottieni sottotitoli)
Utenti di identità esterne e utenti di Microsoft 365
Se si sta creando un'applicazione che consente agli utenti di Servizi di comunicazione di Azure di partecipare a una riunione di Teams
if let call = self.call {
@State var captionsCallFeature = call.feature(Features.captions)
captionsCallFeature.getCaptions{(value, error) in
if let error = error {
// failed to get captions
} else {
if (value?.type == CaptionsType.teamsCaptions) {
// teams captions
@State var teamsCaptions = value as? TeamsCaptions
}
}
}
}
Sottoscrivere listener
Aggiungere un listener per ricevere didascalie abilitate/disabilitate, lingua parlata, stato della lingua della didascalia modificata e dati ricevuti
extension CallObserver: TeamsCaptionsDelegate {
// listener for receive captions enabled/disabled status
public func teamsCaptions(_ teamsCaptions: TeamsCaptions, didChangeCaptionsEnabledState args: PropertyChangedEventArgs) {
// teamsCaptions.isEnabled
}
// listener for active spoken language state change
public func teamsCaptions(_ teamsCaptions: TeamsCaptions, didChangeActiveSpokenLanguageState args: PropertyChangedEventArgs) {
// teamsCaptions.activeSpokenLanguage
}
// listener for active caption language state change
public func teamsCaptions(_ teamsCaptions: TeamsCaptions, didChangeActiveCaptionLanguageState args: PropertyChangedEventArgs) {
// teamsCaptions.activeCaptionLanguage
}
// listener for captions data received
public func teamsCaptions(_ teamsCaptions: TeamsCaptions, didReceiveCaptions:TeamsCaptionsReceivedEventArgs) {
// Information about the speaker.
// didReceiveCaptions.speaker
// The original text with no transcribed.
// didReceiveCaptions.spokenText
// language identifier for the captions text.
// didReceiveCaptions.captionLanguage
// language identifier for the speaker.
// didReceiveCaptions.spokenLanguage
// The transcribed text.
// didReceiveCaptions.captionText
// Timestamp denoting the time when the corresponding speech was made.
// didReceiveCaptions.timestamp
// CaptionsResultType is Partial if text contains partially spoken sentence.
// It is set to Final once the sentence has been completely transcribed.
// didReceiveCaptions.resultType
}
}
teamsCaptions.delegate = self.callObserver
Avviare le didascalie
Dopo aver configurato tutti i listener, è ora possibile iniziare ad aggiungere didascalie.
func startCaptions() {
guard let teamsCaptions = teamsCaptions else {
return
}
let startCaptionsOptions = StartCaptionsOptions()
startCaptionsOptions.spokenLanguage = "en-us"
teamsCaptions.startCaptions(startCaptionsOptions: startCaptionsOptions, completionHandler: { (error) in
if error != nil {
}
})
}
Interrompi didascalie
func stopCaptions() {
teamsCaptions.stopCaptions(completionHandler: { (error) in
if error != nil {
}
})
}
Rimuovere il listener ricevuto dalla didascalia
teamsCaptions?.delegate = nil
Supporto per la lingua parlata
Ottenere l'elenco delle lingue parlate supportate
Ottenere un elenco delle lingue parlate supportate che gli utenti possono selezionare quando si abilitano i sottotitoli chiusi.
// bcp 47 formatted language code
let spokenLanguage : String = "en-us"
for language in teamsCaptions?.supportedSpokenLanguages ?? [] {
// choose required language
spokenLanguage = language
}
Impostare la lingua parlata
Quando l'utente seleziona la lingua parlata, l'app può impostare la lingua parlata da cui prevede la generazione di didascalie.
func setSpokenLanguage() {
guard let teamsCaptions = self.teamsCaptions else {
return
}
teamsCaptions.set(spokenLanguage: spokenLanguage, completionHandler: { (error) in
if let error = error {
}
})
}
Supporto per la lingua della didascalia
Ottenere la lingua della didascalia supportata
Se l'organizzazione ha una licenza Premium di Teams attiva, gli utenti Servizi di comunicazione di Azure possono abilitare sottotitoli tradotti purché l'organizzatore della riunione abbia una licenza Premium di Teams. Per quanto riguarda gli utenti con identità di Microsoft 365, questo controllo viene eseguito con il proprio account utente se l'organizzatore della riunione non ha una licenza Premium di Teams.
// ISO 639-1 formatted language code
let captionLanguage : String = "en"
for language in teamsCaptions?.supportedCaptionLanguages ?? [] {
// choose required language
captionLanguage = language
}
Impostare la lingua della didascalia
func setCaptionLanguage() {
guard let teamsCaptions = self.teamsCaptions else {
return
}
teamsCaptions.set(captionLanguage: captionLanguage, completionHandler: { (error) in
if let error = error {
}
})
}
Pulire le risorse
Se si vuole pulire e rimuovere una sottoscrizione a Servizi di comunicazione, è possibile eliminare la risorsa o il gruppo di risorse. L'eliminazione del gruppo di risorse comporta anche l'eliminazione di tutte le altre risorse associate. Altre informazioni sulla pulizia delle risorse sono disponibili qui.
Passaggi successivi
Per altre informazioni, vedere gli articoli seguenti:
- Informazioni sulle chiamate vocali e video.
- Informazioni sull'interoperabilità di Teams.
- Altre informazioni sulle didascalie tradotte live di Microsoft Teams.
- Altre informazioni sulla libreria dell'interfaccia utente.