Todos os produtos
Search
Central de documentação

ApsaraVideo Live:Interface AliRtcEngine

Última atualização: Sep 14, 2026

Este tópico descreve as interfaces fornecidas pelo SDK iOS do ApsaraVideo Real-time Communication.

Diretório

Métodos básicos

API

Descrição

sharedInstance

Cria uma instância do AliRtcEngine. Este é um método singleton.

[destroy[1/2]](#4f99d9b0feh62)

Destrói uma instância do AliRtcEngine de forma síncrona.

[destroy[2/2]](#6d97f0941e2dv)

Destrói uma instância do AliRtcEngine de forma assíncrona.

setH5CompatibleMode

Define se o modo de compatibilidade HTML5 deve ser ativado.

getH5CompatibleMode

Verifica se o ambiente atual é compatível com HTML5.

getSdkVersion

Obtém o número da versão do SDK.

Métodos relacionados a canais

API

Descrição

setChannelProfile

Define o modo do canal.

setAudioProfile

Configura o perfil de áudio.

isAudioOnly

Consulta se o modo somente áudio está ativado.

setAudioOnlyMode

Ativa o modo somente áudio ou o modo áudio e vídeo.

[joinChannel[1/3]](#ff090acf7002q)

Entra em um canal.

[joinChannel[2/3]](#dfc6950ef1dz6)

Entra em um canal.

[joinChannel[3/3]](#6007acb5803e9)

Entra em um canal.

leaveChannel

Sai de um canal.

isInCall

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

setClientRole

Especifica a função de um usuário.

getCurrentClientRole

Consulta a função do usuário.

refreshAuthInfo

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

refreshAuthInfoWithToken

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

Métodos relacionados a publicação e assinatura

API

Descrição

publishLocalAudioStream

Define se uma faixa de áudio deve ser publicada. Por padrão, a faixa de áudio é publicada.

isLocalAudioStreamPublished

Consulta se uma faixa de áudio está sendo publicada.

setDefaultSubscribeAllRemoteAudioStreams

Especifique se deseja assinar as faixas de áudio de usuários remotos. Por padrão, todas as faixas de áudio remotas são assinadas.

Recomendamos chamar este método antes que os usuários entrem no canal.

subscribeRemoteAudioStream

Assina ou cancela a assinatura da faixa de áudio de um usuário remoto específico.

subscribeAllRemoteAudioStreams

Assina ou cancela a assinatura das faixas de áudio de todos os usuários remotos.

publishLocalVideoStream

Define se uma faixa de vídeo deve ser publicada.

isLocalVideoStreamPublished

Consulta se uma faixa de vídeo está sendo publicada.

setDefaultSubscribeAllRemoteVideoStreams

Especifique se deseja assinar as faixas de vídeo de usuários remotos. Por padrão, todas as faixas de vídeo remotas são assinadas.

Recomendamos chamar este método antes que os usuários entrem no canal.

subscribeRemoteVideoStream

Assina ou cancela a assinatura da faixa de vídeo de um usuário remoto.

subscribeAllRemoteVideoStreams

Assina ou cancela a assinatura das faixas de vídeo de todos os usuários remotos.

[subscribeRemoteMediaStream[1/2]](#35c08eb889kxx)

Interrompe ou retoma os fluxos de mídia de usuários remotos específicos.

Use este método quando as faixas de áudio e vídeo estiverem disponíveis e precisarem ser gerenciadas.

[subscribeRemoteMediaStream[2/2]](#7b82bb814akzz)

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

Use este método quando as faixas de áudio e vídeo estiverem disponíveis e precisarem ser gerenciadas.

subscribeRemoteDestChannelStream

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

subscribeRemoteDestChannelAllStream

Assina os fluxos de todos os usuários no canal de destino.

setRemoteAudioVolume

Define o volume do áudio de um usuário remoto.

Métodos relacionados ao gerenciamento de dispositivos de áudio

API

Descrição

muteLocalMic

Define se o áudio local deve ser silenciado.

muteRemoteAudioPlaying

Define se a reprodução da faixa de áudio de um usuário remoto específico deve ser interrompida.

muteAllRemoteAudioPlaying

Define se a reprodução das faixas de áudio de todos os usuários remotos deve ser interrompida.

[startAudioCapture[1/2]](#3103c368bexf8)

Inicia a captura de áudio.

[startAudioCapture[2/2]](#9c12a9cbbbcgr)

Inicia a coleta de áudio.

stopAudioCapture

Interrompe a captura de áudio.

enableSpeakerphone

Define o fone de ouvido ou o alto-falante como dispositivo de saída de áudio.

isEnableSpeakerphone

Consulta se o dispositivo de saída de áudio atual é o fone de ouvido ou o alto-falante.

enableAudioVolumeIndication

Ativa a detecção de volume.

enableEarBack

Ativa o monitoramento in-ear.

setEarBackVolume

Define o volume do monitoramento in-ear. Este método aplica-se apenas ao iOS.

startAudioPlayer

Inicia a reprodução de áudio.

stopAudioPlayer

Interrompe a reprodução de áudio.

setPlayoutVolume

Define o volume de reprodução.

setRecordingVolume

Define o volume de captura.

playAudioFileTest

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

stopAudioFileTest

Interrompe o teste do dispositivo de reprodução de áudio.

startAudioCaptureTest

Inicia o teste do dispositivo de captura de áudio.

stopAudioCaptureTest

Interrompe o teste do dispositivo de captura de áudio.

setDefaultAudioRoutetoSpeakerphone

Define o dispositivo de saída de áudio padrão.

Métodos relacionados a modificação de voz e reverberação

API

Descrição

setAudioEffectVoiceChangerMode

Define o modo de modificação de voz.

setAudioEffectPitchValue

Permite definir os parâmetros de ajuste de tom.

setAudioEffectReverbMode

Define o modo de reverberação.

setAudioEffectReverbParamType

Configura os parâmetros do modo de reverberação.

setAudioEffectBeautifyMode

Define um modo predefinido de efeito de embelezamento de voz.

setAudioEffectEqualizationParam

Configura parâmetros do equalizador (EQ) de áudio para ajustar o ganho em bandas de frequência especificadas.

Entrada de áudio personalizada

API

Descrição

addExternalAudioStream

Adiciona uma faixa de áudio externa.

pushExternalAudioStream

Importa dados de áudio externos.

setExternalAudioStream:publishVolume

Define o volume do áudio externo para ingestão de fluxo.

getExternalAudioStreamPublishVolume

Consulta o volume do áudio externo para ingestão de fluxo.

setExternalAudioStream:playoutVolume

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

getExternalAudioStreamPlayoutVolume

Consulta o volume de reprodução do áudio externo.

removeExternalAudioStream

Exclui uma ingestão de fluxo externa.

Acompanhamento de áudio

API

Descrição

getAudioFileInfo

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

startAudioAccompanyWithFile

Inicia a reprodução de um arquivo de acompanhamento.

stopAudioAccompany

Interrompe a reprodução de um arquivo de acompanhamento.

setAudioAccompanyVolume

Define o volume do acompanhamento.

setAudioAccompanyPublishVolume

Define o volume para publicação do arquivo de acompanhamento.

getAudioAccompanyPublishVolume

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

setAudioAccompanyPlayoutVolume

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

getAudioAccompanyPlayoutVolume

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

pauseAudioAccompany

Pausa a reprodução do acompanhamento.

resumeAudioAccompany

Retoma a reprodução do acompanhamento.

getAudioAccompanyDuration

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

getAudioAccompanyCurrentPosition

Obtém a posição atual de reprodução do arquivo de acompanhamento.

setAudioAccompanyPosition

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

Arquivos de efeitos sonoros

API

Descrição

preloadAudioEffectWithSoundId

Pré-carrega um efeito sonoro.

unloadAudioEffectWithSoundId

Exclui um efeito sonoro pré-carregado.

playAudioEffectWithSoundId

Inicia a reprodução de um efeito sonoro.

stopAudioEffectWithSoundId

Interrompe a reprodução de um efeito sonoro.

stopAllAudioEffects

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

pauseAudioEffectWithSoundId

Pausa a reprodução de um efeito sonoro.

pauseAllAudioEffects

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

resumeAudioEffectWithSoundId

Retoma a reprodução de um efeito sonoro.

resumeAllAudioEffects

Recupera todos os arquivos de efeitos sonoros.

setAudioEffectPublishVolumeWithSoundId

Define o volume de um efeito sonoro para ingestão de fluxo.

getAudioEffectPublishVolumeWithSoundId

Consulta o volume de um efeito sonoro para ingestão de fluxo.

setAllAudioEffectsPublishVolume

Define o volume de todos os efeitos sonoros para ingestão de fluxo.

setAudioEffectPlayoutVolumeWithSoundId

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

getAudioEffectPlayoutVolumeWithSoundId

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

setAllAudioEffectsPlayoutVolume

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

Gravar arquivos de áudio e vídeo

API

Descrição

startRecord

Grava arquivos de áudio e vídeo nos formatos AAC, WAV ou MP4.

stopRecord

Interrompe a gravação de arquivos de áudio e vídeo.

Métodos relacionados ao gerenciamento de dispositivos de vídeo

API

Descrição

setLocalViewConfig

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

setCameraCapturerConfiguration

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

enableLocalVideo

Desativa ou reativa a captura de vídeo local.

muteLocalCamera

Define se a publicação de uma faixa de vídeo local deve ser interrompida.

setRemoteViewConfig

Define a visualização de renderização e os parâmetros de desenho para a faixa de vídeo de um usuário remoto.

isCameraOn

Consulta se a câmera está ligada.

setVideoEncoderConfiguration

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

setVideoDecoderConfiguration

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

switchCamera

Alterna entre as câmeras frontal e traseira. Por padrão, a câmera frontal é utilizada.

getCurrentCameraDirection

Obtém a orientação atual da câmera.

startPreview

Inicia uma pré-visualização local.

stopPreview

Interrompe uma pré-visualização local.

setCameraZoom

Define o zoom da câmera.

GetCameraMaxZoomFactor

Obtém o fator máximo de zoom da câmera.

GetCurrentZoom

Obtém a taxa máxima de escala da câmera.

SetExposure

Define a exposição da câmera.

GetCurrentExposure

Obtém a exposição da câmera.

GetMinExposure

Obtém o nível mínimo de exposição da câmera.

GetMaxExposure

Obtém o nível máximo de exposição da câmera.

setCameraFlash

Define o modo de flash da câmera.

isCameraFocusPointSupported

Consulta se o foco manual é suportado.

isCameraExposurePointSupported

Consulta se a definição de um ponto de exposição é suportada.

setCameraFocusPoint

Define o ponto de foco manual da câmera.

setCameraExposurePoint

Define o ponto de exposição da câmera.

isCameraAutoFocusFaceModeSupported

Consulta se o autofoco facial é suportado.

setCameraAutoFocusFaceModeEnabled

Ativa ou desativa o autofoco facial.

setVideoMirrorMode

Define o espelhamento para pré-visualização local e ingestão de fluxo.

SetCapturePipelineScaleMode

Define quando a escala ocorre no pipeline de captura de vídeo: durante a captura ou durante a codificação.

Configurar callbacks de dados de vídeo

API

Descrição

registerVideoFrameWithObserver

Registra um callback de dados de vídeo.

unregisterVideoSampleWithObserver

Cancela o registro de um callback de dados de vídeo.

registerLocalVideoTextureObserver

Registra um callback de textura de vídeo.

unregisterLocalVideoTextureObserver

Cancela o registro de um callback de textura de vídeo.

snapshotVideo

Captura um snapshot do feed da câmera.

registerVideoSampleObserver

Registra um callback para exportação de dados de vídeo.

unRegisterVideoSampleObserver

Cancela o registro de um callback para exportação de dados de vídeo.

Configurar callbacks de dados de áudio

API

Descrição

enableAudioFrameObserver

Configura as definições de callback de áudio.

registerAudioFrameObserver

Registra um callback de áudio.

Entrada de vídeo personalizada

API

Descrição

setExternalVideoSource

Especifique se uma fonte de vídeo externa deve ser ativada.

pushExternalVideoFrame

Insere os dados de vídeo.

Interface de compartilhamento de desktop

API

Descrição

startScreenShare

Inicia a ingestão de um fluxo de compartilhamento de tela.

startScreenShare

Inicia a ingestão de um fluxo de compartilhamento de tela.

Nota

Este método será descontinuado.

stopScreenShare

Interrompe a ingestão de fluxo para compartilhamento de tela.

setAudioShareAppVolume

Define o volume do fluxo de áudio compartilhado.

isScreenSharePublished

Consulta se um fluxo de compartilhamento de tela está sendo publicado.

setScreenShareEncoderConfiguration

Configura os parâmetros de codificação do compartilhamento de tela.

Interface de retransmissão de transmissão ao vivo

API

Descrição

startPublishLiveStreamWithURL

Inicia a transmissão ao vivo retransmitida.

updatePublishLiveStreamWithURL

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

stopPublishLiveStreamWithURL

Interrompe a transmissão ao vivo retransmitida.

GetPublishLiveStreamStateWithURL

Consulta o status da transmissão ao vivo retransmitida.

Interface de sondagem de qualidade de rede

API

Descrição

startLastmileDetect

Inicia o teste de qualidade de rede.

stopLastmileDetect

Interrompe o teste de qualidade de rede.

SEI

API

Descrição

sendMediaExtensionMsg

Envia mensagens SEI.

sendMediaExtensionMsgEx

Envia mensagens SEI (estendido).

Outras APIs

API

Descrição

setParameter

Define parâmetros personalizados.

getParameter

Consulta parâmetros personalizados.

setLogDirPath

Define o caminho para armazenamento dos arquivos de log do SDK.

setLogLevel

Define o nível de log.

setAudioSessionOperationRestriction

Especifique se o SDK tem permissão para controlar o AVAudioSession.

setDeviceOrientationMode

Define a orientação do dispositivo.

getNetworkTime

Obtém o timestamp de rede.

sendDataChannelMessage

Envia uma mensagem de canal de dados.

Métodos AliveEnv

API

Descrição

setGlobalEnvironment

Define o ambiente global.

Callbacks

AliRtcEngineDelegate

API

Descrição

onConnectionStatusChange

Callback invocado quando o status da conexão de rede muda. Preste atenção a este callback.

onLocalDeviceException

Callback invocado quando ocorre uma exceção no dispositivo local. Preste atenção a este callback.

onAuthInfoWillExpire

Callback invocado quando a autenticação do usuário está prestes a expirar. A autenticação expira 30 segundos após o recebimento deste callback. Preste atenção a este callback.

onAuthInfoExpired

Ao chamar uma API que requer autenticação, o servidor retorna uma mensagem indicando que a autenticação expirou.

onJoinChannelResult

Callback invocado para retornar o resultado da entrada em um canal.

onLeaveChannelResult

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

onRemoteUserOffLineNotify

Notificação de desconexão para usuários remotos.

onRemoteUserOnLineNotify

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

onRemoteTrackAvailableNotify

Notificações para ingestão de fluxo remoto.

onBye

Mensagem enviada quando você é desconectado pelo servidor ou quando o canal termina após a conclusão da reunião.

onAudioPublishStateChanged

Notificação do status de ingestão de fluxo de áudio.

onAudioSubscribeStateChanged

Notificações de status para extração de fluxo de áudio.

onUserAudioMuted

Notificação de silenciamento de usuário remoto.

onUserAudioInterruptedBegin

Notificação de início de interrupção de dispositivo de áudio.

onUserAudioInterruptedEnded

Callback invocado quando a interrupção de um dispositivo de áudio termina.

onVideoPublishStateChanged

Callback invocado quando o status da ingestão de fluxo de uma faixa de vídeo muda.

onVideoSubscribeStateChanged

Callback invocado quando o status da assinatura de uma faixa de vídeo muda.

onUserVideoMuted

Callback invocado quando um usuário remoto envia quadros pretos para a faixa de vídeo.

onUserVideoEnabled

O usuário remoto interrompe o envio do fluxo da câmera e envia uma notificação.

onUserWillResignActive

O aplicativo do usuário remoto passa para o segundo plano.

onUserWillBecomeActive

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

onAudioEffectFinished

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

onAudioVolumeCallback

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

onActiveSpeaker

Callback invocado quando um usuário ativo é detectado falando.

onPublishLiveStreamStateChanged

Callback invocado quando o status da transmissão ao vivo retransmitida muda.

onPublishTaskStateChanged

Callback invocado quando o status de uma tarefa de transmissão ao vivo retransmitida muda.

onNetworkQualityChanged

Callback invocado quando a qualidade da rede muda.

onLastmileDetectResultWithQuality

Callback para resultados de sondagem de qualidade de rede.

onLastmileDetectResultWithBandWidth

Callback invocado para retornar resultados de sondagem de qualidade de rede.

onOccurError

Callback invocado quando ocorre um erro no mecanismo. Use este callback para notificar seu aplicativo.

onFirstAudioPacketSentWithTimecost

Callback invocado quando o primeiro pacote de áudio é enviado.

onFirstVideoFrameReceivedWithUid

Callback invocado quando o primeiro quadro de vídeo é recebido.

onFirstVideoPacketSentWithVideoTrack

Callback invocado quando o primeiro pacote de vídeo é enviado.

onFirstAudioPacketReceivedWithUid

Callback invocado quando o primeiro pacote de áudio é recebido.

onFirstRemoteAudioDecodedWithUid

Callback invocado quando o primeiro quadro de áudio remoto é decodificado.

onFirstRemoteVideoFrameDrawn

Callback invocado quando o primeiro quadro de vídeo de um usuário remoto é renderizado.

onFirstLocalVideoFrameDrawn

Callback invocado quando o primeiro quadro de vídeo local é renderizado durante a pré-visualização.

onTestAudioVolumeCallback

Callback de volume para teste de captura de áudio antes de uma chamada.

onAudioAccompanyStateChanged

Callback invocado quando o estado de reprodução do acompanhamento local muda.

onRemoteAudioAccompanyStarted

Callback invocado quando um usuário remoto inicia a reprodução de acompanhamento.

onRemoteAudioAccompanyFinished

Callback invocado quando um usuário remoto termina a reprodução de acompanhamento.

onRtcStats

Callback de estatísticas em tempo real, acionado a cada dois segundos.

onRtcLocalVideoStats

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

onRtcRemoteVideoStats

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

onRtcLocalAudioStats

Callback de estatísticas de áudio local, acionado a cada dois segundos.

onRtcRemoteAudioStats

Fornece estatísticas de áudio remoto. Este evento é acionado a cada 2 segundos.

onMediaExtensionMsgReceived

Callback invocado quando mensagens de extensão de mídia são recebidas.

onAudioRouteChanged

Callback invocado quando a rota de áudio muda.

onSnapshotComplete

Callback de conclusão de snapshot.

onLocalAudioStateChanged

Callback invocado quando o estado do dispositivo de captura de áudio local muda.

onLocalVideoStateChanged

Callback invocado quando o estado do dispositivo de captura de vídeo local muda.

onRemoteUserSubscribedDataChannel

Callback invocado quando é possível começar a enviar mensagens de canal de dados.

onDataChannelMessage

Callback de mensagem de canal de dados.

onScreenSharePublishStateChanged

Callback invocado quando o status da ingestão de fluxo de compartilhamento de tela muda.

AliRtcAudioFrameDelegate

API

Descrição

onCapturedAudioFrame

Callback para dados de áudio brutos capturados.

onProcessCapturedAudioFrame

Callback para dados de áudio após processamento 3A.

onPublishAudioFrame

Callback de dados de ingestão de fluxo.

onPlaybackAudioFrame

Callback para dados de reprodução de áudio.

onRemoteUserAudioFrame

Callback para dados de fluxo de áudio remoto.

AliRtcEngineDestroyDelegate

API

Descrição

onDestroyCompletion

Callback invocado quando o mecanismo é destruído. O mecanismo só é totalmente liberado após a conclusão deste callback.

AliRtcTextureDelegate

API

Descrição

onTextureCreate

Callback de criação de contexto OpenGL.

onTextureUpdate

Callback de atualização de textura OpenGL.

onTextureDestory

Callback de destruição de contexto OpenGL.

AliRtcVideoFrameDelegate

API

Descrição

onCaptureVideoSample

Callback para quadros de vídeo capturados.

onPreEncodeVideoSample

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

onRemoteVideoSample

Callback para dados de vídeo remotos.

onGetVideoFormatPreference

Formato de saída dos dados de vídeo.

onGetVideoObservedFramePosition

Posição de saída dos dados de vídeo.

Detalhes

sharedInstance

Cria uma instância de AliRtcEngine usando o padrão singleton.

+ (instancetype _Nonnull )sharedInstance:(id<AliRtcEngineDelegate>_Nullable)delegate extras:(NSString *_Nullable)extras;

Quando chamar

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

Limitações

  • Este método é síncrono e deve ser chamado na thread principal.

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

Callbacks relacionados

Implemente os callbacks em AliRtcEngineDelegate conforme seu caso de uso ao criar a instância do engine. Se o SDK encontrar uma exceção durante a operação, ele tentará primeiro retentativas internas para se recuperar automaticamente. Para erros que não podem ser resolvidos internamente, o SDK notifica seu aplicativo por meio de callbacks predefinidos. A seguir estão os principais callbacks que exigem tratamento no nível da aplicação:

Causa raiz

Callback e parâmetros

Solução

Observações

Falha na autenticação

O callback onJoinChannelResult retorna AliRtcErrJoinBadToken.

Verifique se o token é válido quando esse erro ocorrer.

Quando os usuários chamam explicitamente uma API e a autenticação falha, o erro é retornado no callback da API.

Falha na conexão de rede

O callback onConnectionStatusChange retorna AliRtcConnectionStatusFailed.

Entre novamente no canal quando esse erro ocorrer.

O SDK possui capacidade integrada de recuperação de rede. No entanto, se a desconexão exceder o limiar de tempo limite predefinido, o SDK aciona um tempo limite e se desconecta. Nesse caso, verifique o status da rede e oriente os usuários a entrarem novamente no canal.

Exceção no dispositivo local

onLocalDeviceException

Verifique as permissões e o status do hardware quando esse erro ocorrer.

O ARTC oferece suporte à detecção e diagnóstico de dispositivos. Quando ocorre uma exceção no dispositivo local, o ARTC notifica seu aplicativo via callback. Se o SDK não conseguir resolver o problema, seu aplicativo deve intervir para verificar a integridade do dispositivo.

Removido do canal

onBye

  • AliRtcOnByeUserReplaced: Verifique se o ID do usuário está duplicado quando esse erro ocorrer.

  • AliRtcOnByeBeKickedOut: Indica que o usuário foi removido pela lógica de negócios. Entre novamente no canal.

  • AliRtcOnByeChannelTerminated: Indica que o canal foi encerrado. Entre novamente no canal.

O ARTC fornece aos administradores a capacidade de remover participantes ativamente.

Autenticação prestes a expirar

onWillAuthInfoExpire

Quando essa exceção ocorrer, o aplicativo deve primeiro obter novamente as informações de autenticação mais recentes e depois chamar refreshAuthInfo.

A expiração da autenticação ocorre em dois casos: quando os usuários chamam uma API ou durante a execução do programa. Portanto, os erros são relatados no callback da API ou por meio de um callback de erro dedicado.

Autenticação expirada

onAuthInfoExpired

Entre novamente no canal quando esse erro ocorrer.

A expiração da autenticação ocorre em dois casos: quando os usuários chamam uma API ou durante a execução do programa. Portanto, os erros são relatados no callback da API ou por meio de um callback de erro dedicado.

Parâmetros

Nome

Tipo

Descrição

delegate

id<AliRtcEngineDelegate>_Nullable

O delegate que escuta eventos de callback.

extras

NSString *_Nullable

Usado para receber parâmetros de liberação em escala cinza dos clientes. Configura recursos especiais do SDK usando uma string JSON. Pode ser uma string vazia.

destroy[1/2]

Destrói a instância de AliRtcEngine.

+ (void)destroy;

Destrói o objeto singleton AliRtcEngine. Após invocar este método, todos os recursos usados internamente são liberados. Não é possível usar nenhum outro método ou callback do AliRtcEngine. Para usar o AliRtcEngine novamente, você deve invocar <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#2db21d4f16s77" id="96631a9306wq8">sharedInstance</a> para criar uma nova instância.

Este método e destroy[2/2] destroem instâncias do engine, mas a diferença é que destroy[2/2] permite passar um objeto monitor para a conclusão da destruição.

Nota
  • Se você planeja recriar a instância do AliRtcEngine, garanta que este método seja concluído antes de fazê-lo.

  • Após chamar este método, defina o objeto do engine como nil.

Quando chamar

Chame este método para liberar a instância após o término da comunicação em tempo real (ou seja, quando você não precisar mais da funcionalidade do AliRtcEngine). Isso reduz o uso desnecessário de recursos.

Limitações

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

destroy[2/2]

Destrói a instância de AliRtcEngine.

+ (void)destroy:(id<AliRtcEngineDestroyDelegate>_Nullable)delegate;

Destrói o objeto singleton AliRtcEngine. Após invocar este método, todos os recursos que o objeto usa internamente são liberados. Não é mais possível usar nenhum outro método do AliRtcEngine ou quaisquer callbacks. Para usar o AliRtcEngine novamente, você deve invocar <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#2db21d4f16s77" id="115fd691743nx">sharedInstance</a> para criar uma nova instância.

Nota

Tanto destroy[1/2] quanto este método liberam a instância do AliRtcEngine. No entanto, este método é assíncrono e aceita um observador para monitorar sua conclusão. Você só pode criar uma nova instância com segurança após onDestroyCompletion ser invocado.

Quando chamar

Recomendamos chamar este método para liberar a instância após concluir a comunicação em tempo real.

Limitações

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

Parâmetros

Nome

Tipo

Descrição

delegate

AliRtcEngineDestroyDelegate

O observador que recebe o callback de conclusão.

setH5CompatibleMode

Especifique se deseja ativar o modo de compatibilidade HTML5.

Importante

Não é possível modificar as configurações de compatibilidade HTML5 da versão atual após criar uma instância de AliRtcEngine. Você deve chamar este método antes de criar uma instância de AliRtcEngine.

+ (void)setH5CompatibleMode:(BOOL)comp;

Parâmetros

Nome

Tipo

Descrição

comp

BOOL

Um valor YES ativa o modo de compatibilidade HTML5. Um valor NO desativa o modo de compatibilidade HTML5. Valor padrão: NO.

getH5CompatibleMode

Consulta se o modo de compatibilidade HTML5 está ativado.

+ (BOOL)getH5CompatibleMode;

Descrição do retorno

Um valor YES indica que o modo de compatibilidade HTML5 está ativado. Um valor NO indica que o modo de compatibilidade HTML5 está desativado.

getSdkVersion

Recupera o número da versão do SDK.

+ (NSString *_Nonnull)getSdkVersion;

Valor de retorno

O número da versão atual do SDK como uma string, por exemplo: "2.5.0.x".

Observações

Este é um método estático. Você pode chamá-lo a qualquer momento para recuperar o número da versão.

setChannelProfile

Define o modo do canal.

- (int)setChannelProfile:(AliRtcChannelProfile)profile;

Este método define o perfil do canal. Dois perfis principais estão disponíveis:

  • Perfil de comunicação: Todos os usuários atuam como streamers e podem tanto publicar quanto assinar streams.

  • Perfil de transmissão ao vivo interativa: Você deve chamar <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#892915dd4edcy" id="d88dccff391by">setClientRole</a> para definir a função do cliente. Defina a função dos usuários que ingerem streams no canal como streamer (AliRTCSdkInteractive). Se um usuário apenas precisar puxar streams e não ingerir streams, defina sua função como visualizador (AliRTCSdkLive). Este perfil é recomendado para cenários RTC.

Nota
  • Recomendamos o perfil de transmissão ao vivo interativa para todos os cenários RTC. Defina o perfil como AliRTCSdkInteractiveLive.

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

Quando chamar

Você pode chamar este método apenas antes de entrar em um canal. Não é possível alterar o perfil enquanto estiver em um canal. É possível alterá-lo após sair do canal.

Parâmetros

Nome

Tipo

Descrição

profile

AliRtcChannelProfile

O tipo de canal. Para cenários RTC, recomendamos definir isso como AliRtcChannelProfileInteractiveLive, que é o modo de transmissão ao vivo interativa.

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica que a chamada falhou.

setAudioProfile

Define o perfil de áudio.

- (int)setAudioProfile:(AliRtcAudioProfile)audio_profile audio_scene:(AliRtcAudioScenario)audio_scene;

Este método configura a codificação de áudio e os modos de cenário de áudio. Para obter mais informações, consulte Common audio operations and configurations. Por padrão, o ARTC SDK usa o modo de áudio de alta qualidade (AliRtcEngineHighQualityMode) e o modo de cenário musical (AliRtcSceneMusicMode). Se os padrões não atenderem às suas necessidades, chame este método para configurá-los.

Quando chamar

Você pode chamar este método apenas antes de entrar em um canal. Não é possível alterá-lo após entrar. É possível alterá-lo após sair do canal.

Parâmetros

Nome

Tipo

Descrição

audio_profile

AliRtcAudioProfile

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

Nota

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

  • AliRtcEngineLowQualityMode: Modo de áudio de baixa qualidade. Taxa de amostragem padrão: 8 kHz. Mono. Bitrate máximo: 12 kbps.

  • AliRtcEngineBasicQualityMode: Modo de qualidade de áudio padrão. Taxa de amostragem padrão: 16 kHz. Mono. Bitrate máximo: 24 kbps.

  • AliRtcEngineHighQualityMode: Taxa de amostragem padrão: 48 kHz. Mono. Bitrate máximo: 64 kbps.

  • AliRtcEngineStereoHighQualityMode: Modo estéreo de alta qualidade. Taxa de amostragem padrão: 48 kHz. Estéreo. Bitrate máximo: 80 kbps.

  • AliRtcEngineSuperHighQualityMode: Modo de altíssima qualidade. Taxa de amostragem padrão: 48 kHz. Mono. Bitrate máximo: 96 kbps.

  • AliRtcEngineStereoSuperHighQualityMode: Modo estéreo de altíssima qualidade. Taxa de amostragem padrão: 48 kHz. Estéreo. Bitrate máximo: 128 kbps.

audio_scene

AliRtcAudioScenario

Parâmetro do modo de cenário de áudio. As opções incluem o seguinte:

  • AliRtcSceneMusicMode (recomendado): Cenário musical. Usa processamento 3A baseado em software. Captura do microfone do telefone para maior fidelidade de áudio.

  • AliRtcSceneDefaultMode: Usa processamento 3A baseado em hardware. Suporta dispositivos Bluetooth.

Nota

Não defina isso como modo de sala de bate-papo (AliRtcSceneChatroomMode) para ARTC SDK v6.21 e posterior.

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica que a chamada falhou.

isAudioOnly

Consulta se o modo somente áudio está ativado.

- (BOOL)isAudioOnly;

Descrição do retorno

Um valor YES indica que o modo somente áudio está ativado. Um valor NO indica que o modo de áudio e vídeo está ativado.

setAudioOnlyMode

Ativa o modo somente áudio ou o modo de áudio e vídeo.

- (int)setAudioOnlyMode:(BOOL)audioOnly;

Parâmetros

Nome

Tipo

Descrição

audioOnly

BOOL

  • Um valor YES ativa o modo somente áudio.

  • NO indica que tanto áudio quanto vídeo são suportados. Este é o valor padrão.

Instruções de retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica que a chamada falhou.

joinChannel[1/3]

Entra em um canal (ou seja, entra na reunião).

- (int)joinChannel:(NSString *_Nonnull)token channelId:(NSString *_Nullable)channelId userId:(NSString *_Nullable)userId name:(NSString *_Nullable)userName onResultWithUserId:(void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed))onResult;

Este método entra em um canal. O ARTC organiza os usuários em canais. Os usuários devem entrar em um canal para publicar ou assinar streams de áudio e vídeo. Este método, juntamente com joinChannel[2/3] e joinChannel[3/3], pode ser usado para entrar em um canal. As diferenças residem no método de autenticação e nas informações do usuário passadas:

  • Este é um método de entrada com parâmetro único. Passe um token gerado usando Token authentication. Recomendamos este método para cenários RTC.

  • joinChannel[2/3] é um método de entrada com múltiplos parâmetros. Passe um token gerado usando Token authentication e também passe as informações do 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 de acordo com o cenário.

Nota

Por padrão, ao entrar em um canal, você assina os streams de áudio e vídeo de todos os outros usuários no canal e envia seus streams de áudio e vídeo para usuários remotos. Se quiser cancelar a assinatura padrão, chame <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="2e9165006d7tz">setDefaultSubscribeAllRemoteAudioStreams</a> e <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="96cf16cf8a4us">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 a instância do engine.

Limitações

  • Após entrar com sucesso em um canal, para entrar em outro canal durante a sessão, você deve primeiro chamar <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="37299758eavvg">leaveChannel</a> para sair do canal atual e garantir que receba o callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="50039f328fdk7">onLeaveChannelResult</a> antes de entrar em um canal novamente.

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

  • Aplicativos com App IDs diferentes não podem interoperar.

  • Não é necessário chamar este método ao tentar novamente após uma falha na entrada.

Callbacks relacionados

Após chamar este método com sucesso, os seguintes callbacks são acionados:

  • O resultado da entrada do cliente local em um canal é notificado através do callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6d2a213d7sl2" id="903005c54be4d">onJoinChannelResult</a>.

  • Depois que você entra com sucesso no canal, o lado remoto aciona o callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#634626babfq9x" id="4b11b846b1f4t">onRemoteUserOnLineNotify</a>.

Parâmetros

Parâmetro

Tipo

Descrição

token

String

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

channelId

String

O ID do canal no qual entrar. O valor deve ser igual ao ID do canal usado para gerar o token.

userId

String

O ID do usuário que deseja entrar no canal. O valor deve ser igual ao ID do usuário usado para gerar o token.

userName

String

O nome de exibição do usuário. Não é o ID do usuário.

onResultWithUserId

void(^_Nullable)(NSInteger errCode, NSString _Nonnull channel, NSString _Nonnull userId, NSInteger elapsed)

Este callback é invocado após a interface terminar a execução.

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica que a chamada falhou.

joinChannel[2/3]

Entra em um canal, que é uma sessão com múltiplos participantes.

- (int)joinChannel:(AliRtcAuthInfo *_Nonnull)authInfo name:(NSString *_Nullable)userName onResultWithUserId:(void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed))onResult;

Este método entra em um canal. O ARTC organiza os usuários em canais. Os usuários devem entrar em um canal para publicar ou assinar streams de áudio e vídeo. Este método, juntamente com joinChannel[1/3] e joinChannel[3/3], pode ser usado para entrar em um canal. As diferenças residem no método de autenticação e nas informações do usuário passadas:

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

  • Este é um método de entrada com múltiplos parâmetros. Passe um token gerado usando Token authentication e também passe as informações do 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.

Nota
  • Por padrão, ao entrar em um canal, você assina streams de áudio e vídeo de todos os outros usuários no canal e envia seus streams de áudio e vídeo para usuários remotos. Para desativar a assinatura padrão, chame <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="fb54669796mxq">setDefaultSubscribeAllRemoteAudioStreams</a> e <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="abb190b699jg7">setDefaultSubscribeAllRemoteVideoStreams</a> antes de chamar esta interface para desativar a assinatura de streams de áudio ou streams de vídeo.

  • Antes de chamar este método, consulte Token authentication para gerar um token de múltiplos parâmetros.

Limitações

  • Para trocar de canal após entrar em um, você deve primeiro chamar <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="4283c6cc013bz">leaveChannel</a> para sair do canal atual. Você só pode entrar em um novo canal após receber o callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="9e6478b2f0hen">onLeaveChannelResult</a>.

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

  • Aplicativos com App IDs diferentes não podem interoperar.

Callbacks relacionados

Após chamar este método com sucesso, os seguintes callbacks são acionados:

  • O callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6d2a213d7sl2" id="df00346ea8928">onJoinChannelResult</a> retorna o resultado da entrada do usuário local no canal.

  • Depois que você entra com sucesso no canal, um usuário remoto aciona o callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#634626babfq9x" id="c3832e71e8vck">onRemoteUserOnLineNotify</a>.

Parâmetros

Nome

Tipo

Descrição

authInfo

AliRtcAuthInfo

As informações de autenticação.

userName

String

O nome de exibição do usuário. Não é o ID do usuário.

onResultWithUserId

void(^_Nullable)(NSInteger errCode, NSString _Nonnull channel, NSString _Nonnull userId, NSInteger elapsed)

Este callback é chamado quando a interface termina a execução.

joinChannel[3/3]

Entra em um canal.

- (int)joinChannel:(NSString *_Nonnull)token channelParam:(AliRtcChannelParam *_Nonnull)channelParam onResultWithUserId:(void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed))onResult;

Este método entra em um canal. O ARTC organiza os usuários em canais. Os usuários devem entrar em um canal para publicar ou assinar streams de áudio e vídeo. Este método, juntamente com joinChannel[1/3] e joinChannel[2/3], pode ser usado para entrar em um canal. As diferenças residem no método de autenticação e nas informações do usuário passadas:

  • joinChannel[1/3] é o método de entrada com parâmetro único para cenários RTC. Passe um token gerado usando Token authentication. Recomendamos este método para cenários RTC.

  • joinChannel[2/3] é um método de entrada com múltiplos parâmetros. Passe um token gerado usando Token authentication e também passe as informações do 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. Ao se comunicar com agentes de IA, defina isso como AliRtcCapabilityProfileAiHuman.

Nota

Se nenhuma configuração especial for aplicada, ao entrar em um canal, você assina streams de áudio e vídeo de todos os outros usuários no canal por padrão e envia seus streams de áudio e vídeo para usuários remotos por padrão. Para desativar a assinatura padrão, chame <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="ce6cfa82f9xzc">setDefaultSubscribeAllRemoteAudioStreams</a> e <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="e65b420fd5kj6">setDefaultSubscribeAllRemoteVideoStreams</a> antes de chamar esta interface para desativar a assinatura de streams de áudio ou vídeo.

Limitações

  • Após entrar com sucesso em um canal, para entrar em outro, você deve primeiro chamar <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="923190466431o">leaveChannel</a> para sair do canal atual e garantir que receba o callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="dfd794c32covq">onLeaveChannelResult</a> antes de poder entrar em outro canal.

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

  • Aplicativos com App IDs diferentes não podem interoperar.

  • Não é necessário chamar este método ao tentar novamente após uma falha na entrada.

Callbacks relacionados

Após chamar este método com sucesso, os seguintes callbacks são acionados:

  • O resultado da entrada do usuário local em um canal é retornado pelo callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6d2a213d7sl2" id="f83d0aff9btwh">onJoinChannelResult</a>.

  • Depois que você entra com sucesso no canal, usuários remotos acionam o callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#634626babfq9x" id="aeef817be3a0b">onRemoteUserOnLineNotify</a>.

Parâmetros

Nome

Tipo

Descrição

token

NSString*

As informações de autenticação obtidas do AppServer.

channelParam

AliRtcChannelParam

Os parâmetros para entrar no canal.

onResultWithUserId

void(^_Nullable)(NSInteger errCode,NSString * _Nonnull channel,NSInteger elapsed)

Este callback é invocado após a execução desta interface.

leaveChannel

Sai de um canal.

- (int)leaveChannel;

Após chamar este método, o SDK encerra a comunicação em tempo real e sai do canal atual.

Nota
  • Esta operação é assíncrona. Uma invocação bem-sucedida não resulta na saída imediata do canal. Aguarde o callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="e7c0222bacrpa">onLeaveChannelResult</a> para confirmar que a saída foi efetivada.

  • Depois de chamar leaveChannel, destrua a engine e defina a referência da engine como nil.

Quando chamar

  • Use este método quando precisar sair de um canal após ter entrado.

  • Caso já esteja em um canal e precise entrar em outro, chame este método primeiro.

Callbacks relacionados

  • Usuário local: Após a chamada deste método, o callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="ea2e36a41csu0">onLeaveChannelResult</a> é acionado para reportar o resultado da saída do canal.

  • Lado remoto: Após você chamar esta operação com sucesso, os usuários remotos acionam o callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#34876c27d7zv7" id="a50f534f21mew">onRemoteUserOffLineNotify</a>.

Descrição do retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

isInCall

Verifica se você está em um canal.

- (BOOL)isInCall;

Descrição do retorno

O valor YES indica que você está no canal. O valor NO indica que você não está no canal.

setClientRole

Define a função do usuário.

- (int)setClientRole:(AliRtcClientRole)role;

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

No modo interativo, antes de entrar em um canal:

  • Defina a função como streamer: O SDK publica automaticamente os fluxos de áudio e vídeo locais e assina os fluxos de outros streamers.

  • Defina a função como espectador: O SDK não publica fluxos de áudio ou vídeo locais, mas assina os fluxos de outros streamers.

Quando chamar

É possível chamar este método antes ou depois de entrar em um canal. Você pode definir a função antes de entrar ou alternar entre funções após a entrada.

Limitações

Este método só tem efeito no modo interativo, ou seja, quando você chama o método <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#fc9626a99f5kj" id="cd8138c77fv4r">setChannelProfile</a> e define o perfil do canal como AliRtcInteractivelive.

Recomendamos definir explicitamente a função do usuário antes de entrar no modo interativo.

Parâmetros

Nome

Tipo

Descrição

role

AliRtcClientRole

A função do usuário. O valor padrão é AliEngineClientRoleLive, que indica um espectador. Este parâmetro só tem efeito fora do modo de comunicação.

Descrição do Retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

getCurrentClientRole

Consulta a função de um usuário. Este método aplica-se apenas ao iOS.

- (AliRtcClientRole)getCurrentClientRole;

Valor de Retorno

Retorna a função do usuário.

refreshAuthInfo

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

- (int)refreshAuthInfo:(AliRtcAuthInfo *_Nonnull)authInfo;

Este método atualiza as informações de autenticação. Os tokens expiram após um determinado período e o SDK falhará ao tentar conectar-se ao servidor após a expiração.

Nota

Tanto este método quanto refreshAuthInfoWithToken atualizam as informações de autenticação. Este método atualiza tokens com múltiplos parâmetros, enquanto refreshAuthInfoWithToken atualiza tokens com um único parâmetro. Para geração de tokens, consulte Token authentication.

Quando chamar

Nos seguintes casos:

  • Ao receber o callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6766cdfb40z1a" id="c1cc6cbddb22o">onAuthInfoWillExpire</a> indicando que suas informações de autenticação estão prestes a expirar, recomendamos regenerar o token no lado do servidor e, em seguida, chamar este método para passar o novo token.

  • Se você não atualizar o token a tempo, o callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#b04cd67880ptu" id="13c9ccb2b6ghh">onAuthInfoExpired</a> será acionado para indicar que a autenticação expirou. Nesse ponto, é necessário regenerar o token e chamar joinChannel para entrar novamente no canal.

Parâmetros

Nome

Tipo

Descrição

authInfo

AliRtcAuthInfo *_Nonnull

As informações de autenticação.

Descrição do retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

refreshAuthInfoWithToken

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

- (int)refreshAuthInfoWithToken:(NSString *_Nonnull)token;

Este método atualiza o token. Os tokens expiram após um determinado período e o SDK falhará ao tentar conectar-se ao servidor após a expiração.

Nota
  • Tanto esta API quanto <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6a4495191bmd" id="eb171f6dc0n9p">refreshAuthInfo</a> servem para atualizar as informações de autenticação. Esta API atualiza o token para entrada em canal com um único parâmetro, enquanto refreshAuthInfo atualiza o token para entrada em canal com múltiplos parâmetros. Para mais informações sobre a geração de tokens, consulte Token Authentication.

  • Se o token não for atualizado prontamente, ele aciona <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#b04cd67880ptu" id="3fd3c64767aq8">onAuthInfoExpired</a> para notificar que a autenticação expirou. Nesse momento, você precisa chamar joinChannel para entrar novamente no canal.

Quando chamar

Recomendamos regenerar o token em seu servidor e chamar este método com o novo token no seguinte caso:

Ao receber o callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6766cdfb40z1a" id="b1dbfcb71d5ys">onAuthInfoWillExpire</a> informando que as informações de autenticação estão prestes a expirar.

Parâmetros

Nome

Tipo

Descrição

token

NSString *_Nonnull

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

Descrição do retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

publishLocalAudioStream

Define se uma faixa de áudio deve ser publicada.

- (int)publishLocalAudioStream:(BOOL)enable;

Este método controla a publicação do áudio capturado localmente. Por padrão, o SDK publica o áudio. Se não desejar publicar áudio por padrão, chame publishLocalAudioStream(false) antes de entrar no canal.

Quando chamar

É possível chamar este método antes ou depois de entrar em um canal. Chamá-lo antes da entrada modifica a configuração padrão e a alteração 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="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#86b2d8735bm71" id="e5ef180ba6e2i">onAudioPublishStateChanged</a> para reportar o estado mais recente da ingestão, e o cliente remoto aciona o callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6da9cf330aoer" id="299ef35806ttb">onRemoteTrackAvailableNotify</a> para reportar alterações nos fluxos de áudio e vídeo de um usuário remoto.

Parâmetros

Nome

Tipo

Descrição

enable

boolean

  • O valor YES especifica que a faixa de áudio local é publicada. Este é o valor padrão.

  • NO interrompe a ingestão do fluxo, sendo YES o padrão.

Descrição do Retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

isLocalAudioStreamPublished

Consulta se uma faixa de áudio está publicada.

- (BOOL)isLocalAudioStreamPublished;

Descrição do Retorno

YES indica que o envio está permitido. NO indica que o envio não está permitido.

setDefaultSubscribeAllRemoteAudioStreams

Define o comportamento padrão para aceitação de fluxos de áudio.

- (int)setDefaultSubscribeAllRemoteAudioStreams:(BOOL)sub;

Este método configura se o sistema deve assinar as faixas de áudio de usuários remotos por padrão. Essa configuração afeta o comportamento de assinatura para usuários que entram no canal posteriormente. A menos que tenha requisitos específicos, defina como true.

Quando chamar

É possível chamar este método antes ou depois de entrar em um canal.

  • Antes de entrar:

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

  • Após entrar:

    • Para interromper a assinatura padrão, chame <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="a467e60e4eyhk">setDefaultSubscribeAllRemoteAudioStreams</a>(false). O sistema não assinará fluxos de áudio de usuários que entrarem no canal posteriormente.

    • Após interromper a assinatura padrão, caso queira retomar a assinatura do fluxo de áudio de um usuário específico, chame a API <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#c8249fb568gms" id="9806dd9a750pf">subscribeRemoteAudioStream</a>. Para retomar a assinatura de vários usuários, faça chamadas individuais.

    • Depois de interromper a assinatura padrão, chamar <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="9507d6d3121uh">setDefaultSubscribeAllRemoteAudioStreams</a>(true) retoma apenas os fluxos de áudio dos usuários que entrarem no canal dali em diante, sem assinar os fluxos de áudio de usuários remotos que entraram enquanto a assinatura estava interrompida.

Parâmetros

Nome

Tipo

Descrição

sub

BOOL

  • YES indica a aceitação do fluxo de áudio do usuário.

  • O valor NO indica que o fluxo de áudio do usuário não será mais aceito. O valor padrão é YES.

Descrição do Retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

subscribeRemoteAudioStream

Assina ou interrompe a assinatura da faixa de áudio de um usuário remoto específico.

- (int)subscribeRemoteAudioStream:(NSString *_Nonnull)uid sub:(BOOL)sub;

Utilize esta interface para interromper ou retomar o fluxo de áudio de um usuário remoto específico. Para a maioria dos cenários, defina este parâmetro como true.

Nota

O SDK assina por padrão os fluxos de áudio de todos os usuários remotos quando você entra em uma sessão. Para modificar esse comportamento, chame <a baseurl="t2309850_v10_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="044cc0f710rfg">setDefaultSubscribeAllRemoteAudioStreams</a>(false) antes de entrar na sessão para cancelar essa configuração padrão.

Parâmetros

Nome

Tipo

Descrição

uid

NSString *_Nonnull

O ID do usuário remoto.

sub

BOOL

  • YES indica que você aceita o fluxo de áudio do usuário especificado.

  • O valor NO especifica que a faixa de áudio do usuário especificado não será assinada.

Descrição do Retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

subscribeAllRemoteAudioStreams

Assina ou interrompe a assinatura das faixas de áudio de todos os usuários remotos.

- (int)subscribeAllRemoteAudioStreams:(BOOL)sub;

Este método funciona como o interruptor geral para a assinatura de faixas de áudio remotas. Recomendamos defini-lo como YES. Defini-lo como NO causa o seguinte:

  • As faixas de áudio remotas na sessão atual deixam de ser assinadas.

  • Novos usuários que entrarem posteriormente não serão assinados.

  • Não é possível usar <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#c8249fb568gms" id="846b0dd501epf">subscribeRemoteAudioStream</a> para controlar individualmente o fluxo de áudio de um usuário específico.

Para retomar a assinatura, chame este método novamente com o parâmetro sub definido como YES.

Nota

Por padrão, o SDK assina os fluxos de áudio de todos os usuários remotos quando você entra em uma sessão. Para modificar esse comportamento, chame <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="86e8c09213k9y">setDefaultSubscribeAllRemoteAudioStreams</a>(false) antes de entrar na sessão para desativar essa configuração padrão.

Parâmetros

Nome

Tipo

Descrição

sub

BOOL

  • O valor YES especifica que as faixas de áudio de todos os usuários remotos são assinadas. Este é o valor padrão.

  • O valor NO especifica que as faixas de áudio de todos os usuários remotos não são assinadas.

Descrição do Retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

publishLocalVideoStream

Define se uma faixa de vídeo deve ser publicada.

- (int)publishLocalVideoStream:(BOOL)enable;

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

Nota

Por padrão, o SDK publica o fluxo de vídeo local. Para desativar esse recurso, chame publishLocalVideoStream(false) antes de entrar no canal.

Quando chamar

É possível chamar este método antes ou depois de entrar em um canal.

Se você chamar este método antes de entrar em um canal, ele modifica a configuração padrão e a definição 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="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#bd67711e63tnk" id="f966292202q3d">onVideoPublishStateChanged</a> para reportar o estado mais recente da ingestão do fluxo de áudio. O cliente remoto aciona o callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6da9cf330aoer" id="2fdc208ccczr1">onRemoteTrackAvailableNotify</a> para reportar alterações nos fluxos de áudio e vídeo do usuário remoto.

Parâmetros

Nome

Tipo

Descrição

enable

boolean

  • YES indica que o vídeo está sendo enviado.

  • NO desativa o envio. A configuração padrão é YES.

isLocalVideoStreamPublished

Consulta se uma faixa de vídeo está publicada.

- (BOOL)isLocalVideoStreamPublished;

Descrição do retorno

O valor YES indica que a faixa de vídeo está publicada. O valor NO indica que a faixa de vídeo não está publicada.

setDefaultSubscribeAllRemoteVideoStreams

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

- (int)setDefaultSubscribeAllRemoteVideoStreams:(BOOL)sub;

Por padrão, o SDK assina as faixas de vídeo dos usuários remotos. Use este método para alterar esse comportamento.

Nota

O SDK assina as faixas de áudio e vídeo dos usuários remotos por padrão ao entrar em um canal. Para alterar esse comportamento, chame este método antes de entrar no canal.

Quando chamar

É possível chamar este método antes ou depois de entrar em um canal.

  • Antes de entrar:

    • Use este método para desativar a assinatura padrão.

  • Após entrar:

    • Para desativar a assinatura padrão, chame setDefaultSubscribeAllRemoteVideoStreams(false). Você também deixará de assinar automaticamente os fluxos de áudio de usuários que entrarem no canal posteriormente.

    • Após interromper a assinatura padrão, chame a interface subscribeRemoteVideoStream para retomar a assinatura do fluxo de áudio de um usuário específico. Para retomar a assinatura de vários usuários, chame esta interface uma vez para cada usuário.

    • Depois de interromper a assinatura padrão, chamar setDefaultSubscribeAllRemoteVideoStreams(false) restaura apenas os fluxos de áudio dos usuários que entrarem no canal dali em diante.

Parâmetros

Nome

Tipo

Descrição

sub

boolean

  • YES indica que o fluxo de vídeo do usuário é aceito.

  • O valor NO especifica que as faixas de vídeo dos usuários remotos não são assinadas.

Descrição do Retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

subscribeRemoteVideoStream

Interrompa ou retome a assinatura de fluxos de vídeo de usuários remotos.

- (int)subscribeRemoteVideoStream:(NSString *_Nonnull)uid track:(AliRtcVideoTrack)track sub:(BOOL)sub;

Assine ou cancele a assinatura do fluxo de vídeo de um usuário especificado.

Nota

Por padrão, o SDK assina os fluxos de vídeo de todos os usuários remotos quando você entra em uma reunião. Para desativar essa configuração padrão, chame <a baseurl="t2309850_v10_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="97d89be88bvan">setDefaultSubscribeAllRemoteVideoStreams</a>(false) antes de entrar na reunião.

Quando chamar

É possível chamar este método antes ou depois de entrar em um canal.

Descrição

Nome

Tipo

Descrição

uid

NSString *

O ID do usuário, atribuído exclusivamente pelo AppServer.

track

AliRtcVideoTrack

O tipo de fluxo de vídeo.

sub

BOOL

Indica se deve assinar.

subscribeAllRemoteVideoStreams

Assina ou interrompe a assinatura das faixas de vídeo de todos os usuários remotos.

Nota

Este método atua como o interruptor geral para a assinatura de fluxos de vídeo remotos. Se definido como NO, ele interrompe a assinatura de todos os fluxos de vídeo remotos na sessão atual e impede que novos usuários que entrarem posteriormente sejam assinados — mesmo que setDefaultSubscribeAllRemoteVideoStreams:YES esteja definido.

- (int)subscribeAllRemoteVideoStreams:(BOOL)sub;

Este método serve como o interruptor geral para a assinatura de fluxos de vídeo remotos. Definir sub como false causa:

  • A interrupção da assinatura de todos os fluxos de vídeo remotos na sessão atual.

  • Novos usuários que entrarem posteriormente também não serão assinados (mesmo que a configuração de assinatura padrão <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="0464849a17dks">setDefaultSubscribeAllRemoteVideoStreams</a> esteja ativada).

  • Não é possível usar <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#1cc7ef76fdawz" id="498e782f414zz">subscribeRemoteVideoStream</a> para controlar individualmente o fluxo de áudio de um usuário específico.

Para retomar a assinatura, chame este método novamente com sub definido como true.

Nota

Por padrão, o SDK assina os fluxos de vídeo de todos os usuários remotos quando você entra em uma reunião. Para alterar esse comportamento, chame <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="317fa38ecf6ya">setDefaultSubscribeAllRemoteVideoStreams</a> antes de entrar na reunião para desativar essa configuração padrão.

Parâmetros

Nome

Tipo

Descrição

sub

BOOL

  • O valor YES especifica que as faixas de vídeo de todos os usuários remotos são assinadas. Este é o valor padrão.

  • NO indica que nenhum fluxo de vídeo será aceito. O valor padrão é YES.

Descrição do retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

subscribeRemoteMediaStream[1/2]

Interrompa ou retome o fluxo de mídia de um usuário remoto específico.

- (int)subscribeRemoteMediaStream:(NSString *_Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack subVideo:(BOOL)subVideo subAudio:(BOOL)subAudio;

Esta interface combina a assinatura de fluxos de áudio e vídeo remotos.

Related API operations

Diferente de subscribeRemoteMediaStream[2/2], esta interface usa dois parâmetros booleanos — subVideo e subAudio — para controlar a assinatura de fluxos de vídeo e áudio remotos, e o parâmetro videoTrack especifica qual fluxo de vídeo deve ser puxado.

Nota: Nesta API, o valor AliRtcVideoTrackNo de AliRtcVideoTrack é inválido, e defini-lo não produz efeito.

Parâmetros

Parâmetro

Tipo

Descrição

uid

String

O ID do usuário remoto.

videoTrack

AliRtcVideoTrack

O tipo de fluxo de vídeo.

subVideo

boolean

Define se deve haver assinatura da faixa de vídeo do usuário remoto. Valores válidos:

  • true (padrão): retoma a operação

  • false: interrompe a operação.

subAudio

boolean

Define se deve haver assinatura da faixa de áudio do usuário remoto. Valores válidos:

  • true (padrão): retoma a operação

  • false: interrompe a operação.

Descrição da resposta

Um valor igual a 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

subscribeRemoteMediaStream[2/2]

Permite interromper ou retomar o fluxo de mídia de um usuário remoto específico.

- (int)subscribeRemoteMediaStream:(NSString *_Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack audioTrack:(AliRtcAudioTrack)audioTrack;

Esta interface unifica as assinaturas dos fluxos remotos de áudio e vídeo.

Nota

Esta operação utiliza videoTrack e audioTrack para comunicar o estado desejado ao kit de desenvolvimento de software.

APIs relacionadas

Diferentemente de subscribeRemoteMediaStream[1/2], esta interface usa os parâmetros videoTrack e audioTrack para especificar o estado de assinatura desejado ao SDK em uma única chamada. Por exemplo:

  • Para assinar os fluxos de câmera e microfone, defina videoTrack como AliRtcVideoTrackCamera e audioTrack como AliRtcAudioTrackMic ao invocar o método.

  • Caso deseje cancelar a assinatura do fluxo de câmera, mas manter o microfone, atribua AliRtcVideoTrackNo e AliRtcAudioTrackMic aos parâmetros videoTrack e audioTrack, respectivamente, na próxima invocação do método.

  • Se quiser cancelar todas as faixas, configure videoTrack e audioTrack como AliRtcVideoTrackNo e AliRtcAudioTrackNo, respectivamente, ao chamar o método novamente.

  • Para assinar simultaneamente os fluxos de câmera e compartilhamento de tela, configure videoTrack como AliRtcVideoTrackBoth. O áudio segue lógica semelhante.

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *

O ID do usuário remoto.

videoTrack

AliRtcVideoTrack

O tipo de fluxo de vídeo.

audioTrack

AliRtcAudioTrack

O tipo de fluxo de áudio.

Descrição do retorno

Um valor de retorno igual a 0 indica sucesso. Qualquer outro valor indica falha.

subscribeRemoteDestChannelStream

Assina ou cancela a assinatura do fluxo de mídia de um usuário remoto específico entre canais.

- (int)subscribeRemoteDestChannelStream:(NSString *_Nonnull)channelId uid:(NSString *_Nonnull)uid track:(AliRtcVideoTrack)track subAudio:(BOOL)subAudio sub:(BOOL)sub;

Parâmetros

Parâmetro

Tipo

Descrição

channelId

String

O ID do canal remoto.

uid

String

O ID do usuário remoto.

track

AliRtcVideoTrack

A faixa de vídeo que você deseja assinar.

sub_audio

boolean

Define se deve haver assinatura da faixa de áudio do usuário remoto. Valores válidos:

  • true (padrão): recupera a operação.

  • false: interrompe a operação.

sub

boolean

Interrompe ou retoma a assinatura entre canais do fluxo de um usuário especificado.

Descrição do Retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

subscribeRemoteDestChannelAllStream

Assina todos os fluxos de usuários no canal de destino.

- (int)subscribeRemoteDestChannelAllStream:(NSString *_Nonnull)channelId track:(AliRtcVideoTrack)track subAudio:(BOOL)subAudio sub:(BOOL)sub;

Parâmetros

Nome

Tipo

Descrição

channelId

NSString *

O canal de destino.

videotrack

AliRtcVideoTrack

O tipo de fluxo de vídeo.

audioTrack

AliRtcAudioTrack

O tipo de fluxo de áudio.

subAudio

BOOL

Indica se deve haver assinatura do fluxo de áudio.

sub

BOOL

Indica se deve haver assinatura do fluxo de vídeo dos usuários no canal remoto.

Valor de retorno

0 indica sucesso. Qualquer outro valor indica falha.

setRemoteAudioVolume

Permite definir o volume do áudio remoto.

- (int)setRemoteAudioVolume:(NSString *_Nonnull)uid volume:(NSInteger)volume;
Nota

O UID deve ser definido após o usuário entrar no canal. Caso contrário, a operação falhará.

Parâmetros

Nome

Tipo

Descrição

uid

NSString *

O ID do usuário, atribuído exclusivamente pelo AppServer.

volume

NSInteger

O volume de reprodução. Intervalo válido: [0, 100]. 0 significa mudo. 100 significa volume original.

Valor de retorno

Um valor igual a 0 indica sucesso. Um valor diferente de zero indica falha.

muteLocalMic

Interrompe ou retoma a transmissão de dados de áudio local.

- (int)muteLocalMic:(BOOL)mute mode:(AliRtcMuteLocalAudioMode)mode;
Nota

Silenciar envia quadros de áudio vazios. A captura e a codificação de áudio continuam em execução.

Quando chamar

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

Callbacks relacionados

Após o sucesso da chamada, o usuário remoto aciona o callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3189c59d9fipb" id="1579c3523779c">onUserAudioMuted</a> para indicar se o usuário está silenciado.

Parâmetros

Nome

Tipo

Descrição

mute

BOOL

  • YES indica que o áudio local enviará quadros vazios.

  • NO indica que a operação normal será retomada. O valor padrão é NO.

mode

AliRtcMuteLocalAudioMode

O modo de silêncio. Padrão: silenciar tudo.

  • AliRtcMuteAudioModeDefault: Silencia todo o áudio, incluindo microfone e entrada externa.

  • AliRtcMuteAllAudioMode: Silencia todo o áudio, incluindo microfone e entrada externa.

  • AliRtcMuteOnlyMicAudioMode: silencia apenas o microfone.

Valores de retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

muteRemoteAudioPlaying

Permite interromper ou retomar a reprodução de áudio remoto.

- (int)muteRemoteAudioPlaying:(NSString *_Nonnull)uid mute:(BOOL)mute;- (int)muteRemoteAudioPlaying:(NSString *_Nonnull)uid mute:(BOOL)mute;- (int)muteRemoteAudioPlaying:(NSString *_Nonnull)uid mute:(BOOL)mute;

Esta API interrompe ou retoma a reprodução de áudio de um usuário remoto específico, sem afetar a recepção ou decodificação do fluxo de áudio remoto. Para cancelar a assinatura do fluxo de áudio de um usuário, chame <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#c8249fb568gms" id="dd9dbbad0bkni">subscribeRemoteAudioStream</a>.

Quando chamar

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

Parâmetros

Nome

Tipo

Descrição

uid

NSString *_Nonnull

O ID do usuário remoto.

mute

BOOL

  • O valor YES especifica que a reprodução deve ser interrompida.

  • NO indica que a reprodução não será retomada. O valor padrão é NO.

Descrição do Retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

muteAllRemoteAudioPlaying

Permite interromper ou retomar toda a reprodução de áudio remoto.

- (int)muteAllRemoteAudioPlaying:(BOOL)mute;

Esta API interrompe ou retoma a reprodução de todo o áudio remoto.

Nota

Este método interrompe apenas a reprodução. A recepção e a decodificação do fluxo permanecem inalteradas.

Quando chamar

Configure esta definição antes ou depois de entrar em um canal.

Parâmetros

Nome

Tipo

Descrição

mute

BOOL

  • O valor YES especifica que a reprodução deve ser interrompida.

  • O valor NO especifica que a reprodução deve ser retomada. Este é o valor padrão.

Descrição do Retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

startAudioCapture[1/2]

Inicia a coleta de áudio.

- (void)startAudioCapture;

Este método inicia a captura de áudio. Chame-o antes de entrar em um canal para iniciar a captura antecipadamente. Se você não chamar este método, o SDK gerenciará automaticamente o dispositivo de captura de áudio. Após chamar stopAudioCapture para parar a captura, chame este método novamente para reiniciá-la.

Quando chamar

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

Métodos relacionados

A API startAudioCapture[2/2] controla se o dispositivo de captura de áudio permanece ativado após você sair da reunião, com base nos parâmetros especificados.

Callbacks relacionados

Após a chamada deste método, o SDK aciona o callback onLocalAudioStateChanged para relatar alterações no status de captura de áudio local.

Descrição do retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

startAudioCapture[2/2]

Inicia a coleta de áudio.

- (void)startAudioCapture:(BOOL)keepAlive;

Desativa a captura do microfone após silenciar.

Este método inicia a captura de áudio. Chame-o antes de entrar em um canal para começar a captura antecipadamente. Se você não chamar este método, o SDK gerenciará 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 ativo após sair do canal por meio do parâmetro keepAlive.

Callbacks relacionados

Após chamar este método para alterar o status de captura de áudio local, obtenha atualizações de status por meio do callback onLocalAudioStateChanged.

Parâmetros

Parâmetro

Tipo

Descrição

keepAlive

boolean

O status do dispositivo de coleta de áudio após sair de um canal. Valores válidos:

  • true: O dispositivo de coleta de áudio permanece ligado após você sair de um canal.

  • false (padrão): O dispositivo de coleta de áudio é desligado após você sair de um canal.

Descrição do retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

stopAudioCapture

Interrompe a coleta de áudio.

- (void)stopAudioCapture;

Após chamar <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3103c368bexf8" id="ddef64f9b93zq">startAudioCapture</a> para ativar a captura de áudio de um dispositivo, chame este método para interrompê-la.

Callbacks relacionados

Ao chamar este método para modificar o status de captura de áudio local, recupere as alterações de status via callback onLocalAudioStateChanged.

Descrição do retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

enableSpeakerphone

Define o fone de ouvido ou o alto-falante como dispositivo de saída de áudio. Este método aplica-se apenas ao iOS.

- (int)enableSpeakerphone:(BOOL)enable;

Este método define o dispositivo de reprodução de áudio como alto-falante ou fone de ouvido após você entrar em um canal. Se você não chamar este método, o SDK usará a rota de áudio padrão.

O SDK define uma ordem de prioridade interna para roteamento de áudio e alterna automaticamente com base nos periféricos conectados: Fone com fio > Fone Bluetooth > Configuração do usuário > Configuração padrão. Portanto, este método não tem efeito quando há periféricos conectados. Para mais informações, consulte Audio routing settings.

Quando chamar

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

Métodos relacionados

O método <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#83be8cc066qqq" id="f8de149ef8so0">setDefaultAudioRoutetoSpeakerphone</a> modifica as configurações padrão de roteamento de áudio e define o dispositivo de saída de áudio atual.

Parâmetros

Nome

Tipo

Descrição

enable

BOOL

  • YES indica o modo de alto-falante.

  • NO indica o modo de auricular. O valor padrão é YES.

Descrição do Retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

isEnableSpeakerphone

Consulta se o dispositivo de saída de áudio atual é o fone de ouvido ou o alto-falante. Este método aplica-se apenas ao iOS.

- (BOOL)isEnableSpeakerphone;

Descrição do Retorno

Um valor YES indica que o dispositivo de saída de áudio atual é o alto-falante. Um valor NO indica que o dispositivo de saída de áudio atual é o fone de ouvido.

enableAudioVolumeIndication

Defina o intervalo de callback de volume e o fator de suavização.

- (int)enableAudioVolumeIndication:(NSInteger)interval smooth:(NSInteger)smooth reportVad:(NSInteger)reportVad;

Este método permite que o SDK relate periodicamente informações de volume dos usuários locais publicando conteúdo 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 chamar este método com sucesso, se houver usuários publicando no canal, o SDK acionará os seguintes callbacks no intervalo configurado:

  • O SDK relata o volume dos usuários que estão falando por meio do callback onAudioVolumeCallback. A frequência do callback depende do parâmetro interval.

  • Para detecção de atividade de voz, quando um orador ativo for detectado, o SDK relatará seu UID por meio do callback onActiveSpeaker.

Parâmetros

Nome

Tipo

Descrição

interval

NSInteger

O intervalo em que a detecção de volume é realizada. Unidade: milissegundos. O valor deve ser maior ou igual a 10. Recomendamos definir este parâmetro com um valor entre 300 e 500. Se o valor for menor ou igual a 0, os indicadores de volume e de identificação do orador serão desativados.

smooth

NSInteger

O fator de suavização. Valores válidos: 0 a 9. Um valor maior indica um grau maior de suavização. Um valor menor indica um grau menor de suavização, mas melhor desempenho em tempo real. Recomendamos definir o valor como 3.

reportVad

NSInteger

A chave usada para detectar quem está falando. Valores válidos:

  • 1: ativa a chave. Invoque o callback onAudioVolumeCallback para obter o status de cada pessoa que fala.

  • 0: desativa a chave.

Valor de retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

enableEarBack

Permite ativar o monitoramento in-ear.

- (int)enableEarBack:(BOOL)enable;

Este método ativa ou desativa o monitoramento in-ear. Para obter resultados ideais, recomendamos ativar o monitoramento in-ear ao usar fones de ouvido com fio ou Bluetooth.

Quando chamar

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

Descrição do parâmetro

Nome

Tipo

Descrição

enable

BOOL

  • O valor YES ativa o monitoramento in-ear.

  • O valor NO desativa o monitoramento in-ear. Este é o valor padrão.

Descrição do retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

setEarBackVolume

Define o volume do monitoramento in-ear.

- (int)setEarBackVolume:(NSInteger)volume;

Esta interface define o volume do monitoramento in-ear. Ela só entra em vigor após você ativar o monitoramento in-ear chamando <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#bd665d0f894ux" id="b0fa866c9bcuq">enableEarBack</a>.

Quando chamar

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

Parâmetros

Nome

Tipo

Descrição

volume

NSInteger

O valor deve estar no intervalo de 0 a 100. O padrão é 100.

Descrição do retorno

Um valor igual a 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

startAudioPlayer

Inicia a reprodução de áudio.

- (void)startAudioPlayer;
Nota

Chame este método para iniciar a reprodução de áudio antecipadamente. Se você não chamá-lo, o SDK iniciará a reprodução automaticamente após você assinar um fluxo de áudio.

stopAudioPlayer

Interrompe a reprodução de áudio.

- (void)stopAudioPlayer;
Nota

Chame este método para interromper a reprodução de áudio.

setPlayoutVolume

Define o volume de reprodução.

- (int)setPlayoutVolume:(NSInteger)volume;

Parâmetros

Nome

Tipo

Descrição

volume

Volume

Intervalo: [0..400]. [0..100] é o intervalo de volume original. [100..400] amplifica o volume.

Valor de retorno

Um valor de retorno igual a 0 indica sucesso, enquanto qualquer outro valor indica falha.

setRecordingVolume

Define o volume de gravação.

- (int)setRecordingVolume:(NSInteger)volume;

Parâmetros

Nome

Tipo

Descrição

volume

NSInteger

Intervalo: [0..400]. [0..100] é o volume original. [100..400] amplifica o volume.

Valor de retorno

Um valor de retorno igual a 0 indica sucesso. Qualquer outro valor indica falha.

playAudioFileTest

Reproduz um arquivo de áudio.

- (int)playAudioFileTest:(NSString *_Nonnull)filePath;
Nota

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

Parâmetros

Parâmetro

Tipo

Descrição

filePath

NSString *_Nonnull

O caminho do arquivo de áudio a ser reproduzido.

Valor de retorno

Um valor de retorno 0 indica sucesso. Qualquer outro valor indica falha.

stopAudioFileTest

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

- (int)stopAudioFileTest;
Nota

Chame este método antes de chamar joinChannel.

Valor de retorno

Um valor de retorno 0 indica sucesso. Qualquer outro valor indica falha.

startAudioCaptureTest

Ative a detecção do dispositivo de captura de áudio antes de uma chamada.

- (void)startAudioCaptureTest;
Nota

Este método só pode ser chamado antes de joinChannel. Tentativas posteriores falharão.

stopAudioCaptureTest

Detecte o dispositivo de coleta de áudio antes de encerrar a chamada.

- (void)stopAudioCaptureTest;
Nota

É obrigatório chamar este método antes de chamar joinChannel. Caso contrário, a chamada do método falhará.

setDefaultAudioRoutetoSpeakerphone

Define a saída de áudio padrão para o alto-falante. Por padrão, o áudio é reproduzido pelo alto-falante.

- (int)setDefaultAudioRouteToSpeakerphone:(BOOL)defaultToSpeakerphone;

Este método configura o dispositivo de rota de áudio padrão antes da entrada em um canal. É possível direcionar o áudio para o fone de ouvido ou para o alto-falante. O SDK utiliza o alto-falante por padrão. Para alterar esse comportamento, chame este método antes de entrar no canal.

O SDK define uma ordem de prioridade fixa para o roteamento de áudio e realiza a troca automática com base no status atual de conexão dos periféricos. A ordem de prioridade é: wired headset > Bluetooth headset > user settings > default settings. Portanto, se nenhum periférico estiver conectado e você não tiver configurado o roteamento de áudio via <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#f7d0d8b64fzkz" id="30798b686b5qk">enableSpeakerphone</a>, o SDK aplicará as configurações padrão.

Para mais informações sobre roteamento de áudio, consulte Audio routing settings.

Dispositivos móveis geralmente suportam duas rotas de áudio: fone de ouvido e alto-falante:

  • Ao usar o fone de ouvido, o som é mais baixo e exige que o telefone fique próximo ao ouvido. Isso oferece maior privacidade, sendo ideal para chamadas telefônicas.

  • Ao usar o alto-falante, o som é mais alto e audível sem precisar aproximar o telefone do ouvido, permitindo operação com as mãos livres.

Métodos relacionados

Esta API modifica as configurações padrão de roteamento de áudio. A API <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#f7d0d8b64fzkz" id="6001aa98ebapw">enableSpeakerphone</a> define o dispositivo de roteamento de áudio atual.

Quando chamar

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

Parâmetros

Nome

Tipo

Descrição

defaultToSpeakerphone

BOOL

Indica se o áudio deve ser roteado para o alto-falante. YES para alto-falante. NO para fone de ouvido.

Valor de retorno

Um valor de retorno 0 indica sucesso. Qualquer outro valor indica falha.

setAudioEffectVoiceChangerMode

Define o modo de alteração de voz.

- (int)setAudioEffectVoiceChangerMode:(AliRtcAudioEffectVoiceChangerMode)mode;

Parâmetros

Nome

Tipo

Descrição

mode

AliRtcAudioEffectVoiceChangerMode

O modo de alteração de voz. Valor padrão: AliRtcSdk_AudioEffect_Voice_Changer_OFF.

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

setAudioEffectPitchValue

Define o tom do áudio.

- (int)setAudioEffectPitchValue:(double)value;

Parâmetros

Nome

Tipo

Descrição

value

double

O valor do tom. Valores válidos: 0,5 a 2,0. O valor padrão é 1,0, o que indica que o tom permanece inalterado.

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

setAudioEffectReverbMode

Define o modo de reverberação.

- (int)setAudioEffectReverbMode:(AliRtcAudioEffectReverbMode)mode;

Parâmetros

Nome

Tipo

Descrição

mode

AliRtcAudioEffectReverbMode

O modo de reverberação. Valor padrão: AliRtcAudioEffectReverb_Off.

Descrição da resposta

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

setAudioEffectReverbParamType

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

- (int)setAudioEffectReverbParamType:(AliRtcAudioEffectReverbParamType)type value:(float)value;

Parâmetros

Nome

Tipo

Descrição

type

AliRtcAudioEffectReverbParamType

Padrão de reverberação para efeitos sonoros.

value

float

Especifica os valores dos parâmetros.

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

setAudioEffectBeautifyMode

Define um modo predefinido de embelezamento de voz.

- (int)setAudioEffectBeautifyMode:(AliRtcAudioEffectBeautifyMode)mode;

Este método configura modos integrados de embelezamento de voz no SDK. É adequado para cenários como transmissões ao vivo de voz, karaokê e aplicativos sociais baseados em voz, onde é necessária melhoria na qualidade vocal. A seleção de diferentes modos de embelezamento altera as características vocais percebidas — por exemplo, aumentando a riqueza ou a clareza — para melhorar a experiência auditiva dos usuários remotos.

Quando chamar

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

Parâmetros

Parâmetro

Tipo

Descrição

mode

AliRtcAudioEffectBeatifyMode

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

Descrição do retorno

  • 0: Sucesso.

  • Diferente de zero: Falha.

setAudioEffectEqualizationParam

Define parâmetros do equalizador de áudio (EQ) para ajustar o ganho de bandas de frequência específicas.

- (int)setAudioEffectEqualizationParam:(AliRtcAudioEffectEqualizationBandFrequency)bandIndex gain:(float)gain;

Este método aplica ajustes de equalizador gráfico à voz ou sinais de áudio capturados localmente. É possível ajustar o ganho em decibéis (dB) para dez bandas de frequência fixas, personalizando a qualidade tonal. Este método é indicado para otimizar a clareza da fala, aprimorar a qualidade da voz e reduzir ruídos.

O equalizador suporta ajustes de espectro completo de 31 Hz a 16 kHz em dez bandas de frequência padrão. O ganho de cada banda pode ser ajustado independentemente de -15 dB a 15 dB. O ganho padrão é 0 dB, o que indica ausência de reforço ou atenuação.

Limitações

  • É necessário ativar o embelezamento de voz chamando setAudioEffectBeautifyMode antes de usar o equalizador.

Parâmetros

Parâmetro

Tipo

Descrição

bandIndex

AliRtcAudioEffectEqualizationBandFrequency

O índice da banda de frequência, correspondente a uma frequência central (31 Hz a 16 kHz).

gain

float

O valor de ganho em dB. Intervalo válido: [-15, 15].

Descrição do retorno

0: Sucesso.

Diferente de zero: Falha.

addExternalAudioStream

Adiciona uma faixa de áudio externa.

- (int)addExternalAudioStream:(AliRtcExternalAudioStreamConfig *_Nonnull)config;

Para adicionar um stream de áudio externo, siga estas etapas:

  1. Chame a interface <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#d71bbfd2f242b" id="c310321e9eu35">addExternalAudioStream</a> para adicionar o stream de áudio externo e obter seu ID.

  2. Chame pushExternalAudioStream para alimentar o stream com dados de áudio.

  3. Ao término da chamada, chame <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#282d70095duaw" id="16f621608d94x">removeExternalAudioStream</a> para remover o stream de áudio externo.

Para publicar áudio capturado personalizado em um canal, consulte Custom audio capture.

Parâmetros

Nome

Tipo

Descrição

config

AliRtcExternalAudioStreamConfig

A configuração da faixa de áudio externa.

Descrição do retorno

Um valor maior que 0 indica que a chamada foi bem-sucedida e representa o ID da faixa de áudio externa. Um valor menor ou igual a 0 indica falha na chamada.

pushExternalAudioStream

Importa dados de áudio externos.

- (int)pushExternalAudioStream:(int)streamId rawData:(AliRtcAudioFrame * _Nonnull)audioFrame;

Este método alimenta dados de áudio em um stream especificado. Siga estas etapas:

  1. Chame <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#d71bbfd2f242b" id="0a353f7272shu">addExternalAudioStream</a> para adicionar um stream de áudio externo e obter o ID do stream de áudio externo.

  2. Chame este método para alimentar o stream criado com dados de áudio.

  3. Ao término da chamada, chame <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#282d70095duaw" id="a9ebc8d599dz4">removeExternalAudioStream</a> para remover o stream de áudio externo.

Para publicar áudio capturado personalizado em um canal, consulte Custom audio capture.

Parâmetros

Nome

Tipo

Descrição

streamId

int

O ID da faixa de áudio externa.

audioFrame

AliRtcAudioFrame

Os dados de áudio.

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

setExternalAudioStream:publishVolume

Defina o volume para ingestão de stream de áudio externo.

- (int)setExternalAudioStream:(int)streamId
                publishVolume:(int)publishVolume;

Parâmetros

Nome

Tipo

Descrição

streamId

int

O ID da faixa de áudio externa.

publishVolume

int

O volume do áudio externo para ingestão de stream.

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

getExternalAudioStreamPublishVolume

Consulta o volume do áudio externo para ingestão de stream.

- (int)getExternalAudioStreamPublishVolume:(int)streamId;

Parâmetros

Nome

Tipo

Descrição

streamId

int

O ID da faixa de áudio externa.

Descrição do retorno

Os valores válidos de volume variam de 0 a 100. Um valor menor que 0 indica falha na chamada.

setExternalAudioStream:playoutVolume

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

- (int)setExternalAudioStream:(int)streamId
                playoutVolume:(int)playoutVolume;

Parâmetros

Nome

Tipo

Descrição

streamId

int

O ID da faixa de áudio externa.

playoutVolume

int

O volume de reprodução.

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

getExternalAudioStreamPlayoutVolume

Consulta o volume de reprodução do áudio externo.

- (int)getExternalAudioStreamPlayoutVolume:(int)streamId;

Parâmetros

Nome

Tipo

Descrição

streamId

int

O ID da faixa de áudio externa.

Descrição da resposta

Os valores válidos de volume variam de 0 a 100. Um valor menor que 0 indica falha na chamada.

removeExternalAudioStream

Exclua o stream de áudio externo.

- (int)removeExternalAudioStream:(int)streamId;

Este método remove o stream de áudio externo para o streamId especificado e é a contraparte do método addExternalAudioStream.

Quando chamar

Para usar o recurso de entrada de áudio personalizada, chame o método addExternalAudioStream para adicionar um stream de áudio e obter o ID do stream de áudio externo e, em seguida, chame a interface pushExternalAudioStream para enviar seus dados de áudio ao SDK. Quando desejar interromper a entrada de áudio personalizada, chame o método correspondente para remover o stream de áudio externo e liberar recursos.

Parâmetros

Nome

Tipo

Descrição

streamId

int

O ID do stream de áudio externo.

Valor de retorno

0 indica sucesso. Qualquer outro valor indica falha.

getAudioFileInfo

Recupera informações do arquivo de áudio.

- (int)getAudioFileInfo:(NSString *_Nonnull)filePath;
Nota

Interface assíncrona. Você pode recuperar informações do arquivo de áudio usando {@link onAudioFileInfo:errorCode:}.

Parâmetros

Nome

Tipo

Descrição

filePath

NSString *

O caminho do arquivo.

startAudioAccompanyWithFile

Inicie a mixagem de acompanhamento.

- (int)startAudioAccompanyWithFile:(NSString *_Nonnull)filePath config:(AliRtcAudioAccompanyConfig *_Nonnull)config;
Nota

Este método é assíncrono. Para monitorar o status do reprodutor, use o callback onAudioAccompanyStateChanged.

Parâmetros

Nome

Tipo

Descrição

filePath

NSString *

O caminho do arquivo.

config

AliRtcAudioAccompanyConfig *

A configuração do acompanhamento.

Valor de retorno

0 indica sucesso. Outros valores indicam falha.

stopAudioAccompany

Interrompe a mixagem de acompanhamento de áudio.

- (int)stopAudioAccompany;

Valor de retorno

Um valor de retorno 0 indica sucesso. Qualquer outro valor indica falha.

setAudioAccompanyVolume

Defina o volume do acompanhamento.

- (int)setAudioAccompanyVolume:(NSInteger)volume;
Nota

É possível definir tanto o volume de reprodução local quanto o volume de ingestão de stream para o acompanhamento.

Parâmetros

Nome

Tipo

Descrição

volume

NSInteger

O volume do acompanhamento. Intervalo válido: [0, 100].

Valor de retorno

0 indica sucesso; outros valores indicam falha.

setAudioAccompanyPublishVolume

Define o volume de publicação do acompanhamento de áudio.

- (int)setAudioAccompanyPublishVolume:(NSInteger)volume;
Nota

Este método define o volume dos streams publicados.

Parâmetros

Nome

Tipo

Descrição

volume

NSInteger

O volume do acompanhamento. Intervalo válido: [0, 100].

Valor de retorno

Retorna 0 em caso de sucesso. Um código de erro é retornado em caso de falha.

getAudioAccompanyPublishVolume

Recupere o nível de volume para publicação do acompanhamento de áudio.

- (int)getAudioAccompanyPublishVolume;

Valor de retorno

Um valor no intervalo [0, 100] indica sucesso. Qualquer outro valor indica falha.

setAudioAccompanyPlayoutVolume

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

- (int)setAudioAccompanyPlayoutVolume:(NSInteger)volume;

Parâmetros

Nome

Tipo

Descrição

volume

NSInteger

O volume do acompanhamento. Intervalo válido: [0, 100].

Valor de retorno

Um valor de retorno 0 indica sucesso. Qualquer outro valor indica falha.

getAudioAccompanyPlayoutVolume

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

- (int)getAudioAccompanyPlayoutVolume;

Valor de retorno

Um valor no intervalo de 0 a 100 indica sucesso, enquanto qualquer outro valor indica falha.

pauseAudioAccompany

Pausa a mixagem de acompanhamento de áudio.

- (int)pauseAudioAccompany;

Valor de retorno

Um valor de retorno 0 indica sucesso. Qualquer outro valor indica falha.

resumeAudioAccompany

Retoma a mixagem de acompanhamento de áudio.

- (int)resumeAudioAccompany;

Valor de retorno

0 indica sucesso. Outros valores indicam falha.

getAudioAccompanyDuration

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

- (int)getAudioAccompanyDuration;

Valor de retorno

Retorna a duração do arquivo de acompanhamento em milissegundos em caso de sucesso (>= 0). Retorna um valor menor que 0 se a operação falhar.

getAudioAccompanyCurrentPosition

Recupere o progresso de reprodução do arquivo de acompanhamento em milissegundos.

- (int)getAudioAccompanyCurrentPosition;

Valor de retorno

Um valor igual ou superior a 0 indica a posição atual de reprodução em milissegundos. Um valor negativo indica falha.

setAudioAccompanyPosition

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

- (int)setAudioAccompanyPosition:(int)pos;

Parâmetros

Nome

Tipo

Descrição

pos

int

A posição da barra de progresso em milissegundos.

Valor de retorno

Um valor de retorno 0 indica sucesso. Qualquer outro valor indica falha.

preloadAudioEffectWithSoundId

Pré-carrega um efeito sonoro.

- (int)preloadAudioEffectWithSoundId:(NSInteger)soundId filePath:(NSString *_Nonnull)filePath;

Parâmetros

Nome

Tipo

Descrição

soundId

NSInteger

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

filePath

NSString *_Nonnull

O caminho do efeito sonoro.

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

unloadAudioEffectWithSoundId

Exclui um efeito sonoro pré-carregado.

- (int)unloadAudioEffectWithSoundId:(NSInteger)soundId;

Parâmetros

Nome

Tipo

Descrição

soundId

NSInteger

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

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

playAudioEffectWithSoundId

Inicia a reprodução de um efeito sonoro.

- (int)playAudioEffectWithSoundId:(NSInteger)soundId filePath:(NSString *_Nonnull)filePath cycles:(NSInteger)cycles publish:(BOOL)publish;

Parâmetros

Nome

Tipo

Descrição

soundId

NSInteger

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

filePath

NSString *_Nonnull

O caminho do efeito sonoro.

cycles

NSInteger

O número de loops de reprodução. Este parâmetro pode ser definido como -1 ou um inteiro positivo.

publish

BOOL

Publicar?

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

stopAudioEffectWithSoundId

Interrompe a reprodução de um efeito sonoro.

- (int)stopAudioEffectWithSoundId:(NSInteger)soundId;

Parâmetros

Nome

Tipo

Descrição

soundId

NSInteger

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

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

stopAllAudioEffects

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

- (int)stopAllAudioEffects;

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

pauseAudioEffectWithSoundId

Pausa a reprodução de um efeito sonoro.

- (int)pauseAudioEffectWithSoundId:(NSInteger)soundId;

Parâmetros

Nome

Tipo

Descrição

soundId

NSInteger

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

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

pauseAllAudioEffects

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

- (int)pauseAllAudioEffects;

Descrição da resposta

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

resumeAudioEffectWithSoundId

Retoma a reprodução de um efeito sonoro.

- (int)resumeAudioEffectWithSoundId:(NSInteger)soundId;

Parâmetros

Nome

Tipo

Descrição

soundId

NSInteger

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

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

resumeAllAudioEffects

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

- (int)resumeAllAudioEffects;

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

setAudioEffectPublishVolumeWithSoundId

Define o volume de um efeito sonoro para ingestão de stream.

- (int)setAudioEffectPublishVolumeWithSoundId:(NSInteger)soundId volume:(NSInteger)volume;

Parâmetros

Nome

Tipo

Descrição

soundId

NSInteger

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

volume

NSInteger

O volume do áudio mixado. Valores válidos: 0 a 100. Valor padrão: 50.

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

getAudioEffectPublishVolumeWithSoundId

Consulta o volume de um efeito sonoro para ingestão de stream.

- (int)getAudioEffectPublishVolumeWithSoundId:(NSInteger)soundId;

Parâmetros

Nome

Tipo

Descrição

soundId

NSInteger

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

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica falha na chamada.

setAllAudioEffectsPublishVolume

Define o volume para mixagem de todos os efeitos sonoros na ingestão de stream.

- (int)setAllAudioEffectsPublishVolume:(NSInteger)volume;

Parâmetros

Name

Type

Description

volume

NSInteger

Volume do áudio mixado. Valores válidos: 0 a 100. Valor padrão: 50.

Descrição da resposta

O valor 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

setAudioEffectPlayoutVolumeWithSoundId

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

- (int)setAaudioEffectPlayoutVolumeWithSoundId:(NSInteger)soundId volume:(NSInteger)volume;

Parâmetros

Name

Type

Description

soundId

NSInteger

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

volume

NSInteger

Volume do áudio mixado. Valores válidos: 0 a 100. Valor padrão: 50.

Descrição do retorno

O valor 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

getAudioEffectPlayoutVolumeWithSoundId

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

- (int)getAudioEffectPlayoutVolumeWithSoundId:(NSInteger)soundId;

Parâmetros

Name

Type

Description

soundId

NSInteger

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

Descrição do retorno

O valor 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

setAllAudioEffectsPlayoutVolume

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

- (int)setAllAudioEffectsPlayoutVolume:(NSInteger)volume;

Parâmetros

Name

Type

Description

volume

NSInteger

Volume do áudio mixado. Valores válidos: 0 a 100. Valor padrão: 50.

Descrição do retorno

O valor 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

startRecord

Inicia a gravação de arquivos de mídia.

- (BOOL)startRecord:(AliRtcRecordType)recordType recordFormat:(AliRtcRecordFormat)recordFormat filePath:(NSString*)filePath audioConfig:(AliRtcRecordAudioConfig*)audioConfig videoConfig:(AliRtcRecordVideoConfig*)videoConfig;

Parâmetros

Parameter

Type

Description

recordType

AliRtcRecordType

Tipo de gravação.

recordFormat

AliRtcRecordFormat

Formato de gravação.

filePath

NSString *

Nome e caminho do arquivo para gravação.

audioConfig

AliRtcRecordAudioConfig *

Configuração de áudio.

videoConfig

AliRtcRecordVideoConfig *

Configuração de vídeo.

Descrição do retorno

O valor TRUE indica sucesso. Qualquer outro valor indica falha.

Nota
  • Ao gravar fluxos de vídeo, chame este método somente após o sucesso do envio do fluxo (onVideoPublishStateChanged). Este método grava fluxos de vídeo codificados localmente e os salva no dispositivo.

  • Na gravação de fluxos de áudio, o sistema registra a mixagem do áudio local e remoto.

stopRecord

Interrompe a gravação de arquivos de mídia.

- (void)stopRecord 

Parâmetros

Nenhum.

setLocalViewConfig

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

- (int)setLocalViewConfig:(AliVideoCanvas *_Nullable)viewConfig forTrack:(AliRtcVideoTrack)track;

Este método configura a visualização da pré-visualização local. Ao chamá-lo, o fluxo de vídeo local é vinculado à visualização de exibição, e o modo de renderização, modo de espelhamento e ângulo de rotação para a visualização do usuário local são configurados. Isso afeta apenas a pré-visualização local, não o envio do fluxo. Para configurar as visualizações de usuários remotos, chame setRemoteViewConfig.

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

  • Para redefinir o parâmetro renderMode de AliVideoCanvas: rendering canvas durante a reprodução, modifique apenas o parâmetro renderMode e mantenha todos os outros inalterados.

  • Para redefinir o parâmetro mirrorMode de AliVideoCanvas: rendering canvas durante a reprodução, modifique apenas o parâmetro mirrorMode e mantenha todos os outros inalterados.

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

Quando chamar

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

Descrição dos parâmetros

Name

Type

Description

viewConfig

AliVideoCanvas

*_Nullable

Configuração de renderização, incluindo a visualização e o modo de renderização.

track

AliRtcVideoTrack

Tipo de faixa de vídeo.

Descrição do retorno

O valor 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

setCameraCapturerConfiguration

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

- (int)setCameraCapturerConfiguration:(AliRtcCameraCapturerConfiguration* _Nonnull)config;

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

Quando chamar

Defina isso antes de ligar a câmera. Por exemplo, antes de:

  • startPreview

  • joinChannel (Join Channel)

Parâmetros

Name

Type

Description

config

AliRtcCameraCapturerConfiguration

* _Nonnull

Preferências de captura da câmera. Valores padrão das propriedades relacionadas:

  • preference: 0

  • cameraDirection: 0

  • fps: 0

  • cameraCaptureProfile: 0

  • disableVideoCaptureReverse: -1

  • enableCameraMacroFocus: -1

  • captureObserverOriginal: -1

  • nativeBufferObserver: -1

  • captureCallbackCvpixelbufferToRaw: -1

"-1" indica o uso das configurações padrão do SDK.

Descrição do retorno

O valor 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

enableLocalVideo

Desativa ou reativa a captura de vídeo local.

- (int)enableLocalVideo:(BOOL)enable;

Este método ativa ou desativa a captura de vídeo local. Quando desativada, a pré-visualização local e o envio do fluxo não exibem vídeo. No entanto, o recebimento de vídeo remoto permanece inalterado. Se você desativar a captura da câmera local, a pré-visualização e o envio do fluxo congelarão no último quadro.

Nota

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

Quando chamar

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

Callbacks relacionados

  • Após chamar este método com sucesso, o callback onUserVideoEnabled notifica os usuários remotos.

Parâmetros

Name

Type

Description

enable

BOOL

O valor YES reativa a captura de vídeo local. O valor NO desativa a captura de vídeo local. Valor padrão: YES.

Descrição do retorno

O valor 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

muteLocalCamera

Interrompe ou retoma a transmissão de dados de vídeo local.

- (int)muteLocalCamera:(BOOL)mute forTrack:(AliRtcVideoTrack)track;

Chame este método para enviar quadros pretos durante a publicação. A pré-visualização local continua sendo exibida normalmente. Os módulos de captura, codificação e transmissão permanecem ativos, enviando apenas quadros pretos.

Nota

Este método controla apenas se quadros pretos são enviados em uma faixa de vídeo específica. Ele não interrompe a captura de vídeo nem a transmissão de dados. Para desativar a captura, use o método enableLocalVideo. Para interromper a transmissão de dados de vídeo, use o método publishLocalVideoStream.

Descrição dos parâmetros

Name

Type

Description

mute

BOOL

YES envia quadros pretos para os dados de vídeo. NO, o valor padrão, retoma a operação normal.

track

AliRtcVideoTrack

Tipo de faixa de vídeo cujo estado de publicação você deseja alterar.

Descrição do retorno

O valor 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

setRemoteViewConfig

Define a visualização de renderização e os parâmetros de desenho para a faixa de vídeo de um usuário remoto.

- (int)setRemoteViewConfig:(AliVideoCanvas *_Nullable)canvas uid:(NSString *_Nonnull)uid forTrack:(AliRtcVideoTrack)track;

Este método anexa a visualização de exibição para o fluxo de vídeo de um usuário remoto específico e define propriedades para sua exibição local, como modo de renderização, modo de espelhamento e ângulo de rotação. Isso afeta apenas a imagem de vídeo vista pelo usuário local. Para definir a visualização de pré-visualização local, chame <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#fea843803078q" id="b6f22fe87a2es">setLocalViewConfig</a>.

Quando chamar

Recomendamos chamar este método ao receber o callback onRemoteTrackAvailableNotify, acionado quando o vídeo de um usuário remoto fica disponível.

Parâmetros

Name

Type

Description

canvas

AliVideoCanvas

*_Nullable

Configuração de renderização, incluindo a visualização e o modo de renderização.

uid

NSString *_Nonnull

ID do usuário.

track

AliRtcVideoTrack

Tipo de faixa de vídeo a ser configurada.

Descrição da resposta

O valor 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

isCameraOn

Verifica se a câmera está ligada.

- (BOOL)isCameraOn;

Descrição da resposta

O valor YES indica que a câmera está ligada. O valor NO indica que a câmera está desligada.

setVideoEncoderConfiguration

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

- (void)setVideoEncoderConfiguration:(AliRtcVideoEncoderConfiguration* _Nonnull)config;

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

Nota

Todos os parâmetros configurados possuem intervalos válidos. Se você especificar um valor inválido, o SDK o ajustará automaticamente.

Quando chamar

Chame este método antes ou depois de entrar em um canal. Para definir as propriedades de codificação do fluxo da câmera uma vez por sessão, recomendamos chamá-lo antes de entrar.

Limitações

Tanto este método quanto setVideoMirrorMode controlam o espelhamento do fluxo de vídeo. Recomendamos usar apenas um deles. O uso simultâneo pode causar sobreposição de efeitos de espelhamento, resultando em comportamento incorreto.

Parâmetros

Name

Type

Description

config

AliRtcVideoEncoderConfiguration

* _Nonnull

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

  • dimensions: [640, 480]

  • frameRate: 15

  • bitrate: 0

  • mirrorMode: 0

  • keyFrameInterval: Intervalo de quadros-chave em milissegundos. Valor padrão: 0, indicando que o SDK o controla internamente.

  • forceStrictKeyFrameInterval: Se deve forçar o codificador a seguir estritamente o intervalo de quadros-chave configurado. Valor padrão: false.

  • orientationMode: 0

  • rotation: 0

  • codecType: AliRtcVideoCodecTypeDefault

  • encoderType: AliRtcVideoEncodeCodecTypeDefault

  • seiForceFrontIFrame: -1

  • enableDynamicEncode: -1

  • disableDipenseResolutionChange: -1

  • enableDowngrade: -1

  • enableH264BFrame: -1

  • enableHevcBFrame: -1

  • backgroundHardwareToSoftware: -1

-1 significa o uso dos padrões internos do SDK.

setVideoDecoderConfiguration

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

- (void)setVideoDecoderConfiguration:(AliRtcVideoDecoderConfiguration* _Nonnull)config;

Este método define os parâmetros de decodificação de vídeo para o fluxo da câmera.

Quando chamar

Chame este método antes de entrar na reunião.

Parâmetros

Name

Type

Description

config

AliRtcVideoDecoderConfiguration

* _Nonnull

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

  • codecType: AliRtcVideoCodecTypeDefault

  • enableDecoderBframe: -1

  • backgroundHardwareToSoftware: -1

"-1" indica o uso das configurações padrão do SDK.

switchCamera

Alterna entre as câmeras frontal e traseira. Por padrão, a câmera frontal é utilizada. Este método aplica-se apenas ao iOS.

- (int)switchCamera;

Este método controla se a câmera frontal ou traseira é usada. Alterne dinamicamente as câmeras durante a execução do aplicativo com base no hardware disponível, sem reiniciar o fluxo de vídeo ou reconfigurar a fonte de vídeo.

Quando chamar

Chame este método somente após a câmera ter sido ligada com sucesso.

Limitações

Este método é suportado apenas nas plataformas iOS e Android.

Descrição do retorno

O valor 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

getCurrentCameraDirection

Consulta o tipo atual da câmera. Por padrão, a câmera frontal é utilizada. Este método aplica-se apenas ao iOS.

- (AliRtcCameraDirection)getCurrentCameraDirection;

Descrição do retorno

Retorna uma enumeração de direção da câmera.

startPreview

Inicia uma pré-visualização local. A câmera é ligada automaticamente.

- (int)startPreview;

Esta API habilita a pré-visualização de vídeo local e abre automaticamente a câmera. Para interromper a pré-visualização local, chame a API stopPreview.

Nota

leaveChannel sai do canal e interrompe automaticamente a pré-visualização local. Se você não estiver enviando um fluxo de câmera, a câmera será desligada automaticamente.

Quando chamar

  • Antes de chamar este método, defina a visualização de pré-visualização usando setLocalViewConfig. Caso contrário, a pré-visualização falhará, mas o envio do fluxo permanecerá inalterado.

  • Chame este método antes de joinChannel para iniciar a pré-visualização antecipadamente. A câmera inicia automaticamente.

Descrição do retorno

O valor 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

stopPreview

Interrompe uma pré-visualização local.

- (int)stopPreview;

Este método interrompe a pré-visualização de vídeo local e desativa a câmera. Após a interrupção, a pré-visualização local congela no último quadro. O envio do fluxo não é afetado.

Nota

leaveChannel interrompe automaticamente a pré-visualização local. Se você não estiver publicando o fluxo da câmera, ela também será desligada automaticamente.

Quando chamar

Chame este método para interromper a pré-visualização.

Descrição do retorno

O valor 0 indica que a chamada foi bem-sucedida. Qualquer outro valor indica falha na chamada.

setCameraZoom

Define o zoom da câmera.

 - (int)setCameraZoom:(float)zoom;

Parâmetros

Name

Type

Description

zoom

float

Nível de zoom. Intervalo: de 1 até o fator máximo de zoom suportado pela câmera.

Valor de retorno

Retorna 0 em caso de sucesso. Outros valores indicam falha.

GetCameraMaxZoomFactor

Recupera o fator máximo de zoom da câmera.

 - (float)GetCameraMaxZoomFactor;

Valor de retorno

Fator máximo de zoom da câmera.

GetCurrentZoom

Obtém o nível atual de zoom da câmera.

- (float)GetCurrentZoom;

Valor de retorno

Nível atual de zoom da câmera.

SetExposure

Define o nível de exposição da câmera.

- (int)SetExposure:(float)exposure;

Parâmetros

Name

Type

Description

exposure

float

Nível de exposição.

Valor de retorno

0 indica sucesso. Qualquer outro valor indica falha.

GetCurrentExposure

Obtém a exposição da câmera.

- (float)GetCurrentExposure;

Valor de retorno

Nível de exposição da câmera.

GetMinExposure

Obtém a exposição mínima da câmera.

- (float)GetMinExposure;

Valor de retorno

Nível mínimo de exposição da câmera.

GetMaxExposure

Recupera o nível máximo de exposição da câmera.

- (float)GetMaxExposure;

Valor de retorno

Nível máximo de exposição da câmera.

setCameraFlash

Ativa ou desativa o flash da câmera.

- (int)setCameraFlash:(BOOL)flash;

Parâmetros

Name

Type

Description

flash

BOOL

Se deve ativar o flash.

Valor de retorno

Um valor de retorno 0 indica sucesso. Qualquer outro valor indica falha.

isCameraFocusPointSupported

Verifica se o foco manual é suportado.

- (BOOL)isCameraFocusPointSupported;

Valor de retorno

Retorna TRUE se o foco manual for suportado e FALSE caso contrário.

isCameraExposurePointSupported

A câmera suporta a definição de um ponto de exposição?

- (BOOL)isCameraExposurePointSupported;

Valor de retorno

TRUE indica que a definição de um ponto de exposição é suportada. FALSE indica que não é suportada.

setCameraFocusPoint

Define o ponto de foco manual para a câmera.

- (int)setCameraFocusPoint:(CGPoint)point;

Parâmetros

Name

Type

Description

point

CGPoint

Coordenada do ponto de foco. Permanece ativo até ser alterado.

Valor de retorno

Retorna 0 em caso de sucesso. Qualquer outro valor indica falha.

setCameraExposurePoint

Define o valor de exposição no ponto especificado.

- (int)setCameraExposurePoint:(CGPoint)point;

Parâmetros

Name

Type

Description

point

CGPoint

Coordenada do ponto de foco. Permanece ativo até ser alterado.

Valor de retorno

Um valor de retorno 0 indica sucesso. Qualquer outro valor indica falha.

isCameraAutoFocusFaceModeSupported

A câmera suporta foco facial?

- (BOOL)isCameraAutoFocusFaceModeSupported;

Valor de retorno

O valor TRUE indica que o autofoco facial é suportado, e o valor FALSE indica que não.

setCameraAutoFocusFaceModeEnabled

Ativa ou desativa o autofoco facial.

- (BOOL)setCameraAutoFocusFaceModeEnabled:(BOOL)enable;

Parâmetros

Name

Type

Description

point

CGPoint

Coordenada do ponto de foco. Permanece ativo até ser alterado.

Valor de retorno

Um valor de retorno TRUE indica sucesso. Um valor de retorno FALSE indica falha.

setVideoMirrorMode

Define o modo de espelhamento de vídeo.

- (int)setVideoMirrorMode:(AliRtcVideoPipelineMirrorMode)mirrorMode;

Define se o espelhamento deve ser aplicado à pré-visualização local e aos fluxos de vídeo publicados.

Nota

Este método tem precedência sobre setLocalViewConfig e setVideoEncoderConfiguration, e recomendamos usá-lo para configurar o espelhamento.

Quando chamar

Chame este método dinamicamente antes ou depois de entrar em um canal. O SDK armazena o estado e aplica o espelhamento durante a pré-visualização ou codificação (envio do fluxo).

Limitações

Este método se sobrepõe a setLocalViewConfig e setVideoEncoderConfiguration, ambos compatíveis com o parâmetro mirrorMode. Recomendamos usar apenas este método.

Parâmetros

Nome

Tipo

Descrição

mirrorMode

AliRtcVideoPipelineMirrorMode

O tipo de espelhamento.

SetCapturePipelineScaleMode

Define o modo de dimensionamento para o link de vídeo.

-(void)setCapturePipelineScaleMode:(AliRtcCapturePipelineScaleMode)mode;

Especifica se os dados de vídeo são dimensionados durante a captura ou durante a codificação. Por exemplo, se a resolução de captura for diferente da resolução de codificação, essa configuração determina se os dados de visualização correspondem aos dados de ingestão de stream.

Nota

O modo de dimensionamento padrão é o dimensionamento imediato durante a captura. Defina esta API antes da ativação da câmera — antes de startPreview ou joinChannel.

Quando chamar

Chame este método antes de iniciar a câmera — por exemplo, antes de chamar startPreview ou joinChannel.

Parâmetros

Nome

Tipo

Descrição

mode

AliRtcCapturePipelineScaleMode

O tipo de dimensionamento.

Valor de retorno

Um valor 0 indica sucesso. Qualquer outro valor indica falha.

registerVideoFrameWithObserver

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

- (void)registerVideoFrameWithObserver:(id<AliRtcVideoFrameDelegate> _Nullable)observer;

Use este método para registrar um objeto que exporta dados de vídeo. Para cancelar o registro, chame unregisterVideoSampleWithObserver.

Quando chamar

Para obter dados de vídeo brutos (como nos formatos YUV ou RGBA) em várias etapas, chame esta interface para registrar um monitor de dados de vídeo.

Callbacks relacionados

Após registrar com sucesso um observador de saída de dados de vídeo, o SDK aciona os callbacks implementados por você ao capturar cada quadro de vídeo. Implemente os seguintes callbacks conforme necessário:

Parâmetros

Nome

Tipo

Descrição

observer

AliRtcVideoFrameDelegate

O observador de saída de dados de vídeo.

unregisterVideoSampleWithObserver

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

- (void)unregisterVideoSampleWithObserver:(id<AliRtcVideoFrameDelegate> _Nullable)observer;

Esta interface corresponde à interface <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#9a3437ab16j1w" id="f524bad30a6ys">registerVideoSampleObserver</a> e cancela o registro do objeto de saída de dados de vídeo.

Parâmetros

Nome

Tipo

Descrição

observer

AliRtcVideoFrameDelegate

O objeto de saída para dados de vídeo.

registerLocalVideoTextureObserver

Registra um observador de textura OpenGL para o vídeo da câmera local.

- (void)registerLocalVideoTextureObserver:(id<AliRtcTextureDelegate> _Nullable)observer;

Para recuperar dados de vídeo brutos, chame registerVideoSampleObserver. Para recuperar dados internos de textura, chame este método. Para cancelar o registro do observador, chame unRegisterLocalVideoTextureObserver.

Nota
  • Este método aplica-se apenas ao vídeo da câmera local.

  • Após registrar com sucesso um observador de textura OpenGL para o vídeo da câmera local, o SDK aciona os callbacks onTextureCreate, onTextureUpdate e onTextureDestroy.

Callbacks relacionados

Após registrar com sucesso um observador de textura OpenGL para o vídeo da câmera local, o SDK aciona os callbacks implementados em AliRtcTextureObserver sempre que um quadro de vídeo é capturado. Implemente os seguintes callbacks conforme necessário:

  • onTextureCreate: Este callback é acionado quando o SDK cria seu contexto OpenGL interno.

  • onTextureUpdate: Este callback é acionado após cada quadro de vídeo ser carregado na textura OpenGL. Quando um observador de textura externo está registrado, processe a textura e retorne o ID da textura atualizada. O valor de retorno deve ser um ID de textura válido. Se nenhum processamento for realizado, retorne o textureId de entrada.

  • onTextureDestroy: Este callback é acionado quando o SDK destrói seu contexto OpenGL interno.

Parâmetros

Nome

Tipo

Descrição

observer

AliRtcTextureDelegate

O observador de textura OpenGL.

unregisterLocalVideoTextureObserver

Cancela o registro do observador de textura OpenGL para o vídeo da câmera local.

- (void)unregisterLocalVideoTextureObserver:(id<AliRtcTextureDelegate> _Nullable)observer;

Este método corresponde a registerLocalVideoTextureObserver e gerencia o cancelamento do seu registro.

Parâmetros

Nome

Tipo

Descrição

observer

AliRtcTextureDelegate

O observador de textura OpenGL.

snapshotVideo

Tira um snapshot do vídeo.

- (int)snapshotVideo:(NSString*_Nullable)userId type:(AliRtcVideoTrack)type;

Parâmetros

Nome

Tipo

Descrição

userId

NSString *

O ID do usuário. Um valor nil ou "" representa o usuário local.

type

AliRtcVideoTrack

O tipo de stream de vídeo suporta apenas {@link AliRtcVideoTrack::AliRtcVideoTrackCamera} e {@link AliRtcVideoTrack::AliRtcVideoTrackScreen}.

Valor de retorno

Um valor de retorno 0 indica sucesso. Qualquer outro valor indica falha.

setExternalVideoSource

Especifica se uma fonte de vídeo externa deve ser ativada.

- (int)setExternalVideoSource:(BOOL)enable sourceType:(AliRtcVideoSource)type renderMode:(AliRtcRenderMode)renderMode;

Parâmetros

Nome

Tipo

Descrição

enable

BOOL

YES indica que o recurso está ativado. NO indica que o recurso está desativado.

type

AliRtcVideoSource

Tipo de stream

renderMode

AliRtcRenderMode

O modo de renderização.

pushExternalVideoFrame

Importa dados de vídeo externos.

- (int)pushExternalVideoFrame:(AliRtcVideoDataSample *_Nonnull)frame sourceType:(AliRtcVideoSource)type;

Parâmetros

Nome

Tipo

Descrição

frame

AliRtcVideoDataSample

*_Nonnull

Dados do quadro

type

AliRtcVideoSource

Tipo de stream

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica que a chamada falhou.

startPublishLiveStreamWithURL

Inicia a transmissão ao vivo retransmitida.

- (int)startPublishLiveStreamWithURL:(NSString *_Nonnull)streamURL liveTranscoding:(AliRtcLiveTranscodingParam *_Nonnull)trancoding;

Parâmetros

Nome

Tipo

Descrição

streamUrl

NSString *

A URL de ingestão.

transcoding

AliRtcLiveTranscodingParam

*

Os parâmetros para transmissão ao vivo retransmitida.

Descrição do Retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica que a chamada falhou.

updatePublishLiveStreamWithURL

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

- (int)updatePublishLiveStreamWithURL:(NSString *_Nonnull)streamURL liveTranscoding:(AliRtcLiveTranscodingParam *_Nonnull)trancoding;

Parâmetros

Nome

Tipo

Descrição

streamUrl

NSString *

A URL de ingestão.

transcoding

AliRtcLiveTranscodingParam

*

Os parâmetros para transmissão ao vivo retransmitida.

Valor de Retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica que a chamada falhou.

stopPublishLiveStreamWithURL

Interrompe o bypass da transmissão ao vivo.

- (int)stopPublishLiveStreamWithURL:(NSString *_Nonnull)streamURL;

Parâmetros

Nome

Tipo

Descrição

streamUrl

NSString *_Nonnull

A URL de ingestão.

Descrição do Retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica que a chamada falhou.

GetPublishLiveStreamStateWithURL

Consulta o status da transmissão ao vivo retransmitida.

- (AliRtcLiveTranscodingState)GetPublishLiveStreamStateWithURL:(NSString *_Nonnull)streamURL;

Parâmetros

Parâmetro

Tipo

Descrição

streamURL

NSString *

A URL de ingestão.

Descrição do retorno

Retorna o status da transmissão ao vivo retransmitida.

startLastmileDetect

Inicia o teste de qualidade de rede.

- (int)startLastmileDetect:(AliRtcNetworkQualityProbeConfig *_Nonnull)config;

Parâmetros

Parâmetro

Tipo

Descrição

config

AliRtcNetworkQualityProbeConfig

Parâmetros de configuração da sondagem

Descrição do Retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica que a chamada falhou.

stopLastmileDetect

Interrompe o teste de qualidade de rede.

- (int)stopLastmileDetect;

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica que a chamada falhou.

sendMediaExtensionMsg

Define os parâmetros do modo de reverberação.

- (int)sendMediaExtensionMsg:(NSData *_Nonnull)data repeatCount:(int)repeatCount delay:(int)delay isKeyFrame:(bool)isKeyFrame;

O SDK suporta o envio e recebimento de mensagens de extensão de mídia. Ele envia mensagens usando o protocolo Supplemental Enhancement Information (SEI). Os receptores podem obter mensagens ouvindo o callback onMediaExtensionMsgReceived.

Os casos de uso comuns incluem:

  • Utilize mensagens de extensão de mídia para transmitir timestamps, seja para calcular a latência de rede ponta a ponta ou para sincronizar com outras lógicas de negócio.

  • Transmita informações descritivas por meio de mensagens de extensão de mídia, com um payload de até 4 KB. Para payloads pequenos, use JSON ou strings simples.

Quando chamar

Chame este método após o início da ingestão de stream.

Limitações

As mensagens de extensão de mídia reutilizam o canal de dados de áudio e vídeo. Portanto, controle a frequência e o tamanho das mensagens. Aplicam-se as seguintes limitações:

  • O número máximo de mensagens por segundo é igual à configuração de quadros por segundo (FPS) no perfil. Como as mensagens SEI são incorporadas em streams H.264 ou H.265, a codificação de quadros de vídeo é necessária para anexar os dados de extensão.

  • Para evitar impactos na qualidade da transmissão de mídia, o tamanho do corpo da mensagem é limitado a 4 KB. Esse limite é adequado para payloads pequenos.

  • Use a função sendMediaExtensionMsg. O parâmetro repeatCount especifica a redundância personalizada da mensagem. Se esse parâmetro for maior que 1, a mensagem será enviada várias vezes.

  • Para evitar que a perda de pacotes cause perda de mensagens, outros usuários no canal também recebem mensagens duplicadas. É necessário realizar a deduplicação.

  • Assinantes em sessões de transmissão ao vivo retransmitida também recebem mensagens personalizadas.

  • Apenas um MediaExtensionMsg pode ser transmitido por vez. Várias chamadas para sendMediaExtensionMsg fazem com que os dados de uma nova chamada sobrescrevam os dados da chamada anterior.

Callbacks relacionados

Quando o publicador envia mensagens de extensão de mídia, os assinantes as recebem por meio do callback onMediaExtensionMsgReceived.

Descrição dos Parâmetros

Nome

Tipo

Descrição

data

NSData *

O conteúdo da mensagem de extensão. Comprimento máximo: 4 KB.

repeatCount

int

O número de repetições. Usado para redundância, evitando perda de mensagens devido à perda de pacotes. -1 significa tentativas infinitas, a menos que outro sendMediaExtensionMsg seja chamado.

delay

int

O atraso em milissegundos antes do envio. O atraso real pode ser um pouco maior porque o SEI é anexado a streams H.264/H.265 codificados.

isKeyFrame

bool

Se deve anexar SEI apenas a keyframes. Defina como true para anexar SEI apenas a keyframes.

Valor de retorno

Um valor de retorno 0 indica sucesso. Qualquer outro valor indica falha.

sendMediaExtensionMsgEx

Transmite informações de extensão de mídia, implementadas na camada subjacente usando SEI.

- (int)sendMediaExtensionMsgEx:(NSData *_Nonnull)data repeatCount:(int)repeatCount delay:(int)delay isKeyFrame:(bool)isKeyFrame payloadType:(int)payloadType;

O SDK suporta o envio e recebimento de mensagens de extensão de mídia. Este método envia mensagens usando o protocolo Supplemental Enhancement Information (SEI). Os receptores podem obter mensagens ouvindo o callback onMediaExtensionMsgReceived. Se payloadType for 5, este método funciona de forma idêntica a sendMediaExtensionMsg.

Os casos de uso comuns incluem:

  • Utilize mensagens de extensão de mídia para transmitir timestamps, visando o cálculo da latência de rede ponta a ponta ou a sincronização com outras lógicas de negócio.

  • Transmita informações descritivas por meio de mensagens de extensão de mídia. É possível enviar até 4 KB de dados. Para payloads pequenos, use JSON ou strings simples.

Quando chamar

Chame após iniciar a ingestão de stream.

Limites de Chamada

As mensagens de extensão de mídia reutilizam o canal de dados de áudio e vídeo. Portanto, controle a frequência e o tamanho dessas mensagens. As limitações são:

  • O número máximo de mensagens por segundo é igual à configuração de quadros por segundo (FPS) no perfil. Como as mensagens SEI são incorporadas em streams H.264 ou H.265, a codificação de quadros de vídeo é necessária para anexar os dados de extensão.

  • Para evitar impactos na qualidade da transmissão de mídia, o tamanho do corpo da mensagem é limitado a 4 KB. Esse limite é adequado para payloads pequenos.

  • O parâmetro repeatCount da função sendMediaExtensionMsg define a redundância da mensagem. Valores maiores que 1 acionam múltiplas transmissões.

  • Para evitar que a perda de pacotes cause perda de mensagens, outros usuários no canal também recebem mensagens duplicadas. É necessário realizar a deduplicação.

  • Assinantes em sessões de transmissão ao vivo retransmitida também recebem mensagens personalizadas.

  • Apenas um MediaExtensionMsg pode ser transmitido por vez. Várias chamadas para sendMediaExtensionMsg sobrescrevem os dados anteriores.

Parâmetros

Nome

Tipo

Descrição

data

NSData *

O conteúdo da mensagem de extensão. Comprimento máximo: 4 KB.

repeatCount

int

O número de repetições. Usado para redundância, evitando perda de mensagens devido à perda de pacotes. -1 significa tentativas infinitas, a menos que outro sendMediaExtensionMsg seja chamado.

delay

int

O atraso em milissegundos antes do envio. O atraso real pode ser um pouco maior porque o SEI é anexado a streams H.264/H.265 codificados.

isKeyFrame

bool

Se deve anexar SEI apenas a keyframes. Defina como true para anexar SEI apenas a keyframes.

payloadType

int

O tipo. Use 5 para payloads baseados em UUID. Intervalo válido: [5, 100..254].

Descrição do Retorno

  • 0: Sucesso.

  • < 0: Falha. Retorna um código de erro.

    • ERR_INNER (-1): Erro interno do SDK. Causas possíveis: O SDK não foi inicializado ou foi destruído antes da chamada.

onConnectionStatusChange

Callback acionado quando o status da conexão de rede muda.

- (void)onConnectionStatusChange:(AliRtcConnectionStatus)status reason:(AliRtcConnectionStatusChangeReason)reason;

Parâmetros

Parâmetro

Tipo

Descrição

status

AliRtcConnectionStatus

O status atual.

reason

AliRtcConnectionStatusChangeReason

O motivo específico da mudança de status.

onLocalDeviceException

Callback acionado quando ocorre uma exceção no dispositivo local. Preste atenção a este callback.

- (void)onLocalDeviceException:(AliRtcLocalDeviceType)deviceType exceptionType:(AliRtcLocalDeviceExceptionType)exceptionType message:(NSString *_Nullable)msg;

Parâmetros

Parâmetro

Tipo

Descrição

deviceType

AliRtcLocalDeviceType

O tipo de dispositivo.

exceptionType

AliRtcLocalDeviceExceptionType

O tipo da exceção do dispositivo.

msg

NSString

As informações contidas na exceção.

onAuthInfoWillExpire

Callback acionado quando a autenticação do usuário está prestes a expirar. A autenticação expira 30 segundos após o recebimento deste callback. Preste atenção a este callback.

- (void)onAuthInfoWillExpire;

Este callback indica que a autenticação do usuário expirará em breve. Ao recebê-lo, a autenticação expira em 30 segundos. Gere um novo token e atualize a autenticação usando um dos seguintes métodos:

  • Chame a API <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6a4495191bmd" id="918ba91977wi6">refreshAuthInfo</a> para atualizar as informações de autenticação.

  • Chame <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="ad8235d30dprb">leaveChannel</a> para sair do canal atual e, em seguida, chame joinChannel para entrar novamente no canal.

Condição de Acionamento

O SDK aciona este callback 30 segundos antes da autenticação expirar. Após recebê-lo, atualize a autenticação prontamente.

onAuthInfoExpired

Um usuário chama uma API autenticada e o servidor retorna uma resposta expirada.

- (void)onAuthInfoExpired;

Este callback indica que a autenticação do usuário expirou. Para continuar a sessão, gere um novo token no seu servidor e atualize a autenticação usando um dos seguintes métodos:

  • Chame <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="21390e77a1307">leaveChannel</a> para sair do canal atual e, em seguida, chame joinChannel para entrar novamente no canal.

Quando é acionado

Este callback é acionado quando a autenticação do usuário expira.

onJoinChannelResult

Este callback relata o resultado da entrada em um canal. É funcionalmente equivalente à operação de bloqueio do método joinChannel. Use qualquer uma das abordagens para lidar com o evento que ocorre após a entrada no canal.

- (void)onJoinChannelResult:(int)result channel:(NSString *_Nonnull)channel elapsed:(int) elapsed;

Condição de acionamento

Este callback é acionado quando seu aplicativo chama o método joinChannel. Ele relata se a operação teve sucesso ou falhou e retorna informações relacionadas, incluindo a latência de entrada.

Parâmetros

Parâmetro

Tipo

Descrição

result

int

O resultado da solicitação para entrar no canal. Um valor 0 indica que a solicitação foi bem-sucedida. Um valor diferente de 0 indica que a solicitação falhou e o código de erro é retornado.

channel

NSString *_Nonnull

O ID do canal.

elapsed

int

O tempo consumido para entrar no canal.

onLeaveChannelResult

Este callback é acionado após você chamar leaveChannel. Se você chamar destroy imediatamente após leaveChannel, este callback não será acionado.

- (void)onLeaveChannelResult:(int)result stats:(AliRtcStats)stats;

Parâmetros

Parâmetro

Tipo

Descrição

result

int

O resultado da solicitação para sair do canal. Um valor 0 indica que a solicitação foi bem-sucedida. Um valor diferente de 0 indica que a solicitação falhou e o código de erro é retornado.

stats

AliRtcStats

As estatísticas da sessão no canal.

onRemoteUserOffLineNotify

Callback acionado quando um usuário remoto fica offline.

- (void)onRemoteUserOffLineNotify:(NSString *_Nonnull)uid offlineReason:(AliRtcUserOfflineReason)reason;

Este callback notifica os usuários locais quando um usuário remoto sai do canal por qualquer motivo. Ele é acionado quando um usuário remoto fica offline.

Condição de acionamento

  • Este callback é acionado quando um usuário remoto sai do canal.

  • Um streamer remoto invoca <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#892915dd4edcy" id="78b1952ad5lwp">setClientRole</a> para mudar para a função de espectador (AliRtcClientRoleLive), e o callback é acionado.

  • O sistema detecta que nenhum dado foi recebido de um streamer remoto por um longo período e o considera offline.

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *_Nonnull

ID de usuário exclusivo atribuído pelo AppServer.

reason

AliRtcUserOfflineReason

Motivo pelo qual o usuário remoto ficou offline.

onRemoteUserOnLineNotify

Callback invocado quando um usuário remoto fica online.

- (void)onRemoteUserOnLineNotify:(NSString *_Nonnull)uid elapsed:(int)elapsed;

Este método é acionado quando um usuário remoto entra no canal.

Condições de acionamento

  • Um usuário remoto entra no canal com sucesso.

  • Após entrar no canal, o usuário local recebe callbacks de entrada dos usuários que já estavam presentes, permitindo exibir os participantes anteriores.

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *_Nonnull

ID de usuário exclusivo atribuído pelo AppServer.

elapsed

int

Tempo consumido para o usuário remoto entrar no canal.

onRemoteTrackAvailableNotify

Callback invocado quando o stream de um usuário remoto é alterado.

- (void)onRemoteTrackAvailableNotify:(NSString *_Nonnull)uid audioTrack:(AliRtcAudioTrack)audioTrack videoTrack:(AliRtcVideoTrack)videoTrack;

Este callback é acionado quando o status de publicação de um usuário remoto muda. Use-o para monitorar se os usuários remotos estão publicando streams de áudio e vídeo e atualize a interface do usuário adequadamente, exibindo ou ocultando a mídia correspondente.

Nota

Este callback relata o status de publicação dos usuários remotos. Para identificar qual stream parou, compare o estado antes e depois do acionamento do callback.

Condições de acionamento

Este callback é acionado nos seguintes casos:

  • Um usuário remoto passa de não publicar para publicar áudio e/ou vídeo.

  • Um usuário remoto passa de publicar para não publicar áudio e/ou vídeo.

  • No modo interativo, um usuário remoto chama setClientRole para mudar de espectador para streamer enquanto publica streams.

Por exemplo, este callback não é acionado se um usuário remoto desativar a ingestão de stream de vídeo:

  • Se um usuário remoto começar a publicar vídeo da câmera (status de publicação: sem vídeo → apenas câmera), este callback retorna AliRtcVideoTrackCamera, indicando que o stream da câmera do usuário remoto está disponível.

  • Se o mesmo usuário posteriormente publicar também o compartilhamento de tela (status de publicação: apenas câmera → câmera + compartilhamento de tela), este callback retorna AliRtcVideoTrackBoth, indicando que tanto o stream da câmera quanto o de compartilhamento de tela estão disponíveis.

  • Se o usuário parar de publicar vídeo da câmera, mas continuar o compartilhamento de tela (status de publicação: câmera + compartilhamento de tela → apenas compartilhamento de tela), este callback retorna AliRtcVideoTrackScreen, indicando que apenas o stream de compartilhamento de tela está disponível.

  • Se o usuário parar de publicar o compartilhamento de tela (status de publicação: apenas compartilhamento de tela → sem vídeo), este callback retorna AliRtcVideoTrackNo, indicando que nenhum stream de vídeo está disponível.

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *_Nonnull

ID de usuário exclusivo atribuído pelo AppServer.

audioTrack

AliRtcAudioTrack

O stream de áudio é atualizado após alterações do usuário remoto.

videoTrack

AliRtcVideoTrack

O stream de vídeo é atualizado após alterações do usuário remoto.

onBye

Callback invocado quando um usuário é forçado a sair de um canal.

- (void)onBye:(int)code;

Este callback é acionado quando um usuário se desconecta ou a sessão termina. Os desenvolvedores podem usar o parâmetro code para identificar a causa e tratá-la adequadamente.

Condições de acionamento

  • O servidor desconecta o usuário.

  • A sessão termina (o servidor encerra o canal).

  • O usuário é desconectado passivamente. Os clientes devem tentar recuperar a sessão ou reconectar.

Parâmetros

Parâmetro

Tipo

Descrição

code

int

Tipo de mensagem. Valores válidos:

  • 1: O servidor removeu o usuário do canal.

  • 2: O canal foi fechado.

  • 3: O servidor removeu o usuário do canal porque o mesmo ID de usuário foi usado para entrar no canal a partir de outro dispositivo.

onAudioPublishStateChanged

Callback invocado quando o status de ingestão de stream de uma faixa de áudio muda.

- (void)onAudioPublishStateChanged:(AliRtcPublishState)oldState newState:(AliRtcPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;

Este callback monitora alterações no status de publicação de áudio do usuário local.

Condições de acionamento

Este callback é acionado quando o status de publicação de áudio do usuário muda, por exemplo:

  • Parada da ingestão de stream.

  • Invoque <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#892915dd4edcy" id="81771ef0798we">setClientRole</a> para mudar para espectador.

Parâmetros

Parâmetro

Tipo

Descrição

oldState

AliRtcPublishState

Status anterior de ingestão de stream.

newStat

AliRtcPublishState

Status atual de ingestão de stream.

elapseSinceLastState

NSInteger

Tempo decorrido para a alteração. Unidade: milissegundos.

channel

NSString *_Nonnull

ID do canal.

onAudioSubscribeStateChanged

Callback invocado quando o status de assinatura de uma faixa de áudio muda.

- (void)onAudioSubscribeStateChanged:(NSString *_Nonnull)uid oldState:(AliRtcSubscribeState)oldState newState:(AliRtcSubscribeState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;

Este callback notifica os usuários locais quando o status de assinatura do stream de áudio de um usuário remoto muda. Use-o para rastrear alterações no status de assinatura do stream de câmera de um usuário remoto específico e o intervalo de tempo entre os estados.

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *_Nonnull

ID do usuário cujo status de assinatura foi alterado.

oldState

AliRtcSubscribeState

Estado anterior da assinatura.

newState

AliRtcSubscribeState

Estado atual da assinatura.

elapseSinceLastState

NSInteger

Tempo decorrido para a alteração. Unidade: milissegundos.

channel

NSString *_Nonnull

ID do canal.

onUserAudioMuted

Callback invocado quando um usuário silencia a faixa de áudio.

- (void)onUserAudioMuted:(NSString *_Nonnull)uid audioMuted:(BOOL)isMute;

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *_Nonnull

ID do usuário que silenciou a faixa de áudio.

isMute

BOOL

O valor YES indica que a faixa de áudio está silenciada. O valor NO indica que a faixa de áudio não está silenciada.

onUserAudioInterruptedBegin

Callback invocado quando a faixa de áudio de um usuário é interrompida. Por exemplo, a faixa de áudio pode ser preemptada quando o usuário faz uma chamada telefônica.

- (void)onUserAudioInterruptedBegin:(NSString *_Nonnull)uid;

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *_Nonnull

ID do usuário cuja faixa de áudio foi interrompida.

onUserAudioInterruptedEnded

Callback invocado quando a interrupção da faixa de áudio de um usuário termina. Este callback funciona em conjunto com o callback onUserAudioInterruptedBegin.

- (void)onUserAudioInterruptedEnded:(NSString *_Nonnull)uid;

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *_Nonnull

ID do usuário cuja faixa de áudio foi interrompida.

onVideoPublishStateChanged

Callback invocado quando o status de ingestão de stream de uma faixa de vídeo muda.

- (void)onVideoPublishStateChanged:(AliRtcPublishState)oldState newState:(AliRtcPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;

Este callback monitora alterações no status de publicação de vídeo do usuário local.

Parâmetros

Parâmetro

Tipo

Descrição

oldState

AliRtcPublishState

Status anterior da ingestão de stream.

newState

AliRtcPublishState

Status atual de ingestão de stream.

elapseSinceLastState

NSInteger

Tempo decorrido para a alteração. Unidade: milissegundos.

channel

NSString *_Nonnull

ID do canal.

onVideoSubscribeStateChanged

Callback invocado quando o status de assinatura de uma faixa de vídeo muda.

- (void)onVideoSubscribeStateChanged:(NSString *_Nonnull)uid oldState:(AliRtcSubscribeState)oldState newState:(AliRtcSubscribeState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;

Este callback notifica o usuário local sobre alterações no status de assinatura do stream de câmera de um usuário remoto. Ele fornece o novo status de assinatura e o tempo decorrido entre as mudanças de estado.

Callbacks relacionados

Os streams de vídeo incluem streams de câmera e streams de compartilhamento de tela. Este callback é acionado por alterações de assinatura em streams de câmera. Alterações de assinatura em streams de compartilhamento de tela acionam o callback onScreenShareSubscribeStateChanged.

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *_Nonnull

ID do usuário cujo status de assinatura foi alterado.

oldState

AliRtcSubscribeState

Estado anterior da assinatura.

newState

AliRtcSubscribeState

Estado atual da assinatura.

elapseSinceLastState

NSInteger

Tempo decorrido para a alteração. Unidade: milissegundos.

channel

NSString *_Nonnull

ID do canal.

onUserVideoMuted

Notificação de silenciamento de vídeo do usuário.

- (void)onUserVideoMuted:(NSString *_Nonnull)uid videoMuted:(BOOL)isMute;

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *_Nonnull

ID do usuário que executou muteVideo.

isMute

BOOL

O valor YES indica que quadros pretos são enviados para a faixa de vídeo. O valor NO indica que a faixa de vídeo é publicada normalmente.

onUserVideoEnabled

Uma notificação é enviada quando a captura de vídeo local é desativada ou reativada.

- (void)onUserVideoEnabled:(NSString *_Nullable)uid videoEnabled:(BOOL)isEnable;

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *_Nonnull

ID do usuário que executa a operação.

isMute

BOOL

O valor YES indica que a captura da faixa da câmera está ativada. O valor NO indica que a captura da faixa da câmera está desativada.

onUserWillResignActive

Callback invocado quando um usuário remoto coloca o aplicativo em segundo plano.

- (void)onUserWillResignActive:(NSString *_Nonnull)uid;

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *_Nonnull

ID do usuário que colocou o aplicativo em segundo plano.

onUserWillBecomeActive

Callback invocado quando um usuário remoto traz o aplicativo de volta para o primeiro plano.

- (void)onUserWillBecomeActive:(NSString *_Nonnull)uid;

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *_Nonnull

ID do usuário que trouxe o aplicativo de volta para o primeiro plano.

onRtcStats

Callback para estatísticas em tempo real. Este callback é invocado a cada dois segundos.

- (void)onRtcStats:(AliRtcStats)stats;

Parâmetros

Parâmetro

Tipo

Descrição

stats

AliRtcStats

Callbacks de dados

onRtcLocalVideoStats

Estatísticas de desempenho de vídeo local (atualizações acionadas a cada 2 segundos).

- (void)onRtcLocalVideoStats:(AliRtcLocalVideoStats *_Nonnull)localVideoStats;

Parâmetros

Parâmetro

Tipo

Descrição

localVideoStats

AliRtcLocalVideoStats

Estatísticas de vídeo local.

onRtcRemoteVideoStats

Estatísticas de desempenho de vídeo remoto, acionadas a cada 2 s.

- (void)onRtcRemoteVideoStats:(AliRtcRemoteVideoStats *_Nonnull)remoteVideoStats;

Parâmetros

Parâmetro

Tipo

Descrição

remoteVideoStats

AliRtcRemoteVideoStats

Estatísticas de vídeo remoto.

onRtcLocalAudioStats

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

- (void)onRtcLocalAudioStats:(AliRtcLocalAudioStats *_Nonnull)localAudioStats;

Parâmetros

Parâmetro

Tipo

Descrição

localAudioStats

AliRtcLocalAudioStats

Estatísticas de áudio local.

onRtcRemoteAudioStats

Este callback fornece estatísticas de áudio remoto e é acionado a cada dois segundos.

- (void)onRtcRemoteAudioStats:(AliRtcRemoteAudioStats *_Nonnull)remoteAudioStats;

Parâmetros

Parâmetro

Tipo

Descrição

remoteAudioStats

AliRtcRemoteAudioStats

Estatísticas de áudio remoto.

onMediaExtensionMsgReceived

Você recebeu um callback contendo informações de extensão de mídia.

- (void)onMediaExtensionMsgReceived:(NSString *_Nonnull)uid payloadType:(int)payloadType message:(NSData *_Nonnull)data;

Depois que um participante envia mensagens de extensão de mídia usando o método sendMediaExtensionMsg, os outros participantes recebem os dados por meio deste callback.

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString

ID do usuário.

payloadType

int

Tipo de payload.

message

NSData *

Mensagem de extensão de mídia.

onAudioRouteChanged

Este callback é invocado quando a rota de áudio muda e aplica-se apenas a Android e iOS.

- (void)onAudioRouteChanged:(AliRtcAudioRouteType)routing;

Parâmetros

Parâmetro

Tipo

Descrição

routing

AliRtcAudioRouteType

Tipo de roteamento.

onSnapshotComplete

Callback invocado quando a operação de snapshot é concluída.

- (void)onSnapshotComplete:(NSString*_Nullable)uid videoTrack:(AliRtcVideoTrack)videoTrack image:(UIImage* _Nullable)image success:(BOOL)success;

Parâmetros

Parâmetro

Tipo

Descrição

image

UIImage *

Tipo de imagem.

success

BOOL

Indica se a operação foi bem-sucedida.

onLocalAudioStateChanged

Ocorre quando o estado do dispositivo de captura de áudio local muda.

- (void)onLocalAudioStateChanged:(AliRtcLocalAudioStateType)state message:(NSString *_Nullable)msg;
Nota

Este callback relata o resultado da chamada de startAudioCapture e stopAudioCapture.

Parâmetros

Parâmetro

Tipo

Descrição

state

AliRtcLocalAudioStateType

Estado do dispositivo, do tipo AliRtcLocalAudioStateType.

msg

NSString *

Descrição da alteração de estado do dispositivo.

onLocalVideoStateChanged

Callback para o status do dispositivo de captura de vídeo local.

- (void)onLocalVideoStateChanged:(AliRtcLocalVideoStateType)state message:(NSString *_Nullable)msg;

Parâmetros

Parâmetro

Tipo

Descrição

state

AliRtcLocalVideoStateType

Estado do dispositivo, do tipo AliRtcLocalVideoStateType.

msg

NSString *

Descrição da alteração de estado do dispositivo.

onRemoteUserSubscribedDataChannel

Callback invocado quando você pode começar a enviar mensagens do Data Channel.

- (void)onRemoteUserSubscribedDataChannel:(NSString *_Nonnull)uid;

Este 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. Neste ponto, você pode chamar sendDataChannelMessage com segurança para enviar dados. Este callback é fundamental para a entrega confiável de mensagens, pois evita perda de pacotes ou falhas que ocorrem quando as mensagens são enviadas antes que o usuário alvo assine o Data Channel.

Nota

Este callback é acionado apenas em cenários de IA.

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *

ID do usuário.

onDataChannelMessage

Este callback lida com mensagens do canal de dados.

- (void)onDataChannelMessage:(NSString *_Nonnull)uid controlMsg:(AliRtcDataChannelMsg*_Nonnull)controlMsg;

O ARTC SDK suporta o envio e recebimento de mensagens personalizadas juntamente com dados de áudio e vídeo. Este callback recebe essas mensagens personalizadas. Para detalhes de uso, consulte Custom message sending and receiving.

Nota
  • Em cenários interativos, streamers podem enviar e receber mensagens, enquanto espectadores podem apenas receber mensagens.

  • Este recurso está desativado por padrão. Para ativá-lo, chame setParameter após criar o engine para definir {"data":{"enablePubDataChannel":true,"enableSubDataChannel":true}}.

  • O ARTC DataChannel depende da conectividade de streams de áudio e vídeo: o envio de mensagens requer push de streams, e o recebimento de mensagens requer pull de streams. A comunicação bidirecional baseia-se em streaming de áudio e vídeo.

Quando é acionado

Este callback é acionado depois que o remetente chama sendDataChannelMessage para enviar uma mensagem personalizada e o destinatário habilitou o canal de dados.

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *

O ID do usuário.

controlMsg

AliRtcDataChannelMsg

A mensagem do canal de dados.

onScreenSharePublishStateChanged

Este callback é invocado quando o status da ingestão de stream para compartilhamento de tela muda.

- (void)onScreenSharePublishStateChanged:(AliRtcPublishState)oldState newState:(AliRtcPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;

Parâmetros

Parâmetro

Tipo

Descrição

oldState

AliRtcPublishState

O resultado da sondagem. 0 indica sucesso. -1 indica falha devido à baixa qualidade da rede.

newState

AliRtcPublishState

O estado de publicação anterior.

newState

AliRtcPublishState

O novo estado de publicação.

elapseSinceLastState

NSInteger

O intervalo de tempo entre as mudanças de estado, em milissegundos.

channel

NSString *

O ID do canal atual.

onCapturedAudioFrame

Callback para coleta de dados brutos.

- (BOOL)onCapturedAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;

Este callback recupera dados de áudio brutos capturados pelo dispositivo atual. Ele fica desativado por padrão. Para receber esses dados:

  • Ative este callback usando enableAudioFrameObserver(true, audioSource, config). O parâmetro config permite definir a taxa de amostragem, o número de canais de som e o modo de leitura/escrita.

  • Chame registerAudioFrameObserver para registrar o receptor de dados de áudio.

Nota
  • Esta interface permite configurar a taxa de amostragem, o número de canais de som e o modo de leitura/escrita.

  • Evite anomalias de áudio não executando operações demoradas neste callback.

  • Esta interface suporta a configuração da taxa de amostragem e do número de canais de som.

  • Esta interface suporta o modo de leitura/escrita.

Limitações

Não execute operações demoradas neste callback. Isso pode causar anomalias de áudio.

Parâmetros

Parâmetro

Tipo

Descrição

frame

AliRtcAudioFrame

O quadro de vídeo.

Valor de retorno

true: A operação foi bem-sucedida.

onProcessCapturedAudioFrame

Este callback fornece dados de áudio após o processamento 3A.

- (BOOL)onProcessCapturedAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;

Use este callback para recuperar dados de áudio após o processamento 3A. Ele fica desativado por padrão. Para ativá-lo:

  • Chame enableAudioFrameObserver(true, audioSource, config). O parâmetro config permite definir a taxa de amostragem, o número de canais de som e o modo de leitura/escrita.

  • Chame registerAudioFrameObserver para registrar o receptor de dados de áudio.

Nota
  • Esta interface permite configurar a taxa de amostragem, o número de canais de som e o modo de leitura/escrita.

  • Não execute operações demoradas neste callback, pois isso pode causar anomalias de áudio.

  • Esta interface suporta a configuração da taxa de amostragem e do número de canais de som.

  • Esta interface suporta o modo de leitura/escrita.

Limitações

Não execute operações demoradas neste callback, pois isso pode causar anomalias de áudio.

Parâmetros

Parâmetro

Tipo

Descrição

frame

AliRtcAudioFrame

O quadro de vídeo.

Valor de retorno

true: Sucesso.

onPublishAudioFrame

Callback de dados de ingestão de stream.

- (BOOL)onPublishAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;

Este callback recupera os dados de áudio que estão sendo publicados. Ele fica desativado por padrão. Para recuperar esses dados:

  • Ative este callback usando enableAudioFrameObserver(true, audioSource, config). O parâmetro config permite definir a taxa de amostragem, o número de canais de som e o modo de leitura/escrita.

  • Chame registerAudioFrameObserver para registrar o receptor de dados de áudio.

Nota
  • Esta interface permite configurar a taxa de amostragem e o número de canais de som, mas apenas no modo somente leitura.

  • Evite executar operações demoradas neste callback, pois isso pode causar anomalias de áudio.

  • Esta interface suporta a configuração da taxa de amostragem e do número de canais de som.

  • Esta interface suporta o modo de leitura/escrita.

Limitações

Evite executar operações demoradas neste callback. Isso pode causar anomalias de áudio.

Parâmetros

Parâmetro

Tipo

Descrição

frame

AliRtcAudioFrame

O quadro de vídeo.

Valor de retorno

true: A operação foi bem-sucedida.

onPlaybackAudioFrame

O callback para dados de reprodução de áudio.

- (BOOL)onPlaybackAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;

Este callback recupera dados de reprodução de áudio. Ele fica desativado por padrão. Para obter esses dados:

  • Ative este callback usando enableAudioFrameObserver(true, audioSource, config). O parâmetro config permite definir a taxa de amostragem, o número de canais de som e o modo de leitura/escrita.

  • Chame registerAudioFrameObserver para registrar o receptor de dados de áudio.

Nota
  • Esta interface permite configurar a taxa de amostragem, o número de canais de som e o modo de leitura/escrita.

  • Não execute operações demoradas neste callback. Isso pode causar anomalias de áudio.

  • Esta interface suporta a configuração da taxa de amostragem e do número de canais de som.

  • Esta interface suporta o modo de leitura/escrita.

Limitações

Não execute operações demoradas neste callback. Isso pode causar anomalias de áudio.

Parâmetros

Parâmetro

Tipo

Descrição

frame

AliRtcAudioFrame

O quadro de vídeo.

Valor de retorno

true: Sucesso.

onRemoteUserAudioFrame

Este callback fornece dados de áudio do stream de áudio de um usuário remoto.

- (BOOL)onRemoteUserAudioFrame:(NSString *_Nullable)uid frame:(AliRtcAudioFrame* _Nonnull)frame;

Este callback fica desativado por padrão. Para recuperar dados de áudio do usuário remoto:

  • Ative o callback chamando enableAudioFrameObserver(true, audioSource, config). O parâmetro config permite especificar a taxa de amostragem, o número de canais de som e o modo de leitura/escrita.

  • Chame registerAudioFrameObserver para registrar o receptor de dados de áudio.

Nota
  • Esta interface não suporta a configuração da taxa de amostragem ou do número de canais de som, mas permite configurar o modo de leitura/escrita.

  • Evite executar operações demoradas neste callback, pois isso pode causar anomalias de áudio.

  • Esta interface does not support a configuração da taxa de amostragem ou do número de canais de som.

  • Esta interface permite configurar o modo de leitura/escrita.

Limitações

Evite executar operações demoradas neste callback, pois isso pode causar anomalias de áudio.

Parâmetros

Parâmetro

Tipo

Descrição

frame

AliRtcAudioFrame

O quadro de vídeo.

Valor de retorno

true: A operação foi bem-sucedida.

onDestroyCompletion

O callback que libera o mecanismo DPI. A liberação do mecanismo só é concluída após a execução deste callback.

- (void)onDestroyCompletion;

Este callback indica que a instância do mecanismo SDK foi destruída e você pode criar uma nova instância.

Nota

Aguarde o callback onDestroyCompletion antes de chamar outros métodos. Isso evita o bloqueio da thread principal.

Condições de acionamento

Quando um usuário chama destroy[2/2], este callback é acionado após a conclusão da destruição do mecanismo.

onTextureCreate

Callback para criação de contexto OpenGL.

- (void)onTextureCreate:(void *_Nullable)context;
Nota

O SDK aciona este callback ao criar seu contexto OpenGL interno.

Condições de acionamento

Este callback é acionado quando o SDK cria seu contexto OpenGL interno. Você pode inicializar recursos relacionados neste callback.

Parâmetros

Parâmetro

Tipo

Descrição

context

void *

O contexto OpenGL.

onTextureUpdate

O callback de atualização de textura OpenGL.

- (int)onTextureUpdate:(int)textureId width:(int)width height:(int)height videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;
Nota
  • Este callback é acionado após cada quadro de vídeo ser carregado na textura OpenGL. Quando um observador externo de textura OpenGL é registrado, você pode processar a textura e retornar o ID da textura processada.

  • O callback deve retornar um ID de textura válido. Se nenhum processamento ocorrer, retorne o textureId de entrada.

Condição de acionamento

Este callback é acionado após cada quadro de vídeo ser carregado na textura OpenGL. Quando um observador externo de textura OpenGL é registrado, você pode processar a textura e retornar o ID da textura processada.

Parâmetros

Parâmetro

Tipo

Descrição

textureId

int

O contexto OpenGL.

width

int

A largura do vídeo.

height

int

A altura do vídeo.

videoSample

AliRtcVideoDataSample

Os dados do quadro de vídeo.

Valor de retorno

Retorna o novo ID de textura ou o ID de textura original. Retornar um valor negativo indica que não houve atualização do ID de textura.

onTextureDestory

Callback de destruição para o contexto OpenGL.

- (void)onTextureDestory;
Nota

Este callback é acionado quando o SDK destrói seu contexto OpenGL interno.

Condição de acionamento

Este callback é acionado quando o SDK destrói seu contexto OpenGL interno. Você pode limpar recursos relacionados aqui.

onCaptureVideoSample

Este callback relata quadros de vídeo capturados.

- (BOOL)onCaptureVideoSample:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;

Este callback recupera quadros de vídeo brutos, como dados YUV, da 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. Em seguida, decida se deseja enviar os dados processados de volta ao SDK para codificação e renderização. Retorne true para gravar os dados de vídeo processados de volta no SDK.

Quando é acionado

Após chamar <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#9a3437ab16j1w" id="6c93b9cf8e771">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

AliRtcVideoSource

O tipo de stream de vídeo.

videoSample

AliRtcVideoDataSample

Os dados de vídeo brutos.

Valor de retorno

Sim, você pode gravar os dados de vídeo processados de volta no SDK, mas isso é suportado apenas para I420 e CVPixelBuffer no iOS e macOS.

Não: Não grave de volta no SDK.

onPreEncodeVideoSample

Este callback é acionado antes que os dados de vídeo local sejam codificados.

- (BOOL)onPreEncodeVideoSample:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;

Este callback permite recuperar dados de vídeo brutos, como dados no formato YUV, antes que o SDK codifique os quadros de vídeo. Use esses dados para implementar lógica de processamento personalizada, como adicionar marcas d'água, ajustar cores ou transcodificar. Em seguida, decida se deseja retornar os dados processados ao SDK para codificação subsequente.

Parâmetros

Parâmetro

Tipo

Descrição

videoSource

AliRtcVideoSource

O tipo de stream de vídeo.

videoSample

AliRtcVideoDataSample

Os dados de vídeo brutos.

Valor de retorno

YES: Os dados de vídeo processados são retornados ao SDK. Isso é eficaz apenas para dados nos formatos I420 e CVPixelBuffer no iOS e macOS.

Não, você não precisa gravar de volta no SDK.

onRemoteVideoSample

O callback para dados de vídeo remoto.

- (BOOL)onRemoteVideoSample:(NSString *_Nonnull)uid videoSource:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;

Este callback recupera dados brutos de quadros de vídeo (como formato YUV) de usuários remotos. Use-o para implementar lógica de processamento personalizada — por exemplo, adicionar filtros, marcas d'água ou transcodificação — e decida se deseja retornar os dados processados ao SDK para renderização.

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *

O ID do usuário.

videoSource

AliRtcVideoSource

O tipo de stream de vídeo.

videoSample

AliRtcVideoDataSample

Os dados de vídeo brutos.

Valor de retorno

YES: Grave os dados de vídeo processados de volta no SDK (eficaz apenas para I420 e CVPixelBuffer no iOS/macOS).

NO: Não grave de volta no SDK.

onGetVideoFormatPreference

O formato de saída dos dados de vídeo.

- (AliRtcVideoFormat)onGetVideoFormatPreference;
Nota

Os aplicativos podem retornar o formato de dados de vídeo preferido. O valor padrão é AliRtcYUV420.

Valor de retorno

O formato de saída de vídeo preferido.

onGetVideoObservedFramePosition

A posição em que os dados de vídeo são gerados.

- (NSInteger)onGetVideoObservedFramePosition;

Valor de retorno

A posição de saída de vídeo preferida. Para mais informações, consulte AliRtcVideoObserPosition.

onAudioEffectFinished

O callback invocado quando a reprodução local de um efeito sonoro termina.

- (void)onAudioEffectFinished:(int)soundId;

Parâmetros

Parâmetro

Tipo

Descrição

soundId

int

O ID do efeito sonoro.

onAudioVolumeCallback

Relata o volume de áudio, o estado de voz e o UID de um usuário inscrito.

- (void)onAudioVolumeCallback:(NSArray <AliRtcUserVolumeInfo *> *_Nullable)array totalVolume:(int)totalVolume;

Este callback recupera dados de quadros de vídeo de usuários remotos. Use este callback para implementar lógica de processamento personalizada, como adicionar filtros ou marcas d'água, e decida se deseja retornar os dados processados ao SDK para renderização.

Parâmetros

Parâmetro

Tipo

Descrição

array

NSArray <AliRtcUserVolumeInfo

> _Nullable

Um array contendo informações de volume para cada usuário, incluindo UID, status de fala e volume:

  • Um valor de UID igual a 0 indica o alto-falante local.

  • Um valor de UID igual a 1 indica o volume mixado de todos os usuários remotos.

  • Outros valores indicam informações de volume para um usuário remoto específico por UID.

totalVolume

int

O volume após a mixagem do áudio. Valores válidos: 0 a 255. Se este callback for retornado para um usuário local, o valor deste parâmetro indica o volume após a mixagem do áudio do usuário local. Se este callback for retornado para um usuário remoto, o valor deste parâmetro indica o volume após a mixagem do áudio de todos os alto-falantes.

onActiveSpeaker

O callback invocado quando um usuário fala.

- (void)onActiveSpeaker:(NSString *_Nonnull)uid;

Após invocar com sucesso <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#85b41ef251dg0" id="a41de41e279og">enableAudioVolumeIndication</a>, o SDK monitora continuamente o usuário remoto com o maior volume de áudio, rastreando o número de vezes que esse usuário é identificado como tendo o maior volume. Durante o período atual, o usuário remoto com a maior contagem é considerado o usuário mais ativo.

Condição de acionamento

Este callback é acionado quando um canal contém dois ou mais usuários e pelo menos um usuário remoto está falando ativamente.

  • Se o usuário remoto mais ativo permanecer o mesmo, o SDK não aciona o callback onActiveSpeaker novamente.

  • Se o orador remoto mais ativo mudar, o SDK aciona este callback novamente e relata o UID do novo orador ativo.

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *_Nonnull

O ID do usuário que está falando.

onPublishLiveStreamStateChanged

O callback invocado quando o status do streaming ao vivo retransmitido muda.

- (void)onPublishLiveStreamStateChanged:(NSString *_Nonnull)streamURL state:(AliRtcLiveTranscodingState)state errCode:(AliRtcTrascodingLiveStreamErrorCode)errCode;

Parâmetros

Parâmetro

Tipo

Descrição

streamURL

NSString *

A URL de ingestão.

state

AliRtcLiveTranscodingState

O status.

errCode

AliRtcTrascodingLiveStreamErrorCode

O código de erro.

onPublishTaskStateChanged

O callback invocado quando o status de uma tarefa de streaming ao vivo retransmitido muda.

- (void)onPublishTaskStateChanged:(NSString *_Nonnull)streamURL state:(AliRtcTrascodingLiveTaskStatus)state;

Parâmetros

Parâmetro

Tipo

Descrição

streamURL

NSString *

A URL de ingestão.

state

AliRtcTrascodingLiveTaskStatus

O status.

onNetworkQualityChanged

O callback invocado quando a qualidade da rede muda.

- (void)onNetworkQualityChanged:(NSString *_Nonnull)uid
               upNetworkQuality:(AliRtcNetworkQuality)upQuality
             downNetworkQuality:(AliRtcNetworkQuality)downQuality;

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString*

O ID do usuário. Um valor vazio para este parâmetro indica o usuário local.

upQuality

AliRtcNetworkQuality

O status da rede upstream.

downQuality

AliRtcNetworkQuality

O status da rede downstream.

onLastmileDetectResultWithQuality

O callback para o resultado do teste de qualidade da rede.

- (void)onLastmileDetectResultWithQuality:(AliRtcNetworkQuality)networkQuality;

Parâmetros

Parâmetro

Tipo

Descrição

networkQuality

AliRtcNetworkQuality

A qualidade da rede.

onLastmileDetectResultWithBandWidth

O callback invocado para retornar o resultado do teste de qualidade da rede.

- (void)onLastmileDetectResultWithBandWidth:(int)code result:(AliRtcNetworkQualityProbeResult* _Nonnull)result;

Parâmetros

Parâmetro

Tipo

Descrição

code

int

Um valor de 0 indica que o teste foi bem-sucedido. Um valor de -1 indica que o teste falhou e a rede está ruim.

result

AliRtcNetworkQualityProbeResult

A qualidade da rede.

onOccurError

Se ocorrer um erro no mecanismo, o aplicativo será notificado por meio deste callback.

- (void)onOccurError:(int)error  message:(NSString *_Nonnull)message;

Parâmetros

Parâmetro

Tipo

Descrição

error

int

O tipo de erro. Consulte AliRtcErrorCode.

message

NSString *

A descrição do erro.

onFirstAudioPacketSentWithTimecost

Invocado quando o primeiro pacote de áudio é enviado.

- (void)onFirstAudioPacketSentWithTimecost:(AliRtcAudioTrack)track timeCost:(int)timeCost;

Parâmetros

Parâmetro

Tipo

Descrição

track

AliRtcAudioTrack

Essa faixa.

timeCost

int

O tempo gasto para enviar o pacote.

onFirstVideoFrameReceivedWithUid

Este callback é invocado quando o primeiro quadro de vídeo é recebido.

- (void)onFirstVideoFrameReceivedWithUid:(NSString *_Nonnull)uid
                      videoTrack:(AliRtcVideoTrack)videoTrack
                        timeCost:(int)timeCost;

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *

O ID do usuário.

videoTrack

AliRtcVideoTrack

O rótulo do stream de vídeo.

timeCost

int

O tempo gasto em milissegundos.

onFirstVideoPacketSentWithVideoTrack

Callback para o primeiro pacote de vídeo enviado.

- (void)onFirstVideoPacketSentWithVideoTrack:(AliRtcVideoTrack)videoTrack
                                    timeCost:(int)timeCost;

Parâmetros

Parâmetro

Tipo

Descrição

videoTrack

AliRtcVideoTrack

O rótulo do stream de vídeo.

timeCost

int

O tempo gasto em milissegundos.

onFirstAudioPacketReceivedWithUid

Este callback é invocado quando o primeiro pacote de áudio é recebido.

- (void)onFirstAudioPacketReceivedWithUid:(NSString *_Nonnull)uid
                                 track:(AliRtcAudioTrack)track
                                 timeCost:(int)timeCost;

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *

O ID do usuário.

videoTrack

AliRtcAudioTrack

O rótulo do stream de áudio.

timeCost

int

O tempo gasto em milissegundos.

onFirstRemoteAudioDecodedWithUid

Ocorre quando o primeiro quadro de áudio remoto é decodificado.

- (void)onFirstRemoteAudioDecodedWithUid:(NSString *_Nonnull)uid track:(AliRtcAudioTrack)track elapsed:(int)elapsed;

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *

O ID do usuário.

track

AliRtcAudioTrack

O rótulo do stream de áudio.

elapsed

int

O tempo gasto em milissegundos.

onFirstRemoteVideoFrameDrawn

Este callback é invocado quando o primeiro quadro de vídeo de um usuário remoto é renderizado.

- (void)onFirstRemoteVideoFrameDrawn:(NSString *_Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack width:(int)width height:(int)height elapsed:(int)elapsed;

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *

O ID do usuário.

videoTrack

AliRtcVideoTrack

O rótulo do fluxo de áudio.

width

int

A largura.

height

int

A altura.

elapsed

int

A latência total, em milissegundos, entre a entrada do usuário local no canal e o disparo deste callback.

onFirstLocalVideoFrameDrawn

Esta mensagem é acionada quando a pré-visualização começa a exibir o primeiro quadro de vídeo.

- (void)onFirstLocalVideoFrameDrawn:(int)width height:(int)height elapsed:(int)elapsed;

Parâmetros

Parâmetro

Tipo

Descrição

width

int

A largura do vídeo de pré-visualização local.

height

int

A altura do vídeo de pré-visualização local.

elapsed

int

A latência total, em milissegundos, entre a entrada do usuário local no canal e o disparo deste callback.

onTestAudioVolumeCallback

Este callback informa o volume de áudio durante o teste de captura antes de uma chamada.

- (void)onTestAudioVolumeCallback:(int)volume;

Parâmetros

Parâmetro

Tipo

Descrição

volume

int

O volume. Intervalo: [0..100].

onAudioAccompanyStateChanged

Callback invocado quando o estado de reprodução do acompanhamento local é alterado.

- (void)onAudioAccompanyStateChanged:(AliRtcAudioAccompanyStateCode)playState
                           errorCode:(AliRtcAudioAccompanyErrorCode)errorCode;

Parâmetros

Parâmetro

Tipo

Descrição

playState

AliRtcAudioAccompanyStateCode

O estado de reprodução do acompanhamento.

errorCode

AliRtcAudioAccompanyErrorCode

O código de erro.

onRemoteAudioAccompanyStarted

Este callback é acionado quando um usuário remoto inicia a reprodução do acompanhamento musical.

- (void)onRemoteAudioAccompanyStarted:(NSString *_Nonnull)uid;

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *

O ID do usuário.

onRemoteAudioAccompanyFinished

Este callback é invocado quando um usuário remoto termina a reprodução do acompanhamento de áudio.

- (void)onRemoteAudioAccompanyFinished:(NSString *_Nonnull)uid;

Parâmetros

Parâmetro

Tipo

Descrição

uid

NSString *

O ID do usuário.

setParameter

Define parâmetros personalizados.

- (int)setParameter:(NSString * _Nonnull)param;

Parâmetros

Parâmetro

Tipo

Descrição

param

String

O parâmetro personalizado.

getParameter

Consulta parâmetros personalizados.

- (NSString * _Nonnull)getParameter:(NSString * _Nonnull)param;

Parâmetros

Parâmetro

Tipo

Descrição

param

String

O parâmetro personalizado.

enableAudioFrameObserver

Configura as definições de callback de áudio.

- (int)enableAudioFrameObserver:(bool)enable audioSource: (AliRtcAudioSource)audioSource config:(AliRtcAudioFrameObserverConfig*_Nullable)config;

Este método ativa ou desativa callbacks para tipos específicos de dados de áudio, permitindo que os desenvolvedores recuperem quadros de áudio brutos e codificados. Por padrão, esses callbacks estão desativados. Para ativá-los, chame este método.

Nota

Para ativar callbacks de dados de áudio para uma AliRtcAudioSource específica, você também deve chamar registerAudioFrameObserver para especificar o receptor dos dados de áudio.

Quando chamar

Chame este método para ativar a recuperação de quadros de áudio.

Parâmetros

Parâmetro

Tipo

Descrição

enable

bool

Especifica se os callbacks são permitidos.

audioSource

AliRtcAudioSource

O tipo da fonte de dados do callback.

config

AliRtcAudioFrameObserverConfig

Definições dos parâmetros de callback.

registerAudioFrameObserver

Registra um callback de áudio.

- (int)registerAudioFrameObserver:(id<AliRtcAudioFrameDelegate> _Nullable)observer;

Este método registra o objeto que recebe os dados de callback de áudio.

Quando chamar

Chame este método quando seu aplicativo precisar que o SDK acione os callbacks onCapturedAudioFrame, onProcessCapturedAudioFrame, onPublishAudioFrame, onPlaybackAudioFrame ou onRemoteUserAudioFrame para recuperar dados de áudio. Para cancelar o registro, chame este método novamente com nil.

Limitações

É necessário chamar enableAudioFrameObserver para ativar os callbacks da AliRtcAudioSource específica. Caso contrário, o observer fornecido não receberá dados.

Parâmetros

Parâmetro

Tipo

Descrição

observer

AliRtcAudioFrameDelegate

O callback de áudio.

registerVideoSampleObserver

Registra um objeto utilizado para exportar dados de vídeo.

- (void)registerVideoSampleObserver;

unRegisterVideoSampleObserver

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

- (void)unregisterVideoSampleObserver;

setLogDirPath

Define o caminho para armazenamento dos arquivos de log do SDK.

Importante

Recomendamos chamar este método antes de qualquer outro para evitar perda de logs. Antes da chamada, certifique-se de que o caminho especificado pelo parâmetro logDirPath existe e permite a gravação de arquivos de log.

+ (int)setLogDirPath:(NSString *_Nullable)logDirPath;

Parâmetros

Nome

Tipo

Descrição

logDirPath

NSString *_Nullable

O caminho absoluto para armazenar os arquivos de log do SDK.

  • Por padrão, os arquivos de log do ARTC SDK para iOS ficam no caminho Library/Caches/Ali_RTC_Log.

  • O caminho padrão para logs do macOS é /Users/xxx/Documents/Ali_RTC_Log.

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Qualquer valor diferente de 0 indica falha na chamada.

setLogLevel

Define o nível de log.

- (void)setLogLevel:(AliRtcLogLevel)logLevel;

Parâmetros

Nome

Tipo

Descrição

logLevel

AliRtcLogLevel

O nível de log. Valor padrão: AliRtcLogLevelInfo.

setAudioSessionOperationRestriction

Especifica se o SDK tem permissão para controlar o AVAudioSession.

- (int)setAudioSessionOperationRestriction:(AliRtcAudioSessionOperationRestriction)restriction;

Parâmetros

Nome

Tipo

Descrição

restriction

AliRtcAudioSessionOperationRestriction

A permissão de controle do SDK. Valor padrão: AliRtcAudioSessionOperationRestrictionNone.

setDeviceOrientationMode

Define a orientação do dispositivo.

- (int)setDeviceOrientationMode:(AliRtcOrientationMode)mode;

Parâmetros

Nome

Tipo

Descrição

mode

AliRtcOrientationMode

A orientação do dispositivo.

Valor de retorno

Um valor de retorno 0 indica sucesso. Qualquer outro valor indica falha.

getNetworkTime

Recupera o timestamp da linha do tempo.

-(long long)getNetworkTime;

Valor de retorno

O timestamp.

sendDataChannelMessage

-(int) sendDataChannelMessage:(AliRtcDataChannelMsg* _Nonnull)controlMsg;

O ARTC SDK suporta o envio e recebimento de mensagens personalizadas junto com dados de áudio e vídeo. Esta interface permite enviar mensagens em tempo real — como instruções de controle, dados de sincronização ou mensagens de negócios — durante a transmissão de áudio e vídeo. Para mais informações, consulte Custom message sending and receiving.

Nota
  • O canal de mensagens personalizadas está desativado por padrão. Para usar este recurso, chame a API setParameter para ativar o canal definindo {"data":{"enablePubDataChannel":true,"enableSubDataChannel":true}}. A ativação pode ocorrer antes ou depois de entrar no canal.

  • As mensagens podem conter quaisquer dados, como texto.

  • A função DataChannel do ARTC depende do terminal de streaming para enviar fluxos de áudio ou vídeo. Certifique-se de que há fluxos de áudio e vídeo sendo enviados em seu cenário.

Callbacks relacionados

  • Após ativar com sucesso o canal de mensagens personalizadas, o remetente pode chamar este método para enviar mensagens. Os destinatários recebem as mensagens por meio do callback onDataChannelMessage.

Limitações

  • Streamers podem enviar e receber mensagens. Espectadores apenas recebem mensagens.

  • É obrigatório chamar setParameter para ativar o canal de mensagens personalizadas.

  • Os limites de transmissão de dados são:

    • Taxa de bits máxima: 30 KB/s.

    • Máximo de 60 pacotes por segundo. Cada pacote é limitado a 1 KB.

Parâmetros

Nome

Tipo

Descrição

controlMsg

AliRtcDataChannelMsg *

A mensagem de controle do acompanhamento.

Valor de retorno

0 indica sucesso. Outros valores indicam falha.

startScreenShare

Inicia o compartilhamento da tela e do fluxo de áudio.

- (int)startScreenShare:(NSString * _Nonnull)appGroup
mode:(AliRtcScreenShareMode)mode;

Parâmetros

Nome

Descrição

appGroup

O nome do pacote do aplicativo. Exemplo: @"group.com.aliyun.rtc.demo"

mode

O tipo de compartilhamento de tela. Para mais informações, consulte AliRtcScreenShareMode.

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica que a chamada falhou.

startScreenShare

Inicia o compartilhamento do fluxo de vídeo da tela.

Importante

Este método será descontinuado. Recomendamos o uso de startScreenShare (new).

- (int)startScreenShare;

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica que a chamada falhou.

stopScreenShare

Interrompe o fluxo de compartilhamento de tela e o fluxo de áudio associado.

- (int)stopScreenShare;

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica que a chamada falhou.

isScreenSharePublished

Verifica se um fluxo de compartilhamento de tela está sendo enviado.

- (BOOL)isScreenSharePublished;

Descrição do retorno

true: Um fluxo de compartilhamento de tela está sendo enviado. false: Nenhum fluxo de compartilhamento de tela está sendo enviado.

setScreenShareEncoderConfiguration

Define a configuração do codificador de compartilhamento de tela.

- (void)setScreenShareEncoderConfiguration:(AliRtcScreenShareEncoderConfiguration* _Nonnull)config;
Nota

Este método configura as propriedades de codificação de vídeo para o compartilhamento de tela, como resolução, taxa de quadros, taxa de bits e orientação. Todos os parâmetros possuem intervalos válidos. Se você especificar valores inválidos, o SDK os ajustará automaticamente para valores válidos. Chame este método antes ou depois de entrar em um canal. Para configurar a codificação do compartilhamento de tela apenas uma vez por sessão, faça a chamada antes de entrar no canal.

Parâmetros

Nome

Tipo

Descrição

config

AliRtcScreenShareEncoderConfiguration

Parâmetros de codificação de vídeo do compartilhamento de tela, como resolução, taxa de quadros, taxa de bits e orientação. Todos os parâmetros possuem intervalos válidos. Se você especificar valores inválidos, o SDK os ajustará automaticamente.

setAudioShareAppVolume

Define o volume do fluxo de áudio compartilhado.

- (int)setAudioShareAppVolume:(int)volume;

Parâmetros

Nome

Descrição

volume

O volume. Valores válidos: 0 a 100. Valor padrão: 50.

Descrição do retorno

Um valor 0 indica que a chamada foi bem-sucedida. Um valor diferente de 0 indica que a chamada falhou.

setGlobalEnvironment

Define o ambiente global.

- (BOOL) setGlobalEnvironment:(AlivcGlobalEnv)env;

Este método especifica o ambiente de execução global do SDK e determina principalmente para onde os logs e os dados de instrumentação são enviados.

  • Se definido como China continental, logs e instrumentação são enviados para data centers na China continental.

  • Se definido como fora da China, os dados são roteados para data centers no exterior (como Singapore).

Quando chamar

Recomendamos fazer esta chamada no início da inicialização do aplicativo.

Limitações

  • Esta configuração se aplica globalmente e requer apenas uma chamada.

  • Chamadas múltiplas sobrescrevem as configurações de ambiente anteriores. Alterar o ambiente dinamicamente pode afetar conexões ou sessões existentes, portanto, não o altere enquanto um processo estiver em execução.

Exemplo de chamada

var sdkEnv: AlivcGlobalEnv = .DEFAULT
let sdkEnvResult = AlivcBase.environmentManager.setGlobalEnvironment(self.sdkEnv)
"Set RTC environment to: \(sdkEnv) result: \(sdkEnvResult)".printLog()
AlivcGlobalEnv env = AlivcGlobalEnv_DEFAULT;
AlivcBase.EnvironmentManager.globalEnvironment = env;

Parâmetros

Parâmetro

Tipo

Descrição

env

AlivcGlobalEnv

Especifica o ambiente global. Suporta os seguintes valores de enumeração:• ENV_DEFAULT: ambiente dentro da China.• ENV_SEA: ambiente fora da China, como Singapore.

Valor de retornoRetorna um código de resultado int.

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

  • Valores diferentes de 0 indicam falha.