Display call transcription state on the client

Importante

A funcionalidade descrita neste documento encontra-se atualmente em visualização pública. Esta versão de pré-visualização é fornecida sem um acordo de nível de serviço, e não é recomendado para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Ao utilizar a transcrição da chamada, pode querer informar os seus utilizadores de que uma chamada está a ser transcrita. Eis como fazê-lo.

Pré-requisitos

Instalar o SDK

Localize o seu nível de projeto build.gradle e certifique-se de adicionar mavenCentral() à lista de repositórios em e buildscriptallprojects

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

Em seguida, no seu nível de módulo build.gradle adicionar as seguintes linhas à secção de dependências

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

Inicialize os objetos necessários

Para criar um CallAgent caso, tem que chamar o createCallAgent método em um CallClient caso. Este assíncrona devolve um CallAgent objeto de exemplo. O createCallAgent método toma como CommunicationUserCredential argumento, que encapsula um símbolo de acesso. Para aceder ao DeviceManager, deve ser criada uma instância callAgent primeiro, e depois pode utilizar o CallClient.getDeviceManager método para obter o 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();

Para definir um nome de exibição para o chamador, utilize este método 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();

Aviso

Até à versão 1.1.0 e versão beta 1.1.0-beta.1 do Azure Communication Services Call Android SDK tem o isTranscriptionActive e addOnIsTranscriptionActiveChangedListener fazem parte do Call objeto. Para novas versões beta, estas APIs foram movidas como uma característica alargada de Call tal como descrito abaixo.

Nota

Esta API é fornecida como uma pré-visualização para os programadores e pode alterar-se com base nos comentários que recebermos. Não utilize esta API num ambiente de produção. Para utilizar esta api, por favor, utilize o lançamento 'beta' de Azure Communication Services Chamando o Android SDK

A transcrição de chamadas é uma característica estendida do objeto principal Call . Primeiro tem de obter o objeto da função de transcrição:

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

Em seguida, para verificar se a chamada está a ser transcrita, inspecione a isTranscriptionActive propriedade de callTranscriptionFeature. Volta boolean.

boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();

Também pode subscrever alterações na transcrição:

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

callTranscriptionFeature.addOnIsTranscriptionActiveChangedListener(handleCallOnIsTranscriptionChanged);

Configurar o seu sistema

Criar o projeto Xcode

No Xcode, crie um novo projeto iOS e selecione o modelo de Aplicação Single View . Este quickstart utiliza a estrutura SwiftUI, por isso deve definir o Idioma para Swift e User Interface para SwiftUI.

Não vai criar testes de unidade ou testes de UI durante este arranque rápido. Sinta-se livre para limpar os testes de unidade incluir e incluir caixas de texto testes de UI .

Screenshot that shows the window for creating a project within Xcode.

Instale o pacote e dependências com Cacau

  1. Crie um Podfile para a sua aplicação, assim:

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

  3. Abra .xcworkspace com Xcode.

Solicitar acesso ao microfone

Para aceder ao microfone do dispositivo, é necessário atualizar a lista de propriedades de informação da sua aplicação com NSMicrophoneUsageDescription. Definiu o valor associado a um string que será incluído no diálogo que o sistema utiliza para solicitar o acesso do utilizador.

Clique com o botão direito na Info.plist entrada da árvore do projeto e selecione Código Open AsSource>. Adicione as seguintes linhas na secção de nível <dict> superior e, em seguida, guarde o ficheiro.

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

Configurar o quadro de aplicações

Abra o ficheiro ContentView.swift do seu projeto e adicione uma import declaração ao topo do ficheiro para importar a AzureCommunicationCalling biblioteca. Além disso, importa AVFoundation. Vai precisar para pedidos de autorização áudio no código.

import AzureCommunicationCalling
import AVFoundation

Inicialize CallAgent

Para criar um CallAgent exemplo a partir de CallClient, você tem que usar um callClient.createCallAgent método que assíncronamente devolve um CallAgent objeto após a sua inicial.

Para criar um cliente de chamada, tem que passar um CommunicationTokenCredential objeto.

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

Passe o CommunicationTokenCredential objeto a que criou CallCliente desempere o nome do visor.

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

Aviso

Até à versão 1.1.0 e versão beta 1.1.0-beta.1 do Azure Communication Services Call iOS SDK tem como isTranscriptionActive parte do Call objeto e didChangeTranscriptionState faz parte do CallDelegate delegado. Para novas versões beta, estas APIs foram movidas como uma característica alargada de Call tal como descrito abaixo.

Nota

Esta API é fornecida como uma pré-visualização para os programadores e pode alterar-se com base nos comentários que recebermos. Não utilize esta API num ambiente de produção. Para utilizar esta api, por favor, utilize a versão 'beta' de Azure Communication Services call iOS SDK

A transcrição de chamadas é uma característica estendida do objeto principal Call . Primeiro tem de obter o objeto da função de transcrição:

let callTranscriptionFeature = call.feature(Features.transcription)

Em seguida, para verificar se a chamada foi transcrita, inspecione a isTranscriptionActive propriedade de callTranscriptionFeature. Volta Bool.

let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive;

Também pode subscrever alterações de transcrição implementando TranscriptionCallFeatureDelegate o delegado na sua classe com o evento didChangeTranscriptionState:

callTranscriptionFeature.delegate = self

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

Passos seguintes