Todos os produtos
Search
Central de documentação

ApsaraVideo Live:APIs do AliRtcEngine

Última atualização: Jul 09, 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 de 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

Alterna o modo entre apenas áudio ou áudio e vídeo.

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

Entra em um canal.

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

Realiza a entrada em um canal.

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

Conecta-se a 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)

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

APIs de publicação e assinatura

API

Descrição

PublishLocalAudioStream

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

IsLocalAudioStreamPublished

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

SetDefaultSubscribeAllRemoteAudioStreams

Define a assinatura automática de streams de áudio remotos. 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

Para ou continua a assinatura de todos os streams de áudio remotos.

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

Controla a publicação do stream de vídeo local.

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

IsLocalVideoStreamPublished

Verifica se o stream de vídeo local está em publicação.

SetDefaultSubscribeAllRemoteVideoStreams

Configura a assinatura padrão para streams de vídeo remotos. Todos os streams são assinados automaticamente por padrão.

Execute esta chamada antes de ingressar no canal.

SubscribeRemoteVideoStream

Suspende ou reinicia a recepção do stream de vídeo de um usuário remoto.

SubscribeAllRemoteVideoStreams

Gerencia a assinatura global de todos os streams de vídeo remotos.

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

Pausa ou reativa o stream de mídia de um participante remoto específico.

Ideal para cenários com áudio e vídeo simultâneos que exigem controle individual.

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

Controla a assinatura do fluxo de mídia de um usuário remoto determinado.

Utilize quando for necessário gerenciar streams de áudio e vídeo combinados.

SubscribeRemoteDestChannelStream

Interrompe ou restabelece a assinatura do stream de mídia de um usuário remoto entre canais diferentes.

SetRemoteAudioVolume

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

APIs de gerenciamento de dispositivos de áudio

API

Descrição

MuteLocalMic

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

MuteRemoteAudio

Controla a suspensão da reprodução do stream de áudio remoto.

MuteAllRemoteAudio

Silencia ou reativa a reprodução de todo o áudio remoto.

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

Inicia a captura de áudio.

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

Ativa o dispositivo de captura de áudio.

StopAudioCapture

Desativa a captura de áudio.

EnableAudioVolumeIndication

Habilita o recurso de detecção de volume.

StartAudioPlayer

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

StopAudioPlayer

Desliga a reprodução de áudio.

SetPlayoutVolume

Ajusta o volume de reprodução.

SetRecordingVolume

Define o nível de volume da gravação.

PlayAudioFileTest

Reproduz um arquivo de áudio para teste.

StopAudioFileTest

Encerra a reprodução do arquivo de áudio de teste.

StartAudioCaptureTest

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

StopAudioCaptureTest

Finaliza o teste de captura de áudio.

EnableSystemAudioRecording

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

IsSystemAudioRecording

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

SetSystemAudioRecordingVolume

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

GetSystemAudioRecordingVolume

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

SetSystemAudioPlayoutVolume

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

GetSystemAudioPlayoutVolume

Consulta o volume atual de reprodução do áudio do sistema.

GetAudioCaptureList

Lista os dispositivos de captura de áudio disponíveis.

GetCurrentAudioCaptureName

Retorna o nome do dispositivo de captura de áudio em uso.

GetCurrentAudioCaptureID

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

SetCurrentAudioCaptureName

Seleciona o dispositivo de captura de áudio pelo nome especificado.

SetCurrentAudioCaptureID

Define o dispositivo de captura atual através do seu ID.

GetAudioPlayerList

Recupera a lista de dispositivos de reprodução de áudio.

GetSystemRecordAudioPlayerList

Lista os dispositivos de reprodução de áudio do sistema.

GetCurrentAudioPlayerName

Mostra o nome do dispositivo de reprodução ativo.

GetCurrentAudioPlayerID

Identifica o ID do dispositivo de reprodução em uso.

SetCurrentAudioPlayerName

Altera o dispositivo de reprodução para o nome indicado.

SetCurrentAudioPlayerID

Troca o dispositivo de reprodução usando o ID fornecido.

SetRecordingDeviceVolume

Ajusta o volume do microfone ou dispositivo de captura.

GetRecordingDeviceVolume

Lê o volume atual do dispositivo de captura.

SetPlaybackDeviceVolume

Modifica o volume do alto-falante ou saída de áudio.

GetPlaybackDeviceVolume

Consulta o nível de volume do dispositivo de reprodução.

SetRecordingDeviceMute

Ativa ou desativa o mudo no dispositivo de captura.

GetRecordingDeviceMute

Verifica o estado de mudo do dispositivo de captura.

SetPlaybackDeviceMute

Controla o silenciamento do dispositivo de reprodução.

GetPlaybackDeviceMute

Obtém o status de mudo da saída de áudio.

Modificação de voz e reverberação

API

Descrição

SetAudioEffectVoiceChangerMode

Configura o modo de efeito do modificador de voz.

SetAudioEffectPitchValue

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

SetAudioEffectReverbMode

Define o modo de efeito de reverberação.

SetAudioEffectReverbParamType

Especifica o tipo de reverberação e seus parâmetros detalhados.

setAudioEffectBeautifyMode

Aplica um modo predefinido de embelezamento de voz.

setAudioEffectEqualizationParam

Configura o equalizador (EQ) para ajustar o ganho de bandas de frequência específicas.

Entrada de áudio personalizada

API

Descrição

AddExternalAudioStream

Adiciona um stream de áudio externo.

PushExternalAudioStreamRawData

Injeta dados brutos no stream de áudio externo.

SetExternalAudioStreamPublishVolume

Define o volume de publicação do stream externo.

GetExternalAudioStreamPublishVolume

Obtém o volume de publicação configurado.

SetExternalAudioStreamPlayoutVolume

Ajusta o volume de reprodução local do áudio externo.

GetExternalAudioStreamPlayoutVolume

Consulta o volume de reprodução do stream externo.

RemoveExternalAudioStream

Remove um stream de áudio externo previamente adicionado.

Acompanhamento musical

API

Descrição

GetAudioFileInfo

Recupera informações sobre o arquivo de áudio.

StartAudioAccompany

Inicia a mixagem de áudio para acompanhamento.

StopAudioAccompany

Para a mixagem do acompanhamento musical.

SetAudioAccompanyVolume

Ajusta o volume geral do acompanhamento.

SetAudioAccompanyPublishVolume

Define o volume de publicação da trilha de acompanhamento.

GetAudioAccompanyPublishVolume

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

SetAudioAccompanyPlayoutVolume

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

GetAudioAccompanyPlayoutVolume

Consulta o volume de reprodução local da música.

PauseAudioAccompany

Pausa a mixagem do acompanhamento.

ResumeAudioAccompany

Retoma a mixagem do acompanhamento pausado.

GetAudioAccompanyDuration

Retorna a duração total do arquivo de acompanhamento em milissegundos.

GetAudioAccompanyCurrentPosition

Informa a posição atual de reprodução 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 na memória.

UnloadAudioEffect

Libera da memória um efeito sonoro pré-carregado.

PlayAudioEffect

Inicia a reprodução de um efeito sonoro.

StopAudioEffect

Interrompe a reprodução de um efeito específico.

StopAllAudioEffects

Para todos os efeitos sonoros ativos.

PauseAudioEffect

Coloca um efeito sonoro em pausa.

PauseAllAudioEffects

Pausa a reprodução de todos os efeitos.

ResumeAudioEffect

Retoma um arquivo de efeito sonoro específico.

ResumeAllAudioEffects

Reinicia todos os arquivos de efeitos sonoros pausados.

SetAudioEffectPublishVolume

Ajusta o volume de mixagem para publicação do efeito.

GetAudioEffectPublishVolume

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

SetAllAudioEffectsPublishVolume

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

SetAudioEffectPlayoutVolume

Configura o volume de reprodução local de um efeito.

GetAudioEffectPlayoutVolume

Consulta o volume de reprodução local do efeito.

SetAllAudioEffectsPlayoutVolume

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

APIs de gerenciamento de dispositivos de vídeo

API

Descrição

SetLocalViewConfig

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

SetCameraCapturerConfiguration

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

EnableLocalVideo

Desativa ou reativa a captura de vídeo local.

MuteLocalCamera

Controla a interrupção da publicação do stream de vídeo local.

SetRemoteViewConfig

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

IsCameraOn

Verifica se a câmera está ligada.

SetVideoEncoderConfiguration

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

SetVideoDecoderConfiguration

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

StartPreview

Inicia a pré-visualização local.

StopPreview

Encerra a pré-visualização local.

setVideoMirrorMode

Define o espelhamento para pré-visualização e publicação.

SetCapturePipelineScaleMode

Determina o momento do redimensionamento na captura: imediatamente após a aquisição ou durante a codificação.

GetCameraList

Lista as câmeras disponíveis no sistema.

GetCurrentCameraName

Obtém o nome da câmera atualmente selecionada.

GetCurrentCameraID

Retorna o ID da câmera em uso.

SetCurrentCameraName

Seleciona a câmera pelo nome especificado.

SetCurrentCameraID

Define a câmera ativa usando seu ID.

GetCurrentCameraSupportedResolutionList

Lista as resoluções suportadas pela câmera atual.

