Habilitar legendas ocultas para interoperabilidade do Teams
Saiba como permitir que seus usuários habilitem legendas ocultas durante um cenário de interoperabilidade do Teams em que seus usuários podem estar em uma reunião entre um usuário dos Serviços de Comunicação do Azure e um usuário cliente do Teams, ou onde seus usuários estão usando o SDK de chamada dos Serviços de Comunicação do Azure com sua identidade do Microsoft 365.
Pré-requisitos
- Conta do Azure com uma subscrição ativa, para obter detalhes, consulte Criar uma conta gratuitamente.
- Recurso dos Serviços de Comunicação do Azure. Consulte Criar um recurso dos Serviços de Comunicação do Azure. Salve a cadeia de conexão para este recurso.
- Uma aplicação com chamadas de voz e vídeo, consulte os nossos Inícios rápidos de chamadas de voz e vídeo .
- Tokens de acesso para usuários do Microsoft 365.
- Tokens de acesso para usuários de identidade externa.
- Para legendas traduzidas, você precisa ter uma licença premium do Teams.
Nota
Observe que você precisará ter um aplicativo de chamada de voz usando SDKs de chamada dos Serviços de Comunicação do Azure para acessar o recurso de legendas ocultas descrito neste guia.
Modelos
Nome | Descrição |
---|---|
CaptionsCallFeature | API para recurso de chamada de legendas |
EquipasLegendas | Legendas da API para equipes |
StartCaptionOptions | Opções de legenda oculta, como idioma falado |
TeamsCaptionsReceivedEventArgs | Objeto de dados recebido para cada evento de legendas recebidas do Teams |
Obter recurso de legendas ocultas
Usuários de identidade externa e usuários do Microsoft 365
Se você estiver criando um aplicativo que permita que os usuários dos Serviços de Comunicação do Azure participem de uma reunião do Teams
CaptionsCallFeature captionsCallFeature = call.Features.Captions;
CallCaptions callCaptions = await captionsCallFeature.GetCaptionsAsync();
if (callCaptions.CaptionsKind == CaptionsKind.TeamsCaptions)
{
TeamsCaptions teamsCaptions = callCaptions as TeamsCaptions;
}
Inscreva-se para ouvintes
Adicionar um ouvinte para receber legendas ativadas/desativadas
teamsCaptions.CaptionsEnabledChanged += OnIsCaptionsEnabledChanged;
private void OnIsCaptionsEnabledChanged(object sender, PropertyChangedEventArgs args)
{
if (teamsCaptions.IsEnabled)
{
}
}
Adicionar ouvinte para dados de legendas recebidos
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
}
Adicionar um ouvinte para receber o status alterado do idioma falado ativo
teamsCaptions.ActiveSpokenLanguageChanged += OnIsActiveSpokenLanguageChanged;
private void OnIsActiveSpokenLanguageChanged(object sender, PropertyChangedEventArgs args)
{
// teamsCaptions.ActiveSpokenLanguage
}
Adicionar um ouvinte para receber o status alterado do idioma da legenda ativa
teamsCaptions.ActiveCaptionLanguageChanged += OnIsActiveCaptionLanguageChanged;
private void OnIsActiveCaptionLanguageChanged(object sender, PropertyChangedEventArgs args)
{
// teamsCaptions.ActiveCaptionLanguage
}
Legendas iniciais
Depois de configurar todos os ouvintes, você pode começar a adicionar legendas.
private async void StartCaptions()
{
var options = new StartCaptionsOptions
{
SpokenLanguage = "en-us"
};
try
{
await teamsCaptions.StartCaptionsAsync(options);
}
catch (Exception ex)
{
}
}
Parar legendas
private async void StopCaptions()
{
try
{
await teamsCaptions.StopCaptionsAsync();
}
catch (Exception ex)
{
}
}
Remover a legenda recebida ouvinte
teamsCaptions.CaptionsReceived -= OnCaptionsReceived;
Suporte a idiomas falados
Obter lista de idiomas falados suportados
Obtenha uma lista de idiomas falados suportados que seus usuários podem selecionar ao ativar legendas ocultas.
// 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)
{
}
}
Suporte ao idioma da legenda
Obter idioma de legenda suportado
Se sua organização tiver uma licença premium ativa do Teams, os usuários dos Serviços de Comunicação do Azure poderão habilitar legendas traduzidas, desde que o organizador da reunião tenha uma licença premium do Teams. Quanto aos usuários com identidades do Microsoft 365, essa verificação é feita em relação à sua própria conta de usuário se o organizador da reunião não tiver uma licença premium do Teams.
// ISO 639-1 formatted language code
IReadOnlyList<string> cLanguages = teamsCaptions.SupportedCaptionLanguages;
Definir idioma da legenda
public async void SetCaptionLanguage()
{
try
{
await teamsCaptions.SetCaptionLanguageAsync("en");
}
catch (Exception ex)
{
}
}
Pré-requisitos
- Conta do Azure com uma subscrição ativa, para obter detalhes, consulte Criar uma conta gratuitamente.
- Recurso dos Serviços de Comunicação do Azure. Consulte Criar um recurso dos Serviços de Comunicação do Azure. Salve a cadeia de conexão para este recurso.
- Uma aplicação com chamadas de voz e vídeo, consulte os nossos Inícios rápidos de chamadas de voz e vídeo .
- Tokens de acesso para usuários do Microsoft 365.
- Tokens de acesso para usuários de identidade externa.
- Para legendas traduzidas, você precisa ter uma licença premium do Teams.
Nota
Observe que você precisará ter um aplicativo de chamada de voz usando SDKs de chamada dos Serviços de Comunicação do Azure para acessar o recurso de legendas ocultas descrito neste guia.
Modelos
Nome | Descrição |
---|---|
CaptionsCallFeature | API para legendas |
LegendasComum | Classe base para legendas |
StartCaptionOptions | Opções de legenda oculta, como idioma falado |
TeamsCaptionHandler | Definição de retorno de chamada para manipular o evento CaptionsReceivedEventType |
EquipasLegendasInfo | Estrutura de dados recebida para cada evento CaptionsReceivedEventType |
Obter recurso de legendas ocultas
Usuários de identidade externa
Se você estiver criando um aplicativo que permita que os usuários dos Serviços de Comunicação do Azure participem de uma reunião do Teams.
let captionsCallFeature: SDK.CaptionsCallFeature = call.feature(SDK.Features.Captions);
Utilizadores do Microsoft 365
let captionsCallFeature: SDK.CaptionsCallFeature = teamsCall.feature(SDK.Features.Captions);
Obter objeto de legendas de equipes
Você precisa obter e transmitir o objeto Teams Captions para utilizar os recursos específicos do Teams Captions
let teamsCaptions: SDK.TeamsCaptions;
if (captionsCallFeature.captions.kind === 'TeamsCaptions') {
teamsCaptions = captionsCallFeature.captions as SDK.TeamsCaptions;
}
Inscreva-se para ouvintes
Adicionar um ouvinte para receber legendas status ativo/inativo
const captionsActiveChangedHandler = () => {
if (teamsCaptions.isCaptionsFeatureActive) {
/* USER CODE HERE - E.G. RENDER TO DOM */
}
}
teamsCaptions.on('CaptionsActiveChanged', captionsActiveChangedHandler);
Adicionar um ouvinte para dados de legendas recebidos
Manipule o objeto de dados TeamsCaptionsInfo retornado.
Nota: O objeto contém um prop resultType que indica se os dados são uma legenda parcial ou uma versão finalizada da legenda. ResultType partial
indica legenda ao vivo não editada, enquanto final
indica uma versão interpretada finalizada da frase (ou seja, inclui pontuação e maiúsculas).
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);
Adicionar um ouvinte para receber o status de idioma falado alterado
const spokenLanguageChangedHandler = () => {
if (teamsCaptions.activeSpokenLanguage !== currentSpokenLanguage) {
/* USER CODE HERE - E.G. RENDER TO DOM */
}
}
teamsCaptions.on('SpokenLanguageChanged', spokenLanguageChangedHandler)
Adicionar um ouvinte para receber o status alterado do idioma da legenda
const captionLanguageChangedHandler = () => {
if (teamsCaptions.activeCaptionLanguage !== currentCaptionLanguage) {
/* USER CODE HERE - E.G. RENDER TO DOM */
}
}
teamsCaptions.on('CaptionLanguageChanged', captionLanguageChangedHandler)
Legendas iniciais
Depois de configurar todos os ouvintes, você pode começar a adicionar legendas.
try {
await teamsCaptions.startCaptions({ spokenLanguage: 'en-us' });
} catch (e) {
/* USER ERROR HANDLING CODE HERE */
}
Parar legendas
try {
teamsCaptions.stopCaptions();
} catch (e) {
/* USER ERROR HANDLING CODE HERE */
}
Cancelar inscrição para ouvintes
teamsCaptions.off('CaptionsActiveChanged', captionsActiveChangedHandler);
teamsCaptions.off('CaptionsReceived', captionsReceivedHandler);
Suporte a idiomas falados
Obter uma lista de idiomas falados suportados
Obtenha uma lista de idiomas falados suportados que seus usuários podem selecionar ao ativar legendas ocultas. A propriedade retorna uma matriz de idiomas no formato bcp 47.
const spokenLanguages = teamsCaptions.supportedSpokenLanguages;
Definir idioma falado
Passe um valor da matriz de idiomas falados suportados para garantir que o idioma solicitado seja suportado. Por padrão, se a contoso não fornecer nenhum idioma ou um idioma sem suporte, o idioma falado assumirá como padrão '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 */
}
Suporte ao idioma da legenda
Obter uma lista de idiomas de legenda suportados
Se sua organização tiver uma licença premium ativa do Teams, você poderá permitir que seus usuários usem legendas traduzidas fornecidas pelas legendas do Teams. Quanto aos usuários com uma identidade do Microsoft 365, se o organizador da reunião não tiver uma licença premium ativa do Teams, a verificação do idioma das legendas será feita em relação à conta de usuários do Microsoft 365.
A propriedade retorna uma matriz de códigos de idioma de duas letras no ISO 639-1
padrão.
const captionLanguages = teamsCaptions.supportedCaptionLanguages;
Definir idioma da legenda
// 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 */
}
Pré-requisitos
- Conta do Azure com uma subscrição ativa, para obter detalhes, consulte Criar uma conta gratuitamente.
- Recurso dos Serviços de Comunicação do Azure. Consulte Criar um recurso dos Serviços de Comunicação do Azure. Salve a cadeia de conexão para este recurso.
- Uma aplicação com chamadas de voz e vídeo, consulte os nossos Inícios rápidos de chamadas de voz e vídeo .
- Tokens de acesso para usuários do Microsoft 365.
- Tokens de acesso para usuários de identidade externa.
- Para legendas traduzidas, você precisa ter uma licença premium do Teams.
Nota
Observe que você precisará ter um aplicativo de chamada de voz usando SDKs de chamada dos Serviços de Comunicação do Azure para acessar o recurso de legendas ocultas descrito neste guia.
Modelos
Nome | Descrição |
---|---|
CaptionsCallFeature | API para recurso de chamada de legendas |
EquipasLegendas | Legendas da API para equipes |
StartCaptionOptions | Opções de legenda oculta, como idioma falado |
TeamsCaptionsListener | Ouvinte para TeamsCaptions addOnCaptionsReceivedListener |
TeamsCaptionsReceivedEvent | Objeto de dados recebido para cada evento TeamsCaptionsListener |
Obter recurso de legendas ocultas
Usuários de identidade externa e usuários do Microsoft 365
Se você estiver criando um aplicativo que permita que os usuários participem de uma reunião do 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
}
}));
Inscreva-se para ouvintes
Adicionar um ouvinte para receber legendas ativadas/desativadas
public void addOnIsCaptionsEnabledChangedListener() {
teamsCaptions.addOnCaptionsEnabledChangedListener( (PropertyChangedEvent args) -> {
if(teamsCaptions.isEnabled()) {
// captions enabled
}
});
}
Adicionar ouvinte para dados de legendas recebidos
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);
}
Adicionar um ouvinte para receber o status alterado do idioma falado ativo
public void addOnActiveSpokenLanguageChangedListener() {
teamsCaptions.addOnActiveSpokenLanguageChangedListener( (PropertyChangedEvent args) -> {
// teamsCaptions.getActiveSpokenLanguage()
});
}
Adicionar um ouvinte para receber o status alterado do idioma da legenda ativa
public void addOnActiveCaptionLanguageChangedListener() {
teamsCaptions.addOnActiveCaptionLanguageChangedListener( (PropertyChangedEvent args) -> {
// teamsCaptions.getActiveCaptionLanguage()
});
}
Legendas iniciais
Depois de configurar todos os ouvintes, você pode começar a adicionar legendas.
public void startCaptions() {
StartCaptionsOptions startCaptionsOptions = new StartCaptionsOptions();
startCaptionsOptions.setSpokenLanguage("en-us");
teamsCaptions.startCaptions(startCaptionsOptions).whenComplete((result, error) -> {
if (error != null) {
}
});
}
Parar legendas
public void stopCaptions() {
teamsCaptions.stopCaptions().whenComplete((result, error) -> {
if (error != null) {
}
});
}
Remover a legenda recebida ouvinte
public void removeOnCaptionsReceivedListener() {
teamsCaptions.removeOnCaptionsReceivedListener(captionsListener);
}
Suporte a idiomas falados
Obter lista de idiomas falados suportados
Obtenha uma lista de idiomas falados suportados que seus usuários podem selecionar ao ativar legendas ocultas.
// bcp 47 formatted language code
teamsCaptions.getSupportedSpokenLanguages();
Definir idioma falado
Quando o usuário seleciona o idioma falado, seu aplicativo pode definir o idioma falado a partir do qual espera que as legendas sejam geradas.
public void setSpokenLanguage() {
teamsCaptions.setSpokenLanguage("en-us").whenComplete((result, error) -> {
if (error != null) {
}
});
}
Suporte ao idioma da legenda
Obter idioma de legenda suportado
Se sua organização tiver uma licença premium ativa do Teams, os usuários dos Serviços de Comunicação do Azure poderão habilitar legendas traduzidas, desde que o organizador da reunião tenha uma licença premium do Teams. Quanto aos usuários com identidades do Microsoft 365, essa verificação é feita em relação à sua própria conta de usuário se o organizador da reunião não tiver uma licença premium do Teams.
// ISO 639-1 formatted language code
teamsCaptions.getSupportedCaptionLanguages();
Definir idioma da legenda
public void setCaptionLanguage() {
teamsCaptions.setCaptionLanguage("en").whenComplete((result, error) -> {
if (error != null) {
}
});
}
Pré-requisitos
- Conta do Azure com uma subscrição ativa, para obter detalhes, consulte Criar uma conta gratuitamente.
- Recurso dos Serviços de Comunicação do Azure. Consulte Criar um recurso dos Serviços de Comunicação do Azure. Salve a cadeia de conexão para este recurso.
- Uma aplicação com chamadas de voz e vídeo, consulte os nossos Inícios rápidos de chamadas de voz e vídeo .
- Tokens de acesso para usuários do Microsoft 365.
- Tokens de acesso para usuários de identidade externa.
- Para legendas traduzidas, você precisa ter uma licença premium do Teams.
Nota
Observe que você precisará ter um aplicativo de chamada de voz usando SDKs de chamada dos Serviços de Comunicação do Azure para acessar o recurso de legendas ocultas descrito neste guia.
Modelos
Nome | Descrição |
---|---|
CaptionsCallFeature | API para recurso de chamada de legendas |
EquipasLegendas | Legendas da API para equipes |
StartCaptionOptions | Opções de legenda oculta, como idioma falado |
EquipasLegendasDelegado | Delegado para legendas do Teams |
TeamsCaptionsReceivedEventArgs | Objeto de dados recebido para cada evento de legendas recebidas do Teams |
Obter recurso de legendas ocultas
Usuários de identidade externa e usuários do Microsoft 365
Se você estiver criando um aplicativo que permita que os usuários dos Serviços de Comunicação do Azure participem de uma reunião do 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
}
}
}
}
Inscreva-se para ouvintes
Adicionar um ouvinte para receber legendas ativadas/desativadas, idioma falado, status do idioma da legenda alterado e dados recebidos
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
Legendas iniciais
Depois de configurar todos os ouvintes, você pode começar a adicionar legendas.
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 {
}
})
}
Parar legendas
func stopCaptions() {
teamsCaptions.stopCaptions(completionHandler: { (error) in
if error != nil {
}
})
}
Remover a legenda recebida ouvinte
teamsCaptions?.delegate = nil
Suporte a idiomas falados
Obter lista de idiomas falados suportados
Obtenha uma lista de idiomas falados suportados que seus usuários podem selecionar ao ativar legendas ocultas.
// bcp 47 formatted language code
let spokenLanguage : String = "en-us"
for language in teamsCaptions?.supportedSpokenLanguages ?? [] {
// choose required language
spokenLanguage = language
}
Definir idioma falado
Quando o usuário seleciona o idioma falado, seu aplicativo pode definir o idioma falado a partir do qual espera que as legendas sejam geradas.
func setSpokenLanguage() {
guard let teamsCaptions = self.teamsCaptions else {
return
}
teamsCaptions.set(spokenLanguage: spokenLanguage, completionHandler: { (error) in
if let error = error {
}
})
}
Suporte ao idioma da legenda
Obter idioma de legenda suportado
Se sua organização tiver uma licença premium ativa do Teams, os usuários dos Serviços de Comunicação do Azure poderão habilitar legendas traduzidas, desde que o organizador da reunião tenha uma licença premium do Teams. Quanto aos usuários com identidades do Microsoft 365, essa verificação é feita em relação à sua própria conta de usuário se o organizador da reunião não tiver uma licença premium do Teams.
// ISO 639-1 formatted language code
let captionLanguage : String = "en"
for language in teamsCaptions?.supportedCaptionLanguages ?? [] {
// choose required language
captionLanguage = language
}
Definir idioma da legenda
func setCaptionLanguage() {
guard let teamsCaptions = self.teamsCaptions else {
return
}
teamsCaptions.set(captionLanguage: captionLanguage, completionHandler: { (error) in
if let error = error {
}
})
}
Clean up resources (Limpar recursos)
Se quiser limpar e remover uma assinatura dos Serviços de Comunicação, você pode excluir o recurso ou grupo de recursos. A exclusão do grupo de recursos também exclui quaisquer outros recursos associados a ele. Saiba mais sobre a limpeza de recursos aqui.
Próximos passos
Para obter mais informações, consulte os seguintes artigos:
- Saiba mais sobre chamadas de voz e vídeo.
- Saiba mais sobre a interoperabilidade do Teams.
- Saiba mais sobre as legendas traduzidas ao vivo do Microsoft Teams.
- Saiba mais sobre a Biblioteca da Interface do Usuário.