Todos os produtos
Search
Central de documentação

ApsaraVideo Live:APIs do AliRtcEngine

Última atualização: Sep 12, 2026

Este tópico descreve as APIs do SDK do ApsaraVideo Real-time Communication (ARTC) para Windows.

Sumário

APIs básicas

API

Descrição

Create

Cria uma instância do AliRtcEngine (padrão singleton).

Destroy

Destrói a instância do AliRtcEngine.

QueryInterface

Obtém uma instância de uma API de recurso.

SetH5CompatibleMode

Define o modo de compatibilidade H5.

GetH5CompatibleMode

Verifica se o modo atual é compatível com H5.

SetEngineEventListener

Configura os callbacks do listener de eventos.

GetSDKVersion

Consulta o número da versão atual do SDK.

APIs relacionadas a canais

API

Descrição

SetChannelProfile

Define o perfil do canal.

SetAudioProfile

Define o perfil de áudio.

IsAudioOnlyMode

Consulta se o modo atual é apenas de áudio.

SetAudioOnlyMode

Define o modo como apenas áudio ou áudio e vídeo.

[JoinChannel[1/3]](#6ec4ce3e5embd)

Entra em um canal.

[JoinChannel[2/3]](#f4a9ec8aabk64)

Entra em um canal.

[JoinChannel[3/3]](#vf8Vx)

Entra em um canal.

LeaveChannel

Sai de um canal.

IsInCall

Verifica se o usuário está em um canal.

SetClientRole

Define a função do usuário.

GetClientRole

Obtém a função do usuário.

[RefreshAuthInfo[1/2]](#fd1370c8b84kb)

Atualiza as informações de autenticação.

[RefreshAuthInfo[2/2]](#0c27b3f410fgl)

Atualiza as informações de autenticação.

APIs de publicação e assinatura

API

Descrição

PublishLocalAudioStream

Define se deve publicar o stream de áudio local. Por padrão, o stream de áudio é publicado.

IsLocalAudioStreamPublished

Consulta se o stream de áudio local está sendo publicado.

SetDefaultSubscribeAllRemoteAudioStreams

Define se deve assinar streams de áudio remotos por padrão. Por padrão, todos os streams de áudio remotos são assinados.

Chame esta API antes de entrar em um canal.

SubscribeRemoteAudioStream

Interrompe ou retoma a assinatura do stream de áudio de um usuário remoto específico.

SubscribeAllRemoteAudioStreams

Interrompe ou retoma a assinatura de todos os streams de áudio remotos.

[PublishLocalVideoStream[1/2]](#6b40bac94anns)

Define se deve publicar o stream de vídeo local.

[PublishLocalVideoStream[2/2]](#87df63c104nvw)

IsLocalVideoStreamPublished

Consulta se o stream de vídeo local está sendo publicado.

SetDefaultSubscribeAllRemoteVideoStreams

Define se deve assinar streams de vídeo remotos por padrão. Por padrão, todos os streams de vídeo remotos são assinados.

Chame esta API antes de entrar em um canal.

SubscribeRemoteVideoStream

Interrompe ou retoma a assinatura do stream de vídeo de um usuário remoto.

SubscribeAllRemoteVideoStreams

Interrompe ou retoma a assinatura de todos os streams de vídeo remotos.

[SubscribeRemoteMediaStream[1/2]](#9a61b12bb2g59)

Interrompe ou retoma a assinatura do stream de mídia de um usuário remoto específico.

Use esta API quando existirem streams de áudio e vídeo que precisem ser controlados.

[SubscribeRemoteMediaStream[2/2]](#HQuvY)

Interrompe ou retoma a assinatura do stream de mídia de um usuário remoto específico.

Use esta API quando existirem streams de áudio e vídeo que precisem ser controlados.

SubscribeRemoteDestChannelStream

Interrompe ou retoma a assinatura do stream de mídia de um usuário remoto específico entre canais.

SetRemoteAudioVolume

Ajusta o volume de reprodução de um usuário remoto especificado no cliente local.

APIs de gerenciamento de dispositivos de áudio

API

Descrição

MuteLocalMic

Define se deve parar a publicação do áudio local.

MuteRemoteAudio

Define se deve parar a reprodução do stream de áudio remoto.

MuteAllRemoteAudio

Interrompe ou retoma a reprodução de todo o áudio remoto.

[StartAudioCapture[1/2]](#55c3de4858tsh)

Ativa a captura de áudio.

[StartAudioCapture[2/2]](#ab616abc8etr6)

Ativa a captura de áudio.

StopAudioCapture

Desativa a captura de áudio.

EnableAudioVolumeIndication

Ativa o recurso de detecção de volume.

StartAudioPlayer

Ativa o dispositivo de reprodução de áudio.

StopAudioPlayer

Desativa a reprodução de áudio.

SetPlayoutVolume

Define o volume de reprodução.

SetRecordingVolume

Define o volume de gravação.

PlayAudioFileTest

Reproduz um arquivo de áudio.

StopAudioFileTest

Para a reprodução do arquivo de áudio.

StartAudioCaptureTest

Inicia um teste de captura de áudio antes de uma chamada.

StopAudioCaptureTest

Para o teste de captura de áudio.

EnableSystemAudioRecording

Ativa ou desativa a captura e publicação de áudio do sistema.

IsSystemAudioRecording

Consulta se a captura e publicação de áudio do sistema estão ativadas.

SetSystemAudioRecordingVolume

Define o volume para captura e publicação de áudio do sistema.

GetSystemAudioRecordingVolume

Obtém o volume atual para captura e publicação de áudio do sistema.

SetSystemAudioPlayoutVolume

Define o volume de reprodução de áudio do sistema.

GetSystemAudioPlayoutVolume

Obtém o volume atual de reprodução de áudio do sistema.

GetAudioCaptureList

Obtém a lista de dispositivos de captura de áudio.

GetCurrentAudioCaptureName

Obtém o nome do dispositivo de captura de áudio atual.

GetCurrentAudioCaptureID

Obtém o ID do dispositivo de captura de áudio atual.

SetCurrentAudioCaptureName

Define o dispositivo de captura de áudio com o nome especificado como o dispositivo atual.

SetCurrentAudioCaptureID

Define o ID do dispositivo de captura de áudio atual.

GetAudioPlayerList

Obtém a lista de dispositivos de reprodução de áudio atuais.

GetSystemRecordAudioPlayerList

Obtém a lista de dispositivos de reprodução de áudio do sistema atuais.

GetCurrentAudioPlayerName

Obtém o nome do dispositivo de reprodução de áudio atual.

GetCurrentAudioPlayerID

Obtém o ID do dispositivo de reprodução de áudio atual.

SetCurrentAudioPlayerName

Define o dispositivo com o nome especificado como o dispositivo de reprodução atual.

SetCurrentAudioPlayerID

Define o dispositivo com o ID especificado como o dispositivo de reprodução atual.

SetRecordingDeviceVolume

Define o volume do dispositivo de captura de áudio.

GetRecordingDeviceVolume

Obtém o volume do dispositivo de captura de áudio.

SetPlaybackDeviceVolume

Define o volume do dispositivo de reprodução de áudio.

GetPlaybackDeviceVolume

Obtém o volume do dispositivo de reprodução de áudio.

SetRecordingDeviceMute

Define o status de mudo do dispositivo de captura de áudio.

GetRecordingDeviceMute

Obtém o status de mudo do dispositivo de captura de áudio.

SetPlaybackDeviceMute

Define o status de mudo do dispositivo de reprodução de áudio.

GetPlaybackDeviceMute

Obtém o status de mudo do dispositivo de reprodução de áudio.

Modificação de voz e reverberação

API

Descrição

SetAudioEffectVoiceChangerMode

Define o modo de efeito do modificador de voz.

SetAudioEffectPitchValue

Define o parâmetro de alteração de tom.

SetAudioEffectReverbMode

Define o modo de efeito de reverberação.

SetAudioEffectReverbParamType

Define o tipo de efeito de reverberação e parâmetros específicos.

setAudioEffectBeautifyMode

Define o modo de efeito predefinido de embelezamento de voz.

setAudioEffectEqualizationParam

Define os parâmetros do equalizador de áudio (EQ) para ajustar o ganho de uma faixa de frequência especificada.

Entrada de áudio personalizada

API

Descrição

AddExternalAudioStream

Adiciona um stream de áudio externo.

PushExternalAudioStreamRawData

Insere dados de stream de áudio externo.

SetExternalAudioStreamPublishVolume

Define o volume de publicação.

GetExternalAudioStreamPublishVolume

Obtém o volume de publicação.

SetExternalAudioStreamPlayoutVolume

Define o volume de reprodução do stream de áudio externo.

GetExternalAudioStreamPlayoutVolume

Obtém o volume de reprodução do stream de áudio externo.

RemoveExternalAudioStream

Remove um stream de áudio externo.

Acompanhamento de áudio

API

Descrição

GetAudioFileInfo

Obtém informações do arquivo de áudio.

StartAudioAccompany

Inicia a mixagem de áudio para acompanhamento.

StopAudioAccompany

Para a mixagem de áudio para acompanhamento.

SetAudioAccompanyVolume

Define o volume do acompanhamento.

SetAudioAccompanyPublishVolume

Define o volume de publicação do acompanhamento.

GetAudioAccompanyPublishVolume

Obtém o volume de publicação do acompanhamento.

SetAudioAccompanyPlayoutVolume

Define o volume de reprodução local do acompanhamento.

GetAudioAccompanyPlayoutVolume

Obtém o volume de reprodução local do acompanhamento.

PauseAudioAccompany

Pausa a mixagem de áudio para acompanhamento.

ResumeAudioAccompany

Retoma a mixagem de áudio para acompanhamento.

GetAudioAccompanyDuration

Obtém a duração do arquivo de acompanhamento em milissegundos.

GetAudioAccompanyCurrentPosition

Obtém o progresso de reprodução do arquivo de acompanhamento em milissegundos.

SetAudioAccompanyPosition

Define a posição de reprodução do arquivo de acompanhamento.

Arquivos de efeitos sonoros

API

Descrição

PreloadAudioEffect

Pré-carrega um arquivo de efeito sonoro.

UnloadAudioEffect

Exclui um arquivo de efeito sonoro pré-carregado.

PlayAudioEffect

Inicia a reprodução de um efeito sonoro.

StopAudioEffect

Para a reprodução de um efeito sonoro.

StopAllAudioEffects

Para a reprodução de todos os efeitos sonoros.

PauseAudioEffect

Pausa um efeito sonoro.

PauseAllAudioEffects

Pausa todos os efeitos sonoros.

ResumeAudioEffect

Retoma um arquivo de efeito sonoro especificado.

ResumeAllAudioEffects

Retoma todos os arquivos de efeitos sonoros.

SetAudioEffectPublishVolume

Define o volume de mixagem para publicação de um efeito sonoro.

GetAudioEffectPublishVolume

Obtém o volume de mixagem para publicação de um efeito sonoro.

SetAllAudioEffectsPublishVolume

Define o volume de mixagem para publicação de todos os efeitos sonoros.

SetAudioEffectPlayoutVolume

Define o volume de reprodução local para um efeito sonoro.

GetAudioEffectPlayoutVolume

Obtém o volume de reprodução local para um efeito sonoro.

SetAllAudioEffectsPlayoutVolume

Define o volume de reprodução local para todos os efeitos sonoros.

APIs de gerenciamento de dispositivos de vídeo

API

Descrição

SetLocalViewConfig

Define a janela de renderização e os parâmetros de desenho para a visualização local.

SetCameraCapturerConfiguration

Define as preferências de captura da câmera.

EnableLocalVideo

Desativa ou reativa a captura de vídeo local.

MuteLocalCamera

Define se deve parar a publicação do stream de vídeo local.

SetRemoteViewConfig

Define a janela de renderização e os parâmetros de desenho para o vídeo remoto.

IsCameraOn

Verifica se a câmera está ligada.

SetVideoEncoderConfiguration

Define as propriedades de codificação de vídeo.

SetVideoDecoderConfiguration

Define as propriedades de decodificação de vídeo.

StartPreview

Inicia a visualização local.

StopPreview

Para a visualização local.

setVideoMirrorMode

Define os recursos de espelhamento para visualização e publicação.

SetCapturePipelineScaleMode

Define o momento do redimensionamento da captura. Determina se os dados de vídeo são redimensionados imediatamente após a captura ou durante a codificação.

GetCameraList

Obtém a lista de câmeras disponíveis.

GetCurrentCameraName

Obtém o nome da câmera em uso atualmente.

GetCurrentCameraID

Obtém o ID da câmera em uso atualmente.

SetCurrentCameraName

Define a câmera com o nome especificado como a câmera atual.

SetCurrentCameraID

Define a câmera com o ID especificado como a câmera atual.

GetCurrentCameraSupportedResolutionList

Obtém a lista de resoluções suportadas pela câmera atual.

Configurar callbacks de dados de vídeo

API

Descrição

RegisterVideoSampleObserver

Registra um objeto de saída de dados de vídeo.

UnRegisterVideoSampleObserver

Cancela o registro de um objeto de saída de dados de vídeo.

SnapshotVideo

Recurso de snapshot de vídeo.

Configurar callbacks de dados de áudio

API

Descrição

RegisterAudioFrameObserver

Registra um callback de dados de áudio.

UnRegisterAudioFrameObserver

Cancela a assinatura da saída de dados de áudio.

EnableAudioFrameObserver

Define parâmetros de callback de áudio.

Entrada de vídeo personalizada

API

Descrição

SetExternalVideoSource

Ativa uma fonte de entrada de vídeo externa.

PushExternalVideoFrame

Insere dados de vídeo.

APIs de compartilhamento de tela

API

Descrição

StartScreenShareByDesktopId

Inicia o compartilhamento do stream de tela correspondente ao ID da área de trabalho especificado.

StartScreenShareByScreenRegion

Inicia o compartilhamento do stream de vídeo de uma região específica da tela.

StartScreenShareByWindowId

Compartilha e publica o stream de vídeo de uma janela especificada por seu ID.

StopScreenShare

Para o compartilhamento de tela.

ResumeScreenShare

Retoma o compartilhamento de tela.

PauseScreenShare

Pausa o compartilhamento de tela.

IsScreenSharePublished

Consulta se o compartilhamento de tela está definido para publicação.

UpdateScreenShareConfig

Atualiza a configuração de compartilhamento de tela.

CheckWindowSourceVaild

Verifica se a janela correspondente ao ID da janela compartilhada é válida.

GetScreenShareConfig

Retorna as informações de configuração atuais do compartilhamento de tela.

GetScreenShareSourceInfo

Obtém uma lista de objetos com base na fonte especificada.

GetCurrentScreenShareSourceId

Obtém o ID da fonte atual de compartilhamento de tela.

GetCurrentScreenShareSourceType

Obtém uma lista de objetos com base na fonte especificada.

GetDesktopRegion

Obtém a região de compartilhamento de tela com base no ID e no título da fonte especificados.

SetScreenShareEncoderConfiguration

Define as propriedades de codificação de vídeo para o stream de tela.

APIs de transmissão ao vivo bypass

API

Descrição

StartPublishLiveStream

Inicia a transmissão ao vivo bypass.

UpdatePublishLiveStream

Atualiza os parâmetros da transmissão ao vivo bypass.

StopPublishLiveStream

Para a transmissão ao vivo bypass.

GetPublishLiveStreamState

Obtém o status da transmissão ao vivo bypass.

StartLastmileDetect

Inicia uma sondagem de qualidade de rede pré-chamada.

StopLastmileDetect

Para a sondagem de qualidade de rede pré-chamada.

APIs de detecção de qualidade de rede

API

Descrição

StartLastmileDetect

Inicia uma sondagem de qualidade de rede pré-chamada.

StopLastmileDetect

Para a sondagem de qualidade de rede pré-chamada.

SEI

API

Descrição

SendMediaExtensionMsg

Envia informações de extensão de mídia, implementadas internamente usando SEI.

SendMediaExtensionMsgEx

Envia informações de extensão de mídia (estendidas), implementadas internamente usando SEI.

Outras APIs

API

Descrição

SetParameter

Define parâmetros personalizados.

GetParameter

Obtém parâmetros personalizados.

SetLogDirPath

Define o caminho para salvar arquivos de log do SDK.

SetLogLevel

Define o nível de log.

GetNetworkTime

Obtém o tempo da linha do tempo.

SendDataChannelMessage

Envia uma mensagem de canal de dados.

Callbacks

AliEngineEventListener

API

Descrição

OnConnectionStatusChange

Callback para status de conexão de rede. Os clientes precisam prestar atenção a este callback.

OnLocalDeviceException

Callback para exceções de dispositivos locais. Os clientes precisam prestar atenção a este callback.

OnAuthInfoWillExpire

Notificação de que as informações de autenticação do usuário estão prestes a expirar. A autenticação expirará 30 segundos após o recebimento desta notificação. Os clientes precisam prestar atenção a este callback.

OnAuthInfoExpired

O servidor retorna que as informações expiraram quando o usuário chama uma API que requer autenticação.

OnJoinChannelResult

Callback para o resultado da entrada em um canal.

OnLeaveChannelResult

Callback para o resultado da saída de um canal.

OnRemoteUserOffLineNotify

Notificação de que um usuário remoto ficou offline.

OnRemoteUserOnLineNotify

Notificação de que um usuário remoto ficou online.

OnRemoteTrackAvailableNotify

Notificação de informações de publicação de stream remoto.

OnBye

Mensagem indicando que o usuário foi removido do servidor ou que o canal terminou.

OnAudioPublishStateChanged

Notificação de alteração no estado de publicação de áudio.

OnAudioSubscribeStateChanged

Notificação de alteração no estado de assinatura de áudio.

OnUserAudioMuted

Notificação de que um usuário remoto está silenciado.

OnUserAudioInterruptedBegin

Notificação de que a interrupção do dispositivo de áudio começou.

OnUserAudioInterruptedEnded

Notificação de que a interrupção do dispositivo de áudio terminou.

OnVideoPublishStateChanged

Callback para alteração no estado de publicação de vídeo.

OnVideoSubscribeStateChanged

Callback para alteração no estado de assinatura do stream da câmera.

OnUserVideoMuted

Notificação de que o usuário remoto está enviando quadros de vídeo pretos.

OnUserVideoEnabled

Notificação de que o usuário remoto desativou a captura do stream da câmera.

OnUserWillResignActive

O aplicativo do usuário remoto foi movido para segundo plano.

OnUserWillBecomeActive

O aplicativo do usuário remoto retornou ao primeiro plano.

OnAudioEffectFinished

Callback para quando a reprodução local de efeitos sonoros termina.

OnAudioVolumeCallback

O volume de áudio, status de voz e UID do áudio assinado.

OnActiveSpeaker

Detecção de atividade de voz. Callback para quando um usuário ativo é detectado.

OnPublishLiveStreamStateChanged

Callback para alteração no estado de publicação de stream bypass.

OnPublishTaskStateChanged

Callback para alteração no estado da tarefa bypass.

OnNetworkQualityChanged

Callback para alteração na qualidade da rede.

OnLastmileDetectResultWithQuality

Callback para a sondagem de qualidade de rede pré-chamada. Este callback é fornecido cerca de 3 segundos após o início da sondagem.

OnLastmileDetectResultWithBandWidth

Callback para os resultados da sondagem de qualidade de rede pré-chamada. Este callback é fornecido cerca de 30 segundos após o início da sondagem.

OnOccurError

Se ocorrer um erro no mecanismo, este callback notifica o aplicativo.

OnFirstAudioPacketSend

Callback para o primeiro pacote de áudio enviado.

OnFirstAudioPacketReceived

Callback para o primeiro pacote de áudio recebido.

OnFirstVideoPacketSend

Callback para o primeiro pacote de vídeo enviado.

OnFirstVideoPacketReceived

Callback para o primeiro pacote de vídeo recebido.

OnFirstRemoteAudioDecoded

Callback para o primeiro quadro de áudio remoto decodificado.

OnFirstRemoteVideoFrameDrawn

Esta mensagem é acionada quando o primeiro quadro de vídeo de um usuário remoto é exibido.

OnFirstLocalVideoFrameDrawn

Esta mensagem é acionada quando o primeiro quadro de vídeo é exibido na visualização.

OnTestAudioVolumeCallback

Callback de volume para o teste de captura de áudio pré-chamada.

OnAudioAccompanyStateChanged

Callback para estado de reprodução de acompanhamento local.

OnAudioFileInfo

Callback para informações de arquivo de áudio.

OnRemoteAudioAccompanyStarted

Callback para quando o acompanhamento de um usuário remoto começa a ser reproduzido.

OnRemoteAudioAccompanyFinished

Callback para quando o acompanhamento de um usuário remoto termina de ser reproduzido.

OnStats

Callback de dados em tempo real (acionado a cada 2 segundos).

OnLocalVideoStats

Estatísticas de vídeo local (acionado a cada 2 segundos).

OnRemoteVideoStats

Estatísticas de vídeo remoto (acionado a cada 2 segundos).

OnLocalAudioStats

Estatísticas de áudio local (acionado a cada 2 segundos).

OnRemoteAudioStats

Estatísticas de áudio remoto (acionado a cada 2 segundos).

OnMediaExtensionMsgReceived

Callback para recebimento de informações de extensão de mídia.

OnSnapshotComplete

Callback para resultado de snapshot.

OnLocalAudioStateChange

Callback para estado do dispositivo de áudio local.

onLocalVideoStateChanged

Callback para estado do dispositivo de vídeo local.

OnRemoteUserSubscribedDataChannel

Callback indicando que você pode começar a enviar mensagens de canal de dados.

OnDataChannelMessage

Callback para mensagens de canal de dados.

IAudioFrameObserver

API

Descrição

OnCapturedAudioFrame

Callback para dados brutos capturados.

OnProcessCapturedAudioFrame

Callback para dados após processamento 3A.

OnPublishAudioFrame

Callback para dados de stream publicados.

OnPlaybackAudioFrame

Callback para dados de reprodução.

OnRemoteUserAudioFrame

Callback para dados de stream remotos.

IVideoFrameObserver

API

Descrição

OnCaptureVideoSample

Callback para dados de vídeo capturados localmente.

OnPreEncodeVideoSample

Callback para dados de vídeo locais antes da codificação.

OnRemoteVideoSample

Callback para dados de vídeo remotos.

GetVideoAlignment

Alinhamento de largura de saída de vídeo.

GetObservedFramePosition

Conteúdo de saída de dados de vídeo.

AliEngineDestroyCompletionCallback

API

Descrição

onDestroyCompletion

Callback para quando a destruição é concluída.

Detalhes da API

Create

Cria uma instância de AliRtcEngine.

static AliEngine *Create(const char *extras);

Quando chamar

Chame este método para criar uma instância de AliRtcEngine antes de invocar qualquer outra API do ARTC SDK.

Limites

O SDK suporta apenas uma instância de AliRtcEngine por aplicativo.

Descrições dos parâmetros

Nome

Tipo

Descrição

extras

const char *

Recebe parâmetros para liberações graduais (grayscale). Use configurações JSON para definir recursos especiais do SDK. Este parâmetro pode ser uma string vazia.

Valor de retorno

Retorna um objeto singleton da classe AliEngine.

Destroy

Destrói a instância de AliRtcEngine.

static void Destroy(AliEngineDestroyCompletionCallback *callback = nullptr);

Este método destrói o objeto singleton AliRtcEngine e libera todos os seus recursos internos. Após a chamada deste método, não é mais possível utilizar outros métodos do AliRtcEngine ou quaisquer callbacks. Para utilizá-los novamente, chame Create para criar uma nova instância.

Nota

Esta é uma invocação assíncrona. Ela fornece um callback que permite acompanhar a conclusão da operação de destruição. Você só pode criar uma nova instância após receber o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#TUn2z" id="14c93d2e8bamj">onDestroyCompletion</a>, que indica o fim do processo de destruição.

Quando chamar

Chame este método para liberar a instância após terminar de usar a Comunicação em Tempo Real.

Limites

Para evitar deadlocks, não chame este método dentro de nenhum callback do SDK.

Parâmetros

Parâmetro

Tipo

Descrição

callback

AliEngineDestroyCompletionCallback

O callback acionado quando a operação de destruição é concluída.

QueryInterface

Recupera uma instância de interface de recurso.

virtual int QueryInterface(AliEngineInterfaceIdType iid, void** pInterface) = 0;

Este método recupera uma instância de uma interface de recurso específica. Ao desenvolver aplicativos de Comunicação em Tempo Real para a plataforma Windows, muitos recursos avançados são fornecidos por meio de classes de interface correspondentes, como gerenciamento de dispositivos de áudio (AliEngineInterfaceAudioDeviceManager), gerenciamento de dispositivos de vídeo (AliEngineInterfaceVideoDeviceManager) e o mecanismo de mídia (AliEngineInterfaceMediaEngine). Antes de chamar os métodos relacionados, use o método QueryInterface para obter instâncias dessas interfaces.

Nota

Após terminar de usar uma instância de interface, chame o método Release da interface correspondente para liberar recursos e evitar vazamentos de memória.

Parâmetros

Nome

Tipo

Descrição

iid

AliEngineInterfaceIdType

O tipo da interface de recurso. Indica ao SDK qual tipo de instância de interface deve ser obtido.

  • AliEngineInterfaceAudioDeviceManager: Se a chamada for bem-sucedida, pInterface retorna um objeto IAliEngineAudioDeviceManager.

  • AliEngineInterfaceVideoDeviceManager: Em caso de sucesso, pInterface retorna um objeto IAliEngineVideoDeviceManager.

  • AliEngineInterfaceMediaEngine: Caso a chamada tenha êxito, pInterface retorna um objeto IAliEngineMediaEngine.

pInterface

void**

Retorna uma instância do tipo de interface especificado. Exemplo:

AliEngineInterfaceMediaEngine* mediaEngine = nullptr;

Passe (void**)&mediaEngine.

Valor de retorno

  • 0: A chamada foi bem-sucedida.

  • <0: A chamada falhou.

SetH5CompatibleMode

Ativa ou desativa o modo de compatibilidade H5.

static void SetH5CompatibleMode(bool comp);

Parâmetros

Nome

Tipo

Descrição

comp

bool

  • true: Ativa a compatibilidade H5.

  • false: Desativa a compatibilidade H5. O valor padrão é false.

Nota

A versão atual não suporta a alteração do modo de compatibilidade H5 após a criação de uma instância AliRtcEngine. Chame este método antes de criar a instância.

GetH5CompatibleMode

Verifica se o modo de compatibilidade H5 está ativado.

static bool GetH5CompatibleMode();

Valor de retorno

true: A compatibilidade H5 está ativada. false: A compatibilidade H5 está desativada.

SetEngineEventListener

Define os callbacks do listener de eventos.

virtual int SetEngineEventListener(AliEngineEventListener *listener) = 0;

Este método define um listener de callbacks para o SDK. Ao configurar esse listener, você recebe diversos eventos de notificação do mecanismo, como entrada ou saída de usuários de um canal, alterações no status da rede e status dos fluxos de áudio e vídeo.

Implemente a classe AliEngineEventListener para personalizar os métodos de evento que deseja monitorar. Por padrão, todos os métodos possuem implementações vazias, portanto, não é necessário implementar todos eles. Implemente apenas os métodos de evento necessários para o seu caso de uso.

Nota
  • Todos os callbacks são executados em threads internas do SDK. Não realize operações de UI nesses callbacks. Caso sejam necessárias operações de UI, execute-as na thread principal. Não chame este método dentro de um callback.

  • Evite executar operações demoradas nos callbacks, como chamar o método Destroy do AliEngine. Isso pode causar bloqueios desnecessários e afetar o desempenho do SDK.

Callbacks relacionados

Se ocorrer uma exceção durante uma operação, o SDK tentará primeiro se recuperar automaticamente usando seu mecanismo interno de nova tentativa. Para erros que não podem ser resolvidos automaticamente, o SDK notifica seu aplicativo por meio de interfaces de callback predefinidas. Abaixo estão os principais callbacks para problemas que o SDK não consegue tratar e que exigem que seu aplicativo os monitore e responda adequadamente:

Causa da exceção

Callback e parâmetros

Solução

Descrição

Falha na autenticação

O parâmetro result no callback OnJoinChannelResult retorna AliRtcErrJoinBadToken

Se este erro ocorrer, verifique se o token está correto.

Quando um usuário chama uma API e a autenticação falha, o sistema retorna uma mensagem de erro de falha de autenticação no callback da API.

Conectividade de rede anormal

O callback OnConnectionStatusChange retorna AliRtcConnectionStatusFailed.

Caso esta exceção ocorra, o aplicativo precisa entrar novamente no canal.

O SDK consegue se recuperar automaticamente de desconexões de rede por um determinado período. No entanto, se o tempo de desconexão exceder o limiar predefinido, um timeout é acionado e a conexão é perdida. Nesse caso, o aplicativo deve verificar o status da rede e orientar o usuário a entrar novamente no canal.

Dispositivo local anormal

OnLocalDeviceException

Ao encontrar esta exceção, verifique se as permissões e o hardware do dispositivo estão normais.

O service RTC oferece detecção de dispositivos e diagnóstico de exceções. Quando ocorre uma exceção em um dispositivo local, o service RTC notifica o cliente por meio de um callback. Se o SDK não conseguir resolver o problema, o aplicativo deve intervir para verificar se o dispositivo está funcionando corretamente.

Desconectado forçadamente

OnBye

  • AliRtcOnByeUserReplaced: Se esta exceção ocorrer, verifique se os IDs de usuário são idênticos.

  • AliRtcOnByeBeKickedOut: Esta exceção indica que o usuário foi removido pelo service. O usuário precisa entrar novamente no canal.

  • AliRtcOnByeChannelTerminated: Indica que o canal foi destruído. O usuário deve entrar novamente no canal.

O service RTC fornece um recurso para que administradores removam participantes ativamente.

Autenticação prestes a expirar

OnWillAuthInfoExpire

Nesta situação, obtenha as informações de autenticação mais recentes e chame refreshAuthInfo para atualizá-las.

Erros de expiração de autenticação ocorrem em duas situações: quando um usuário chama uma API ou durante a execução do programa. Portanto, o feedback de erro é enviado por meio de um callback de API ou de um callback de erro separado.

Autenticação expirada

OnAuthInfoExpired

Diante desta exceção, o aplicativo precisa entrar novamente no canal.

Erros de expiração de autenticação ocorrem em duas situações: quando um usuário chama uma API ou durante a execução do programa. Assim, o feedback de erro é enviado via callback de API ou callback de erro dedicado.

Parâmetros

Nome

Tipo

Descrição

listener

AliEngineEventListener*

O listener de eventos do mecanismo. Implemente a classe AliEngineEventListener e sobrescreva os callbacks de eventos que deseja monitorar. Definir este valor como nullptr cancela todos os listeners de eventos.

Valor de retorno

  • 0: Sucesso.

  • Valor diferente de zero: Falha. Isso pode ocorrer porque o parâmetro listener é inválido ou o SDK não foi inicializado corretamente.

GetSDKVersion

Consulta a versão atual do SDK.

static const char *GetSDKVersion();

Valor de retorno

O número da versão atual do SDK em formato de string. Exemplo: "2.5.0.x".

SetChannelProfile

Define o perfil do canal.

virtual int SetChannelProfile(const AliEngineChannelProfile channelProfile) = 0;

Este método define o perfil do canal. Atualmente, ele fornece perfis para cenários de videochamada e cenários de transmissão interativa:

  • Perfil de videochamada: Todos os usuários têm a função streamer e podem publicar e assinar streams.

  • Modo de transmissão interativa: Chame o método <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#c99c2b257dd8o" id="4e50f781a01e1">SetClientRole</a> para definir a função do usuário. Defina a função dos usuários que enviam streams no canal como streamer (AliRTCSdkInteractive). Se um usuário precisar apenas receber streams sem enviá-los, defina sua função como viewer (AliRTCSdkLive). Este modo é recomendado para cenários RTC.

Nota
  • Recomendamos o uso do perfil de transmissão interativa para todos os cenários RTC. Para isso, chame este método e defina o perfil como AliEngineInteractiveLive.

  • Os usuários no mesmo canal devem usar o mesmo perfil de canal.

Quando chamar

Chame este método apenas antes de entrar em um canal. Não é possível redefini-lo enquanto estiver no canal. A redefinição só é permitida após sair do canal.

Parâmetros

Nome

Tipo

Descrição

profile

AliEngineChannelProfile

O perfil do canal. Para cenários RTC, recomendamos definir este valor como AliEngineInteractiveLive, que corresponde ao perfil de transmissão interativa.

Valor de retorno

  • 0: A chamada do método foi bem-sucedida.

  • Outros valores: A chamada do método falhou.

    • -1: O SDK não foi inicializado ou foi destruído.

SetAudioProfile

Define o perfil de áudio.

virtual int SetAudioProfile(int audioProfile, int audioScene) = 0;

Este método define o perfil de codificação de áudio e o cenário de áudio. Para mais informações, consulte Common audio operations and configurations. O ARTC SDK utiliza o modo de alta qualidade (AliEngineHighQualityMode) e o modo de cenário musical (AliEngineSceneMusicMode) por padrão. Caso as configurações padrão não atendam às suas necessidades, chame este método para configurá-las.

Quando chamar

Chame este método apenas antes de entrar em um canal. Não é possível redefini-lo após entrar no canal. A redefinição só é permitida após sair do canal.

Parâmetros

Nome

Tipo

Descrição

audio_profile

AliEngineAudioProfile

Parâmetro do perfil de captura ou codificação de áudio. Recomendamos o uso do modo de alta qualidade (AliRtcEngineHighQualityMode).

Nota

Para interoperabilidade com WEB, defina a taxa de amostragem como 48 kHz.

  • AliEngineLowQualityMode: Modo de áudio de baixa qualidade. Taxa de amostragem padrão de 8000 Hz, mono e bitrate máximo de 12 kbps.

  • AliEngineBasicQualityMode: Modo de áudio de qualidade padrão. Taxa de amostragem padrão de 16000 Hz, mono e bitrate máximo de 24 kbps.

  • AliEngineHighQualityMode: Taxa de amostragem padrão de 48000 Hz, mono e bitrate máximo de 64 kbps.

  • AliEngineStereoHighQualityMode: Modo de áudio estéreo de alta qualidade. Taxa de amostragem padrão de 48000 Hz, estéreo e bitrate máximo de 80 kbps.

  • AliEngineSuperHighQualityMode: Modo de áudio de altíssima qualidade. Taxa de amostragem padrão de 48000 Hz, mono e bitrate máximo de 96 kbps.

  • AliEngineStereoSuperHighQualityMode: Modo de áudio estéreo de altíssima qualidade. Taxa de amostragem padrão de 48000 Hz, estéreo e bitrate máximo de 128 kbps.

audio_scene

AliEngineAudioScenario

Parâmetro do cenário de áudio. Inclui principalmente:

  • AliEngineSceneMusicMode (recomendado): Cenário de música. Utiliza algoritmos 3A baseados em software e captura áudio do celular para maior qualidade sonora.

  • AliEngineSceneDefaultMode: Utiliza algoritmos 3A baseados em hardware. Permite capturar áudio de dispositivos Bluetooth.

Nota

Para ARTC SDK v6.21 e posteriores, não defina como cenário de sala de bate-papo (AliRtcSceneChatroomMode).

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

IsAudioOnlyMode

Verifica se o modo atual é somente áudio.

virtual bool IsAudioOnlyMode() = 0;

Valor de retorno

true: O modo atual é somente áudio. false: O modo atual inclui áudio e vídeo.

SetAudioOnlyMode

Define o modo como somente áudio ou áudio e vídeo.

virtual int SetAudioOnlyMode(bool audioOnly) = 0;

Parâmetros

Nome

Tipo

Descrição

audioOnly

bool

  • true: Apenas streams de áudio são publicados e assinados.

  • false: Suporta áudio e vídeo. O valor padrão é false.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

JoinChannel[1/3]

Entra em um canal.

virtual int JoinChannel(const char *token, const char *channelId, const char *userId, const char *userName) = 0;

Este método permite entrar em um canal. No ARTC, os usuários são organizados por canais. É necessário entrar em um canal para publicar ou assinar streams de áudio e vídeo. Este método, JoinChannel[2/3] e JoinChannel[3/3] podem ser usados para essa finalidade. Eles diferem nos métodos de autenticação e nas informações de usuário transmitidas, conforme descrito abaixo:

  • Destinado a entrar em um canal com um único parâmetro. Passe um token gerado para entrada com parâmetro único usando Token-based authentication. Recomendamos este método para entrada em canais em cenários RTC.

  • JoinChannel[2/3] serve para entrar em um canal com múltiplos parâmetros. Passe um token de múltiplos parâmetros gerado via Token-based authentication juntamente com as informações de usuário usadas na geração do token.

  • JoinChannel[3/3] é voltado para cenários de interação em tempo real com IA. Passe um token de parâmetro único e defina a propriedade do usuário capabilityProfile de acordo com o cenário.

Nota

Por padrão, ao entrar em um canal, você assina os streams de áudio e vídeo de todos os outros usuários presentes e envia seus próprios streams para usuários remotos. Para cancelar essa assinatura padrão, chame <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="00e50070ba5ck">SetDefaultSubscribeAllRemoteAudioStreams</a> e <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="0b0bcff091gtk">SetDefaultSubscribeAllRemoteVideoStreams</a> antes de invocar esta API, desabilitando assim a assinatura de streams de áudio ou vídeo.

Quando chamar

Chame este método após criar o mecanismo.

Limites

  • Após entrar com sucesso em um canal, para entrar em outro, chame primeiro LeaveChannel para sair do canal atual. Só é possível entrar em outro canal após receber o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#b70203f9ea0mz" id="b2522e57e4vom">OnLeaveChannelResult</a>.

  • Este método suporta a entrada em apenas um canal por vez.

  • Aplicativos com App IDs diferentes não conseguem se comunicar entre si.

  • Não chame este método ao tentar novamente após uma falha na entrada do canal.

Callbacks relacionados

Uma chamada bem-sucedida a este método aciona os seguintes callbacks:

  • O resultado da entrada do cliente local no canal é retornado pelo callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#7cbf47a35bcel" id="cad6eb9b1bwx7">OnJoinChannelResult</a> de AliRtcEngineEventListener.

  • Após a entrada bem-sucedida no canal, o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#3333f6e9d344q" id="fab4a94264m28">OnRemoteUserOnLineNotify</a> é acionado nos clientes remotos.

Parâmetros

Parâmetro

Tipo

Descrição

token

const char *

Informações de autenticação para entrada com parâmetro único.

channelId

const char *

O canal no qual entrar. Deve ser idêntico ao valor usado para gerar o token.

userId

const char *

O ID do usuário para entrada. Deve corresponder ao valor utilizado na geração do token.

userName

const char *

Nome de exibição do usuário (não confundir com o ID do usuário).

Valor de retorno

0: A chamada do método foi bem-sucedida. Valor diferente de zero: A chamada do método falhou.

JoinChannel[2/3]

Entra em um canal.

virtual int JoinChannel(const AliEngineAuthInfo &authInfo,
                                 const char *userName) = 0;

Este método permite entrar em um canal. No ARTC, os usuários são organizados por canais. É necessário entrar em um canal para publicar ou assinar streams de áudio e vídeo. Este método, JoinChannel[1/3] e JoinChannel[3/3] podem ser usados para essa finalidade. Eles diferem nos métodos de autenticação e nas informações de usuário transmitidas, conforme descrito abaixo:

  • JoinChannel[1/3] destina-se a entrar em um canal com um único parâmetro. Passe um token gerado para entrada com parâmetro único usando Token-based authentication. Recomendamos este método para entrada em canais em cenários RTC.

  • Utilize este método para entrar em um canal com múltiplos parâmetros. Passe um token de múltiplos parâmetros gerado via Token-based authentication juntamente com as informações de usuário usadas na geração do token.

  • JoinChannel[3/3] é voltado para cenários de interação em tempo real com IA. Passe um token de parâmetro único e defina a propriedade do usuário capabilityProfile de acordo com o cenário.

Nota
  • Por padrão, ao entrar em um canal, você assina os streams de áudio e vídeo de todos os outros usuários e envia seus próprios streams para usuários remotos. Para cancelar a assinatura padrão, chame <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="d4639ae922klp">SetDefaultSubscribeAllRemoteAudioStreams</a> e <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="6d0a63e70bpiz">SetDefaultSubscribeAllRemoteVideoStreams</a> antes de invocar esta operação, desabilitando assim a assinatura de streams de áudio ou vídeo.

  • Trata-se de um método de entrada no canal com múltiplos parâmetros. Antes de chamá-lo, gere um token de múltiplos parâmetros. Para mais informações, consulte Token-based authentication.

Limites

  • Após entrar com sucesso em um canal, para entrar em outro, chame primeiro LeaveChannel para sair do canal atual. Só é possível entrar em outro canal após receber o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#b70203f9ea0mz" id="fcd2fac6abf0y">OnLeaveChannelResult</a>.

  • Este método suporta a entrada em apenas um canal por vez.

  • Aplicativos com App IDs diferentes não conseguem se comunicar entre si.

Callbacks relacionados

Uma chamada bem-sucedida a este método aciona os seguintes callbacks:

  • O cliente local é notificado sobre o resultado da entrada no canal por meio do callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#7cbf47a35bcel" id="b3db8c610ewua">OnJoinChannelResult</a>.

  • Após a entrada bem-sucedida no canal, o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#3333f6e9d344q" id="a1297d33bcd92">OnRemoteUserOnLineNotify</a> é acionado nos clientes remotos.

Parâmetros

Nome

Tipo

Descrição

authInfo

AliEngineAuthInfo

Informações de autenticação.

userName

const char *

Nome de exibição do usuário (não confundir com o ID do usuário).

JoinChannel[3/3]

Entra em um canal.

virtual int JoinChannel(const char *token, const char *channelId, const char *userId, const AliEngineChannelParam &userParam) = 0;

Este método permite entrar em um canal. No ARTC, os usuários são organizados por canais. É necessário entrar em um canal para publicar ou assinar streams de áudio e vídeo. Este método, JoinChannel[1/3] e JoinChannel[2/3] podem ser usados para essa finalidade. Eles diferem nos métodos de autenticação e nas informações de usuário transmitidas, conforme descrito abaixo:

  • JoinChannel[1/3] é um método de parâmetro único para entrar em um canal em cenários RTC. Passe um token gerado para entrada com parâmetro único usando Token-based authentication. Recomendamos este método para entrada em canais em cenários RTC.

  • JoinChannel[2/3] serve para entrar em um canal com múltiplos parâmetros. Passe um token de múltiplos parâmetros gerado via Token-based authentication juntamente com as informações de usuário usadas na geração do token.

  • Voltado para cenários de interação em tempo real com IA. Passe um token de parâmetro único e defina a propriedade do usuário capabilityProfile de acordo com o cenário. Para comunicação com um agente de IA, defina como AliCapabilityProfileHuman.

Nota

Por padrão, ao entrar em um canal, você assina os streams de áudio e vídeo de todos os outros usuários presentes e envia seus próprios streams para usuários remotos. Para cancelar essa assinatura padrão, chame <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="952a402dc4v73">SetDefaultSubscribeAllRemoteAudioStreams</a> e <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="4e977610713wy">SetDefaultSubscribeAllRemoteVideoStreams</a> antes de invocar esta API, desabilitando assim a assinatura de streams de áudio ou vídeo.

Limites

  • Após entrar com sucesso em um canal, para entrar em outro, chame primeiro leaveChannel para sair do canal atual. Só é possível entrar em um canal novamente após receber o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#b70203f9ea0mz" id="15ec544e3985m">OnLeaveChannelResult</a>.

  • Este método suporta a entrada em apenas um canal por vez.

  • Aplicativos com App IDs diferentes não conseguem se comunicar entre si.

  • Não chame este método ao tentar novamente após uma falha na entrada do canal.

Callbacks relacionados

Uma chamada bem-sucedida a este método aciona os seguintes callbacks:

  • O resultado da entrada do usuário local no canal é fornecido pelo callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#7cbf47a35bcel" id="5d109191c950l">OnJoinChannelResult</a>.

  • Após a entrada bem-sucedida no canal, o cliente remoto aciona o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#3333f6e9d344q" id="fa6f8d9357glx">OnRemoteUserOnLineNotify</a>.

Parâmetros

Parâmetro

Tipo

Descrição

token

const char *

Informações de autenticação para entrada com parâmetro único.

channelId

const char *

Canal a ser acessado. Deve ser idêntico ao valor usado na geração do token. Este campo é opcional; se deixado em branco, o sistema utiliza por padrão o channelId empregado na criação do token.

userId

const char *

ID do usuário para entrada no canal. Precisa corresponder exatamente ao valor utilizado ao gerar o token. Caso não seja preenchido, o userId original da geração do token será aplicado automaticamente.

userParam

AliEngineChannelParam

Propriedades do usuário, incluindo apelido, tipo e ID personalizado.

Valor de retorno

0: A chamada do método foi bem-sucedida. Valor diferente de zero: Falha na chamada do método.

LeaveChannel

Permite sair do canal.

virtual int LeaveChannel() = 0;

Ao invocar este método, o SDK encerra a chamada de áudio e vídeo e desconecta o usuário do canal atual.

Nota
  • Trata-se de uma operação assíncrona. O retorno positivo desta chamada não confirma a saída imediata do canal. A desconexão só é efetivada quando o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#b70203f9ea0mz" id="2741d56c6eqau">OnLeaveChannelResult</a> é acionado.

  • Após deixar o canal, destrua a engine e defina seu valor como nulo.

    mAliRtcEngine->LeaveChannel();
    AliEngine::Destroy();
    mAliRtcEngine = nullptr;

Quando chamar

  • Utilize este método para sair de um canal.

  • É obrigatório sair do canal atual antes de ingressar em um novo.

Callbacks relacionados

  • A execução deste método dispara o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#b70203f9ea0mz" id="9626ae24d89ue">OnLeaveChannelResult</a> no cliente local, informando se a saída do canal ocorreu com sucesso.

  • Para usuários remotos: Uma chamada bem-sucedida a esta API aciona o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#44ce12a0ecj52" id="0dfcab6a6fylt">OnRemoteUserOffLineNotify</a>.

Descrição da resposta

O valor 0 indica que a chamada do método foi bem-sucedida. Qualquer outro valor sinaliza falha na execução.

IsInCall

Verifica se o usuário está conectado a um canal no momento.

virtual bool IsInCall() = 0;

Valor de retorno

true: O usuário está em um canal. false: O usuário não está em um canal.

SetClientRole

Define a função do usuário.

virtual int SetClientRole(const AliEngineClientRole clientRole) = 0;

Este método configura a função do usuário como streamer ou viewer.

No modo de transmissão interativa, antes de entrar em um canal:

  • Caso a função seja definida como streamer, o SDK publica automaticamente os fluxos locais de áudio e vídeo e recebe, por padrão, os fluxos de outros streamers.

  • Se a função escolhida for viewer, o SDK não publica os fluxos locais, mas continua recebendo o áudio e vídeo dos demais streamers.

Quando chamar

A invocação pode ocorrer antes ou depois da entrada no canal. Use-a previamente para estabelecer a função inicial, ou posteriormente para alternar entre funções.

Limites

Este método funciona exclusivamente no modo de transmissão interativa. Portanto, é necessário chamar o método <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#901e748242y3g" id="322c3da902jpt">SetChannelProfile</a> e configurar o perfil do canal como AliEngineInteractiveLive.

Recomendamos definir explicitamente a função do usuário através deste método antes de ingressar no canal durante transmissões interativas.

Parâmetros

Nome

Tipo

Descrição

role

AliEngineClientRole

Tipo de função do usuário. O valor padrão é AliEngineClientRolelive (viewer). Esta configuração aplica-se apenas fora do modo de comunicação.

Valor de retorno

0: Chamada bem-sucedida. Outros valores: Falha na execução do método.

GetClientRole

Obtém o tipo de função atual do usuário (streamer ou viewer).

virtual AliEngineClientRole GetClientRole() = 0;

Valor de retorno

Em caso de sucesso, retorna um objeto AliEngineClientRole. Trata-se de uma enumeração onde 0 representa streamer e 1 indica viewer.

RefreshAuthInfo[1/2]

Atualiza as informações de autenticação.

virtual int RefreshAuthInfo(const AliEngineAuthInfo &authInfo) = 0;

Renova os dados de autenticação. Como o token possui validade limitada, sua expiração impede que o SDK mantenha conexão com o servidor.

Nota

Tanto este método quanto RefreshAuthInfo[2/2] servem para renovar a autenticação. A diferença é que este lida com tokens multiparâmetro, enquanto RefreshAuthInfo[2/2] trata de tokens de parâmetro único. Consulte Token-based authentication para detalhes sobre geração de tokens.

Quando chamar

Nas seguintes situações:

  • Ao receber o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#9f8ebe177degw" id="f52a19bb78yoi">OnAuthInfoWillExpire</a>, indicando que a autenticação está prestes a expirar, gere um novo token no servidor e invoque este método com as novas credenciais.

  • Sem a atualização tempestiva do token, o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#09c4ec9160eom" id="440c501877fxr">OnAuthInfoExpired</a> notifica a expiração da autenticação. Nesse cenário, regenere o token e chame JoinChannel para reconectar ao canal.

Parâmetros

Nome

Tipo

Descrição

authInfo

AliEngineAuthInfo

Dados de autenticação.

Valor de retorno

0: Execução bem-sucedida. Outros valores: Erro na chamada do método.

RefreshAuthInfo[2/2]

Renova as informações de autenticação.

virtual int RefreshAuthInfo(const char *token) = 0;

Atualiza o token vigente. Devido à validade temporária do token, o SDK perde a conexão com o servidor após a expiração.

Nota

Assim como RefreshAuthInfo[1/2], este método também renova a autenticação. Contudo, foca em tokens de parâmetro único, enquanto RefreshAuthInfo[1/2] gerencia tokens multiparâmetro. Veja Token-based authentication para mais informações sobre como gerar tokens.

Quando chamar

Recomendamos regenerar o token no servidor e utilizar este método para aplicar as novas credenciais nas situações abaixo:

  • Recebimento do callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#9f8ebe177degw" id="b21949148djrc">OnAuthInfoWillExpire</a>, sinalizando proximidade da expiração da autenticação.

  • Caso o token não seja renovado a tempo, o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#09c4ec9160eom" id="62df9bf63786v">OnAuthInfoExpired</a> indicará a perda de validade. Será necessário então chamar JoinChannel para reingressar no canal.

Parâmetros

Nome

Tipo

Descrição

token

const char *token

Credenciais de autenticação para entrada via parâmetro único.

Valor de retorno

0: Sucesso na operação. Demais valores: Falha na execução.

PublishLocalAudioStream

Ativa ou desativa a publicação do fluxo de áudio local.

virtual int PublishLocalAudioStream(bool enabled) = 0;

Controla a divulgação do áudio capturado localmente. Por padrão, o SDK publica esse fluxo. Para inibir esse comportamento inicial, execute PublishLocalAudioStream(false) antes de entrar no canal.

Quando chamar

Aceita chamadas tanto antes quanto depois da conexão ao canal. Se executado previamente, altera a configuração padrão aplicada no momento da entrada.

Callbacks relacionados

Mudanças no status de ingestão do áudio local disparam o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#eb8fab7f5ak7v" id="c584949653jn5">OnAudioPublishStateChanged</a> no cliente local. Simultaneamente, clientes remotos recebem o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#ff1f7c8581r3r" id="75f2096b1efxy">OnRemoteTrackAvailableNotify</a> informando alterações nos fluxos do usuário distante.

Parâmetros

Nome

Tipo

Descrição

enable

bool

  • true: Envia o fluxo de áudio local.

  • false: Interrompe a publicação. O valor padrão é false.

Valor de retorno

0: Operação concluída com êxito. Outros valores: Erro durante a chamada.

IsLocalAudioStreamPublished

Consulta se a publicação do fluxo de áudio está permitida atualmente.

virtual bool IsLocalAudioStreamPublished() = 0;

Valor de retorno

true: Publicação autorizada. false: Publicação bloqueada.

SetDefaultSubscribeAllRemoteAudioStreams

Configura a assinatura automática de fluxos de áudio remotos.

virtual int SetDefaultSubscribeAllRemoteAudioStreams(bool sub) = 0;

Determina se o sistema deve assinar por padrão o áudio de participantes remotos. Essa definição impacta diretamente novos usuários que entrarem no canal. Salvo necessidades específicas, mantenha o valor como true.

Quando chamar

Executável antes ou após a entrada no canal.

  • Antes de ingressar:

    • O SDK assina automaticamente o áudio remoto na conexão. Invoque este método previamente caso deseje modificar tal comportamento.

  • Depois de entrar:

    • Para cessar a assinatura automática, utilize <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="e95a7e2d6fjwt">SetDefaultSubscribeAllRemoteAudioStreams</a>(false). Assim, fluxos de áudio de futuros participantes não serão assinados.

    • Uma vez suspensa a assinatura padrão, use <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#957e547813q56" id="1a391bcabc66e">SubscribeRemoteAudioStream</a> para retomar a recepção de um usuário específico. Repita a chamada para cada participante adicional desejado.

    • Reativar a assinatura padrão via <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="e79b5ad58awcw">SetDefaultSubscribeAllRemoteAudioStreams</a>(true) afeta apenas quem entrar dali em diante. Usuários conectados durante o período de suspensão permanecem sem assinatura ativa.

Parâmetros

Nome

Tipo

Descrição

sub

bool

  • true: Recebe o fluxo de áudio do usuário.

  • false: Cessa a recepção do áudio. Padrão definido como true.

Valor de retorno

0: Sucesso na chamada. Valores distintos: Falha na operação.

SubscribeRemoteAudioStream

Interrompe ou retoma a assinatura do áudio de um usuário remoto específico.

virtual int SubscribeRemoteAudioStream(const char* uid, bool sub) = 0;

Gerencia a recepção do fluxo de áudio de um participante remoto individual. Recomenda-se manter o valor true, exceto se houver requisitos especiais.

Nota

Inicialmente, o SDK assina o áudio de todos os remotos ao conectar. Para alterar essa premissa, execute <a baseurl="t2713962_v4_1_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="bf2d59f02d9tq">SetDefaultSubscribeAllRemoteAudioStreams</a>(false) antes de entrar no canal.

Parâmetros

Nome

Tipo

Descrição

uid

const char*

Identificador do usuário remoto.

sub

bool

  • true: Habilita a recepção do áudio do usuário especificado.

  • false: Bloqueia o áudio do usuário alvo. Valor padrão é true.

Descrição da resposta

0: Método executado corretamente. Outros resultados: Ocorreu uma falha.

SubscribeAllRemoteAudioStreams

Suspende ou reativa a recepção global de áudio remoto.

virtual int SubscribeAllRemoteAudioStreams(bool sub) = 0;

Funciona como chave mestra para a assinatura de áudio remoto. Mantenha-o ativado preferencialmente. Definir como false acarreta:

  • Interrupção imediata de todas as assinaturas de áudio no canal vigente.

  • Novos participantes também terão seus fluxos ignorados.

  • Impossibilidade de usar <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#957e547813q56" id="aface4ad3920l">SubscribeRemoteAudioStream</a> para gerenciar áudio individualmente.

Para restabelecer o serviço, invoque novamente este método com o valor true.

Nota

Por padrão, todos os áudios remotos são assinados na entrada. Caso precise evitar isso, rode <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="3927721185m08">SetDefaultSubscribeAllRemoteAudioStreams</a>(false) antes de conectar.

Parâmetros

Nome

Tipo

Descrição

sub

bool

  • true: Ativa a recepção de áudio de todos os usuários.

  • false: Desativa a recepção global de áudio. O padrão é true.

Valor de retorno

0: Êxito na execução. Diferente de zero: Problema na chamada.

PublishLocalVideoStream[1/2]

Inicia ou interrompe a publicação do fluxo da câmera.

virtual int PublishLocalVideoStream(bool enabled) = 0;

Gerencia o envio do vídeo capturado localmente.

Nota

O envio de vídeo ocorre automaticamente por padrão. Para impedir essa ação, chame PublishLocalVideoStream(false) antes de acessar o canal.

Quando chamar

Pode ser executado antes ou depois da entrada no canal.

Chamadas prévias ajustam a configuração base aplicada no momento da conexão.

Callbacks relacionados

Alterações no status de ingestão do vídeo local acionam o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#6bf4efbd1cadl" id="d37709b09147d">OnVideoPublishStateChanged</a> localmente. Clientes remotos são notificados via callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#ff1f7c8581r3r" id="f16e4b51bchqb">OnRemoteTrackAvailableNotify</a> sobre mudanças nos fluxos audiovisuais.

Parâmetros

Nome

Tipo

Descrição

enable

bool

  • true: Transmite o vídeo.

  • false: Cessa a transmissão. Valor inicial é true.

Valor de retorno

  • 0: Chamada realizada com sucesso.

  • <0: Ocorreu erro na execução.

PublishLocalVideoStream[2/2]

Habilita ou desabilita o envio do fluxo de vídeo.

virtual int PublishLocalVideoStream(bool enabled, AliEngineVideoTrack track) = 0;

Controla a publicação do vídeo coletado localmente.

Nota

A publicação de vídeo é iniciada automaticamente pelo SDK. Execute PublishLocalVideoStream(false) antes de entrar no canal caso queira desativar esse recurso inicialmente.

Quando chamar

Disponível para uso antes ou após a conexão ao canal.

Ajustes feitos anteriormente à entrada modificam o comportamento padrão adotado na conexão.

Callbacks relacionados

Variações no estado de ingestão do vídeo local geram o callback <a baseurl="t2713962_v5_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#6bf4efbd1cadl" id="18a9d4b47ezcc">OnVideoPublishStateChanged</a> no lado local. O lado remoto recebe o aviso via callback <a baseurl="t2713962_v5_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#ff1f7c8581r3r" id="d01e7a574f92o">OnRemoteTrackAvailableNotify</a> indicando alteração nos fluxos.

Parâmetros

Nome

Tipo

Descrição

enable

bool

  • true: Inicia o envio de vídeo.

  • false: Para o envio. Configuração original é true.

track

AliEngineVideoTrack

Categoria do fluxo de vídeo, como câmera ou compartilhamento de tela.

Retorno

  • 0: Execução bem-sucedida.

  • <0: Falha identificada.

IsLocalVideoStreamPublished

Verifica se a publicação do fluxo de vídeo está habilitada.

virtual bool IsLocalVideoStreamPublished() = 0;

Valor de retorno

true: Fluxo da câmera sendo publicado. false: Publicação do fluxo da câmera inativa.

SetDefaultSubscribeAllRemoteVideoStreams

Define a preferência padrão para recebimento de vídeo.

virtual int SetDefaultSubscribeAllRemoteVideoStreams(bool sub) = 0;

Estabelece se a assinatura de vídeos remotos deve ocorrer automaticamente. O SDK vem configurado para assinar por padrão.

Nota

Normalmente, todos os vídeos remotos são assinados ao entrar. Utilize este método previamente caso queira personalizar tal comportamento.

Quando chamar

Aceita execução antes ou depois de ingressar no canal.

  • Pré-conexão:

    • Use para revogar a configuração automática de assinatura.

  • Pós-conexão:

    • Execute SetDefaultSubscribeAllRemoteVideoStreams(false) para parar a assinatura automática. Isso evita a recepção de vídeo de quem entrar posteriormente.

    • Com a assinatura padrão suspensa, utilize o método SubscribeRemoteVideoStream para voltar a receber o vídeo de alguém específico. Chamadas múltiplas são necessárias para vários usuários.

    • Note que reativar via SetDefaultSubscribeAllRemoteVideoStreams(false) afeta somente novos entrantes, restaurando seus fluxos de áudio.

Parâmetros

Nome

Tipo

Descrição

sub

bool

  • true: Permite receber o vídeo do usuário.

  • false: Bloqueia a recepção de vídeo. Inicialmente definido como true.

Valor de retorno

0: Operação concluída. Outros códigos: Erro detectado.

SubscribeRemoteVideoStream

Gerencia a assinatura do fluxo de vídeo de um usuário remoto.

virtual int SubscribeRemoteVideoStream(const char* uid, AliEngineVideoTrack track, bool sub) = 0;

Permite assinar ou cancelar a assinatura do vídeo de um participante específico.

Nota

O SDK assina automaticamente todos os vídeos remotos na entrada. É possível anular isso chamando <a baseurl="t2713962_v4_1_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="f71e02d13ap2b">SetDefaultSubscribeAllRemoteVideoStreams</a>(false) antes de conectar.

Quando chamar

Válido tanto antes quanto depois de entrar no canal.

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

ID do usuário remoto.

track

AliEngineVideoTrack

Tipo de fluxo de vídeo.

sub

bool

Define a assinatura do vídeo remoto. Controla o início ou parada da recepção.

Valor de retorno

  • true: Configuração aplicada com êxito.

  • false: Falha ao aplicar a configuração.

SubscribeAllRemoteVideoStreams

Controla globalmente a recepção de vídeos remotos.

virtual int SubscribeAllRemoteVideoStreams(bool sub) = 0;

Atua como interruptor geral para assinatura de vídeo remoto. Definir como false provoca:

  • Parada imediata na recepção de todos os vídeos no canal.

  • Bloqueio de vídeos de novos entrantes, mesmo que <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="b7b0080f3cnoq">SetDefaultSubscribeAllRemoteVideoStreams</a>(true) tenha sido chamado para assinatura padrão.

  • Impedimento de controle individual via <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#jyGTp" id="0e2edf97aa1g6">SubscribeRemoteVideoStream</a> para usuários específicos.

Para reassinar, basta chamar o método novamente com true.

Nota

Todos os vídeos remotos são assinados por padrão na conexão. Para mudar isso, execute <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="629f58d5304mf">SetDefaultSubscribeAllRemoteVideoStreams</a>(false) antes de entrar.

Parâmetros

Nome

Tipo

Descrição

sub

bool

  • true: Habilita a recepção de vídeo de todos.

  • false: Desativa a recepção global de vídeo. Valor padrão é true.

Descrição da resposta

0: Sucesso confirmado. Outros valores: Indicação de erro.

SubscribeRemoteMediaStream[1/2]

Gerencia o fluxo de mídia de um usuário remoto específico.

virtual int SubscribeRemoteMediaStream(const char* uid, AliEngineVideoTrack videoTrack, bool subVideo,  bool subAudio) = 0;

Realiza a assinatura conjunta de áudio e vídeo remotos.

Nota

Neste contexto, o valor AliRtcVideoTrackNo de AliRtcVideoTrack é inválido e não produz efeitos.

Métodos relacionados

Diferentemente de SubscribeRemoteMediaStream[2/2], esta versão emprega dois booleanos (subVideo e subAudio) para decidir sobre a assinatura dos fluxos. Já o parâmetro videoTrack seleciona qual fonte de vídeo puxar.

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

O ID do usuário remoto.

videoTrack

AliEngineVideoTrack

O tipo de stream de vídeo.

subVideo

boo

Interrompe ou retoma o pull do stream de vídeo de um usuário remoto específico. Valores:

  • true (padrão): Retoma.

  • false: Interrompe.

subAudio

boo

Interrompe ou retoma o pull do stream de áudio de um usuário remoto específico. Valores:

  • true (padrão): Retoma.

  • false: Interrompe.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

SubscribeRemoteMediaStream[2/2]

Interrompe ou retoma o stream de mídia de um usuário remoto específico.

virtual int SubscribeRemoteMediaStream(const char* uid, AliEngineVideoTrack videoTrack, AliEngineAudioTrack audioTrack) = 0;

Este método assina streams de áudio e vídeo remotos simultaneamente.

Métodos relacionados

Em comparação com SubscribeRemoteMediaStream[1/2], este método utiliza os parâmetros videoTrack e audioTrack para informar ao SDK o estado de assinatura desejado em uma única chamada. Por exemplo:

  • Para assinar o stream da câmera e o stream do microfone, defina videoTrack e audioTrack como AliRtcVideoTrackCamera e AliRtcAudioTrackMic, respectivamente, ao chamar o método.

  • Para cancelar a assinatura do stream da câmera, mas manter o stream do microfone, chame o método novamente e defina videoTrack e audioTrack como AliRtcVideoTrackNo e AliRtcAudioTrackMic, respectivamente.

  • Para cancelar ambas as assinaturas, chame o método novamente e defina videoTrack e audioTrack como AliRtcVideoTrackNo e AliRtcAudioTrackNo, respectivamente.

  • Para assinar tanto o stream da câmera quanto o stream de compartilhamento de tela simultaneamente, defina videoTrack como AliRtcVideoTrackBoth. O mesmo se aplica ao áudio.

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

O ID do usuário remoto.

videoTrack

AliEngineVideoTrack

O tipo de stream de vídeo.

audioTrack

AliEngineAudioTrack

O tipo de stream de áudio.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

SubscribeRemoteDestChannelStream

Assina o stream de um usuário especificado entre canais.

virtual int SubscribeRemoteDestChannelStream(const char* channelId, const char* uid, AliEngineVideoTrack track, bool sub_audio, bool sub) = 0;

Parâmetros

Parâmetro

Tipo

Descrição

channelId

const char*

O ID do canal remoto.

uid

const char*

O ID do usuário remoto.

track

AliEngineVideoTrack

O stream de vídeo a ser assinado.

sub_audio

bool

Interrompe ou retoma o pull do stream de áudio de um usuário remoto específico. Valores:

  • true (padrão): Retoma.

  • false: Interrompe.

sub

bool

Interrompe ou retoma a assinatura entre canais do stream do usuário especificado.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

SetRemoteAudioVolume

Ajusta o volume de reprodução de um usuário remoto especificado.

virtual int SetRemoteAudioVolume(const char *uid, int volume) = 0;

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

O ID do usuário remoto.

volume

int

O volume de reprodução. O intervalo é [0,100].

0: Mudo.

100: Volume original.

Valor de retorno

  • 0: Sucesso.

  • Um valor diferente de zero: Falha.

MuteLocalMic

Interrompe ou retoma o envio de dados de áudio local.

virtual int MuteLocalMic(bool mute, AliEngineMuteLocalAudioMode mode = AliEngineMuteLocalAudioModeDefault) = 0;
Nota

Silenciar significa enviar frames de áudio silenciosos. Os módulos de captura e codificação continuam funcionando.

Quando chamar

Chame este método antes ou depois de entrar em um canal.

Callbacks relacionados

Após a chamada ser bem-sucedida, o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#a15f0a6cf6id7" id="f4ae88f094vqy">OnUserAudioMuted</a> é acionado nos clientes remotos para indicar se o usuário está silenciado.

Parâmetros

Nome

Tipo

Descrição

mute

bool

  • true: Envia frames vazios para o áudio local.

  • false: Retoma a operação normal. O valor padrão é false.

mode

AliEngineMuteLocalAudioMode

O modo de silenciamento. O padrão é silenciar tudo.

  • AliEngineMuteLocalAudioModeDefault: Silencia tudo, incluindo o microfone e a entrada de áudio externa.

  • AliEngineMuteLocalAudioModeMuteAll: Silencia tudo, incluindo o microfone e a entrada de áudio externa.

  • AliEngineMuteLocalAudioModeMuteOnlyMic: Silencia apenas o microfone.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

MuteRemoteAudio

Interrompe ou retoma a reprodução de áudio remoto.

virtual int MuteRemoteAudio(const char *uid,
                                    bool mute) = 0;

Esta API serve apenas para interromper ou retomar a reprodução de áudio de um usuário remoto especificado. Ela não afeta o pull do stream nem a decodificação do áudio remoto. Para cancelar a assinatura do stream de áudio de um usuário, chame <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#957e547813q56" id="89841a0989t7y">SubscribeRemoteAudioStream</a>.

Quando chamar

Chame este método antes ou depois de entrar em um canal.

Parâmetros

Nome

Tipo

Descrição

uid

const char *

O ID do usuário.

mute

bool

  • true: Interrompe a reprodução.

  • false: Retoma a reprodução. O valor padrão é false.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

MuteAllRemoteAudio

Interrompe ou retoma a reprodução das faixas de áudio de todos os usuários remotos.

virtual int MuteAllRemoteAudio(bool mute) = 0;

Utilize este método para interromper ou retomar toda a reprodução de áudio remoto.

Nota
  • Esta operação interrompe apenas a reprodução. O pull do stream e a decodificação não são afetados.

  • Chame este método antes ou depois de chamar JoinChannel.

Quando chamar

Chame este método antes ou depois de entrar em um canal.

Parâmetros

Nome

Tipo

Descrição

mute

bool

  • true: Interrompe a reprodução.

  • false: Retoma a reprodução. O valor padrão é false.

Valor de retorno

0: A chamada do método foi bem-sucedida. Um valor diferente de zero: A chamada do método falhou.

StartAudioCapture[1/2]

Inicia a captura de áudio.

virtual int StartAudioCapture() = 0;

Este método inicia a captura de áudio. Chame-o também antes de entrar em um canal para iniciar a captura de áudio antecipadamente. Se não for definido, o SDK controla automaticamente o dispositivo de captura de áudio. Para iniciar a captura de áudio após ela ter sido interrompida pela chamada de stopAudioCapture, utilize este método.

Quando chamar

Chame este método antes ou depois de entrar em um canal.

Métodos relacionados

  • O método StartAudioCapture[2/2] permite controlar se o dispositivo de captura de áudio permanece ligado após você sair do canal por meio de um parâmetro.

Callbacks relacionados

Após chamar este método para alterar o estado de captura de áudio local, obtenha a mudança de estado através do callback OnLocalAudioStateChange.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

StartAudioCapture[2/2]

Inicia a captura de áudio.

virtual int StartAudioCapture(bool keepAlive) = 0;

Interrompe a captura de áudio do microfone após o silenciamento.

Este método inicia a captura de áudio. Chame-o também antes de entrar em um canal para iniciar a captura de áudio antecipadamente. Se não for definido, o SDK controla automaticamente o dispositivo de captura de áudio.

Quando chamar

Chame este método antes ou depois de entrar em um canal.

Métodos relacionados

Em comparação com StartAudioCapture[1/2], este método permite controlar se o dispositivo de captura permanece ligado após você sair do canal usando o parâmetro keepAlive.

Callbacks relacionados

Após chamar este método para alterar o estado de captura de áudio local, obtenha a mudança de estado através do callback OnLocalAudioStateChange.

Parâmetros

Parâmetro

Tipo

Descrição

keepAlive

bool

O estado do dispositivo de captura após sair do canal. Valores:

  • true: O dispositivo de captura permanece ligado após sair do canal.

  • false (padrão): O dispositivo de captura é desligado após sair do canal.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

StopAudioCapture

Interrompe a captura de áudio.

virtual int StopAudioCapture() = 0;

Após iniciar a captura do dispositivo de áudio com StartAudioCapture, chame este método para interrompê-la.

Callbacks relacionados

Após chamar este método para alterar o estado de captura de áudio local, obtenha a mudança de estado através do callback OnLocalAudioStateChange.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

EnableAudioVolumeIndication

Define a frequência do callback de volume e o coeficiente de suavização.

virtual int EnableAudioVolumeIndication(int interval, int smooth, int reportVad) = 0;

Este método permite que o SDK relate periodicamente informações relacionadas ao volume sobre usuários locais publicando e o usuário remoto com o maior volume instantâneo para a aplicação.

Quando chamar

Chame este método antes ou depois de entrar em um canal.

Callbacks relacionados

Após uma chamada bem-sucedida a este método, se houver usuários publicando no canal, o SDK aciona os dois callbacks seguintes no intervalo de tempo definido:

  • O volume de áudio do orador é relatado através do callback OnAudioVolumeCallback. A frequência do callback é determinada pelo parâmetro interval.

  • Detecção de atividade de voz. Quando um usuário ativo é detectado, o UID do orador é relatado através do callback OnActiveSpeaker.

Quando chamar

Chame este método antes ou depois de entrar em um canal.

Parâmetros

Nome

Tipo

Descrição

interval

int

O intervalo de tempo em milissegundos. O valor mínimo não deve ser inferior a 10 ms. Recomendamos definir entre 300 e 500 ms. Um valor menor ou igual a 0 desativa as funções de indicação de volume e de orador.

smooth

int

O coeficiente de suavização. O intervalo é [0,9]. Quanto maior o valor, maior o grau de suavização e, inversamente, melhor o desempenho em tempo real. Recomendamos definir como 3.

reportVad

int

A chave de detecção de orador. Valores:

  • 1: Ligado. O método onAudioVolumeCallback é usado para relatar o status de cada orador.

  • 0: Desligado.

Descrição da resposta

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

StartAudioPlayer

Inicia o dispositivo de reprodução de áudio.

virtual int StartAudioPlayer() = 0;

Este método pode iniciar a reprodução de áudio antecipadamente. Se não for definido, o SDK inicia automaticamente a reprodução de áudio após assinar um stream de áudio.

Valor de retorno

  • 0: Sucesso.

  • Um valor diferente de zero: Falha. Um código de erro é retornado.

StopAudioPlayer

Interrompe a reprodução de áudio.

virtual int StopAudioPlayer() = 0;

Este método pode interromper a reprodução de áudio. Ele corresponde a AliEngine::StartAudioPlayer.

Parâmetros

Nenhum.

Valor de retorno

  • 0: Sucesso.

  • Um valor diferente de zero: Falha. Um código de erro é retornado.

SetPlayoutVolume

Define o volume de reprodução.

virtual int SetPlayoutVolume(int volume) = 0;

Parâmetros

Nome

Tipo

Descrição

volume

int

O volume de reprodução. O intervalo é [0,400]. 0: Mudo. >100: Aumenta o volume. <100: Diminui o volume.

Valor de retorno

  • 0: Sucesso.

  • Um valor diferente de zero: Falha. Um código de erro é retornado.

SetRecordingVolume

virtual int SetRecordingVolume(int volume) = 0;

Parâmetros

Nome

Tipo

Descrição

volume

int

O volume de reprodução. O intervalo é [0,400]. 0: Mudo. >100: Aumenta o volume. <100: Diminui o volume.

Descrição da resposta

  • 0: Sucesso.

  • Um valor diferente de zero: Falha. Um código de erro é retornado.

PlayAudioFileTest

Reproduz um arquivo de áudio.

virtual int PlayAudioFileTest(const char* filePath) = 0;

Parâmetros

Nome

Tipo

Descrição

filePath

const char*

O caminho do arquivo de áudio a ser reproduzido.

Valor de retorno

  • 0: Sucesso.

  • <0: Falha.

StopAudioFileTest

Interrompe a reprodução do arquivo de áudio.

virtual int StopAudioFileTest() = 0;

Valor de retorno

  • 0: Sucesso.

  • <0: Falha.

StartAudioCaptureTest

Inicia um teste de captura de áudio antes de uma chamada.

virtual int StartAudioCaptureTest() = 0;

Este método pode iniciar um teste de captura de áudio. Use o resultado do callback AliEngineEventListener::OnTestAudioVolumeCallback para determinar se a captura de áudio está normal.

Nota

Chame este método apenas antes de entrar em um canal (JoinChannel).

Valor de retorno

  • 0: Sucesso.

  • <0: Falha.

StopAudioCaptureTest

Interrompe o teste de captura de áudio.

virtual int StopAudioCaptureTest() = 0;
Nota

Chame este método apenas antes de entrar em um canal (JoinChannel).

Valor de retorno

  • 0: Sucesso.

  • <0: Falha.

EnableSystemAudioRecording

Ativa ou desativa a captura e publicação de áudio do sistema.

virtual int EnableSystemAudioRecording(bool enable, const char *path = nullptr, const char *device_id = nullptr) = 0;

Este método ativa ou desativa a captura de áudio do sistema, como sons reproduzidos por navegadores e aplicações.

Nota

Este método é suportado apenas no Windows e macOS.

Parâmetros

Nome

Tipo

Descrição

enable

bool

Ativa ou desativa a captura e publicação de áudio do sistema.

  • true: Ativar.

  • false: Desativar.

path

const char*

Se path estiver vazio, o som de todo o sistema é capturado. Se path for o caminho de um programa .exe, este programa é iniciado e seu som é capturado.

device_id

const char*

Se path estiver vazio, o som do dispositivo da placa de som padrão é capturado. Caso contrário, o som reproduzido pelo dispositivo com este device_id é capturado. Use o ID retornado por GetSystemRecordAudioPlayerList.

Valor de retorno

  • 0: A chamada do método foi bem-sucedida.

  • <0: A chamada do método falhou.

IsSystemAudioRecording

Verifica se a captura e publicação de áudio do sistema estão atualmente ativadas.

virtual bool IsSystemAudioRecording() = 0;
Nota

Para ativar ou desativar a captura de áudio do sistema, chame EnableSystemAudioRecording. Este método é válido apenas nas plataformas Windows e macOS.

Valor de retorno

  • true: Ativado.

  • false: Desativado.

SetSystemAudioRecordingVolume

Define o volume de captura e publicação de áudio do sistema.

virtual int SetSystemAudioRecordingVolume(int volume) = 0;

Este método é válido apenas nas plataformas Windows e macOS.

Configure este método apenas após a captura e publicação de áudio do sistema serem ativadas. Caso contrário, a configuração será inválida.

Parâmetros

Nome

Tipo

Descrição

volume

int

O volume de publicação da captura do sistema. O intervalo é [0-400].

Valor de retorno

  • 0: Sucesso.

  • <0: Falha.

GetSystemAudioRecordingVolume

Obtém o volume atual de captura e publicação de áudio do sistema.

virtual int GetSystemAudioRecordingVolume() = 0;

Este método é válido apenas nas plataformas Windows e macOS.

Valor de retorno

O volume de publicação da captura do sistema.

SetSystemAudioPlayoutVolume

Define o volume de reprodução de áudio do sistema.

virtual int SetSystemAudioPlayoutVolume(int volume) = 0;

Este método é válido apenas nas plataformas Windows e macOS.

Configure este método apenas após a captura e publicação de áudio do sistema serem ativadas. Caso contrário, a configuração será inválida.

Parâmetros

Nome

Tipo

Descrição

volume

int

O volume de reprodução da captura do sistema. O intervalo é [0-400].

Valor de retorno

  • 0: Sucesso.

  • <0: Falha.

GetSystemAudioPlayoutVolume

Obtém o volume atual de reprodução de áudio do sistema.

virtual int GetSystemAudioPlayoutVolume() = 0;

Este método é válido apenas nas plataformas Windows e macOS.

Valor de retorno

O volume de reprodução das faixas do sistema.

GetAudioCaptureList

Obtém a lista de dispositivos de gravação no sistema.

virtual AliEngineDeviceInfoList* GetAudioCaptureList() = 0;

Valor de retorno

Um ponteiro para a lista de dispositivos de gravação, AliEngineDeviceInfoList *.

GetCurrentAudioCaptureName

Obtém o nome do dispositivo de gravação em uso.

virtual String GetCurrentAudioCaptureName() = 0;

Valor de retorno

O nome do dispositivo de captura de áudio atual.

GetCurrentAudioCaptureID

Obtém o ID do dispositivo de gravação em uso.

virtual String GetCurrentAudioCaptureID() = 0;

Valor de retorno

O ID do dispositivo de gravação atualmente em uso.

SetCurrentAudioCaptureName

Seleciona um dispositivo de gravação pelo nome.

virtual int SetCurrentAudioCaptureName(const char* captureName) = 0;

Parâmetros

Nome

Tipo

Descrição

captureName

const char *

O nome do dispositivo de gravação.

Valor de retorno

0 indica sucesso; outros valores indicam falha.

SetCurrentAudioCaptureID

Seleciona um dispositivo de gravação por ID.

virtual int SetCurrentAudioCaptureID(const char* captureID) = 0;

Parâmetros

Nome

Tipo

Descrição

captureID

const char *

O ID do dispositivo de gravação.

Valor de retorno

0 indica sucesso; outros valores indicam falha.

GetAudioPlayerList

Obtém a lista de alto-falantes no sistema.

virtual AliEngineDeviceInfoList* GetAudioPlayerList() = 0;

Valor de retorno

Um ponteiro para a lista de alto-falantes no sistema, AliEngineDeviceInfoList *.

GetSystemRecordAudioPlayerList

Recupera a lista de alto-falantes graváveis no sistema (para gravação interna do sistema).

virtual AliEngineDeviceInfoList* GetSystemRecordAudioPlayerList() = 0;

Valor de retorno

A lista de dispositivos de reprodução de áudio é usada principalmente como o último parâmetro de EnableSystemAudioRecording para coletar o áudio de reprodução do sistema.

GetCurrentAudioPlayerName

Obtém o nome do alto-falante em uso no momento.

virtual String GetCurrentAudioPlayerName() = 0;

Valor de retorno

O nome do dispositivo de reprodução de áudio atual.

GetCurrentAudioPlayerID

Obtém o ID do alto-falante em uso no momento.

virtual String GetCurrentAudioPlayerID() = 0;

Valor de retorno

O ID do dispositivo de reprodução de áudio atual.

SetCurrentAudioPlayerName

Seleciona um alto-falante pelo nome.

virtual int SetCurrentAudioPlayerName(const char* playerName) = 0;

Valor de retorno

O nome do dispositivo de reprodução de áudio.

SetCurrentAudioPlayerID

Seleciona um alto-falante por ID.

virtual int SetCurrentAudioPlayerID(const char* playerID) = 0;

Parâmetros

Nome

Tipo

Descrição

playerID

const char *

O ID do dispositivo de reprodução.

Valor de retorno

0 indica sucesso; outros valores indicam falha.

SetRecordingDeviceVolume

Define o volume do dispositivo de captura de áudio. O intervalo de volume é [0, 100].

virtual int SetRecordingDeviceVolume(int volume) = 0;

Lista de parâmetros

Nome

Tipo

Descrição

volume

int

Volume [0..100].

Valor de retorno

0 indica sucesso; outros valores indicam falha.

GetRecordingDeviceVolume

Obtém o volume do dispositivo de captura de áudio.

virtual int GetRecordingDeviceVolume() = 0;

Valor de retorno

>=0 retorna o volume. Outros valores indicam falha.

SetPlaybackDeviceVolume

Define o volume do dispositivo de reprodução de áudio. O intervalo de volume é [0, 100].

virtual int SetPlaybackDeviceVolume(int volume) = 0;

Parâmetros

Nome

Tipo

Descrição

volume

int

Volume [0..100]

Valor de retorno

0 indica sucesso; outros valores indicam falha.

GetPlaybackDeviceVolume

Obtém o volume do dispositivo de reprodução de áudio.

virtual int GetPlaybackDeviceVolume() = 0;

Valor de retorno

>=0 para o volume do sistema. Outros valores indicam falha.

SetRecordingDeviceMute

Silencia o dispositivo de captura de áudio.

virtual int SetRecordingDeviceMute(bool mute) = 0;

Parâmetros

Nome

Tipo

Descrição

mute

bool

Se deve silenciar a gravação.

Valor de retorno

0 indica sucesso; outros valores indicam falha.

GetRecordingDeviceMute

Obtém o status de mudo do dispositivo de captura de áudio.

virtual bool GetRecordingDeviceMute() = 0;

Valor de retorno

Indica se a gravação está silenciada.

SetPlaybackDeviceMute

Silencia o dispositivo de reprodução de áudio.

virtual int SetPlaybackDeviceMute(bool mute) = 0;

Parâmetros

Nome

Tipo

Descrição

mute

bool

Se deve silenciar a gravação.

Valor de retorno

0 indica sucesso; outros valores indicam falha.

GetPlaybackDeviceMute

Obtém o status de mudo do dispositivo de reprodução de áudio.

virtual bool GetPlaybackDeviceMute() = 0;

Valor de retorno

Indica se o dispositivo de reprodução está silenciado.

SetAudioEffectVoiceChangerMode

Define o modo de efeito de modificador de voz.

virtual int SetAudioEffectVoiceChangerMode(const AliEngineAudioEffectVoiceChangerMode &mode) = 0;

Parâmetros

Nome

Tipo

Descrição

mode

AliEngineAudioEffectVoiceChangerMode

O valor do modo. O valor padrão é AliEngineAudioEffectVoiceChangerOff.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

SetAudioEffectPitchValue

Define o parâmetro de tom.

virtual int SetAudioEffectPitchValue(double value) = 0;

Parâmetros

Nome

Tipo

Descrição

value

double

O intervalo é [0.5, 2.0]. O padrão é 1.0, o que significa que o tom permanece inalterado.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

SetAudioEffectReverbMode

Define o modo de efeito de reverberação.

virtual int SetAudioEffectReverbMode(const AliEngineAudioEffectReverbMode& mode) = 0;

Parâmetros

Nome

Tipo

Descrição

mode

AliEngineAudioEffectReverbMode

O modo de efeito sonoro. O valor padrão é AliEngineAudioEffectReverbOff.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

SetAudioEffectReverbParamType

Define o tipo de efeito de reverberação e parâmetros específicos.

virtual int SetAudioEffectReverbParamType(const AliEngineAudioEffectReverbParamType& type,
                                                  float value) = 0;

Parâmetros

Nome

Tipo

Descrição

type

AliEngineAudioEffectReverbParamType

O modo de reverberação do efeito sonoro.

value

float

O valor específico do parâmetro.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

setAudioEffectBeautifyMode

Define o modo predefinido de efeito sonoro de embelezamento.

virtual int SetAudioEffectBeautifyMode(const AliEngineAudioEffectBeautifyMode& mode) = 0;

Este método define modos de embelezamento predefinidos dentro do SDK. É adequado para cenários que exigem melhoria na qualidade da voz humana, como transmissões ao vivo de voz, karaokê e redes sociais de voz. Ao selecionar diferentes modos de embelezamento, você altera o efeito auditivo da voz humana, como aumentar o magnetismo ou melhorar a clareza. Isso aprimora a experiência de audição para usuários remotos.

Quando chamar

Chame este método antes ou depois de entrar em um canal.

Parâmetros

Parâmetro

Tipo

Descrição

mode

AliRtcAudioEffectBeautifyMode

O modo de efeito sonoro de embelezamento. Consulte a definição da enumeração para obter detalhes.

Valor de retorno

  • 0: A configuração foi bem-sucedida.

  • Um valor diferente de zero: A configuração falhou.

setAudioEffectEqualizationParam

Define os parâmetros do equalizador de áudio (EQ) para ajustar o ganho de uma faixa de frequência específica.

virtual int SetAudioEffectEqualizationParam(const AliEngineAudioEffectEqualizationBandFrequency &bandIndex, float gain) = 0;

Este método ajusta a voz humana ou o sinal de áudio coletado localmente usando um Equalizador Gráfico. Ao ajustar o ganho (em dB) de uma das 10 faixas de frequência fixas, você personaliza o timbre. É indicado para cenários como otimização de clareza de voz, realce de voz humana e auxílio na redução de ruído.

O equalizador suporta ajuste de todo o espectro de áudio de 31 Hz a 16 kHz, com um total de 10 faixas de frequência padrão. O valor de ganho para cada faixa pode ser definido independentemente, variando de [-15, 15] dB, com um padrão de 0 dB (sem reforço ou atenuação).

Limites

  • O equalizador não pode ser usado isoladamente antes que o modo de embelezamento seja ativado. Chame este método após chamar setAudioEffectBeautifyMode.

Parâmetros

Parâmetro

Tipo

Descrição

bandIndex

AliRtcAudioEffectEqualizationBandFrequency

O índice da faixa de frequência a ser ajustada, correspondendo a um segmento da frequência central (31Hz ~ 16kHz).

gain

float

O valor de ganho em dB, variando de [-15, 15].

Descrição da resposta

0: A configuração foi bem-sucedida.

Um valor diferente de zero: A configuração falhou.

AddExternalAudioStream

Adiciona um fluxo de áudio externo.

virtual int AddExternalAudioStream(const AliEngineExternalAudioStreamConfig& config) = 0;

Este método adiciona um novo fluxo de áudio externo. As etapas são as seguintes:

  1. Chame <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#991b862eb353w" id="08ee3d1ed35jj">AddExternalAudioStream</a> para adicionar um fluxo de áudio externo e obter o ID do fluxo de áudio externo.

  2. Chame <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e6cf3f7cef0g6" id="fae817d0f00p3">PushExternalAudioStreamRawData</a> para enviar dados de áudio para o fluxo de áudio criado.

  3. Quando a chamada terminar, chame <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#u27oe" id="3b9a3eb119umh">RemoveExternalAudioStream</a> para remover o fluxo de áudio externo.

Para mais informações sobre como publicar áudio coletado personalizado em um canal, consulte Custom audio collection.

Parâmetros

Nome

Tipo

Descrição

config

AliEngineExternalAudioStreamConfig

Configuração do fluxo de áudio externo.

Valor de retorno

Um valor maior que 0 indica uma chamada de método bem-sucedida e retorna o ID do fluxo de áudio externo. Outros valores indicam uma chamada de método com falha.

PushExternalAudioStreamRawData

Insere dados de fluxo de áudio externo.

virtual int PushExternalAudioStreamRawData(int streamId, AliEngineAudioRawData& data) = 0;

Este método passa dados para o fluxo de áudio especificado. As etapas são as seguintes:

  1. Chame a API <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#991b862eb353w" id="3836ac109732c">AddExternalAudioStream</a> para adicionar um fluxo de áudio externo e obter o ID do fluxo de áudio externo.

  2. Chame PushExternalAudioStreamRawData para passar dados de áudio para o fluxo de áudio criado.

  3. Quando a chamada terminar, chame <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#u27oe" id="398ea88d61fn0">RemoveExternalAudioStream</a> para remover o fluxo de áudio externo.

Para mais informações sobre como publicar áudio coletado personalizado em um canal, consulte Custom audio collection.

Parâmetros

Nome

Tipo

Descrição

streamId

int

O ID do fluxo de áudio externo.

data

AliEngineAudioRawData

Os dados de áudio.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

SetExternalAudioStreamPublishVolume

Define o volume de publicação do fluxo de áudio externo.

virtual int SetExternalAudioStreamPublishVolume(int streamId, int vol) = 0;

Parâmetros

Nome

Tipo

Descrição

streamId

int

O ID do fluxo de áudio externo.

vol

int

O volume de publicação.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

SetExternalAudioStreamPlayoutVolume

Define o volume de reprodução do fluxo de áudio externo.

virtual int SetExternalAudioStreamPlayoutVolume(int streamId, int vol) = 0;

Parâmetros

Nome

Tipo

Descrição

streamId

int

O ID do fluxo de áudio externo.

vol

int

O volume de reprodução.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

GetExternalAudioStreamPublishVolume

Obtém o volume de publicação do fluxo de áudio externo.

virtual int GetExternalAudioStreamPublishVolume(int streamId) = 0;

Parâmetros

Nome

Tipo

Descrição

streamId

int

O ID do fluxo de áudio externo.

Retornos

[0, 100]: O volume de publicação. Um valor menor que 0 indica falha.

GetExternalAudioStreamPlayoutVolume

Obtém o volume de reprodução do fluxo de áudio externo.

virtual int GetExternalAudioStreamPlayoutVolume(int streamId) = 0;

Parâmetros

Nome

Tipo

Descrição

streamId

int

O ID do fluxo de áudio externo.

Valor de retorno

[0, 100]: O volume de reprodução. Um valor menor que 0 indica falha.

RemoveExternalAudioStream

Remove um fluxo de áudio externo.

virtual int RemoveExternalAudioStream(int streamId) = 0;

Este método remove o fluxo de áudio externo correspondente com base no streamId passado. Corresponde ao método AddExternalAudioStream.

Quando chamar

Se você quiser usar o recurso de entrada de áudio personalizada, chame o método AddExternalAudioStream para adicionar um fluxo de áudio e obter o ID do fluxo de áudio externo. Em seguida, chame a interface <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e6cf3f7cef0g6" id="bdab74f108i1p">PushExternalAudioStreamRawData</a> para inserir seus dados de áudio no SDK. Quando quiser interromper a entrada de áudio personalizada, chame esta interface para remover o fluxo de áudio externo correspondente e limpar os recursos.

Parâmetros

Nome

Tipo

Descrição

streamId

int

O ID do fluxo de áudio.

Valor de retorno

0 indica sucesso; outros valores indicam falha.

GetAudioFileInfo

Obtém informações do arquivo de áudio.

virtual int GetAudioFileInfo(const char *filePath) = 0;

Este é um método assíncrono. Recupere as informações do arquivo de áudio através de AliEngineEventListener::OnAudioFileInfo.

Parâmetros

Nome

Tipo

Descrição

filePath

const char *

O caminho do arquivo de áudio.

Valor de retorno

  • 0: Sucesso.

  • Um valor diferente de zero: Falha. Um código de erro é retornado.

StartAudioAccompany

Inicia a mixagem de áudio para acompanhamento.

virtual int StartAudioAccompany(const char *filePath, const AliEngineAudioAccompanyConfig& config) = 0;

Este é um método assíncrono. Ouça o status do reprodutor de acompanhamento de áudio através de AliEngineEventListener::OnAudioAccompanyStateChanged.

Parâmetros

Nome

Tipo

Descrição

filePath

const char *

O caminho do arquivo de áudio.

config

const AliEngineAudioAccompanyConfig

A configuração de reprodução do acompanhamento.

Valor de retorno

  • 0: Sucesso.

  • Um valor diferente de zero: Falha. Um código de erro é retornado.

StopAudioAccompany

Para a mixagem de áudio para acompanhamento.

virtual int StopAudioAccompany() = 0;

Valor de retorno

  • 0: Sucesso.

  • Um valor diferente de zero: Falha. Um código de erro é retornado.

SetAudioAccompanyVolume

Define o volume do acompanhamento.

 virtual int SetAudioAccompanyVolume(int volume) = 0;

Parâmetros

Nome

Tipo

Descrição

volume

int

O volume do acompanhamento. O intervalo é [0,100].

  • 0: Mudo.

  • 100: Volume original.

Valor de retorno

  • 0: Sucesso.

  • Um valor diferente de zero: Falha. Um código de erro é retornado.

SetAudioAccompanyPublishVolume

Define o volume de publicação do acompanhamento.

virtual int SetAudioAccompanyPublishVolume(int volume) = 0;
Nota

O volume só pode ser definido após AliEngine::StartAudioAccompany entrar em vigor.

Parâmetros

Nome

Tipo

Descrição

volume

int

O volume de publicação do acompanhamento. O intervalo é [0,100].

  • 0: Mudo.

  • 100: Volume original.

Valor de retorno

  • 0: Sucesso.

  • Um valor diferente de zero: Falha. Um código de erro é retornado.

GetAudioAccompanyPublishVolume

Obtém o volume de publicação do acompanhamento.

virtual int GetAudioAccompanyPublishVolume() = 0;

Valor de retorno

O volume de publicação do acompanhamento. O intervalo é [0-100].

SetAudioAccompanyPlayoutVolume

Define o volume de reprodução local para o acompanhamento.

virtual int SetAudioAccompanyPlayoutVolume(int volume) = 0;

Parâmetros

Nome

Tipo

Descrição

volume

int

O volume de reprodução do acompanhamento. O intervalo é [0,100].

  • 0: Mudo.

  • 100: Volume original.

Valor de retorno

  • 0: Sucesso.

  • Um valor diferente de zero: Falha. Um código de erro é retornado.

GetAudioAccompanyPlayoutVolume

Obtém o volume de reprodução local para o acompanhamento.

virtual int GetAudioAccompanyPlayoutVolume() = 0;

Valor de retorno

O volume de reprodução local para o acompanhamento. O intervalo é [0-100].

PauseAudioAccompany

Pausa a mixagem de áudio para acompanhamento.

virtual int PauseAudioAccompany() = 0;

Descrição da resposta

  • 0: Sucesso.

  • Um valor diferente de zero: Falha. Um código de erro é retornado.

ResumeAudioAccompany

Retoma a mixagem de áudio para acompanhamento.

virtual int ResumeAudioAccompany() = 0;

Descrição da resposta

  • 0: Sucesso.

  • Um valor diferente de zero: Falha. Um código de erro é retornado.

GetAudioAccompanyDuration

Obtém a duração do arquivo de acompanhamento em milissegundos.

virtual int GetAudioAccompanyDuration() = 0;

Descrição da resposta

A duração do arquivo de acompanhamento de áudio em milissegundos.

GetAudioAccompanyCurrentPosition

Obtém o progresso de reprodução do arquivo de acompanhamento em milissegundos.

virtual int GetAudioAccompanyCurrentPosition() = 0;

Valor de retorno

A posição atual de reprodução do arquivo de acompanhamento de áudio em milissegundos.

SetAudioAccompanyPosition

Define a posição de reprodução do arquivo de acompanhamento.

virtual int SetAudioAccompanyPosition(int pos) = 0;

Descrição da Resposta

  • 0: Sucesso.

  • Um valor diferente de zero: Falha. Um código de erro é retornado.

PreloadAudioEffect

Pré-carrega um arquivo de efeito sonoro.

virtual int PreloadAudioEffect(unsigned int soundId,
                                       const char *filePath) = 0;

Parâmetros

Nome

Tipo

Descrição

soundId

unsigned int

O ID atribuído ao arquivo de efeito sonoro pelo usuário.

filePath

const char *

O caminho do arquivo de efeito sonoro.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

UnloadAudioEffect

Exclui um arquivo de efeito sonoro pré-carregado.

virtual int UnloadAudioEffect(unsigned int soundId) = 0;

Parâmetros

Nome

Tipo

Descrição

soundId

NSInteger

O ID atribuído ao arquivo de efeito sonoro pelo usuário.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

PlayAudioEffect

Inicia a reprodução de um efeito sonoro.

virtual int PlayAudioEffect(unsigned int soundId, const char *filePath, const AliEngineAudioEffectConfig& config) = 0;

Parâmetros

Nome

Tipo

Descrição

soundId

unsigned int

O ID atribuído ao arquivo de efeito sonoro pelo usuário.

filePath

const char *

O caminho do arquivo de efeito sonoro.

config

AliEngineAudioEffectConfig

A configuração do efeito sonoro.

Retornos

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

StopAudioEffect

Para a reprodução de um efeito sonoro.

virtual int StopAudioEffect(unsigned int soundId) = 0;

Parâmetros

Nome

Tipo

Descrição

soundId

unsigned int

O ID atribuído ao arquivo de efeito sonoro pelo usuário.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

StopAllAudioEffects

Para a reprodução de todos os efeitos sonoros.

- (int)StopAllAudioEffects;

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

PauseAudioEffect

Pausa um efeito sonoro.

virtual int PauseAudioEffect(unsigned int soundId) = 0;

Parâmetros

Nome

Tipo

Descrição

soundId

unsigned int

O ID atribuído ao arquivo de efeito sonoro pelo usuário.

Descrição da Resposta

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

PauseAllAudioEffects

Pausa todos os efeitos sonoros.

virtual int PauseAllAudioEffects() = 0;

Descrição da resposta

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

ResumeAudioEffect

Retoma a reprodução de um efeito sonoro.

virtual int ResumeAudioEffect(unsigned int soundId) = 0;

Parâmetros

Nome

Tipo

Descrição

soundId

unsigned int

O ID atribuído ao arquivo de efeito sonoro pelo usuário.

Descrição da resposta

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

ResumeAllAudioEffects

Retoma a reprodução de todos os efeitos sonoros.

virtual int ResumeAllAudioEffects() = 0;

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

SetAudioEffectPublishVolume

Define o volume de publicação para um efeito sonoro.

virtual int SetAudioEffectPublishVolume(unsigned int soundId, int volume) = 0;

Parâmetros

Nome

Tipo

Descrição

soundId

unsigned int

ID atribuído ao arquivo de efeito sonoro pelo usuário.

volume

int

Volume de mixagem. O intervalo é [0,100]. O valor padrão é 50.

Retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

GetAudioEffectPublishVolume

Obtém o volume de publicação de um efeito sonoro.

virtual int GetAudioEffectPublishVolume(unsigned int soundId) = 0;

Parâmetros

Nome

Tipo

Descrição

soundId

unsigned int

ID atribuído ao arquivo de efeito sonoro pelo usuário.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

SetAllAudioEffectsPublishVolume

Define o volume de reprodução local para todos os efeitos sonoros.

virtual int SetAllAudioEffectsPublishVolume(int volume) = 0;

Parâmetros

Nome

Tipo

Descrição

volume

int

Volume de mixagem. O intervalo é [0,100]. O valor padrão é 50.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

SetAudioEffectPlayoutVolume

Define o volume de reprodução local para um efeito sonoro.

virtual int SetAudioEffectPlayoutVolume(unsigned int soundId, int volume) = 0;

Parâmetros

Nome

Tipo

Descrição

soundId

unsigned int

ID atribuído ao arquivo de efeito sonoro pelo usuário.

volume

int

Volume de mixagem. O intervalo é [0,100]. O valor padrão é 50.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

GetAudioEffectPlayoutVolume

Obtém o volume de reprodução local de um efeito sonoro.

virtual int GetAudioEffectPlayoutVolume(unsigned int soundId) = 0;

Parâmetros

Nome

Tipo

Descrição

soundId

unsigned int

ID atribuído ao arquivo de efeito sonoro pelo usuário.

Descrição da resposta

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

SetAllAudioEffectsPlayoutVolume

Define o volume de reprodução para todos os efeitos sonoros.

virtual int SetAllAudioEffectsPlayoutVolume(int volume) = 0;

Parâmetros

Nome

Tipo

Descrição

volume

int

Volume de mixagem. O intervalo é [0,100]. O valor padrão é 50.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

SetAllAudioEffectsPublishVolume

Define o volume de publicação para todos os efeitos sonoros.

virtual int SetAllAudioEffectsPublishVolume(int volume) = 0;

Parâmetros

Nome

Tipo

Descrição

volume

int

Volume de mixagem. O intervalo é [0,100]. O valor padrão é 50.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

SetLocalViewConfig

Define a janela de renderização e os parâmetros de desenho para a pré-visualização local.

virtual int SetLocalViewConfig(AliEngineVideoCanvas renderConfig,
                                         AliEngineVideoTrack track) = 0;

Este método configura a visualização de pré-visualização local. Ele vincula a visualização de exibição do stream de vídeo local e define o modo de renderização, o modo de espelhamento e o ângulo de rotação da visualização do usuário local. Isso afeta apenas a pré-visualização do usuário local, não o vídeo publicado. Para definir a visualização de um usuário remoto, chame SetRemoteViewConfig.

Nota
  • Se o parâmetro view em AliEngineVideoCanvas estiver vazio, a renderização será interrompida.

  • Para redefinir o parâmetro renderMode de AliEngineVideoCanvas durante a reprodução, mantenha os outros parâmetros inalterados e modifique apenas renderMode.

  • Para redefinir o parâmetro mirrorMode de AliEngineVideoCanvas durante a reprodução, mantenha os outros parâmetros inalterados e modifique apenas mirrorMode.

  • Recomendamos chamar explicitamente StartPreview() para iniciar a pré-visualização local.

Quando chamar

Chame este método antes ou depois de entrar em um canal.

Parâmetros

Nome

Tipo

Descrição

renderConfig

AliEngineVideoCanvas

Parâmetros de renderização, incluindo a janela de renderização e o método de renderização.

track

AliEngineVideoTrack

O tipo de trilha de vídeo.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

SetCameraCapturerConfiguration

Define as preferências de captura da câmera.

virtual int SetCameraCapturerConfiguration(const AliEngineCameraCapturerConfiguration& config) = 0;

Este método configura as preferências de captura da câmera, como a direção da câmera e a taxa de quadros de captura.

Quando chamar

Defina isso antes de abrir a câmera. Por exemplo, chame-o antes das seguintes operações:

  • StartPreview (inicia a pré-visualização)

  • JoinChannel (entra em um canal)

Parâmetros

Nome

Tipo

Descrição

config

AliEngineCameraCapturerConfiguration

Preferências de captura da câmera, incluindo direção da câmera e taxa de quadros. Valores padrão:

  • preference:

    • AliEngineCaptureOutputPreferenceAuto: O SDK ajusta automaticamente os parâmetros de captura.

    • AliEngineCaptureOutputPreferencePerformance: Pré-visualização em alta definição. A captura prioriza a qualidade da pré-visualização do vídeo.

    • AliEngineCaptureOutputPreferencePerformance: A captura seleciona a resolução mais próxima da resolução de publicação, priorizando o desempenho do dispositivo.

  • fps: -1 indica o uso da configuração interna de taxa de quadros do codificador. O padrão é 15.

  • cameraCaptureProfile: 0, especifica uma resolução específica para a captura de vídeo.

  • disableVideoCaptureReverse: Não inverte o quadro de vídeo capturado com base na proporção da tela. -1: padrão, 0: inativo, 1: ativo.

  • captureObserverOriginal: Se deve retornar os dados originais do videoframe via callback. -1: padrão, 0: desativado, 1: ativado.

Um valor de -1 para os itens acima indica o uso das configurações padrão internas do SDK.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

EnableLocalVideo

Desativa ou reativa a captura de vídeo local.

virtual int EnableLocalVideo(bool enabled) = 0;

Este método controla a ativação e desativação da captura de vídeo local. Quando a captura de vídeo local está desativada, tanto a pré-visualização local quanto o stream publicado ficam sem dados de vídeo, mas isso não afeta o recebimento de vídeo remoto. Se você chamar este método para desativar a captura da câmera local, a pré-visualização local e o stream publicado remoto permanecerão no último quadro.

Nota

A captura de vídeo local é ativada por padrão no SDK.

Quando chamar

Chame este método antes ou depois de entrar em um canal.

Callbacks relacionados

Após uma chamada bem-sucedida a este método, o callback OnUserVideoEnabled notifica os usuários remotos.

Parâmetros

Nome

Tipo

Descrição

enable

bool

true: Retoma a operação normal. false: Interrompe a captura de vídeo. O padrão é true.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

MuteLocalCamera

Interrompe ou retoma o envio de dados de vídeo local.

virtual int MuteLocalCamera(bool mute, AliEngineVideoTrack track) = 0;

Ao publicar um stream, chame este método para publicar quadros de vídeo totalmente pretos. A pré-visualização local permanece normal, e os módulos de captura, codificação e envio continuam funcionando, mas o conteúdo do vídeo consiste em quadros pretos.

Nota

Este método controla apenas se devem ser enviados quadros pretos no stream de vídeo especificado. A captura e o envio de dados não serão interrompidos. Para desativar a captura, use o método EnableLocalVideo. Para parar de enviar dados de vídeo, use o método PublishLocalVideoStream.

Parâmetros

Nome

Tipo

Descrição

mute

bool

true: Envia quadros pretos como dados de vídeo. false: Retoma a operação normal. O valor padrão é false.

track

AliEngineVideoTrack

O tipo de trilha de vídeo cujo status de publicação precisa ser alterado.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

SetRemoteViewConfig

Define a janela de renderização e os parâmetros de desenho para um vídeo remoto.

virtual int SetRemoteViewConfig(AliEngineVideoCanvas renderConfig,
                                          const char *uid,
                                          AliEngineVideoTrack track) = 0;

Este método anexa a visualização de exibição para um stream de vídeo específico de um usuário remoto e define propriedades para a exibição local da visualização remota, como o modo de renderização, o modo de espelhamento e o ângulo de rotação. Esta ação afeta apenas a imagem de vídeo que o usuário local vê. Para definir a visualização de pré-visualização local, chame <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#fbc8ab10f5e03" id="c0f59b8c26y7o">SetLocalViewConfig</a>.

  • Se o parâmetro view em AliEngineVideoCanvas estiver vazio, a renderização será interrompida.

  • Para redefinir o parâmetro renderMode de AliEngineVideoCanvas durante a reprodução, mantenha os outros parâmetros inalterados e modifique apenas renderMode.

  • Para redefinir o parâmetro mirrorMode de AliEngineVideoCanvas durante a reprodução, mantenha os outros parâmetros inalterados e modifique apenas mirrorMode.

Quando chamar

Recomendamos chamar este método ao receber o callback OnRemoteTrackAvailableNotify, momento em que o vídeo do usuário remoto fica disponível.

Parâmetros

Nome

Tipo

Descrição

canvas

AliEngineVideoCanvas

Parâmetros de renderização, incluindo a janela de renderização e o método de renderização.

uid

const char *

O ID do usuário.

track

AliEngineVideoTrack

O tipo de trilha de vídeo a ser definido.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

IsCameraOn

Verifica se a câmera está ligada.

virtual bool IsCameraOn() = 0;

Valor de retorno

true: A câmera está ligada. false: A câmera não está ligada.

SetVideoEncoderConfiguration

Define as propriedades de codificação de vídeo.

virtual void SetVideoEncoderConfiguration(const AliEngineVideoEncoderConfiguration& config) = 0;

Este método define os parâmetros de vídeo para as propriedades de codificação do stream de vídeo, como resolução, taxa de quadros, bitrate e orientação do vídeo. Recomendamos chamar este método para todos os cenários de vídeo.

Nota

Todos os parâmetros definidos possuem limites de intervalo correspondentes. Se um parâmetro definido estiver fora do intervalo válido, o SDK o ajustará automaticamente.

Quando chamar

Chame este método antes ou depois de entrar em um canal. Se você precisar definir as propriedades de codificação de vídeo do stream da câmera apenas uma vez por sessão, recomendamos chamá-lo antes de entrar no canal.

Limites

O mirrorMode deste método e setVideoMirrorMode podem ambos definir o espelhamento de publicação de vídeo. Recomendamos usar apenas um deles. Usar vários métodos simultaneamente pode causar o acúmulo de efeitos de espelhamento, levando a falhas ou configurações incorretas de espelhamento.

Parâmetros

Nome

Tipo

Descrição

config

AliEngineVideoEncoderConfiguration

Propriedades de codificação predefinidas. Valores padrão:

  • dimensions: [640,480]

  • frameRate: 15

  • bitrate: 0

  • keyFrameInterval: O intervalo de quadros-chave em milissegundos. O padrão é 0, o que significa que é controlado pelo SDK.

  • forceStrictKeyFrameInterval: Se deve forçar o codificador a seguir estritamente o intervalo de quadros-chave definido para produzir quadros-chave. O valor padrão é false.

  • mirrorMode: O espelhamento de publicação. O padrão é AliEngineVideoMirrorModeDisabled. Consulte os detalhes.

  • orientationMode: 0

  • rotation: 0

SetVideoDecoderConfiguration

Define as propriedades de decodificação de vídeo. Este método configura as propriedades de decodificação de vídeo do stream da câmera, incluindo configurações de decodificação por software e hardware e se deve ativar B-frames.

virtual void SetVideoDecoderConfiguration(const AliEngineVideoDecoderConfiguration& config) = 0;

Quando chamar

Recomendamos chamar este método antes de entrar em um canal e puxar um stream.

Parâmetros

Parâmetro

Tipo

Descrição

config

AliEngineVideoDecoderConfiguration

Uma struct que descreve as propriedades de decodificação de vídeo, propriedades principais e valores padrão.

StartPreview

Inicia a pré-visualização local e liga automaticamente a câmera.

virtual int StartPreview(int width = 0, int height = 0) = 0;

Este método inicia a pré-visualização de vídeo local e liga automaticamente a câmera. Para parar a pré-visualização local, chame o método StopPreview.

Nota

Sair de um canal usando LeaveChannel interrompe automaticamente a pré-visualização local. Se o stream da câmera não estiver sendo publicado, a câmera será desligada automaticamente.

Quando chamar

  • Antes de chamar este método, defina uma visualização para a pré-visualização local através de SetLocalViewConfig. Caso contrário, não será possível pré-visualizar o vídeo, mas isso não afeta a publicação.

  • Se necessário, chame este método antes de entrar em um canal com JoinChannel para iniciar a pré-visualização, o que ligará automaticamente a câmera.

Descrição da resposta

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

StopPreview

Interrompe a pré-visualização local.

virtual int StopPreview() = 0;

Este método fecha a pré-visualização de vídeo local e desliga a câmera. Após parar a pré-visualização, o lado local permanecerá no último quadro, o que não afeta a publicação.

Nota

Sair de um canal usando LeaveChannel interrompe automaticamente a pré-visualização local. Se o stream da câmera não estiver sendo publicado, a câmera será desligada automaticamente.

Quando chamar

Para parar a pré-visualização após iniciá-la, chame este método.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

setVideoMirrorMode

Define os recursos de espelhamento de pré-visualização e publicação.

virtual int setVideoMirrorMode(AliEngineVideoPipelineMirrorMode mirrorMode) = 0;

Este método define se o modo de espelhamento deve ser ativado para o vídeo de pré-visualização local e para o stream de vídeo publicado.

Nota

Este método tem prioridade maior que SetLocalViewConfig e SetVideoEncoderConfiguration. Para definir o modo de espelhamento de vídeo, recomendamos chamar este método.

Quando chamar

Este método pode ser definido dinamicamente antes e depois de entrar em um canal. O SDK registra o estado e opera no vídeo quando a pré-visualização e a codificação (publicação) puderem ser operadas.

Limites

Este método se sobrepõe ao parâmetro mirrorMode em SetLocalViewConfig e SetVideoEncoderConfiguration. Recomendamos usar apenas este método.

Parâmetros

Nome

Tipo

Descrição

mirrorMode

AliEngineVideoPipelineMirrorMode

Define o modo de espelhamento.

Valor de retorno

  • 0: A configuração foi bem-sucedida.

  • <0: A configuração falhou.

    • AliRtcErrInner: Erro de estado interno do SDK. Verifique se a instância do SDK foi criada com êxito.

SetCapturePipelineScaleMode

Define o momento do redimensionamento da captura. Os dados de vídeo são redimensionados imediatamente após a captura ou durante a codificação.

virtual void SetCapturePipelineScaleMode(const AliEngineCapturePipelineScaleMode mode) = 0;

Este método define se o redimensionamento da captura de dados de vídeo ocorre imediatamente após a captura ou durante a codificação. Por exemplo, quando a resolução de captura é inconsistente com a resolução de codificação, defina o momento do redimensionamento para determinar se os dados de pré-visualização e os dados publicados são consistentes.

Quando chamar

Defina este método antes de abrir a câmera, por exemplo, antes de iniciar a pré-visualização com StartPreview ou entrar em um canal com JoinChannel.

Parâmetros

Nome

Tipo

Descrição

mode

AliEngineCapturePipelineScaleMode

O modo que controla o momento do redimensionamento da captura. O padrão é redimensionar imediatamente após a captura.

GetCameraList

Obtém a lista de câmeras.

virtual AliEngineDeviceInfoList* GetCameraList() = 0;

Valor de retorno

Um ponteiro para o objeto da lista de câmeras, AliEngineDeviceInfoList*.

GetCurrentCameraName

Obtém o nome da câmera atualmente em uso.

virtual String GetCurrentCameraName() = 0;

Valor de retorno

O nome do dispositivo de câmera atualmente em uso.

GetCurrentCameraID

Obtém o ID da câmera atualmente em uso.

virtual String GetCurrentCameraID() = 0;

Valor de retorno

O ID da câmera atualmente em uso.

SetCurrentCameraName

Seleciona uma câmera pelo nome.

virtual int SetCurrentCameraName(const char* cameraName) = 0;

Parâmetros

Nome

Tipo

Descrição

cameraName

const char *

O nome do dispositivo.

Valor de retorno

0 para sucesso, outros valores para falha.

SetCurrentCameraID

Seleciona uma câmera pelo ID.

virtual int SetCurrentCameraID(const char* cameraID) = 0;

Parâmetros

Nome

Tipo

Descrição

cameraID

const char *

O ID do dispositivo.

Valor de retorno

0 para sucesso, outros valores para falha.

GetCurrentCameraSupportedResolutionList

Obtém as resoluções suportadas.

virtual AliEngineVideoResolutionList * GetCurrentCameraSupportedResolutionList(int source) = 0 ;

Parâmetros

Nome

Tipo

Descrição

source

int

O tipo de dispositivo.

Valor de retorno

Se o valor não for NULL, obtém a lista de resoluções suportadas. NULL indica falha.

SetExternalVideoSource

Ativa uma fonte de entrada de vídeo externa.

virtual int SetExternalVideoSource(bool enable,
        AliEngineVideoTrack type,
        AliEngineRenderMode renderMode) = 0;

Parâmetros

Nome

Tipo

Descrição

enable

bool

true: Ativar. false: Desativar.

type

AliEngineVideoTrack

O tipo de stream.

renderMode

AliEngineRenderMode

O modo de renderização.

PushExternalVideoFrame

Insere dados de vídeo.

virtual int PushExternalVideoFrame(const AliEngineVideoRawData &frame,
        AliEngineVideoTrack type) = 0;

Parâmetros

Nome

Tipo

Descrição

frame

AliEngineVideoRawData

Os dados do quadro.

type

AliEngineVideoTrack

O tipo de stream.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

StartPublishLiveStream

Inicia um stream ao vivo por bypass.

virtual int StartPublishLiveStream(const String& streamURL, const AliEngineLiveTranscodingParam &transcoding) = 0;

Parâmetros

Nome

Tipo

Descrição

streamUrl

const String

A URL de ingestão.

transcoding

AliEngineLiveTranscodingParam

Os parâmetros necessários para a ingestão de stream.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

UpdatePublishLiveStream

Atualiza os parâmetros do stream ao vivo por bypass.

virtual int UpdatePublishLiveStream(const String& streamURL, const AliEngineLiveTranscodingParam &transcoding) = 0;

Parâmetros

Nome

Tipo

Descrição

streamUrl

const String

A URL de ingestão.

transcoding

AliEngineLiveTranscodingParam

Os parâmetros necessários para a ingestão de stream.

Valor de retorno

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

StopPublishLiveStream

Interrompe o stream ao vivo por bypass.

virtual int StopPublishLiveStream(const String& streamURL) = 0;

Parâmetros

Nome

Tipo

Descrição

streamURL

const String

A URL de ingestão.

Descrição da resposta

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

GetPublishLiveStreamState

Obtém o status do stream ao vivo por bypass.

virtual AliEngineLiveTranscodingState GetPublishLiveStreamState(const String& streamURL) = 0;

Parâmetros

Parâmetro

Tipo

Descrição

streamURL

const String

A URL de ingestão.

Descrição da resposta

Retorna o status do stream ao vivo por bypass.

StartLastmileDetect

Inicia a detecção de qualidade de rede. Alguns problemas de rede local podem causar falhas em chamadas de áudio e vídeo. Ao chamar este método, obtenha informações como largura de banda de rede upstream e downstream, taxa de perda de pacotes, jitter e RTT do link para ajudar a localizar e resolver problemas de rede relacionados.

 virtual int StartLastmileDetect(bool uplink, bool downlink, int uplinkBandWidth, int downlinkBandWidth) = 0;

Quando chamar

Chame este método antes de JoinChannel. Os resultados da detecção serão fornecidos por meio de um callback. Uma detecção de rede pode levar muito tempo. Chame StopLastmileDetect para interromper a detecção de rede conforme necessário.

Limites

O SDK pode realizar apenas uma detecção de rede por vez. Chamadas repetidas antes que a detecção anterior seja concluída serão inválidas.

Callbacks relacionados

Após uma chamada bem-sucedida a este método, dois callbacks serão acionados:

Parâmetros

Parâmetro

Tipo

Descrição

uplink

bool

Indica se deve detectar o uplink.

downlink

bool

Indica se deve detectar o downlink.

uplinkBandWidth

int

Largura de banda máxima para detecção de uplink.

downlinkBandWidth

int

Largura de banda máxima para detecção de downlink.

Valor de retorno

  • 0: A chamada do método foi bem-sucedida.

  • <0: Falha na chamada do método. Isso pode ocorrer, por exemplo, se você já entrou em um canal.

StopLastmileDetect

Interrompe a detecção da qualidade da rede. Chame este método para parar a detecção da qualidade da rede.

virtual int StopLastmileDetect() = 0;

Quando chamar

Chame este método após criar o engine e antes de entrar em um canal.

Valor de retorno

  • 0: Método chamado com sucesso.

  • <0: Falha na chamada do método.

SendMediaExtensionMsg

Envia informações de extensão de mídia, implementadas internamente via SEI.

virtual int SendMediaExtensionMsg(const int8_t * message, uint32_t length, int32_t repeatCount, uint32_t delay, bool isKeyFrame) = 0;

O SDK oferece funcionalidade para envio e recebimento de informações de extensão de mídia. O lado receptor corresponde a AliEngineEventListener::OnMediaExtensionMsgReceived. Como as informações de extensão de mídia reutilizam o canal de dados de áudio e vídeo, é necessário controlar a frequência de envio e o tamanho dos dados das mensagens personalizadas. Os limites de uso são:

  • Envie no máximo fps mensagens por segundo, conforme definido pelo perfil.

  • Para preservar a qualidade de transmissão dos dados de mídia, o corpo da mensagem personalizada tem limite de 4 KB, adequado para transmitir pequenos volumes de dados.

  • O parâmetro repeatCount na função sendMediaExtensionMsg define a redundância da mensagem personalizada. Se for maior que 1, a mensagem será enviada várias vezes para evitar perda devido a pacotes de rede descartados. Nesse caso, os demais participantes da sala também receberão a mesma mensagem múltiplas vezes, sendo necessária a remoção de duplicatas.

  • Ao enviar a mensagem personalizada, os assinantes na sala também a receberão durante transmissões ao vivo bypass. Definir como -1 significa enviar os dados permanentemente, a menos que sendMediaExtensionMsg seja chamado novamente.

  • Apenas uma chamada sendMediaExtensionMsg é processada por vez. Isso significa que uma nova chamada sobrescreverá a anterior caso esta ainda não tenha sido enviada ou concluída.

Parâmetros

Nome

Tipo

Descrição

message

const int8_t *

Conteúdo das informações de extensão, com comprimento máximo de 4 KB.

length

uint32_t

Comprimento das informações de extensão, limitado a 4 KB (4 × 1024 bytes).

repeatCount

int32_t

Número de repetições que representa a redundância da mensagem, usada para evitar perdas por descarte de pacotes de rede. -1 indica reenvio infinito, a menos que SendMediaExtensionMsg seja chamado novamente.

delay

uint32_t

Atraso em milissegundos antes do envio do SEI. Como o SEI é anexado ao fluxo codificado h264/h265, o atraso real será ligeiramente superior ao valor definido.

isKeyFrame

bool

Indica se o SEI deve ser adicionado apenas aos keyframes. Se definido como true, as informações SEI serão incluídas exclusivamente nos keyframes.

Valor de retorno

  • 0: Sucesso.

  • <0: Falha. Um código de erro é retornado.

    • ERR_INNER(-1): Erro interno do SDK. Pode ocorrer se o SDK não estiver inicializado ou se for chamado após ser destruído.

SendMediaExtensionMsgEx

Envia informações de extensão de mídia, implementadas internamente via SEI.

virtual int SendMediaExtensionMsgEx(const int8_t * message, uint32_t length, int32_t repeatCount, uint32_t delay, bool isKeyFrame, int32_t payloadType) = 0;

O SDK oferece funcionalidade para envio e recebimento de informações de extensão de mídia. O lado receptor corresponde a AliEngineEventListener::OnMediaExtensionMsgReceived. Como as informações de extensão de mídia reutilizam o canal de dados de áudio e vídeo, é necessário controlar a frequência de envio e o tamanho dos dados das mensagens personalizadas. Os limites de uso são:

  • Envie no máximo fps mensagens por segundo, conforme definido pelo perfil.

  • Para preservar a qualidade de transmissão dos dados de mídia, o corpo da mensagem personalizada tem limite de 4 KB, adequado para transmitir pequenos volumes de dados.

  • O parâmetro repeatCount na função sendMediaExtensionMsg define a redundância da mensagem personalizada. Se for maior que 1, a mensagem será enviada várias vezes para evitar perda devido a pacotes de rede descartados. Nesse caso, os demais participantes da sala também receberão a mesma mensagem múltiplas vezes, sendo necessária a remoção de duplicatas.

  • Ao enviar a mensagem personalizada, os assinantes na sala também a receberão durante transmissões ao vivo bypass. Definir como -1 significa enviar os dados permanentemente, a menos que sendMediaExtensionMsg seja chamado novamente.

  • Apenas uma chamada sendMediaExtensionMsg é processada por vez. Isso significa que uma nova chamada sobrescreverá a anterior caso esta ainda não tenha sido enviada ou concluída.

Parâmetros

Nome

Tipo

Descrição

message

const int8_t *

Conteúdo das informações de extensão, com comprimento máximo de 4 KB.

length

uint32_t

Comprimento das informações de extensão, limitado a 4 KB (4 × 1024 bytes).

repeatCount

int32_t

Número de repetições que representa a redundância da mensagem, usada para evitar perdas por descarte de pacotes de rede. -1 indica reenvio infinito, a menos que SendMediaExtensionMsg seja chamado novamente.

delay

uint32_t

Atraso em milissegundos antes do envio do SEI. Como o SEI é anexado ao fluxo codificado h264/h265, o atraso real será ligeiramente superior ao valor definido.

isKeyFrame

bool

Indica se o SEI deve ser adicionado apenas aos keyframes. Se definido como true, as informações SEI serão incluídas exclusivamente nos keyframes.

payloadType

int32_t

Campo de tipo de dados. payload=5 payload=[100..254].

Valor de retorno

  • 0: Sucesso.

  • <0: Falha. Um código de erro é retornado.

    • ERR_INNER(-1): Erro interno do SDK. Pode ocorrer se o SDK não estiver inicializado ou se for chamado após ser destruído.

OnConnectionStatusChange

Callback para alterações no status da conexão de rede.

virtual void OnConnectionStatusChange(int status, int reason) {};

Parâmetros

Parâmetro

Tipo

Descrição

status

AliEngineConnectionStatus

Valor do status atual.

reason

AliEngineConnectionStatusChangeReason

Motivo específico da alteração de status.

OnLocalDeviceException

Callback para exceções em dispositivos locais. Preste atenção a este callback.

virtual void OnLocalDeviceException(AliEngineLocalDeviceType deviceType, AliEngineLocalDeviceExceptionType exceptionType, const char* msg){};

Parâmetros

Parâmetro

Tipo

Descrição

deviceType

AliEngineLocalDeviceType

Tipo do dispositivo.

exceptionType

AliEngineLocalDeviceExceptionType

Tipo da exceção do dispositivo.

msg

const char*

Informações associadas à exceção.

OnAuthInfoWillExpire

Notificação de que as informações de autenticação do usuário estão prestes a expirar. A autenticação expirará 30 segundos após o recebimento desta notificação. Preste atenção a este callback.

virtual void OnAuthInfoWillExpire() {};

Este callback indica que as informações de autenticação do usuário estão prestes a expirar. A autenticação expirará 30 segundos após o recebimento deste callback. Obtenha um novo token e atualize as informações de autenticação usando uma das seguintes formas:

  • Chame o método RefreshAuthInfo para atualizar as informações de autenticação.

  • Chame LeaveChannel para sair do canal atual e, em seguida, chame JoinChannel para entrar novamente no canal.

Quando é acionado

O SDK aciona este callback 30 segundos antes da expiração das informações de autenticação do usuário. Atualize as informações de autenticação prontamente após receber este callback.

OnAuthInfoExpired

O usuário chama uma interface que exige autenticação e o servidor retorna que as informações expiraram.

virtual void OnAuthInfoExpired() {};

Este callback indica que as informações de autenticação do usuário expiraram. Para continuar a sessão, gere um novo token no servidor e atualize as informações de autenticação da seguinte forma:

  • Chame LeaveChannel para sair do canal atual e, em seguida, chame JoinChannel para entrar novamente no canal.

Quando é acionado

Este callback é acionado quando as informações de autenticação do usuário expiram.

OnJoinChannelResult

Callback para o resultado da entrada em um canal. Este callback equivale à operação de bloco ao chamar o método JoinChannel, que trata eventos após a entrada no canal. Escolha uma das opções.

virtual void OnJoinChannelResult(int result, const char *channel, const char *userId, int elapsed) {}

Condições de acionamento

Quando o aplicativo chama o método JoinChannel, este callback indica se a entrada no canal foi bem-sucedida e retorna informações sobre a entrada e o tempo decorrido.

Parâmetros

Parâmetro

Tipo

Descrição

result

int

Resultado da entrada no canal. Retorna 0 em caso de sucesso. Em caso de falha, retorna um código de erro. Para mais informações, consulte Error code list. Alguns códigos de erro comuns incluem:

  • ERR_JOIN_BAD_APPID: O AppId não existe.

  • ERR_JOIN_INVALID_APPID: O AppId expirou.

  • ERR_JOIN_BAD_CHANNEL: O canal não existe.

  • ERR_JOIN_INVALID_CHANNEL: O canal expirou.

  • ERR_JOIN_BAD_TOKEN: O token não existe.

  • ERR_JOIN_TIMEOUT: Tempo esgotado ao entrar no canal.

  • ERR_JOIN_BAD_PARAM: Parâmetros incorretos para entrada no canal.

  • ERR_JOIN_FAILED: Falha ao entrar no canal.

  • ERR_JOIN_CONFIG_INVALID: Parâmetros de entrada inválidos, como token vazio.

channel

const char *

ID do canal acessado.

userId

const char *

ID do usuário que entrou.

elapsed

int

Tempo decorrido para entrar no canal.

OnLeaveChannelResult

Callback para o resultado da saída de um canal. Retornado após a chamada do método LeaveChannel. Se você chamar Destroy imediatamente depois, este callback não será recebido.

virtual void OnLeaveChannelResult(int result, AliEngineStats stats) {}

Condições de acionamento

Quando o aplicativo chama com sucesso LeaveChannel para sair do canal, este callback é acionado para retornar o resultado da saída e as estatísticas desta sessão de canal.

Nota

Se você chamar Destroy para destruir o engine imediatamente após LeaveChannel, este callback não será acionado.

Parâmetros

Parâmetro

Tipo

Descrição

result

int

Resultado da saída do canal. Retorna 0 em caso de sucesso e um código de erro em caso de falha.

stats

AliEngineStats

Resumo das estatísticas de dados desta sessão de canal.

OnRemoteUserOffLineNotify

Callback para quando um usuário remoto fica offline.

virtual void OnRemoteUserOffLineNotify(const char *uid, AliEngineUserOfflineReason reason) {}

Este callback notifica o usuário local que um usuário remoto saiu do canal por diversos motivos. Quando um usuário remoto fica offline, este método é acionado.

Condições de acionamento

  • Acionado quando um usuário remoto sai ativamente do canal.

  • Acionado quando um streamer remoto chama <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#c99c2b257dd8o" id="03e45f655fcxx">SetClientRole</a> para alterar sua função para espectador (definido como AliEngineClientRoleLive).

  • Acionado quando nenhum dado é recebido do streamer remoto por um longo período, considerando-o desconectado.

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char *

Identificador exclusivo atribuído ao ID do usuário pelo servidor do aplicativo.

reason

AliEngineUserOfflineReason

Motivo pelo qual o usuário ficou offline.

OnRemoteUserOnLineNotify

Callback para quando um usuário remoto fica online.

virtual void OnRemoteUserOnLineNotify(const char *uid, int elapsed) {}

Este método notifica o cliente local que um usuário remoto entrou no canal.

Condições de acionamento

  • Um usuário remoto entra com sucesso no canal.

  • Após o usuário atual entrar no canal, ele recebe um callback de entrada para usuários que já estavam no canal. Isso serve para exibir usuários previamente conectados.

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char *

Identificador exclusivo atribuído ao ID do usuário pelo servidor do aplicativo.

elapsed

int

Tempo decorrido para o usuário entrar no canal.

OnRemoteTrackAvailableNotify

Callback para alterações no fluxo de um usuário remoto.

virtual void OnRemoteTrackAvailableNotify(const char *uid,
                                                  AliEngineAudioTrack audioTrack,
                                                  AliEngineVideoTrack videoTrack) {}

Este callback é acionado quando o estado de publicação de um usuário remoto muda. Por meio dele, você sabe em tempo real se um usuário remoto está publicando fluxos de áudio e vídeo. Assim, é possível exibir ou ocultar as informações de áudio e vídeo do usuário remoto na UI adequadamente.

Condições de acionamento

Este callback é acionado nos seguintes cenários:

  • Quando um usuário remoto passa de não publicando para publicando (incluindo áudio e vídeo).

  • Quando um usuário remoto passa de publicando para não publicando (incluindo áudio e vídeo).

  • No modo de transmissão interativa, quando um usuário remoto chama SetClientRole para mudar de espectador para streamer e também define a publicação, este callback é acionado.

Tomando o vídeo como exemplo, suponha que um usuário remoto esteja configurado para não publicar. Nesse caso, este callback não será acionado.

  • Quando o usuário remoto começa a publicar o fluxo da câmera (estado de publicação: sem fluxo de vídeo -> apenas fluxo da câmera), o callback local retorna AliEngineVideoTrackCamera, indicando que o fluxo da câmera do usuário remoto está disponível.

  • Quando o usuário remoto também publica o fluxo de compartilhamento de tela (estado de publicação: apenas fluxo da câmera -> fluxo da câmera e fluxo de compartilhamento de tela), o callback local retorna AliEngineVideoTrackBoth, indicando que tanto o fluxo da câmera quanto o de compartilhamento de tela do usuário remoto estão disponíveis.

  • Quando o usuário remoto para de publicar o fluxo da câmera e mantém apenas o fluxo de compartilhamento de tela (estado de publicação: fluxo da câmera e fluxo de compartilhamento de tela -> apenas fluxo de compartilhamento de tela), o callback local retorna AliEngineVideoTrackScreen, indicando que apenas o fluxo de compartilhamento de tela está disponível no momento.

  • Quando o usuário remoto para de publicar o fluxo de compartilhamento de tela (estado de publicação: apenas fluxo de compartilhamento de tela -> sem fluxo de vídeo), o callback local retorna AliEngineVideoTrackNo, indicando que nenhum fluxo de vídeo está disponível no momento.

Nota

Este callback retorna o status de publicação do usuário remoto. Para saber qual fluxo ficou offline nesta alteração, registre os estados antes e depois do callback.

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char *

Identificador exclusivo atribuído ao ID do usuário pelo servidor do aplicativo.

audioTrack

AliEngineAudioTrack

Fluxo de áudio do usuário remoto após a alteração.

videoTrack

AliEngineVideoTrack

Fluxo de vídeo do usuário remoto após a alteração.

OnBye

Callback para quando o usuário é removido pelo servidor ou o canal é fechado.

virtual void OnBye(int code) {}

Quando um usuário é desconectado por algum motivo ou o canal é fechado, este callback é acionado. Use o parâmetro do callback code para identificar o motivo da desconexão e tratá-lo adequadamente.

Condições de acionamento

  • O usuário atual é removido pelo servidor.

  • O canal é fechado (o servidor remove ativamente o canal).

  • Saída passiva, exigindo que o cliente tente restaurar a sessão ou reconectar.

Parâmetros

Parâmetro

Tipo

Descrição

code

int

Tipo de mensagem. Valores:

  • 1: Removido pelo servidor.

  • 2: Canal fechado.

  • 3: O mesmo ID de usuário fez login em outro dispositivo e foi removido pelo servidor.

OnAudioPublishStateChanged

Callback para alterações na publicação de áudio.

virtual void OnAudioPublishStateChanged(AliEnginePublishState oldState, AliEnginePublishState newState, int elapseSinceLastState, const char *channel) {};

Este callback monitora alterações no estado de publicação do fluxo de áudio do usuário local.

Condições de acionamento

Quando o estado de publicação de áudio do usuário muda, por exemplo:

  • Para de publicar.

  • Chama <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#c99c2b257dd8o" id="904fc4e83a35n">SetClientRole</a> para mudar para espectador.

Parâmetros

Parâmetro

Tipo

Descrição

oldState

AliEnginePublishState

Estado de publicação anterior.

newStat

AliEnginePublishState

Estado de publicação atual.

elapseSinceLastState

int

Intervalo de tempo desde a alteração de estado, em milissegundos.

channel

const char *

ID do canal atual.

OnAudioSubscribeStateChanged

Callback para alterações na assinatura de áudio.

virtual void OnAudioSubscribeStateChanged(const char *uid,
                                                  AliEngineSubscribeState oldState, 
                                                  AliEngineSubscribeState newState,
                                                  int elapseSinceLastState,
                                                  const char *channel) {};

Este callback notifica o usuário local sobre alterações no estado de assinatura do fluxo de áudio do usuário remoto. Por meio dele, você conhece a mudança no estado de assinatura do fluxo da câmera de um usuário remoto e o intervalo de tempo entre o estado anterior e o atual.

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *_Nonnull

ID do usuário cuja assinatura mudou.

oldState

AliEngineSubscribeState

Estado de assinatura anterior.

newState

AliEngineSubscribeState

Estado de assinatura atual.

elapseSinceLastState

int

Intervalo de tempo desde a alteração de estado, em milissegundos.

channel

const char *

ID do canal atual.

OnUserAudioMuted

Notificação de que um usuário silenciou o áudio.

virtual void OnUserAudioMuted(const char* uid, bool isMute) {}

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

ID do usuário que executou MuteAudio.

isMute

bool

true: Silenciado. false: Não silenciado.

OnUserAudioInterruptedBegin

Notificação de que o áudio de um usuário foi interrompido. Geralmente ocorre em cenários onde o áudio é preemptado, como por uma chamada telefônica.

virtual void OnUserAudioInterruptedBegin(const char* uid) {}

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

ID do usuário cujo áudio foi interrompido.

OnUserAudioInterruptedEnded

Notificação de que a interrupção de áudio de um usuário terminou. Corresponde a OnUserAudioInterruptedBegin.

virtual void OnUserAudioInterruptedEnded(const char* uid) {}

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

ID do usuário cuja interrupção de áudio terminou.

OnVideoPublishStateChanged

Callback para alterações na publicação de vídeo.

virtual void OnVideoPublishStateChanged(AliEnginePublishState oldState, AliEnginePublishState newState, int elapseSinceLastState, const char *channel) {};

Este callback monitora alterações no estado de publicação de vídeo do usuário local.

Parâmetros

Parâmetro

Tipo

Descrição

oldState

AliEnginePublishState

Estado de publicação anterior.

newState

AliEnginePublishState

Estado de publicação atual.

elapseSinceLastState

int

Intervalo de tempo desde a alteração de estado, em milissegundos.

channel

const char *

ID do canal atual.

OnVideoSubscribeStateChanged

Callback para alterações na assinatura do fluxo da câmera.

virtual void OnVideoSubscribeStateChanged(const char *uid, 
                                                  AliEngineSubscribeState oldState, 
                                                  AliEngineSubscribeState newState,
                                                  int elapseSinceLastState,
                                                  const char *channel) {};

Este callback notifica o usuário local sobre alterações no estado de assinatura do fluxo da câmera do usuário remoto. Por meio dele, você conhece a mudança no estado de assinatura do fluxo da câmera de um usuário remoto e o intervalo de tempo entre o estado anterior e o atual.

Callbacks relacionados

Os fluxos de vídeo incluem principalmente fluxos de câmera e fluxos de compartilhamento de tela. Este método refere-se a alterações no estado de assinatura do fluxo da câmera. O método de callback relacionado para fluxos de compartilhamento de tela é OnScreenShareSubscribeStateChanged.

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char *

ID do usuário cuja assinatura mudou.

oldState

AliEngineSubscribeState

Estado de assinatura anterior.

newState

AliEngineSubscribeState

Estado de assinatura atual.

elapseSinceLastState

int

Intervalo de tempo desde a alteração de estado, em milissegundos.

channel

const char *

ID do canal atual.

OnUserVideoMuted

Notificação de que um usuário silenciou o vídeo.

virtual void OnUserVideoMuted(const char* uid, bool isMute) {}

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

ID do usuário que executou muteVideo.

isMute

bool

true: Publicando quadros pretos. false: Publicação normal.

OnUserVideoEnabled

Notificação de que a captura de vídeo local foi desativada ou reativada.

virtual void OnUserVideoEnabled(const char* uid, bool isEnable) {}

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

ID do usuário que executou EnableLocalVideo.

isMute

bool

true: A coleta do fluxo da câmera está ativada. false: A coleta do fluxo da câmera está desativada.

OnUserWillResignActive

Callback acionado quando o aplicativo de um usuário remoto é movido para segundo plano.

virtual void OnUserWillResignActive(const char* uid) {}

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

ID do usuário cujo aplicativo foi movido para segundo plano.

OnUserWillBecomeActive

Callback acionado quando o aplicativo de um usuário remoto retorna ao primeiro plano.

virtual void OnUserWillBecomeActive(const char* uid) {}

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

ID do usuário cujo aplicativo retornou ao primeiro plano.

OnStats

Callback de dados em tempo real. Este evento é disparado a cada 2 segundos.

virtual void OnStats(const AliEngineStats& stats) {}

Parâmetros

Parâmetro

Tipo

Descrição

stats

AliEngineStats

O callback de dados.

OnLocalVideoStats

Estatísticas de vídeo local. Este evento é disparado a cada 2 segundos.

virtual void OnLocalVideoStats(const AliEngineLocalVideoStats& localVideoStats);

Informações dos parâmetros

Parâmetro

Tipo

Descrição

localVideoStats

const AliEngineLocalVideoStats&

Estatísticas de vídeo local, incluindo taxa de bits, taxa de quadros e outras informações.

OnRemoteVideoStats

Estatísticas de vídeo remoto. Este evento é disparado a cada 2 segundos.

virtual void OnRemoteVideoStats(const AliEngineRemoteVideoStats& remoteVideoStats);

Informações dos parâmetros

Parâmetro

Tipo

Descrição

remoteVideoStats

const AliEngineRemoteVideoStats&

Estatísticas de vídeo remoto, incluindo ID do usuário remoto, taxa de quadros, travamentos e outras informações.

OnLocalAudioStats

Estatísticas de áudio local. Este evento é disparado a cada 2 segundos.

virtual void OnLocalAudioStats(const AliEngineLocalAudioStats& localAudioStats);

Informações dos parâmetros

Parâmetro

Tipo

Descrição

localAudioStats

const AliEngineLocalAudioStats&

Estatísticas de áudio local, incluindo taxa de amostragem, número de canais de som, entre outros.

OnRemoteAudioStats

Estatísticas de áudio remoto. Este evento é disparado a cada 2 segundos.

virtual void OnRemoteAudioStats(const AliEngineRemoteAudioStats& remoteAudioStats);

Informações dos parâmetros

Parâmetro

Tipo

Descrição

remoteAudioStats

const AliEngineRemoteAudioStats&

Estatísticas de áudio remoto, incluindo taxa de perda de pacotes, taxa de travamentos, entre outros.

OnMediaExtensionMsgReceived

Callback para recebimento de informações de extensão de mídia. Quando uma extremidade envia informações por meio de SendMediaExtensionMsg, a outra extremidade recebe os dados através deste callback.

virtual void OnMediaExtensionMsgReceived(const char* uid, const uint8_t payloadType, const int8_t * message, uint32_t size);

Quando uma extremidade envia informações por meio de sendMediaExtensionMsg, a outra extremidade recebe os dados através deste callback.

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

O userId do usuário remetente.

payloadType

const uint8_t

O tipo de payload. sendMediaExtensionMsg retorna 5. sendMediaExtensionMsgEx retorna o tipo específico.

message

const int8_t *

O conteúdo da informação de extensão.

size

uint32_t

O comprimento da informação de extensão.

OnSnapshotComplete

Callback do resultado da captura de tela. Quando um usuário chama SnapshotVideo com sucesso, o resultado da captura é retornado por meio deste callback.

virtual void OnSnapshotComplete(const char* userId, AliEngineVideoTrack videoTrack, void* buffer, int width, int height, bool success);

Parâmetros

Parâmetro

Tipo

Descrição

userId

const char*

O ID do usuário, indicando de qual usuário o fluxo de vídeo foi capturado.

videoTrack

AliEngineVideoTrack

O tipo de vídeo capturado, como fluxo da câmera ou fluxo de compartilhamento de tela.

buffer

void*

Em caso de sucesso, retorna os dados de imagem da captura de tela. O formato da imagem é RGBA. Em caso de falha, retorna nullptr.

width

int

A largura da captura de tela.

height

int

A altura da captura de tela.

success

bool

Indica se a captura de tela foi bem-sucedida.

  • true: A captura de tela foi bem-sucedida.

  • false: A captura de tela falhou.

OnLocalAudioStateChange

Callback para o status do dispositivo de áudio local.

virtual void OnLocalAudioStateChange(AliEngineLocalAudioStateType state, const char* msg);

Parâmetros

Parâmetro

Tipo

Descrição

state

AliEngineLocalAudioStateType

O status atual do dispositivo de áudio, como iniciando ou iniciado.

msg

const char*

Descrição da alteração de status do dispositivo.

onLocalVideoStateChanged

Callback para o status do dispositivo de vídeo local.

virtual void onLocalVideoStateChanged(AliEngineLocalVideoStateType state, const char* msg);

Parâmetros

Parâmetro

Tipo

Descrição

state

AliEngineLocalVideoStateType

O status atual do dispositivo de vídeo, como iniciando ou iniciado.

msg

const char*

Descrição da alteração de status do dispositivo.

OnRemoteUserSubscribedDataChannel

Callback que indica que você pode começar a enviar mensagens pelo canal de dados.

virtual void OnRemoteUserSubscribedDataChannel(const char* uid);

Este método é um callback disparado quando um usuário remoto se inscreve no Data Channel. Ele notifica o usuário local de que o usuário remoto especificado está pronto para receber mensagens personalizadas. Assim, é possível chamar SendDataChannelMessage com segurança para enviar dados a ele. Este callback é um mecanismo essencial para garantir a entrega confiável de mensagens e evitar perda de pacotes ou falhas ao enviar mensagens para um usuário-alvo que ainda não se inscreveu no Data Channel.

Nota

Este callback é disparado apenas em cenários de IA.

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

O ID do usuário remoto.

OnDataChannelMessage

Callback para mensagens do canal de dados.

virtual void OnDataChannelMessage(const char* uid, const AliEngineDataChannelMsg& msg);

O ARTC SDK oferece a capacidade de enviar e receber mensagens personalizadas. Isso permite transmitir dados de mensagens personalizadas em tempo real durante a transmissão de áudio e vídeo. Por exemplo, use este método para transmitir instruções de controle em tempo real, dados de sincronização de status ou outras mensagens de negócios junto com o áudio e vídeo. Para mais informações, consulte Send and receive custom messages.

Nota
  • Em cenários interativos, a função de streamer pode enviar e receber mensagens, enquanto a função de espectador suporta apenas o recebimento.

  • Este recurso está desativado por padrão. Para ativá-lo, após criar o engine, chame <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#d78a13ea0e6hy" id="327b69c0ee1wh">SetParameter</a> para definir {\"data\":{\"enablePubDataChannel\":true" + ",\"enableSubDataChannel\":true}}.

  • O DataChannel do ARTC depende da conectividade dos fluxos de áudio e vídeo: o envio de mensagens requer um push de fluxo ativo, e o recebimento requer um pull de fluxo ativo. A comunicação bidirecional depende dos fluxos de áudio e vídeo.

Quando é disparado

Após o remetente chamar SendDataChannelMessage para enviar uma mensagem personalizada, se o destinatário tiver ativado o recurso de canal de dados, este callback será disparado no lado do destinatário.

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

O ID do usuário remetente.

msg

const AliEngineDataChannelMsg&

A mensagem do canal de dados.

OnCapturedAudioFrame

Callback para dados brutos de coleta de áudio.

virtual bool OnCapturedAudioFrame(AliEngineAudioRawData audioRawData) = 0;

Este callback recupera os dados brutos de áudio coletados pelo dispositivo atual. Ele está desativado por padrão. Para recuperar esses dados de áudio:

  • Ative este callback através de audioSource em EnableAudioFrameObserver(true,audioSource,config). O parâmetro config também permite definir a taxa de amostragem, o número de canais de som e o modo de leitura/escrita dos dados de áudio.

  • Chame RegisterAudioFrameObserver para registrar o objeto receptor de dados de áudio.

Nota

Este método suporta a configuração da taxa de amostragem, do número de canais de som e do modo de leitura/escrita.

Parâmetros

Parâmetro

Tipo

Descrição

audioRawData

AliEngineAudioRawData

Os dados de áudio.

Valor de retorno

  • true: Sucesso.

  • false: Falha.

OnProcessCapturedAudioFrame

Callback para dados após processamento 3A.

virtual bool OnProcessCapturedAudioFrame(AliEngineAudioRawData audioRawData) = 0;

Este callback recupera os dados de áudio após o processamento 3A. Ele está desativado por padrão. Para recuperar esses dados de áudio:

  • Ative este callback através de audioSource em EnableAudioFrameObserver(true,audioSource,config). O parâmetro config também permite definir a taxa de amostragem, o número de canais de som e o modo de leitura/escrita dos dados de áudio.

  • Chame RegisterAudioFrameObserver para registrar o objeto receptor de dados de áudio.

Nota

Este método suporta a configuração da taxa de amostragem, do número de canais de som e do modo de leitura/escrita.

Parâmetros

Parâmetro

Tipo

Descrição

audioRawData

AliEngineAudioRawData

Os dados de áudio.

Valor de retorno

  • true: Sucesso.

  • false: Falha.

OnPublishAudioFrame

Callback para dados publicados.

virtual bool OnPublishAudioFrame(AliEngineAudioRawData audioRawData) = 0;

Este callback recupera os dados de áudio publicados. Ele está desativado por padrão. Para recuperar esses dados de áudio:

  • Ative este callback através de audioSource em EnableAudioFrameObserver(true,audioSource,config). O parâmetro config também permite definir a taxa de amostragem, o número de canais de som e o modo de leitura/escrita dos dados de áudio.

  • Chame RegisterAudioFrameObserver para registrar o objeto receptor de dados de áudio.

Nota

Este método suporta a configuração da taxa de amostragem e do número de canais de som, mas pode ser definido apenas como modo somente leitura.

Parâmetros

Parâmetro

Tipo

Descrição

audioRawData

AliEngineAudioRawData

Os dados de áudio.

Valor de retorno

  • true: Sucesso.

  • false: Falha.

OnPlaybackAudioFrame

Callback para dados de reprodução.

virtual bool OnPlaybackAudioFrame(AliEngineAudioRawData audioRawData) = 0;

Este callback recupera os dados de áudio de reprodução. Ele está desativado por padrão. Para recuperar esses dados de áudio:

  • Ative este callback através de audioSource em EnableAudioFrameObserver(true,audioSource,config). O parâmetro config também permite definir a taxa de amostragem, o número de canais de som e o modo de leitura/escrita dos dados de áudio.

  • Chame RegisterAudioFrameObserver para registrar o objeto receptor de dados de áudio.

Nota

Este método suporta a configuração da taxa de amostragem, do número de canais de som e do modo de leitura/escrita.

Limites

Não execute operações demoradas nesta função de callback. Caso contrário, podem ocorrer anomalias no som.

Parâmetros

Parâmetro

Tipo

Descrição

audioRawData

AliEngineAudioRawData

Os dados de áudio.

Valor de retorno

  • true: Sucesso.

  • false: Falha.

OnRemoteUserAudioFrame

Callback para dados de fluxo remoto recebido (pull).

virtual bool OnRemoteUserAudioFrame(const char *uid, AliEngineAudioRawData audioRawData) = 0; 

Este callback recupera os dados de áudio remoto de um usuário específico cujo fluxo está sendo recebido. Ele está desativado por padrão. Para recuperar esses dados de áudio:

  • Ative este callback através de audioSource em EnableAudioFrameObserver(true,audioSource,config). O parâmetro config também permite definir a taxa de amostragem, o número de canais de som e o modo de leitura/escrita dos dados de áudio.

  • Chame RegisterAudioFrameObserver para registrar o objeto receptor de dados de áudio.

Nota

Este método não suporta a configuração da taxa de amostragem ou do número de canais de som, mas permite definir o modo de leitura/escrita.

Limites

Não execute operações demoradas nesta função de callback. Caso contrário, podem ocorrer anomalias no som.

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char *

O ID do usuário remoto.

audioRawData

AliEngineAudioRawData

Os dados de áudio.

Valor de retorno

  • true: Sucesso.

  • false: Falha.

OnCaptureVideoSample

Callback para dados de vídeo coletados localmente.

virtual bool OnCaptureVideoSample(AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;

Este método é um callback para recuperar dados de coleta de vídeo local. Ele serve para obter os quadros de vídeo brutos (como dados YUV) coletados pela câmera local. Use este callback para implementar lógica personalizada de processamento de vídeo (como adicionar filtros, marcas d'água ou transcodificação) e decida se deve retornar os dados processados ao SDK para codificação ou renderização subsequente. Para enviar o vídeo processado ao SDK, retorne true.

Quando é disparado

Após chamar <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#0873ceb145h0t" id="c9469a35210sg">RegisterVideoSampleObserver</a> com sucesso para registrar o observador de dados de vídeo, o SDK captura o quadro de vídeo correspondente.

Parâmetros

Parâmetro

Tipo

Descrição

videoSource

AliEngineVideoSource

A fonte de dados de vídeo.

videoRawData

AliEngineVideoRawData

Os dados brutos de vídeo.

Descrição da resposta

  • true: Necessita ser gravado de volta no SDK (válido apenas para I420 e nativo (iOS/macOS)).

  • false: Não necessita ser gravado de volta no SDK.

OnPreEncodeVideoSample

Callback para dados de vídeo local antes da codificação.

virtual bool OnPreEncodeVideoSample(AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;

Este método é um callback para recuperar dados de vídeo local antes da codificação. Ele serve para obter os dados brutos de vídeo (como formato YUV) antes que o SDK codifique o quadro de vídeo. Use este callback para implementar lógica personalizada de processamento (como adicionar marcas d'água, ajustar cores ou transcodificar) e decida se deve retornar os dados processados ao SDK para codificação subsequente.

Parâmetros

Parâmetro

Tipo

Descrição

videoSource

AliEngineVideoSource

A fonte de dados de vídeo.

videoRawData

AliEngineVideoRawData

Os dados de vídeo.

Valor de retorno

  • true: Necessita ser gravado de volta no SDK (válido apenas para I420 e nativo (iOS/macOS)).

  • false: Não necessita ser gravado de volta no SDK.

OnRemoteVideoSample

Callback para dados de vídeo remoto inscrito.

virtual bool OnRemoteVideoSample(const char *uid, AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;

Este método é um callback para recuperar dados de vídeo remoto inscrito. Ele serve para obter os dados brutos de quadro de vídeo (como formato YUV) de um usuário remoto. Use este callback para implementar lógica personalizada de processamento (como adicionar filtros, marcas d'água ou transcodificação) e decida se deve retornar os dados processados ao SDK para renderização subsequente.

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char *

O ID do usuário remoto.

videoSource

AliEngineVideoSource

A fonte de dados de vídeo.

videoRawData

AliEngineVideoRawData

Os dados brutos de vídeo.

Valor de retorno

  • true: Necessita ser gravado de volta no SDK.

  • false: Não necessita ser gravado de volta no SDK.

GetVideoAlignment

Alinhamento da largura de saída de vídeo.

virtual AliEngineVideoObserAlignment GetVideoAlignment();

Valor de retorno

O alinhamento esperado da largura de saída de vídeo. Consulte AliEngineVideoObserAlignment.

GetObservedFramePosition

Conteúdo de saída de dados de vídeo.

virtual uint32_t GetObservedFramePosition();

Valor de retorno

O conteúdo esperado de saída de vídeo. Consulte AliEngineVideoObserPosition.

onDestroyCompletion

Callback acionado quando a operação de destruição é concluída.

virtual void onDestroyCompletion();

Este callback indica que a instância do engine do SDK foi destruída e uma nova pode ser criada.

Quando é disparado

Este callback é disparado após a destruição do engine quando o usuário chama Destroy.

Nota

Aguarde o callback onDestroyCompletion antes de executar outros métodos para evitar o bloqueio da thread principal.

OnAudioEffectFinished

Callback acionado quando um efeito sonoro local termina de ser reproduzido.

virtual void OnAudioEffectFinished(int soundId) {}

Parâmetro

Tipo

Descrição

soundId

int

O ID do efeito sonoro que terminou de ser reproduzido.

OnAudioVolumeCallback

Callback para o volume de áudio inscrito, status de voz e UID.

virtual void OnAudioVolumeCallback(const AliEngineUserVolumeInfo* volumeInfo, int volumeInfoCount, int totalVolume) {}

Este callback está desativado por padrão. Para ativá-lo, chame o método <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#f69f93ca70pa6" id="9e5f7dfbe43ze">EnableAudioVolumeIndication</a>. Após a ativação, o SDK dispara este callback no intervalo especificado em <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#f69f93ca70pa6" id="ebd7f2147ar4d">EnableAudioVolumeIndication</a> depois que você entra em um canal com ingestão de fluxo ativa. O resultado do callback contém informações de volume tanto dos falantes locais quanto dos remotos.

Parâmetros

Parâmetro

Tipo

Descrição

volumeInfo

AliEngineUserVolumeInfo*

Um array de informações de volume do usuário, incluindo UID do usuário, status de voz e volume.

  • Um UID igual a 0 indica o falante local.

  • Um UID igual a 1 indica o volume mixado de todos os usuários remotos.

  • Outros valores indicam as informações de volume do usuário remoto especificado.

volumeInfoCount

int

O número de itens no array de informações de volume do usuário.

totalVolume

int

O volume total após a mixagem. O intervalo é [0,255]. No callback do usuário local, totalVolume representa o volume do usuário local após a mixagem. No callback do usuário remoto, totalVolume representa o volume total de todos os falantes após a mixagem.

OnActiveSpeaker

Callback para o falante ativo.

virtual void OnActiveSpeaker(const char *uid) {}

Após chamar <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#f69f93ca70pa6" id="b5e0ba1248tmp">EnableAudioVolumeIndication</a> com sucesso, o SDK monitora continuamente o usuário remoto com o maior volume. O usuário remoto identificado como o mais alto na maioria das vezes dentro do período atual é considerado o falante ativo.

Condições de disparo

Quando o número de usuários no canal é maior ou igual a 2 e há um usuário remoto ativo, o SDK dispara este callback e reporta o UID do usuário remoto mais ativo.

  • Se o usuário remoto mais ativo for sempre o mesmo, o SDK não dispara o callback OnActiveSpeaker novamente.

  • Se o usuário remoto mais ativo mudar, o SDK dispara este callback novamente e reporta o UID do novo usuário remoto mais ativo.

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char *

O ID da pessoa que está falando no momento.

OnPublishLiveStreamStateChanged

Callback para alterações de status de publicação bypass.

virtual void OnPublishLiveStreamStateChanged(const char* streamUrl ,AliEngineLiveTranscodingState state ,AliEngineLiveTranscodingErrorCode errCode){};

Parâmetros

Parâmetro

Tipo

Descrição

streamURL

const char*

A URL do fluxo.

state

AliEngineLiveTranscodingState

O status.

errCode

AliEngineLiveTranscodingErrorCode

O código de erro.

OnPublishTaskStateChanged

Callback para alterações de status de tarefa bypass.

virtual void OnPublishTaskStateChanged(const char* streamUrl, AliEngineTrascodingPublishTaskStatus state){};

Parâmetros

Parâmetro

Tipo

Descrição

streamURL

const char*

A URL do stream.

state

AliEngineTrascodingPublishTaskStatus

O estado.

OnNetworkQualityChanged

Callback para alterações na qualidade da rede. Este callback é acionado quando a qualidade da rede muda.

virtual void OnNetworkQualityChanged(const char *uid, AliEngineNetworkQuality upQuality, AliEngineNetworkQuality downQuality);

Parâmetros

Parâmetro

Tipo

Descrição

uid

char*

O UID do usuário cuja qualidade de rede foi alterada.

Nota

Um UID vazio indica que a qualidade de rede do próprio usuário foi alterada.

upQuality

AliEngineNetworkQuality

O nível de qualidade da rede upstream.

downQuality

AliEngineNetworkQuality

O nível de qualidade da rede downstream.

OnLastmileDetectResultWithQuality

Callback para detecção de qualidade de rede pré-chamada, fornecido cerca de 3 segundos após o início da detecção.

virtual void OnLastmileDetectResultWithQuality(AliEngineNetworkQuality networkQuality);

Este callback descreve o resultado da detecção de rede do usuário local antes de entrar no canal, servindo para estimar o nível de qualidade da rede. Após chamar StartLastmileDetect, o SDK retorna este callback em aproximadamente 3 segundos.

Parâmetros

Parâmetro

Tipo

Descrição

networkQuality

AliEngineNetworkQuality

O nível de qualidade da rede.

OnLastmileDetectResultWithBandWidth

Callback para o resultado da detecção de qualidade de rede pré-chamada, fornecido cerca de 30 segundos após a detecção.

virtual void OnLastmileDetectResultWithBandWidth(int code, AliRTCSdk::AliEngineNetworkProbeResult networkQuality);

Após chamar StartLastmileDetect, o SDK retorna este callback em aproximadamente 30 segundos, fornecendo um resultado detalhado da qualidade da rede.

Parâmetros

Parâmetro

Tipo

Descrição

code

int

Valor de retorno:

  • 0: Detecção bem-sucedida.

  • -1: Falha na detecção.

networkQuality

AliRTCSdk::AliEngineNetworkProbeResult

O resultado da detecção de rede, incluindo RTT do link, taxa de perda de pacotes, jitter e largura de banda das redes upstream e downstream.

OnOccurError

Se ocorrer um erro no mecanismo, este callback notifica o aplicativo.

virtual void OnOccurError(int error, const char *msg);

Parâmetros

Parâmetro

Tipo

Descrição

error

int

O tipo de erro. Consulte AliEngineErrorCode.

msg

const char *

A mensagem de erro.

OnFirstAudioPacketSend

Callback para o primeiro pacote de áudio enviado. Este callback é acionado quando o primeiro pacote de dados de áudio é enviado.

virtual void OnFirstAudioPacketSend(AliEngineAudioTrack audioTrack, int timeCost);

Parâmetros

Parâmetro

Tipo

Descrição

audioTrack

AliEngineAudioTrack

O tipo de áudio, indicando qual stream de áudio teve seu primeiro pacote enviado.

timeCost

int

O tempo decorrido desde a entrada no canal até o envio do primeiro pacote de áudio (em milissegundos).

OnFirstAudioPacketReceived

Callback para o primeiro pacote de áudio recebido. Este callback é acionado quando o primeiro pacote de dados de áudio remoto é recebido.

virtual void OnFirstAudioPacketReceived(const char* uid, AliEngineAudioTrack audioTrack, int timeCost) 

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

O ID do usuário remoto.

audioTrack

AliEngineAudioTrack

O tipo de áudio, indicando qual stream de áudio teve seu primeiro pacote recebido.

timeCost

int

O tempo decorrido desde a entrada no canal até o recebimento do primeiro pacote de áudio (em milissegundos).

OnFirstVideoPacketSend

Callback para o primeiro pacote de vídeo enviado.

virtual void OnFirstVideoPacketSend(AliEngineVideoTrack videoTrack, int timeCost);

Parâmetros

Parâmetro

Tipo

Descrição

videoTrack

AliEngineVideoTrack

O tipo de vídeo, indicando qual stream de vídeo teve seu primeiro pacote enviado, como stream de câmera ou stream de compartilhamento de tela.

timeCost

int

O tempo decorrido desde a entrada no canal até o envio do primeiro pacote de vídeo (em milissegundos).

OnFirstVideoPacketReceived

Callback para o primeiro pacote de vídeo recebido.

virtual void OnFirstVideoPacketReceived(const char* uid, AliEngineVideoTrack videoTrack, int timeCost);

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

O ID do usuário remoto.

videoTrack

AliEngineVideoTrack

O tipo de vídeo, indicando qual stream de vídeo teve seu primeiro pacote recebido, como stream de câmera ou stream de compartilhamento de tela.

timeCost

int

O tempo decorrido desde a entrada no canal até o recebimento do primeiro pacote de vídeo (em milissegundos).

OnFirstRemoteAudioDecoded

Callback para o primeiro quadro de áudio remoto decodificado.

virtual void OnFirstRemoteAudioDecoded(const char* uid, AliEngineAudioTrack audioTrack, int elapsed);

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

O ID do usuário remoto.

audioTrack

AliEngineAudioTrack

O tipo de áudio, indicando qual stream de áudio teve seu primeiro quadro decodificado.

elapsed

int

O atraso desde a entrada do usuário local no canal até o acionamento deste callback, em milissegundos.

OnFirstRemoteVideoFrameDrawn

Esta mensagem é acionada quando o primeiro quadro de vídeo de um usuário remoto é exibido.

virtual void OnFirstRemoteVideoFrameDrawn(const char *uid, AliEngineVideoTrack videoTrack,
                                                  int width, int height, int elapsed);

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

O ID do usuário remoto.

videoTrack

AliEngineVideoTrack

O tipo de vídeo, indicando qual stream de vídeo, como stream de câmera ou stream de compartilhamento de tela.

width

int

A largura do vídeo.

height

int

A altura do vídeo.

elapsed

int

O atraso total desde a entrada do usuário local no canal até o acionamento deste callback (em milissegundos).

OnFirstLocalVideoFrameDrawn

Esta mensagem é acionada quando a pré-visualização começa a exibir o primeiro quadro de vídeo.

virtual void OnFirstLocalVideoFrameDrawn(int width, int height, int elapsed);

Parâmetros

Parâmetro

Tipo

Descrição

width

int

A largura do vídeo.

height

int

A altura do vídeo.

elapsed

int

O atraso total desde a entrada do usuário local no canal até o acionamento deste callback (em milissegundos).

OnTestAudioVolumeCallback

Callback para o volume do teste de captura de áudio pré-chamada.

virtual void OnTestAudioVolumeCallback(int volumn);

Após chamar StartAudioCaptureTest com sucesso antes de uma chamada, este callback é acionado. Se um volume normal for retornado, isso indica que a captura de áudio está funcionando corretamente.

Parâmetros

Parâmetro

Tipo

Descrição

volumn

int

Retorna as informações de volume.

OnAudioAccompanyStateChanged

Callback para o estado de reprodução do acompanhamento local.

virtual void OnAudioAccompanyStateChanged(AliEngineAudioAccompanyStateCode playState, AliEngineAudioAccompanyErrorCode errorCode);

Este callback é acionado quando o estado de reprodução do acompanhamento muda, notificando o estado atual de reprodução e o código de erro.

Parâmetros

Parâmetro

Tipo

Descrição

playState

AliEngineAudioAccompanyStateCode

O estado atual de reprodução.

errorCode

AliEngineAudioAccompanyErrorCode

O código de erro de reprodução.

OnAudioFileInfo

Callback para informações do arquivo de áudio.

virtual void OnAudioFileInfo(AliEngineAudioFileInfo info, AliEngineAudioAccompanyErrorCode errorCode);

Este callback é acionado após você chamar GetAudioFileInfo e retorna as informações atuais do arquivo de áudio e um código de erro.

Parâmetros

Parâmetro

Tipo

Descrição

info

AliEngineAudioFileInfo

As informações do arquivo de áudio.

errorCode

AliEngineAudioAccompanyErrorCode

O código de erro.

OnRemoteAudioAccompanyStarted

Callback acionado quando o acompanhamento de um usuário remoto começa a ser reproduzido.

virtual void OnRemoteAudioAccompanyStarted(const char* uid);

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

O ID do usuário remoto.

OnRemoteAudioAccompanyFinished

Callback acionado quando a reprodução do acompanhamento de um usuário remoto termina.

virtual void OnRemoteAudioAccompanyFinished(const char* uid);

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

O ID do usuário remoto.

SetParameter

Define parâmetros personalizados.

virtual int SetParameter(const char* parameter) = 0;

Parâmetros

Parâmetro

Tipo

Descrição

parameter

const char*

Parâmetros personalizados.

GetParameter

Recupera parâmetros personalizados.

virtual String GetParameter(const char* parameter) = 0;

Parâmetros

Parâmetro

Tipo

Descrição

parameter

const char*

Parâmetros personalizados.

EnableAudioFrameObserver

Ativa ou desativa a assinatura de dados de áudio.

virtual int EnableAudioFrameObserver(bool enabled, AliEngineAudioSource audioSource, AliEngineAudioFrameObserverConfig config) = 0;

Este método ativa ou desativa o callback para um tipo específico de dados de áudio, permitindo recuperar vários tipos de dados de áudio brutos e codificados. Ele fica desativado por padrão. Para ativá-lo, chame este método.

Nota

Ao chamar este método para ativar o callback de dados de áudio para o AliEngineAudioSource correspondente, use-o em conjunto com o método RegisterAudioFrameObserver para passar o objeto receptor de dados de áudio.

Quando chamar

Chame este método para ativar a funcionalidade sempre que precisar recuperar dados de áudio.

Parâmetros

Parâmetro

Tipo

Descrição

enable

bool

Indica se os callbacks de dados são permitidos.

audioSource

AliEngineAudioSource

O tipo de fonte de dados do callback, incluindo capturado (0), pós-3A (1), publicado (2), reprodução (3) e dados de áudio puxados (5).

Nota:

  • Dados de áudio publicados e dados mistos de publicação/reprodução suportam apenas o modo ReadOnly.

  • Dados de áudio puxados não suportam a modificação de parâmetros de áudio, como taxa de amostragem e número de canais.

config

AliEngineAudioFrameObserverConfig

Configurações dos parâmetros de callback de áudio, incluindo taxa de amostragem, número de canais e modo de leitura/gravação do callback (somente leitura, somente gravação, leitura e gravação). Se o parâmetro for nulo, o padrão será (48000, 1, ReadOnly).

RegisterAudioFrameObserver

Registra um callback de dados de áudio.

virtual int RegisterAudioFrameObserver(IAudioFrameObserver* observer) = 0;

Este método registra o objeto receptor para dados de callback de áudio.

Quando chamar

Para que o SDK acione os callbacks OnCapturedAudioFrame, OnProcessCapturedAudioFrame, OnPublishAudioFrame, OnPlaybackAudioFrame ou OnRemoteUserAudioFrame e recupere vários tipos de dados de áudio, chame este método para fornecer um objeto receptor de dados de áudio. Para cancelar o registro, chame este método novamente e passe null.

Limites

É necessário chamar EnableAudioFrameObserver para ativar o callback do AliEngineAudioSource específico. Caso contrário, o observer passado não conseguirá recuperar dados.

Parâmetros

Parâmetro

Tipo

Descrição

observer

IAudioFrameObserver*

Um ponteiro para o objeto de callback.

Valor de retorno

0 para sucesso, outros valores para falha.

UnRegisterAudioFrameObserver

Cancela a assinatura da saída de dados de áudio (método IAliEngineMediaEngine).

virtual void UnRegisterAudioFrameObserver(IAudioFrameObserver* observer) = 0;

Parâmetros

Nome

Tipo

Descrição

observer

IAudioFrameObserver

Um ponteiro para o objeto de callback.

RegisterVideoSampleObserver

Assina a saída de dados de vídeo.

virtual void RegisterVideoSampleObserver(IVideoFrameObserver* observer) = 0;

Este método registra o objeto de saída para dados de vídeo. Para cancelar o registro, chame o método UnRegisterVideoSampleObserver.

Nota

Os dados de saída serão retornados através do callback {@link IVideoFrameObserver}.

Quando chamar

Para recuperar dados de vídeo brutos (como nos formatos YUV ou RGBA), chame este método para registrar um observer de dados de vídeo e obter dados em vários estágios.

Callbacks relacionados

Após registrar com sucesso um observer de saída de dados de vídeo, o SDK aciona os callbacks implementados sempre que captura cada quadro de vídeo. Implemente os callbacks correspondentes conforme necessário:

Parâmetros

Nome

Tipo

Descrição

observer

IVideoFrameObserver

Um ponteiro para o objeto de callback.

UnRegisterVideoSampleObserver

Cancela o registro da saída de dados de vídeo.

virtual void UnRegisterVideoSampleObserver(IVideoFrameObserver* observer) = 0;

Este método corresponde ao método RegisterVideoSampleObserver e é responsável por cancelar o registro do objeto de saída de dados de vídeo.

Parâmetros

Nome

Tipo

Descrição

observer

IVideoFrameObserver

Um ponteiro para o objeto de callback.

SnapshotVideo

Recurso de snapshot de vídeo.

virtual int SnapshotVideo(const String& userId, const AliEngineVideoTrack &trackType) = 0;

O recurso de snapshot de vídeo é um método assíncrono. Escute o callback AliEngineEventListener::OnSnapshotComplete para recuperar a captura de tela atual.

Parâmetros

Parâmetro

Tipo

Descrição

userId

const String&

O ID do usuário. Uma string vazia para userId representa o usuário local.

trackType

const AliEngineVideoTrack&

O tipo de stream de vídeo. Apenas AliEngineVideoTrackCamera e AliEngineVideoTrackScreen são suportados.

Valor de retorno

  • 0: A chamada do método foi bem-sucedida. A captura de tela é obtida através do callback.

  • <0: A chamada do método falhou.

SetLogDirPath

Define o caminho para salvar arquivos de log do SDK.

static int SetLogDirPath(const char *logDirPath);

Parâmetros

Nome

Tipo

Descrição

logDirPath

const char *

O caminho absoluto para salvar o arquivo de log.

Retornos

0: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

Nota

Chame este método antes de qualquer outro método do SDK para evitar perda de logs. O aplicativo deve garantir que o diretório especificado exista e tenha permissão de escrita.

SetLogLevel

Define o nível de log.

static void SetLogLevel(AliEngineLogLevel logLevel);

Parâmetros

Nome

Tipo

Descrição

logLevel

AliEngineLogLevel

O nível de log. O valor padrão é AliEngineLogInfo.

GetNetworkTime

Recupera a hora atual da rede.

virtual long long GetNetworkTime() = 0;

Valor de retorno

Recupera a hora atual da rede ajustada pelo deslocamento (hora NTP), em milissegundos.

SendDataChannelMessage

Envia uma mensagem de canal de dados.

virtual int SendDataChannelMessage(const AliEngineDataChannelMsg& msg) = 0;

O SDK ARTC oferece a capacidade de enviar e receber mensagens personalizadas. Isso permite transmitir dados de mensagens em tempo real durante a transmissão de áudio e vídeo. Por exemplo, use este método para transmitir instruções de controle em tempo real, dados de sincronização de status ou outras mensagens de negócios junto com o áudio e vídeo. Para mais informações, consulte Send and receive custom messages.

Nota
  • O canal de mensagens personalizadas fica desativado por padrão. Para ativar esse recurso, chame a API <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#d78a13ea0e6hy" id="fe71661227b31">SetParameter</a> e defina o parâmetro como "{\"data\":{\"enablePubDataChannel\":true" + ",\"enableSubDataChannel\":true}}". Faça isso antes ou depois de entrar em um canal.

  • A mensagem pode conter qualquer dado, como texto ou imagens.

  • O recurso DataChannel do ARTC depende do lado de ingestão para enviar streams de áudio ou vídeo. Certifique-se de que seu cenário inclua streams ativos de áudio e vídeo sendo ingeridos.

Callbacks relacionados

  • Depois que o remetente ativar com sucesso o canal de mensagens personalizadas, ele poderá chamar este método para enviar mensagens personalizadas. O destinatário recebe as mensagens personalizadas escutando o callback OnDataChannelMessage.

Limites

  • A função de streamer pode enviar e receber mensagens. A função de espectador suporta apenas o recebimento de mensagens.

  • É necessário chamar SetParameter para ativar o canal de mensagens personalizadas.

  • O envio de dados tem as seguintes limitações:

    • Limite de taxa de bits de 30 KB/s.

    • O canal de dados pode enviar no máximo 60 pacotes de dados por segundo, com cada pacote tendo até 1 KB.

Parâmetros

Nome

Tipo

Descrição

msg

const AliEngineDataChannelMsg&

A mensagem a ser enviada.

Descrição do valor de retorno

  • 0: Sucesso.

  • Valor diferente de zero: Falha.

StartScreenShareByDesktopId

Inicia o compartilhamento do stream de tela correspondente ao ID da área de trabalho especificado.

virtual int StartScreenShareByDesktopId(unsignedint desktopId, const AliEngineScreenShareConfig& config) = 0;

Parâmetros

Nome

Tipo

Descrição

desktopId

unsignedint

O ID da área de trabalho.

config

AliEngineScreenShareConfig

A configuração para compartilhar a área de trabalho.

Valor de retorno

  • 0: Sucesso.

  • Outro: Falha.

StartScreenShareByScreenRegion

Inicia o compartilhamento do stream de vídeo de uma região específica da tela.

  • Este método destina-se apenas ao compartilhamento de área de trabalho. Para configurar o compartilhamento de janela, use o método StartScreenShareByWindowId.

  • Ao configurar uma região específica para compartilhamento, a resolução mínima da região compartilhada é 16 × 16. Se a região definida for menor que a resolução mínima, ela será redefinida para a resolução mínima.

  • Ao configurar uma região específica para compartilhamento, se a região compartilhada definida exceder a resolução real da área de trabalho, toda a área de trabalho será compartilhada.

  • Para mais informações sobre coordenadas de tela virtual, consulte The Virtual Screen.

virtual int StartScreenShareByScreenRegion(
const AliEngineScreenShareRegion & screenRegion, 
const AliEngineScreenShareConfig & config) = 0;

Parâmetros

Nome

Tipo

Descrição

screenRegion

AliEngineScreenShareRegion

Especifica a posição da tela a ser compartilhada em relação à tela virtual.

config

AliEngineScreenShareConfig

A configuração de compartilhamento de tela.

Valor de retorno

  • 0: Sucesso.

  • Outro: Falha.

StartScreenShareByWindowId

Compartilha e publica o stream de vídeo de uma fonte de vídeo usando o ID da janela especificado pelo usuário.

virtual int StartScreenShareByWindowId(unsigned int windowId, 
  const AliEngineScreenShareConfig & config) = 0;

Parâmetros

Nome

Tipo

Descrição

windowId

int

O ID da janela.

config

AliEngineScreenShareConfig

A configuração de compartilhamento de tela.

Valor de retorno

  • 0: Sucesso.

  • Outro: Falha.

StopScreenShare

Interrompe o compartilhamento de tela.

virtual int StopScreenShare() = 0 ;

Valor de retorno

  • 0: Sucesso.

  • Outro: Falha.

ResumeScreenShare

Retoma o compartilhamento de tela.

virtual int ResumeScreenShare() = 0;

Valor de retorno

  • 0: Sucesso.

  • Outro: Falha.

PauseScreenShare

Pausa o compartilhamento de tela.

virtual int PauseScreenShare() = 0;

Valor de retorno

  • 0: Sucesso.

  • Outro: Falha.

IsScreenSharePublished

Verifica se o compartilhamento de tela está publicado.

Nota

Chame este método para verificar se o stream de compartilhamento de tela está publicado no momento. Por padrão, o SDK não publica o stream de compartilhamento de tela. Para publicar o stream de compartilhamento de tela, chame o método StartScreenShareByDesktopId, StartScreenShareByScreenRegion ou StartScreenShareByWindowId.

virtual bool IsScreenSharePublished() = 0;

Valor de retorno

  • true: A publicação está definida.

  • false: A publicação não está definida.

UpdateScreenShareConfig

Atualiza a configuração de compartilhamento de tela.

virtual int UpdateScreenShareConfig(const AliEngineScreenShareConfig & config) = 0;

Parâmetros

Parâmetro

Tipo

Descrição

config

AliEngineScreenShareConfig

A configuração atualizada de compartilhamento de tela.

Valor de retorno

  • 0: Sucesso.

  • Outro: Falha.

CheckWindowSourceVaild

Determina se a janela correspondente ao ID da janela compartilhada é válida.

virtual bool CheckWindowSourceVaild(unsigned int windowId) = 0;

Parâmetros

Parâmetro

Tipo

Descrição

int

unsigned int

O ID da janela.

Valor de retorno

  • true: O ID da janela correspondente é válido.

  • false: O ID da janela correspondente é inválido.

GetScreenShareConfig

Retorna as informações atuais de configuração do compartilhamento de tela.

virtual AliEngineScreenShareConfig GetScreenShareConfig() = 0;

Parâmetros

Parâmetro

Tipo

Descrição

int

unsigned int

O ID da janela.

Valor de retorno

  • true: O ID da janela correspondente é válido.

  • false: O ID da janela correspondente é inválido.

GetScreenShareSourceInfo

Recupera uma lista de objetos com base na source especificada.

virtual AliEngineScreenSourceList* GetScreenShareSourceInfo(AliEngineScreenShareType sourceType) = 0;

Parâmetros

Parâmetro

Tipo

Descrição

sourceType

AliEngineScreenShareType

O tipo de source de compartilhamento.

Valor de retorno

  • Um objeto AliEngineScreenSourceList não vazio representa a lista de tipos de source de compartilhamento obtida.

  • NULL indica falha.

GetCurrentScreenShareSourceId

Recupera o ID da source de tela compartilhada atual.

virtual unsigned int GetCurrentScreenShareSourceId() = 0;

Valor de retorno

  • >=0 indica o ID da source de tela compartilhada atual.

  • <0 indica falha.

GetCurrentScreenShareSourceType

Recupera uma lista de objetos da source especificada.

virtual AliEngineScreenShareType GetCurrentScreenShareSourceType() = 0;

Parâmetros

Parâmetro

Tipo

Descrição

sourceType

AliEngineScreenShareType

O tipo da source compartilhada.

Valor de retorno

  • Um objeto AliEngineScreenSourceList não vazio que contém a lista de tipos de source compartilhada.

  • NULL indica que a operação falhou.

GetDesktopRegion

Recupera o intervalo de compartilhamento da área de trabalho com base no ID e no título da source especificados.

virtual int GetDesktopRegion(const String& sourceId, const String& sourceTitle, AliEngineScreenShareRegion & region) = 0;

Parâmetros

Parâmetro

Tipo

Descrição

sourceId

String

O ID da source de compartilhamento.

sourceTitle

String

O título da source.

region

AliEngineScreenShareRegion

O intervalo de compartilhamento.

Valor de retorno

  • 0: Sucesso.

  • Outro: Falha.

SetScreenShareEncoderConfiguration

Define as propriedades de codificação de vídeo do stream de tela.

virtual void SetScreenShareEncoderConfiguration(const AliEngineScreenShareEncoderConfiguration& config) = 0;

Este método define os parâmetros de vídeo para as propriedades de codificação do stream de tela, como resolução, taxa de quadros, taxa de bits e orientação do vídeo. Todos os parâmetros definidos possuem limites de intervalo correspondentes. Caso um parâmetro esteja fora do intervalo válido, o SDK o ajustará automaticamente.

É possível chamar este método antes ou depois de entrar em um canal. Se você precisar definir as propriedades de codificação de vídeo do stream de tela apenas uma vez por sessão, recomendamos chamá-lo antes de entrar no canal.

Parâmetros

Parâmetro

Tipo

Descrição

config

AliEngineScreenShareEncoderConfiguration

Propriedades de codificação de compartilhamento de tela predefinidas.

Pertence à interface

IAliEngineMediaEngine