Configurar callbacks de dados de vídeo

API

Descrição

RegisterVideoSampleObserver

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

UnRegisterVideoSampleObserver

Cancela o registro do observador de dados de vídeo.

SnapshotVideo

Captura um instantâneo (snapshot) do vídeo.

Configurar callbacks de dados de áudio

API

Descrição

RegisterAudioFrameObserver

Registra um callback para processamento de frames de áudio.

UnRegisterAudioFrameObserver

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

EnableAudioFrameObserver

Configura os parâmetros do callback de áudio.

Entrada de vídeo personalizada

API

Descrição

SetExternalVideoSource

Habilita uma fonte externa de entrada de vídeo.

PushExternalVideoFrame

Envia frames de vídeo externos para processamento.

APIs de compartilhamento de tela

API

Descrição

StartScreenShareByDesktopId

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

StartScreenShareByScreenRegion

Compartilha o stream de vídeo de uma região específica da tela.

StartScreenShareByWindowId

Publica e compartilha o stream de vídeo de uma janela identificada pelo seu ID.

StopScreenShare

Encerra o compartilhamento de tela.

ResumeScreenShare

Retoma o compartilhamento de tela suspenso.

PauseScreenShare

Pausa temporariamente o compartilhamento de tela.

IsScreenSharePublished

Verifica se o compartilhamento de tela está configurado para publicação.

UpdateScreenShareConfig

Atualiza as configurações do compartilhamento de tela.

CheckWindowSourceVaild

Valida se a janela correspondente ao ID compartilhado ainda existe e é válida.

GetScreenShareConfig

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

GetScreenShareSourceInfo

Obtém uma lista de objetos baseada na fonte especificada.

GetCurrentScreenShareSourceId

Identifica o ID da fonte de compartilhamento de tela atual.

GetCurrentScreenShareSourceType

Recupera o tipo da fonte de compartilhamento em uso.

GetDesktopRegion

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

SetScreenShareEncoderConfiguration

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

APIs de transmissão ao vivo via relay

API

Descrição

StartPublishLiveStream

Inicia a transmissão ao vivo via relay.

UpdatePublishLiveStream

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

StopPublishLiveStream

Interrompe a transmissão ao vivo via relay.

GetPublishLiveStreamState

Consulta o status da transmissão ao vivo.

StartLastmileDetect

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

StopLastmileDetect

Para a sondagem de qualidade de rede.

APIs de detecção de qualidade de rede

API

Descrição

StartLastmileDetect

Começa o teste de qualidade de rede antes da chamada.

StopLastmileDetect

Finaliza o teste de qualidade de rede pré-chamada.

SEI

API

Descrição

SendMediaExtensionMsg

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

SendMediaExtensionMsgEx

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

Outras APIs

API

Descrição

SetParameter

Define parâmetros personalizados.

GetParameter

Obtém parâmetros personalizados.

SetLogDirPath

Define o caminho para salvar os arquivos de log do SDK.

SetLogLevel

Configura o nível de detalhe do log.

GetNetworkTime

Obtém o tempo da linha do tempo.

SendDataChannelMessage

Envia uma mensagem pelo canal de dados.

Callbacks

AliEngineEventListener

API

Descrição

OnConnectionStatusChange

Notifica alterações no status da conexão de rede. É importante monitorar este callback.

OnLocalDeviceException

Alerta sobre exceções em dispositivos locais. Requer atenção da aplicação.

OnAuthInfoWillExpire

Avisa que as informações de autenticação expirarão em breve. A validade termina 30 segundos após este aviso. Monitoramento essencial.

OnAuthInfoExpired

Indica que o servidor rejeitou a requisição porque a autenticação expirou.

OnJoinChannelResult

Retorna o resultado da tentativa de entrada no canal.

OnLeaveChannelResult

Informa o resultado da saída do canal.

OnRemoteUserOffLineNotify

Notifica quando um usuário remoto fica offline.

OnRemoteUserOnLineNotify

Avisa quando um usuário remoto entra online.

OnRemoteTrackAvailableNotify

Informa sobre a disponibilidade de streams remotos.

OnBye

Mensagem indicando que o usuário foi removido pelo servidor ou que o canal foi encerrado.

OnAudioPublishStateChanged

Notifica mudanças no estado de publicação de áudio.

OnAudioSubscribeStateChanged

Informa alterações no estado de assinatura de áudio.

OnUserAudioMuted

Avisa que um usuário remoto silenciou o áudio.

OnUserAudioInterruptedBegin

Indica o início de uma interrupção no dispositivo de áudio.

OnUserAudioInterruptedEnded

Sinaliza o fim da interrupção do dispositivo de áudio.

OnVideoPublishStateChanged

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

OnVideoSubscribeStateChanged

Notifica alterações na assinatura do stream da câmera.

OnUserVideoMuted

Informa que o usuário remoto está enviando frames de vídeo pretos.

OnUserVideoEnabled

Avisa que o usuário remoto desativou a captura da câmera.

OnUserWillResignActive

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

OnUserWillBecomeActive

O aplicativo do usuário remoto voltou para primeiro plano.

OnAudioEffectFinished

Disparado quando a reprodução de um efeito sonoro local termina.

OnAudioVolumeCallback

Reporta o volume, atividade de voz e UID do áudio assinado.

OnActiveSpeaker

Detecção de atividade de voz. Notifica quando um falante ativo é identificado.

OnPublishLiveStreamStateChanged

Callback para alteração no estado de publicação do stream via relay.

OnPublishTaskStateChanged

Notifica mudanças no estado da tarefa de relay.

OnNetworkQualityChanged

Informa variações na qualidade da rede.

OnLastmileDetectResultWithQuality

Resultado preliminar da sondagem de rede. Disponível cerca de 3 segundos após o início do teste.

OnLastmileDetectResultWithBandWidth

Resultado completo da sondagem de rede, incluindo largura de banda. Fornecido aproximadamente 30 segundos após o início.

OnOccurError

Notifica a aplicação caso ocorra um erro interno no motor.

OnFirstAudioPacketSend

Disparado no envio do primeiro pacote de áudio.

OnFirstAudioPacketReceived

Indica o recebimento do primeiro pacote de áudio.

OnFirstVideoPacketSend

Confirma o envio do primeiro pacote de vídeo.

OnFirstVideoPacketReceived

Sinaliza a chegada do primeiro pacote de vídeo.

OnFirstRemoteAudioDecoded

Notifica a decodificação do primeiro frame de áudio remoto.

OnFirstRemoteVideoFrameDrawn

Acionado quando o primeiro frame de vídeo de um usuário remoto é exibido.

OnFirstLocalVideoFrameDrawn

Ocorre quando o primeiro frame de vídeo aparece na pré-visualização.

OnTestAudioVolumeCallback

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

OnAudioAccompanyStateChanged

Informa o estado da reprodução do acompanhamento local.

OnAudioFileInfo

Retorna informações sobre o arquivo de áudio carregado.

OnRemoteAudioAccompanyStarted

Notifica o início da reprodução de acompanhamento por um usuário remoto.

OnRemoteAudioAccompanyFinished

Avisa que o acompanhamento de um usuário remoto terminou.

OnStats

Relatório de dados em tempo real (a cada 2 segundos).

OnLocalVideoStats

Estatísticas do vídeo local (atualizadas a cada 2 segundos).

OnRemoteVideoStats

Métricas do vídeo remoto (frequência de 2 segundos).

OnLocalAudioStats

Dados estatísticos do áudio local (intervalo de 2 segundos).

OnRemoteAudioStats

Estatísticas do áudio remoto (reportadas a cada 2 segundos).

OnMediaExtensionMsgReceived

Recebimento de mensagens de extensão de mídia.

OnSnapshotComplete

Resultado da captura de instantâneo de vídeo.

OnLocalAudioStateChange

Mudança no estado do dispositivo de áudio local.

onLocalVideoStateChanged

Alteração no estado do dispositivo de vídeo local.

OnRemoteUserSubscribedDataChannel

Indica que é possível começar a enviar mensagens pelo canal de dados.

OnDataChannelMessage

Recepção de mensagens do canal de dados.

IAudioFrameObserver

API

Descrição

OnCapturedAudioFrame

Callback com os dados brutos capturados.

OnProcessCapturedAudioFrame

Dados processados após a etapa 3A.

OnPublishAudioFrame

Frames de áudio prontos para publicação.

OnPlaybackAudioFrame

Dados de áudio destinados à reprodução.

OnRemoteUserAudioFrame

Frames de áudio recebidos de streams remotos.

IVideoFrameObserver

API

Descrição

OnCaptureVideoSample

Amostras de vídeo capturadas localmente.

OnPreEncodeVideoSample

Dados de vídeo local antes da codificação.

OnRemoteVideoSample

Amostras de vídeo recebidas remotamente.

GetVideoAlignment

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

GetObservedFramePosition

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

AliEngineDestroyCompletionCallback

API

Descrição

onDestroyCompletion

Callback acionado ao concluir a destruição da instância.

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 aplicação.

Descrição 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. Crie uma nova instância somente 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 término da operaçã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 aplicações 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: Se a chamada for bem-sucedida, pInterface retorna um objeto IAliEngineVideoDeviceManager.

  • AliEngineInterfaceMediaEngine: Se a chamada for bem-sucedida, 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 callback para o SDK. Ao configurar este listener, você recebe vários 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.

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 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 sua aplicação 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 sua aplicação monitore e responda:

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.

Se esta exceção ocorrer, a aplicação precisa entrar novamente no canal.

O SDK pode 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, a aplicação deve verificar o status da rede e orientar o usuário a entrar novamente no canal.

Dispositivo local anormal

OnLocalDeviceException

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

O serviço RTC suporta detecção de dispositivos e diagnóstico de exceções. Quando ocorre uma exceção no dispositivo local, o serviço RTC notifica o cliente por meio de um callback. Se o SDK não conseguir resolver o problema, a aplicação deve intervir para verificar se o dispositivo está normal.

Desconectado forçadamente

OnBye

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

  • AliRtcOnByeBeKickedOut: Se esta exceção ocorrer, significa que o usuário foi removido pelo serviço. O usuário precisa entrar novamente no canal.

  • AliRtcOnByeChannelTerminated: Se esta exceção ocorrer, significa que o canal foi destruído. O usuário precisa entrar novamente no canal.

O serviço RTC fornece um recurso para que administradores removam participantes ativamente.

Autenticação prestes a expirar

OnWillAuthInfoExpire

Se esta exceção ocorrer, 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

Se esta exceção ocorrer, a aplicação 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. Portanto, o feedback de erro é enviado por meio de um callback de API ou de um callback de erro separado.

Parâmetros

Nome

Tipo

Descrição

listener

AliEngineEventListener*

O listener de eventos do mecanismo. Implemente a classe AliEngineEventListener e substitua os callbacks de evento que deseja monitorar. Se definido como nullptr, todos os listeners de eventos serão cancelados.

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, 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 de 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 e não enviar streams, 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. Redefina-o após sair do canal.

Parâmetros

Nome

Tipo

Descrição

profile

AliEngineChannelProfile

O perfil do canal. Para cenários RTC, recomendamos definir isso como AliEngineInteractiveLive, que é o 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 Operações e configurações comuns de áudio. O ARTC SDK usa o modo de alta qualidade (AliEngineHighQualityMode) e o modo de cenário musical (AliEngineSceneMusicMode) por padrão. Se as configurações padrão não atenderem à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. Redefina-o após sair do canal.

Parâmetros

Nome

Tipo

Descrição

audio_profile

AliEngineAudioProfile

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

Nota

Para interoperabilidade com a web, defina a taxa de amostragem para 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

O parâmetro de cenário de áudio. Inclui principalmente:

  • AliEngineSceneMusicMode (recomendado): Cenário musical. Usa algoritmos 3A baseados em software e coleta áudio do celular para maior qualidade de som.

  • AliEngineSceneDefaultMode: Usa algoritmos 3A baseados em hardware. Pode coletar áudio de dispositivos Bluetooth.

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 é apenas áudio.

virtual bool IsAudioOnlyMode() = 0;

Valor de retorno

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

SetAudioOnlyMode

Define o modo como apenas á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: Áudio e vídeo são suportados. 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 entrar em um canal. Eles diferem nos métodos de autenticação e nas informações de usuário transmitidas, conforme descrito abaixo:

  • Este método destina-se a entrar em um canal com um único parâmetro. Passe um token gerado para entrada com parâmetro único usando Autenticação baseada em token. Recomendamos o uso deste método para entrar em um canal em cenários RTC.

  • JoinChannel[2/3] destina-se a entrar em um canal com múltiplos parâmetros. Passe um token de múltiplos parâmetros gerado usando Autenticação baseada em token e as informações de usuário usadas para gerar o token.

  • JoinChannel[3/3] destina-se a 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 com base no 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 no canal e envia seus próprios streams de áudio e vídeo 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 chamar esta API para desativar 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 chamar para 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.

  • Aplicações com App IDs diferentes não podem se comunicar entre si.

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

Callbacks relacionados

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

  • O resultado da entrada do cliente local em um canal é retornado através do 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 entrar com sucesso 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 *

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

channelId

const char *

O canal onde entrar. Deve ser igual ao valor usado para gerar o token.

userId

const char *

O ID do usuário para entrada. Deve ser igual ao valor usado para gerar o token.

userName

const char *

O nome de exibição do usuário (não 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 entrar em um canal. 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 Autenticação baseada em token. Recomendamos o uso deste método para entrar em um canal em cenários RTC.

  • Este método destina-se a entrar em um canal com múltiplos parâmetros. Passe um token de múltiplos parâmetros gerado usando Autenticação baseada em token e as informações de usuário usadas para gerar o token.

  • JoinChannel[3/3] destina-se a 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 com base no 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 chamar esta operação para desativar a assinatura de streams de áudio ou vídeo.

  • Este é um método de múltiplos parâmetros para entrar em um canal. Antes de chamá-lo, gere um token de múltiplos parâmetros. Para mais informações, consulte Autenticação baseada em token.

Limites

  • Após entrar com sucesso em um canal, para entrar em outro, chame primeiro LeaveChannel para sair do canal atual. Só é possível chamar para 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.

  • Aplicações com App IDs diferentes não podem 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 em um canal através 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 entrar com sucesso em um 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 *

O nome de exibição do usuário (não 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 entrar em um canal. 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 Autenticação baseada em token. Recomendamos o uso deste método para entrar em um canal em cenários RTC.

  • JoinChannel[2/3] destina-se a entrar em um canal com múltiplos parâmetros. Passe um token de múltiplos parâmetros gerado usando Autenticação baseada em token e as informações de usuário usadas para gerar o token.

  • Este método destina-se a 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 com base no cenário. Para se comunicar 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 no canal e envia seus próprios streams de áudio e vídeo 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 chamar esta API para desativar 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.

  • Aplicações com App IDs diferentes não podem se comunicar entre si.

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

Callbacks relacionados

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

  • O resultado da entrada do usuário local em um canal é fornecido através do 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 entrar com sucesso 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 *

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

channelId

const char *

O canal onde entrar. Deve ser igual ao valor usado para gerar o token. Pode ser deixado vazio. Se vazio, o channelId usado para gerar o token será utilizado por padrão.

userId

const char *

O ID do usuário para entrada. Deve ser igual ao valor usado para gerar o token. Pode ser deixado vazio. Se vazio, o userId usado para gerar o token será utilizado por padrão.

userParam

AliEngineChannelParam

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

Valor de retorno

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

LeaveChannel

Sai do canal.

virtual int LeaveChannel() = 0;

Após chamar este método, o SDK encerra a chamada de áudio e vídeo e sai do canal atual.

Nota
  • Esta é uma operação assíncrona. Uma chamada bem-sucedida a este método não significa que você saiu do canal. Você só terá saído do canal 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> for retornado.

  • Após sair do canal, destrua o mecanismo e defina-o como null.

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

Quando chamar

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

  • Chame este método para sair do canal atual antes de entrar em um novo.

Callbacks relacionados

  • A chamada deste método aciona 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, que informa se o cliente saiu do canal com sucesso.

  • 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

Um valor 0 indica que a chamada do método foi bem-sucedida. Qualquer outro valor indica que a chamada do método falhou.

IsInCall

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

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 define a função do usuário como streamer ou viewer.

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

  • Se você definir a função do usuário como streamer, o SDK publicará automaticamente os streams locais de áudio e vídeo e receberá os streams de áudio e vídeo de outros streamers por padrão.

  • Se você definir a função do usuário como viewer, o SDK não publicará os streams locais de áudio e vídeo, mas receberá os streams de áudio e vídeo de outros streamers.

Quando chamar

Este método pode ser chamado antes ou depois de entrar em um canal. Chame-o antes de entrar para definir a função do usuário, ou depois de entrar para alternar a função do usuário.

Limites

Este método é eficaz apenas no modo de transmissão interativa. Isso significa que você deve 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 definir o perfil do canal como AliEngineInteractiveLive.

No modo de transmissão interativa, recomendamos que você chame explicitamente este método para definir a função do usuário antes de entrar em um canal.

Parâmetros

Nome

Tipo

Descrição

role

AliEngineClientRole

Tipo de função do usuário. O valor padrão é AliEngineClientRolelive (espectador). Este tipo de função é válido apenas no modo não comunicativo.

Valor de retorno

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

GetClientRole

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

virtual AliEngineClientRole GetClientRole() = 0;

Valor de retorno

Se a chamada do método for bem-sucedida, ela retornará um objeto AliEngineClientRole. Trata-se de um tipo de enumeração que indica se a função é streamer (0) ou espectador (1).

RefreshAuthInfo[1/2]

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

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

Este método atualiza as informações de autenticação. O token expira após um determinado período. Quando o token expira, o SDK não consegue se conectar ao servidor.

Nota

Tanto este método quanto RefreshAuthInfo[2/2] atualizam as informações de autenticação. Use este método para atualizar um token multiparâmetro, enquanto RefreshAuthInfo[2/2] serve para atualizar um token de parâmetro único. Para obter mais informações sobre a geração de tokens, consulte Autenticação baseada em token.

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>, que indica que as informações de autenticação estão prestes a expirar, recomenda-se regenerar um token no servidor e, em seguida, chamar este método com o novo token.

  • Caso o token não seja atualizado a tempo, o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#09c4ec9160eom" id="440c501877fxr">OnAuthInfoExpired</a> será acionado para notificar que a autenticação expirou. Nesse caso, é necessário regenerar o token e chamar JoinChannel para entrar novamente no canal.

Parâmetros

Nome

Tipo

Descrição

authInfo

AliEngineAuthInfo

Informações de autenticação.

Valor de retorno

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

RefreshAuthInfo[2/2]

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

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

Este método atualiza o token. O token expira após um determinado período. Quando o token expira, o SDK não consegue se conectar ao servidor.

Nota

Tanto este método quanto RefreshAuthInfo[1/2] atualizam as informações de autenticação. Use este método para atualizar um token de parâmetro único, enquanto RefreshAuthInfo[1/2] serve para atualizar um token multiparâmetro. Para obter mais informações sobre a geração de tokens, consulte Autenticação baseada em token.

Quando chamar

Nas situações abaixo, recomenda-se regenerar o token no servidor e, em seguida, chamar este método para passar o novo token:

  • Ao receber o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#9f8ebe177degw" id="b21949148djrc">OnAuthInfoWillExpire</a>, indicando que as informações de autenticação estão prestes a expirar.

  • Se o token não for atualizado 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> será acionado para indicar que a autenticação expirou. Nesse cenário, chame JoinChannel para entrar novamente no canal.

Parâmetros

Nome

Tipo

Descrição

token

const char *token

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

Valor de retorno

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

PublishLocalAudioStream

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

virtual int PublishLocalAudioStream(bool enabled) = 0;

Este método controla a publicação do fluxo de áudio coletado localmente. Por padrão, o SDK publica o fluxo de áudio. Caso não deseje publicar o fluxo de áudio por padrão, chame PublishLocalAudioStream(false) antes de entrar no canal para desativar a publicação do fluxo de áudio.

Quando chamar

É possível chamar este método antes ou depois de entrar em um canal. Chamá-lo antes de entrar no canal modifica a configuração padrão, que entra em vigor no momento da entrada.

Callbacks relacionados

Quando o estado de ingestão do fluxo de áudio local muda, o cliente local aciona o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#eb8fab7f5ak7v" id="c584949653jn5">OnAudioPublishStateChanged</a> para relatar o estado mais recente da ingestão do fluxo de áudio. O cliente remoto aciona o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#ff1f7c8581r3r" id="75f2096b1efxy">OnRemoteTrackAvailableNotify</a> para relatar alterações nos fluxos de áudio e vídeo do usuário remoto.

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: A chamada do método foi bem-sucedida. Outros valores: A chamada do método falhou.

IsLocalAudioStreamPublished

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

virtual bool IsLocalAudioStreamPublished() = 0;

Valor de retorno

true: A publicação está permitida. false: A publicação não está permitida.

SetDefaultSubscribeAllRemoteAudioStreams

Define se deve haver assinatura dos fluxos de áudio remotos por padrão.

virtual int SetDefaultSubscribeAllRemoteAudioStreams(bool sub) = 0;

Este método configura a assinatura padrão dos fluxos de áudio de usuários remotos. Essa configuração afeta o comportamento de assinatura de fluxo de áudio para novos usuários que entram no canal. Recomenda-se definir como true, a menos que haja requisitos específicos.

Quando chamar

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

  • Antes de entrar em um canal:

    • O SDK assina os fluxos de áudio de usuários remotos por padrão ao entrar em um canal. Para alterar esse comportamento, chame este método antes de entrar.

  • Depois de entrar em um canal:

    • Para interromper a assinatura padrão, chame <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="e95a7e2d6fjwt">SetDefaultSubscribeAllRemoteAudioStreams</a>(false). Assim, você não assinará os fluxos de áudio de usuários que entrarem no canal posteriormente.

    • Após interromper a assinatura padrão, chame <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 assinatura do fluxo de áudio de um usuário específico. Para retomar a assinatura de vários usuários, chame este método múltiplas vezes.

    • Ao chamar <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="e79b5ad58awcw">SetDefaultSubscribeAllRemoteAudioStreams</a>(true) após interromper a assinatura padrão, a assinatura será retomada apenas para os fluxos de áudio de usuários que entrarem no canal subsequentemente. Isso não assina os fluxos de usuários remotos que entraram enquanto a assinatura estava interrompida.

Parâmetros

Nome

Tipo

Descrição

sub

bool

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

  • false: Interrompe o recebimento do fluxo de áudio do usuário. O valor padrão é true.

Valor de retorno

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

SubscribeRemoteAudioStream

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

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

Este método interrompe ou retoma a assinatura do fluxo de áudio de um usuário remoto específico. Recomenda-se definir como true, a menos que haja requisitos específicos.

Nota

Por padrão, o SDK assina os fluxos de áudio de todos os usuários remotos ao entrar em um canal. Para alterar esse comportamento, chame <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 para cancelar essa configuração padrão.

Parâmetros

Nome

Tipo

Descrição

uid

const char*

O ID do usuário remoto.

sub

bool

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

  • false: Interrompe o recebimento do fluxo de áudio do usuário especificado. O valor padrão é true.

Descrição da resposta

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

SubscribeAllRemoteAudioStreams

Interrompe ou retoma o recebimento de todos os fluxos de áudio remotos.

virtual int SubscribeAllRemoteAudioStreams(bool sub) = 0;

Este método funciona como o interruptor principal para a assinatura de fluxos de áudio remotos. Recomenda-se defini-lo como true. Se definido como false, ocorre o seguinte:

  • A assinatura de todos os fluxos de áudio remotos no canal atual é interrompida.

  • Usuários que entrarem posteriormente também não terão seus fluxos assinados.

  • Não é possível usar <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#957e547813q56" id="aface4ad3920l">SubscribeRemoteAudioStream</a> para controlar o fluxo de áudio de um usuário específico.

Para reassinar, chame este método novamente e defina-o como true para retomar a assinatura.

Nota

Por padrão, o SDK assina os fluxos de áudio de todos os usuários remotos ao entrar em um canal. Para alterar esse comportamento, chame <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 entrar no canal para cancelar essa configuração padrão.

Parâmetros

Nome

Tipo

Descrição

sub

bool

  • true: Recebe os fluxos de áudio de todos os usuários.

  • false: Interrompe o recebimento dos fluxos de áudio de todos os usuários. O valor padrão é true.

Valor de retorno

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

PublishLocalVideoStream[1/2]

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

virtual int PublishLocalVideoStream(bool enabled) = 0;

Este método controla a publicação do fluxo de vídeo coletado localmente.

Nota

O SDK publica o fluxo de vídeo por padrão. Para desativar a publicação do fluxo de vídeo, chame PublishLocalVideoStream(false) antes de entrar no canal.

Quando chamar

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

Chamá-lo antes de entrar no canal modifica a configuração padrão, que entra em vigor no momento da entrada.

Callbacks relacionados

Quando o estado de ingestão do fluxo de áudio local muda, o cliente local aciona o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#6bf4efbd1cadl" id="d37709b09147d">OnVideoPublishStateChanged</a> para relatar o novo status de ingestão do fluxo de áudio, e o cliente remoto aciona o callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#ff1f7c8581r3r" id="f16e4b51bchqb">OnRemoteTrackAvailableNotify</a> para relatar alterações no fluxo de áudio e vídeo do usuário remoto.

Parâmetros

Nome

Tipo

Descrição

enable

bool

  • true: Envia o vídeo.

  • false: Interrompe o envio. O valor padrão é true.

Valor de retorno

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

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

PublishLocalVideoStream[2/2]

Ativa ou desativa o envio do fluxo de vídeo.

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

Este método controla a publicação do fluxo de vídeo coletado localmente.

Nota

O SDK publica o fluxo de vídeo por padrão. Para desativar a publicação do fluxo de vídeo, chame PublishLocalVideoStream(false) antes de entrar no canal.

Quando chamar

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

Chamá-lo antes de entrar no canal modifica a configuração padrão, que entra em vigor no momento da entrada.

Callbacks relacionados

Quando o estado de ingestão do fluxo de vídeo local muda, o cliente local aciona o callback <a baseurl="t2713962_v5_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#6bf4efbd1cadl" id="18a9d4b47ezcc">OnVideoPublishStateChanged</a> para relatar o estado mais recente da ingestão do fluxo de vídeo. O cliente remoto aciona o callback <a baseurl="t2713962_v5_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#ff1f7c8581r3r" id="d01e7a574f92o">OnRemoteTrackAvailableNotify</a> para notificar que os fluxos de áudio e vídeo do usuário remoto foram alterados.

Parâmetros

Nome

Tipo

Descrição

enable

bool

  • true: Envia o vídeo.

  • false: Interrompe o envio. O valor padrão é true.

track

AliEngineVideoTrack

O tipo de fluxo de vídeo, como fluxo da câmera ou fluxo de compartilhamento de tela.

Retornos

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

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

IsLocalVideoStreamPublished

Consulta se a publicação do fluxo de vídeo está permitida no momento.

virtual bool IsLocalVideoStreamPublished() = 0;

Valor de retorno

true: O fluxo da câmera está publicado. false: O fluxo da câmera não está publicado.

SetDefaultSubscribeAllRemoteVideoStreams

Define se os fluxos de vídeo devem ser recebidos por padrão.

virtual int SetDefaultSubscribeAllRemoteVideoStreams(bool sub) = 0;

Este método define se deve haver assinatura dos fluxos de vídeo por padrão. O SDK assina por padrão.

Nota

Por padrão, o SDK assina os fluxos de vídeo de usuários remotos ao entrar em um canal. Para alterar esse comportamento, chame este método antes de entrar no canal.

Quando chamar

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

  • Antes de entrar em um canal:

    • Use este método para cancelar a configuração de assinatura padrão.

  • Depois de entrar em um canal:

    • Para interromper a assinatura padrão, chame SetDefaultSubscribeAllRemoteVideoStreams(false). Isso impede a assinatura dos fluxos de vídeo de usuários que entrarem no canal subsequentemente.

    • Após interromper a assinatura padrão, caso deseje retomar a assinatura do fluxo de vídeo de um usuário específico, chame o método SubscribeRemoteVideoStream. Para retomar a assinatura de vários usuários, chame-o múltiplas vezes.

    • Após a interrupção da assinatura padrão, uma chamada para SetDefaultSubscribeAllRemoteVideoStreams(false) retoma apenas os fluxos de áudio de usuários que entrarem no canal posteriormente.

Parâmetros

Nome

Tipo

Descrição

sub

bool

  • true: Recebe o fluxo de vídeo do usuário.

  • false: Não recebe o fluxo de vídeo do usuário. O valor padrão é true.

Valor de retorno

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

SubscribeRemoteVideoStream

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

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

Este método assina ou cancela a assinatura do fluxo de vídeo de um usuário específico.

Nota

Por padrão, o SDK assina os fluxos de vídeo de todos os usuários remotos ao entrar em um canal. Chame <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 entrar no canal para cancelar essa configuração padrão.

Quando chamar

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

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

O ID do usuário remoto.

track

AliEngineVideoTrack

O tipo de fluxo de vídeo.

sub

bool

Indica se deve assinar o fluxo de vídeo do usuário remoto. Controla a assinatura ou o cancelamento da assinatura.

Valor de retorno

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

  • false: A configuração falhou.

SubscribeAllRemoteVideoStreams

Interrompe ou retoma o recebimento de todos os fluxos de vídeo remotos.

virtual int SubscribeAllRemoteVideoStreams(bool sub) = 0;

Este método funciona como o interruptor principal para a assinatura de fluxos de vídeo remotos. Se definido como false, ocorre o seguinte:

  • A assinatura de todos os fluxos de vídeo remotos no canal atual é interrompida.

  • Os fluxos de vídeo de novos usuários que entrarem no canal posteriormente também não serão assinados, mesmo que você tenha chamado <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="b7b0080f3cnoq">SetDefaultSubscribeAllRemoteVideoStreams</a>(true) para assinar por padrão.

  • Não é possível usar <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#jyGTp" id="0e2edf97aa1g6">SubscribeRemoteVideoStream</a> para controlar independentemente o fluxo de áudio de um usuário especificado.

Para reassinar, chame este método novamente e defina-o como true para retomar a assinatura.

Nota

Por padrão, o SDK assina os fluxos de vídeo de todos os usuários remotos ao entrar em um canal. Para alterar esse comportamento, chame <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 no canal para cancelar essa configuração padrão.

Parâmetros

Nome

Tipo

Descrição

sub

bool

  • true: Recebe os fluxos de vídeo de todos os usuários.

  • false: Interrompe o recebimento dos fluxos de vídeo de todos os usuários. O valor padrão é true.

Descrição da resposta

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

SubscribeRemoteMediaStream[1/2]

Interrompe ou retoma 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;

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

Nota

Neste método, AliRtcVideoTrackNo de AliRtcVideoTrack é inválido e não tem efeito.

Métodos relacionados

Em comparação com SubscribeRemoteMediaStream[2/2], este método usa dois parâmetros booleanos, subVideo e subAudio, para determinar se deve assinar os fluxos de áudio e vídeo remotos. O parâmetro videoTrack controla qual fluxo de vídeo deve ser puxado.

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

O ID do usuário remoto.

videoTrack

AliEngineVideoTrack

O tipo de fluxo de vídeo.

subVideo

boo

Interrompe ou retoma o pull do fluxo 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 fluxo 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 fluxo 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 os fluxos de áudio e vídeo remotos simultaneamente.

Métodos relacionados

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

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

  • Para cancelar a assinatura do fluxo da câmera, mas manter o fluxo 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 fluxo da câmera quanto o fluxo 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 fluxo de vídeo.

audioTrack

AliEngineAudioTrack

O tipo de fluxo 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 fluxo 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 fluxo de vídeo a ser assinado.

sub_audio

bool

Interrompe ou retoma o pull do fluxo 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 fluxo 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.

  • 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 exclusivamente para interromper ou retomar a reprodução de áudio de um usuário remoto específico. Ela não afeta o pull de 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 de 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 antecipadamente. Caso não seja definido, o SDK controla automaticamente o dispositivo de captura de áudio. Para reiniciar a captura após ela ter sido interrompida por 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, via parâmetro, se o dispositivo de captura de áudio permanece ligado após você sair do canal.

Callbacks relacionados

Ao alterar o estado da captura de áudio local com este método, 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 antecipadamente. Caso não seja 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, utilizando o parâmetro keepAlive.

Callbacks relacionados

Ao alterar o estado da captura de áudio local com este método, 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

Ao alterar o estado da captura de áudio local com este método, 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 ao aplicativo informações sobre o volume dos usuários locais que estão publicando e do usuário remoto com o maior volume instantâneo.

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 abaixo no intervalo de tempo definido:

  • O volume de áudio do falante é relatado pelo 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 falante é relatado pelo 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 falante.

smooth

int

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

reportVad

int

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

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

  • 0: Desativado.

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. Caso não seja definido, o SDK inicia automaticamente a reprodução de áudio após a assinatura de 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 interrompe 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 inicia 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 aplicativos.

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, esse 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.

Esta configuração só pode ser aplicada após a ativação da captura e publicação de áudio do sistema. Caso contrário, a definiçã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.

Esta configuração só pode ser aplicada após a ativação da captura e publicação de áudio do sistema. Caso contrário, a definiçã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 para sucesso, outros valores para falha.

SetCurrentAudioCaptureID

Seleciona um dispositivo de gravação pelo 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 para sucesso, outros valores para 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

Obtém 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 último parâmetro para EnableSystemAudioRecording para capturar o áudio de reprodução do sistema.

GetCurrentAudioPlayerName

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

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 atualmente em uso.

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 pelo 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 para sucesso, outros valores para 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 para sucesso, outros valores para 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 para sucesso, outros valores para 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 para 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 para sucesso, outros valores para falha.

GetRecordingDeviceMute

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

virtual bool GetRecordingDeviceMute() = 0;

Valor de retorno

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 para sucesso, outros valores para falha.

GetPlaybackDeviceMute

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

virtual bool GetPlaybackDeviceMute() = 0;

Valor de retorno

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 (pitch).

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 por 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 banda 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 capturado localmente usando um Equalizador Gráfico. Ao ajustar o ganho (em dB) de uma das 10 bandas de frequência fixas, você personaliza o timbre. É adequado para cenários como otimização de clareza de voz, aprimoramento 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 bandas de frequência padrão. O valor de ganho para cada banda pode ser definido independentemente, variando de [-15, 15] dB, com 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

Índice da banda de frequência a ser ajustada, correspondente a um segmento da frequência central (31Hz ~ 16kHz).

gain

float

Valor de ganho em dB, no intervalo de [-15, 15].

Descrição da resposta

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

Valor diferente de zero: Falha na configuração.

AddExternalAudioStream

Adiciona um stream de áudio externo.

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

Este método adiciona um novo stream de áudio externo. Siga as etapas abaixo:

  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 stream de áudio externo e obter o ID desse stream.

  2. Utilize <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 ao stream criado.

  3. Ao finalizar a chamada, 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 stream de áudio externo.

Para mais informações sobre como publicar áudio coletado personalizado em um canal, consulte Coleta de áudio personalizada.

Parâmetros

Nome

Tipo

Descrição

config

AliEngineExternalAudioStreamConfig

Configuração do stream de áudio externo.

Valor de retorno

Um valor maior que 0 indica sucesso na chamada do método e retorna o ID do stream de áudio externo. Outros valores indicam falha na chamada.

PushExternalAudioStreamRawData

Insere dados no stream de áudio externo.

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

Este método insere dados no stream de áudio especificado. O processo é o seguinte:

  1. Invoque 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 stream de áudio externo e obter seu ID.

  2. Use PushExternalAudioStreamRawData para passar os dados de áudio ao stream criado.

  3. Quando a chamada terminar, será necessário chamar <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 stream de áudio externo.

Para detalhes sobre a publicação de áudio coletado personalizado em um canal, veja Coleta de áudio personalizada.

Parâmetros

Nome

Tipo

Descrição

streamId

int

ID do stream de áudio externo.

data

AliEngineAudioRawData

Dados de áudio.

Valor de retorno

0: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

SetExternalAudioStreamPublishVolume

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

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

Parâmetros

Nome

Tipo

Descrição

streamId

int

ID do stream de áudio externo.

vol

int

Volume de publicação.

Valor de retorno

0: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

SetExternalAudioStreamPlayoutVolume

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

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

Parâmetros

Nome

Tipo

Descrição

streamId

int

ID do stream de áudio externo.

vol

int

Volume de reprodução local.

Valor de retorno

0: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

GetExternalAudioStreamPublishVolume

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

virtual int GetExternalAudioStreamPublishVolume(int streamId) = 0;

Parâmetros

Nome

Tipo

Descrição

streamId

int

ID do stream de áudio externo.

Retorno

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

GetExternalAudioStreamPlayoutVolume

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

virtual int GetExternalAudioStreamPlayoutVolume(int streamId) = 0;

Parâmetros

Nome

Tipo

Descrição

streamId

int

ID do stream de áudio externo.

Valor de retorno

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

RemoveExternalAudioStream

Remove um stream de áudio externo.

virtual int RemoveExternalAudioStream(int streamId) = 0;

Este método remove o stream de áudio externo correspondente com base no streamId fornecido. Ele corresponde ao método AddExternalAudioStream.

Quando chamar

Para utilizar o recurso de entrada de áudio personalizada, chame o método AddExternalAudioStream a fim de adicionar um stream de áudio e obter seu ID. Em seguida, use 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. Caso deseje interromper a entrada de áudio personalizada, invoque esta interface para remover o stream de áudio externo correspondente e liberar recursos.

Parâmetros

Nome

Tipo

Descrição

streamId

int

ID do stream de áudio.

Valor de retorno

0 para sucesso, outros valores para falha.

GetAudioFileInfo

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

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

Trata-se de um método assíncrono. As informações do arquivo de áudio podem ser obtidas por meio de AliEngineEventListener::OnAudioFileInfo.

Parâmetros

Nome

Tipo

Descrição

filePath

const char *

Caminho do arquivo de áudio.

Valor de retorno

  • 0: Sucesso.

  • 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;

Método assíncrono. É possível monitorar o status do reprodutor de acompanhamento musical através de AliEngineEventListener::OnAudioAccompanyStateChanged.

Parâmetros

Nome

Tipo

Descrição

filePath

const char *

Caminho do arquivo de áudio.

config

const AliEngineAudioAccompanyConfig

Configuração de reprodução do acompanhamento.

Valor de retorno

  • 0: Sucesso.

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

StopAudioAccompany

Interrompe a mixagem de áudio para acompanhamento.

virtual int StopAudioAccompany() = 0;

Valor de retorno

  • 0: Sucesso.

  • 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

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

  • 0: Mudo.

  • 100: Volume original.

Valor de retorno

  • 0: Sucesso.

  • 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

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

  • 0: Mudo.

  • 100: Volume original.

Valor de retorno

  • 0: Sucesso.

  • 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

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

SetAudioAccompanyPlayoutVolume

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

virtual int SetAudioAccompanyPlayoutVolume(int volume) = 0;

Parâmetros

Nome

Tipo

Descrição

volume

int

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

  • 0: Mudo.

  • 100: Volume original.

Valor de retorno

  • 0: Sucesso.

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

GetAudioAccompanyPlayoutVolume

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

virtual int GetAudioAccompanyPlayoutVolume() = 0;

Valor de retorno

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

PauseAudioAccompany

Pausa a mixagem de áudio para acompanhamento.

virtual int PauseAudioAccompany() = 0;

Descrição da resposta

  • 0: Sucesso.

  • 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.

  • 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

Duração do arquivo de acompanhamento musical em milissegundos.

GetAudioAccompanyCurrentPosition

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

virtual int GetAudioAccompanyCurrentPosition() = 0;

Valor de retorno

Posição atual de reprodução do arquivo de acompanhamento musical 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.

  • 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

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

filePath

const char *

Caminho do arquivo de efeito sonoro.

Valor de retorno

0: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

UnloadAudioEffect

Exclui um arquivo de efeito sonoro pré-carregado.

virtual int UnloadAudioEffect(unsigned int soundId) = 0;

Parâmetros

Nome

Tipo

Descrição

soundId

NSInteger

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

Valor de retorno

0: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

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

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

filePath

const char *

Caminho do arquivo de efeito sonoro.

config

AliEngineAudioEffectConfig

Configuração do efeito sonoro.

Retorno

0: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

StopAudioEffect

Interrompe a reprodução de um efeito sonoro.

virtual int StopAudioEffect(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: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

StopAllAudioEffects

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

- (int)StopAllAudioEffects;

Valor de retorno

0: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

PauseAudioEffect

Pausa um efeito sonoro.

virtual int PauseAudioEffect(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: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

PauseAllAudioEffects

Pausa todos os efeitos sonoros.

virtual int PauseAllAudioEffects() = 0;

Descrição da resposta

0: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

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

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

Descrição da resposta

0: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

ResumeAllAudioEffects

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

virtual int ResumeAllAudioEffects() = 0;

Valor de retorno

0: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

SetAudioEffectPublishVolume

Define o volume de publicação de 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: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

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: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

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: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

SetAudioEffectPlayoutVolume

Define o volume de reprodução local de 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: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

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: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

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: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

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: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

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 view de exibição do stream de vídeo local e define o modo de renderização, o modo espelho e o ângulo de rotação da view do usuário local. Isso afeta apenas a pré-visualização do usuário local, não o vídeo publicado. Para configurar a view 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

Este método pode ser chamado antes ou depois de entrar em um canal.

Parâmetros

Nome

Tipo

Descrição

renderConfig

AliEngineVideoCanvas

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

track

AliEngineVideoTrack

Tipo de faixa de vídeo.

Valor de retorno

0: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

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 direção da câmera e taxa de quadros de captura.

Quando chamar

É obrigatório definir isso antes de abrir a câmera. Por exemplo, faça a chamada 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 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 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: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

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

Este método pode ser chamado 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: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

MuteLocalCamera

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

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

Durante a publicação de 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 o envio de quadros pretos no stream de vídeo especificado. A captura e o envio de dados não serão interrompidos. Para desativar a captura, utilize o método EnableLocalVideo. Para parar o envio de 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

Tipo de faixa de vídeo cujo estado de publicação precisa ser alterado.

Valor de retorno

0: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

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 associa a view de exibição para um stream de vídeo específico de um usuário remoto e define propriedades para a exibição local dessa view remota, como modo de renderização, modo espelho e ângulo de rotação. Essa ação afeta apenas a imagem de vídeo vista pelo usuário local. Para configurar a view 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>.

  • Caso o parâmetro view em AliEngineVideoCanvas esteja vazio, a renderização para.

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

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

Quando chamar

Recomendamos fazer esta chamada ao receber o callback OnRemoteTrackAvailableNotify, momento em que o vídeo do usuário remoto se torna disponível.

Parâmetros

Nome

Tipo

Descrição

canvas

AliEngineVideoCanvas

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

uid

const char *

ID do usuário.

track

AliEngineVideoTrack

Tipo de faixa de vídeo a ser configurado.

Valor de retorno

0: Chamada de método bem-sucedida. Outros valores: Falha na chamada de método.

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, taxa de bits 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 configurado estiver fora do intervalo válido, o SDK o ajustará automaticamente.

Quando chamar

Este método pode ser chamado 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 fazer a chamada antes de entrar no canal.

Limites

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

Parâmetros

Nome

Tipo

Descrição

config

AliEngineVideoEncoderConfiguration

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

  • dimensions: [640,480]

  • frameRate: 15

  • bitrate: 0

  • keyFrameInterval: Intervalo de keyframes em milissegundos. O valor padrão é 0, o que significa que o controle é feito pelo SDK.

  • forceStrictKeyFrameInterval: Define se o codificador deve seguir rigorosamente o intervalo de keyframes definido para gerar keyframes. O valor padrão é false.

  • mirrorMode: Modo de espelhamento da 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 do fluxo de vídeo da câmera, incluindo ajustes de decodificação por software e hardware, além da ativação de B-frames.

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

Quando chamar

Recomendamos chamar este método antes de entrar em um canal e iniciar o pull do fluxo.

Parâmetros

Parâmetro

Tipo

Descrição

config

AliEngineVideoDecoderConfiguration

Estrutura que descreve as propriedades de decodificação de vídeo, suas principais características e valores padrão.

StartPreview

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

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

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

Nota

Ao sair de um canal com LeaveChannel, a pré-visualização local é interrompida automaticamente. Se o fluxo 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 por meio de SetLocalViewConfig. Caso contrário, a pré-visualização do vídeo não funcionará, 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á a câmera automaticamente.

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 encerra a pré-visualização de vídeo local e desliga a câmera. Após interromper a pré-visualização, o lado local permanecerá no último quadro exibido, sem afetar a publicação.

Nota

Ao sair de um canal com LeaveChannel, a pré-visualização local é interrompida automaticamente. Se o fluxo da câmera não estiver sendo publicado, a câmera será desligada automaticamente.

Quando chamar

Para interromper 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 as capacidades de espelhamento para 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 fluxo 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

É possível definir este método dinamicamente antes ou depois de entrar em um canal. O SDK registra o estado e opera sobre o vídeo quando a pré-visualização e a codificação (publicação) podem ser manipuladas.

Limites

Este método sobrepõe-se ao parâmetro mirrorMode em SetLocalViewConfig e SetVideoEncoderConfiguration. Recomendamos utilizar 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: Falha na configuração.

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

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 dos dados de vídeo capturados ocorre imediatamente após a captura ou durante a codificação. Por exemplo, quando a resolução de captura difere da resolução de codificação, você pode definir o momento do redimensionamento para determinar se os dados de pré-visualização e os dados publicados serão consistentes.

Quando chamar

Configure 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

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 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 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, retorna 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 fluxo.

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 fluxo.

Valor de retorno

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

StartPublishLiveStream

Inicia uma transmissão ao vivo via 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 fluxo.

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 da transmissão ao vivo via 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 fluxo.

Valor de retorno

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

StopPublishLiveStream

Interrompe a transmissão ao vivo via 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 da transmissão ao vivo via 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 da transmissão ao vivo via bypass.

StartLastmileDetect

Inicia a detecção de qualidade de rede. Problemas na rede local podem causar falhas em chamadas de áudio e vídeo. Ao chamar este método, você obtém informações como largura de banda de upload e download, taxa de perda de pacotes, jitter e RTT do link, ajudando a identificar 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 callback. Uma detecção de rede pode levar bastante tempo. Se necessário, chame StopLastmileDetect para interromper a detecção.

Limites

O SDK só pode executar uma detecção de rede por vez. Chamadas repetidas antes da conclusão da detecção anterior 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

Se deve detectar o uplink.

downlink

bool

Se deve detectar o downlink.

uplinkBandWidth

int

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

downlinkBandWidth

int

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

Valor de retorno

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

  • <0: A chamada do método falhou. Isso pode ocorrer, por exemplo, se você já tiver entrado em um canal.

StopLastmileDetect

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

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: Este método foi chamado com sucesso.

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

SendMediaExtensionMsg

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

virtual int SendMediaExtensionMsg(const int8_t * message, uint32_t length, int32_t repeatCount, uint32_t delay, bool isKeyFrame) = 0;

O SDK fornece a funcionalidade de envio e recebimento de informações de extensão de mídia. O recebimento refere-se a AliEngineEventListener::OnMediaExtensionMsgReceived. Ao usar informações de extensão de mídia, é necessário reutilizar o canal de dados de áudio e vídeo, portanto, a frequência de envio e o tamanho dos dados das mensagens personalizadas devem ser controlados. Os limites de uso são:

  • Envie no máximo fps mensagens por segundo, conforme definido pelo perfil.

  • Para evitar impacto na qualidade de transmissão dos dados de mídia, o corpo da mensagem personalizada é limitado a 4 KB, adequado para transmitir pequenos volumes de dados.

  • O parâmetro repeatCount na função sendMediaExtensionMsg representa a redundância da mensagem personalizada. Se for maior que 1, a mensagem será enviada várias vezes para evitar perdas devido a perda de pacotes na rede. Nesse caso, outros participantes da sala também receberão a mesma mensagem múltiplas vezes, sendo necessária a remoção de duplicatas.

  • Quando a mensagem personalizada é enviada, os assinantes na sala também a recebem durante a transmissão ao vivo via bypass. Definir como -1 significa enviar os dados permanentemente, a menos que sendMediaExtensionMsg seja chamado novamente.

  • Apenas uma sendMediaExtensionMsg é enviada por vez. Isso significa que chamar sendMediaExtensionMsg sobrescreverá a chamada anterior se esta ainda não tiver sido enviada ou concluída.

Parâmetros

Nome

Tipo

Descrição

message

const int8_t *

O conteúdo da informação de extensão, com comprimento máximo de 4 KB.

length

uint32_t

O comprimento da informação de extensão, com limite máximo de 4 KB (4 × 1024 bytes).

repeatCount

int32_t

Número de repetições, representando a redundância da mensagem, usada para evitar perdas devido a perda de pacotes na rede. -1 significa reenvio infinito, a menos que SendMediaExtensionMsg seja chamado novamente.

delay

uint32_t

O atraso em milissegundos antes de enviar o SEI. Como o SEI é anexado ao fluxo codificado h264/h265, o atraso real será ligeiramente superior ao definido.

isKeyFrame

bool

Se deve adicionar SEI apenas aos keyframes. Se definido como true, as informações SEI são adicionadas somente aos 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 usando 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 fornece a funcionalidade de envio e recebimento de informações de extensão de mídia. O recebimento refere-se a AliEngineEventListener::OnMediaExtensionMsgReceived. Ao usar informações de extensão de mídia, é necessário reutilizar o canal de dados de áudio e vídeo, portanto, a frequência de envio e o tamanho dos dados das mensagens personalizadas devem ser controlados. Os limites de uso são:

  • Envie no máximo fps mensagens por segundo, conforme definido pelo perfil.

  • Para evitar impacto na qualidade de transmissão dos dados de mídia, o corpo da mensagem personalizada é limitado a 4 KB, adequado para transmitir pequenos volumes de dados.

  • O parâmetro repeatCount na função sendMediaExtensionMsg representa a redundância da mensagem personalizada. Se for maior que 1, a mensagem será enviada várias vezes para evitar perdas devido a perda de pacotes na rede. Nesse caso, outros participantes da sala também receberão a mesma mensagem múltiplas vezes, sendo necessária a remoção de duplicatas.

  • Quando a mensagem personalizada é enviada, os assinantes na sala também a recebem durante a transmissão ao vivo via bypass. Definir como -1 significa enviar os dados permanentemente, a menos que sendMediaExtensionMsg seja chamado novamente.

  • Apenas uma sendMediaExtensionMsg é enviada por vez. Isso significa que chamar sendMediaExtensionMsg sobrescreverá a chamada anterior se esta ainda não tiver sido enviada ou concluída.

Parâmetros

Nome

Tipo

Descrição

message

const int8_t *

O conteúdo da informação de extensão, com comprimento máximo de 4 KB.

length

uint32_t

O comprimento da informação de extensão, com limite máximo de 4 KB (4 × 1024 bytes).

repeatCount

int32_t

Número de repetições, representando a redundância da mensagem, usada para evitar perdas devido a perda de pacotes na rede. -1 significa reenvio infinito, a menos que SendMediaExtensionMsg seja chamado novamente.

delay

uint32_t

O atraso em milissegundos antes de enviar o SEI. Como o SEI é anexado ao fluxo codificado h264/h265, o atraso real será ligeiramente superior ao definido.

isKeyFrame

bool

Se deve adicionar SEI apenas aos keyframes. Se definido como true, as informações SEI são adicionadas somente aos 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

O valor do status atual.

reason

AliEngineConnectionStatusChangeReason

O motivo específico da alteração de status.

OnLocalDeviceException

Callback para exceções em dispositivos locais. É importante prestar atenção a este callback.

virtual void OnLocalDeviceException(AliEngineLocalDeviceType deviceType, AliEngineLocalDeviceExceptionType exceptionType, const char* msg){};

Parâmetros

Parâmetro

Tipo

Descrição

deviceType

AliEngineLocalDeviceType

O tipo de dispositivo.

exceptionType

AliEngineLocalDeviceExceptionType

O tipo de exceção do dispositivo.

msg

const char*

As 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. É importante prestar 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 de 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 requer 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 usando o seguinte método:

  • 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 bloqueio ao chamar o método JoinChannel, lidando com 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 a aplicação 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

O 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 Lista de códigos de erro. Abaixo estão alguns códigos de erro comuns:

  • 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: Os parâmetros para entrada no canal estão incorretos.

  • ERR_JOIN_FAILED: Falha ao entrar no canal.

  • ERR_JOIN_CONFIG_INVALID: Os parâmetros de entrada são inválidos, como um token vazio.

channel

const char *

O ID do canal acessado.

userId

const char *

O ID do usuário que entrou.

elapsed

int

O 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 após esta chamada, não receberá este callback.

virtual void OnLeaveChannelResult(int result, AliEngineStats stats) {}

Condições de acionamento

Quando a aplicação 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

O resultado da saída do canal. Retorna 0 em caso de sucesso e um código de erro em caso de falha.

stats

AliEngineStats

Um 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 vários 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 mudar sua função para espectador (definido como AliEngineClientRoleLive).

  • Acionado quando nenhum dado é recebido do streamer remoto por um longo período, considerando que ele caiu.

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char *

O identificador único atribuído ao ID do usuário pelo servidor do aplicativo.

reason

AliEngineUserOfflineReason

O 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 que entraram anteriormente.

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char *

O identificador único atribuído ao ID do usuário pelo servidor do aplicativo.

elapsed

int

O tempo decorrido para o usuário entrar no canal.

OnRemoteTrackAvailableNotify

Callback para quando o fluxo de um usuário remoto muda.

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, é possível saber em tempo real se um usuário remoto está publicando fluxos de áudio e vídeo. Assim, você pode 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 publicar para publicar (incluindo áudio e vídeo).

  • Quando um usuário remoto passa de publicar para não publicar (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 *

O identificador único atribuído ao ID do usuário pelo servidor do aplicativo.

audioTrack

AliEngineAudioTrack

O fluxo de áudio do usuário remoto após a alteração.

videoTrack

AliEngineVideoTrack

O fluxo de vídeo do usuário remoto após a alteração.

OnBye

Callback para quando o usuário é expulso 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 é expulso 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

O tipo de mensagem. Valores:

  • 1: Expulso pelo servidor.

  • 2: Canal fechado.

  • 3: O mesmo ID de usuário fez login em outro dispositivo e foi expulso 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 as mudanças 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:

  • A publicação é interrompida.

  • 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

O estado anterior de publicação.

newStat

AliEnginePublishState

O estado atual de publicação.

elapseSinceLastState

int

O intervalo de tempo desde a mudança de estado, em milissegundos.

channel

const char *

O 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 mudanças no estado de assinatura do fluxo de áudio de um usuário remoto. Por meio dele, é possível identificar a alteração 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

O ID do usuário cuja assinatura foi alterada.

oldState

AliEngineSubscribeState

O estado anterior de assinatura.

newState

AliEngineSubscribeState

O estado atual de assinatura.

elapseSinceLastState

int

O intervalo de tempo desde a mudança de estado, em milissegundos.

channel

const char *

O 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*

O 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. Isso 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*

O ID do usuário cujo áudio foi interrompido.

OnUserAudioInterruptedEnded

Notificação de que a interrupção do á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*

O 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 as mudanças no estado de publicação de vídeo do usuário local.

Parâmetros

Parâmetro

Tipo

Descrição

oldState

AliEnginePublishState

O estado anterior de publicação.

newState

AliEnginePublishState

O estado atual de publicação.

elapseSinceLastState

int

O intervalo de tempo desde a mudança de estado, em milissegundos.

channel

const char *

O 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 mudanças no estado de assinatura do fluxo da câmera de um usuário remoto. Por meio dele, é possível identificar a alteração 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 às mudanças 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 *

O ID do usuário cuja assinatura foi alterada.

oldState

AliEngineSubscribeState

O estado anterior de assinatura.

newState

AliEngineSubscribeState

O estado atual de assinatura.

elapseSinceLastState

int

O intervalo de tempo desde a mudança de estado, em milissegundos.

channel

const char *

O 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*

O 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*

O ID do usuário que executou EnableLocalVideo.

isMute

bool

true: A captura do fluxo da câmera está ativada. false: A captura do fluxo da câmera está desativada.

OnUserWillResignActive

Callback acionado quando o aplicativo de um usuário remoto passa para o segundo plano.

virtual void OnUserWillResignActive(const char* uid) {}

Parâmetros

Parâmetro

Tipo

Descrição

uid

const char*

O ID do usuário cujo aplicativo passou para o 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*

O ID do usuário cujo aplicativo retornou ao primeiro plano.

OnStats

Callback de dados em tempo real. Acionado 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. Acionado a cada 2 segundos.

virtual void OnLocalVideoStats(const AliEngineLocalVideoStats& localVideoStats);

Informações do parâmetro

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. Acionado a cada 2 segundos.

virtual void OnRemoteVideoStats(const AliEngineRemoteVideoStats& remoteVideoStats);

Informações do parâmetro

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. Acionado a cada 2 segundos.

virtual void OnLocalAudioStats(const AliEngineLocalAudioStats& localAudioStats);

Informações do parâmetro

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. Acionado a cada 2 segundos.

virtual void OnRemoteAudioStats(const AliEngineRemoteAudioStats& remoteAudioStats);

Informações do parâmetro

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 através 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 através 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 retornará 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 para o resultado da captura de tela. Quando um usuário chama com sucesso SnapshotVideo, o resultado da captura é retornado através 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 de 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 mudança 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 mudança de status do dispositivo.

OnRemoteUserSubscribedDataChannel

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

virtual void OnRemoteUserSubscribedDataChannel(const char* uid);

Este método é um callback acionado quando um usuário remoto assina o Data Channel. Ele notifica o usuário local de que o usuário remoto especificado está pronto para receber mensagens personalizadas. Assim, você pode 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 assinou o Data Channel.

Nota

Este callback é acionado 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, é possível usar 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 Enviar e receber mensagens personalizadas.

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

Quando é acionado

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á acionado 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 captura 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 para os 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, número de canais de som e 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 para os 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, número de canais de som e 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 para os 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 para os 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, número de canais de som e 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 puxado remotamente.

virtual bool OnRemoteUserAudioFrame(const char *uid, AliEngineAudioRawData audioRawData) = 0; 

Este callback recupera os dados de áudio remoto de um usuário específico que está sendo puxado. 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 para os 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 capturados localmente.

virtual bool OnCaptureVideoSample(AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;

Este método é um callback para recuperar dados de captura 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 deseja retornar os dados processados ao SDK para codificação ou renderização subsequente. Para enviar o vídeo processado ao SDK, retorne true.

Quando é acionado

Após chamar com sucesso <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#0873ceb145h0t" id="c9469a35210sg">RegisterVideoSampleObserver</a> 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 dos dados de vídeo.

videoRawData

AliEngineVideoRawData

Os dados brutos de vídeo.

Descrição da resposta

  • true: Precisa ser gravado de volta no SDK (válido apenas para I420 e nativo (iOS/macOS)).

  • false: Não precisa ser gravado de volta no SDK.

OnPreEncodeVideoSample

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

virtual bool OnPreEncodeVideoSample(AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;

Este método é um callback para recuperar dados de vídeo locais 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 deseja retornar os dados processados ao SDK para codificação subsequente.

Parâmetros

Parâmetro

Tipo

Descrição

videoSource

AliEngineVideoSource

A fonte dos dados de vídeo.

videoRawData

AliEngineVideoRawData

Os dados de vídeo.

Valor de retorno

  • true: Precisa ser gravado de volta no SDK (válido apenas para I420 e nativo (iOS/macOS)).

  • false: Não precisa ser gravado de volta no SDK.

OnRemoteVideoSample

Callback para dados de vídeo remoto assinados.

virtual bool OnRemoteVideoSample(const char *uid, AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;

Este método é um callback para recuperar dados de vídeo remoto assinados. 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 deseja 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 dos dados de vídeo.

videoRawData

AliEngineVideoRawData

Os dados brutos de vídeo.

Valor de retorno

  • true: Precisa ser gravado de volta no SDK.

  • false: Não precisa 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 dos 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 é acionado

Este callback é acionado 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 assinado, status de voz e UID.

virtual void OnAudioVolumeCallback(const AliEngineUserVolumeInfo* volumeInfo, int volumeInfoCount, int totalVolume) {}

Este callback está desativado por padrão. Você pode ativá-lo chamando 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 aciona 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 para falantes locais quanto 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 com sucesso <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#f69f93ca70pa6" id="b5e0ba1248tmp">EnableAudioVolumeIndication</a>, 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 acionamento

Quando o número de usuários no canal é maior ou igual a 2 e há um usuário remoto ativo, o SDK aciona 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 aciona o callback OnActiveSpeaker novamente.

  • Caso o usuário remoto mais ativo mude, o SDK aciona 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 estado de publicação por bypass.

virtual void OnPublishLiveStreamStateChanged(const char* streamUrl ,AliEngineLiveTranscodingState state ,AliEngineLiveTranscodingErrorCode errCode){};

Parâmetros

Parâmetro

Tipo

Descrição

streamURL

const char*

A URL do stream.

state

AliEngineLiveTranscodingState

O estado.

errCode

AliEngineLiveTranscodingErrorCode

O código de erro.

OnPublishTaskStateChanged

Callback para alterações de estado de tarefa por 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 evento é 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 a 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 aproximadamente 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 evento é 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 de qual stream de áudio o primeiro pacote foi 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 evento é 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 de qual stream de áudio o primeiro pacote foi 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 de qual stream de vídeo o primeiro pacote foi 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 de qual stream de vídeo o primeiro pacote foi 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 de qual stream de áudio o primeiro quadro foi 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 com sucesso StartAudioCaptureTest 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, retornando 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 para 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 para quando o acompanhamento de um usuário remoto termina a reprodução.

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 vem 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

Se deve permitir callbacks de dados.

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 recebidos (5).

Nota:

  • Dados de áudio publicados e dados de áudio mixados de publicação/reprodução suportam apenas o modo ReadOnly.

  • Dados de áudio recebidos não suportam a modificação de parâmetros de áudio, como taxa de amostragem e número de canais.

config

AliEngineAudioFrameObserverConfig

Configurações de parâmetros do 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 para o 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 formato 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 ao capturar 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. Ouça 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 pelo 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 personalizados durante a transmissão de áudio e vídeo. Por exemplo, chame 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 Enviar e receber mensagens personalizadas.

Nota
  • O canal de mensagens personalizadas vem 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 quaisquer dados, como texto ou imagens.

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 ao ouvir 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.

  • Chame 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 fluxo de compartilhamento de tela está publicado no momento. Por padrão, o SDK não publica o fluxo de compartilhamento de tela. Para publicar esse fluxo, 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 da configuração de 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 fluxo 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 fluxo 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 fluxo 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