QwenCloudBRASIL
Tradução de apoio para consulta. Código e identificadores técnicos preservados. Consultar referência original ↗

iOS SDK

Referência da API AOQ iOS SDK

índice API

Ciclo de vida do motor

API Descrição
createEngine:delegado: Crie a instância do mecanismo (singleton)
destruir Destrua a instância do mecanismo
getVersão Obtenha a string da versão do SDK
conectar: ​​ Conecte-se ao servidor de retransmissão
desconectar Desconectar do servidor

Gerenciamento de dispositivos de áudio

API Descrição
startAudioCapture: Abra o dispositivo de captura de áudio (microfone)
pararAudioCaptura Feche o dispositivo de captura de áudio
muteAudioCapture: Ativar ou ativar captura de áudio
iniciarAudioPlayer: Iniciar a reprodução de áudio (reproduzir áudio remoto)
pararAudioPlayer Pare a reprodução de áudio
pausaAudioPlayer: Pause a reprodução de áudio com fade-out opcional
retomarÁudioPlayer: Retomar a reprodução de áudio com fade-in opcional
interromperAudioPlayer:fadeMs: Interromper a chamada de áudio atual
ativar viva-voz: Alternar a saída de áudio entre alto-falante e fone de ouvido
está viva-voz habilitado Consultar se o alto-falante está atualmente ativo
setAudioSessionRestriction: Definir permissões de controle AVAudioSession
enableLocalAudioVolumeIndicação: Configurar indicação de volume de captura local

Configuração do codec de áudio

API Descrição
setAudioEncoderConfig: Definir parâmetros de codificação de áudio
setAudioDecoderConfig: Definir parâmetros de decodificação de áudio

Gerenciamento de dispositivos de vídeo

API Descrição
startVideoCaptura: Abra o dispositivo de captura de vídeo (câmera)
pararVideoCapture Feche o dispositivo de captura de vídeo
mudarCâmera: Alternar entre câmeras frontal e traseira
setLocalView:canvas: Definir ou remover a visualização de renderização de vídeo local
setRemoteView:canvas: Definir ou remover a visualização de renderização remota de vídeo
startScreenCapture: Iniciar captura de tela
pararScreenCapture Pare a captura de tela

Codificação de vídeo e entrada externa

API Descrição
setVideoEncoderConfig: Definir parâmetros de codificação de vídeo
pushExternalVideoCapturedFrame:frame: Enviar um quadro de vídeo bruto capturado externamente
pushExternalVideoEncodedFrame:frame: Enviar um quadro de vídeo codificado externamente
setVideoDecoderConfig: Definir parâmetros de decodificação de vídeo

Controle de fluxo de mídia

API Descrição
enableSendMediaStream:enable: Habilitar ou desabilitar envio de fluxo de mídia local

Reprodução de arquivo de áudio

API Descrição
startAudioFile:config: Comece a transmitir um arquivo de áudio local
stopAudioFile: Pare a reprodução do arquivo de áudio
pausaÁudioArquivo: Pausar a reprodução do arquivo de áudio
retomarÁudioArquivo: Retomar a reprodução do arquivo de áudio
getAudioFileDuration: Obtenha a duração total do arquivo de áudio
getAudioFileCurrentPosição: Obtenha a posição de reprodução atual
setAudioFilePositionMillis:posiçãoMillis: Busque uma posição no arquivo de áudio
setAudioFileVolume:tipo:volume: Defina o volume do arquivo de áudio
getAudioFileVolume:tipo: Obtenha o volume atual do arquivo de áudio

Fluxos de áudio externos

API Descrição
addAudioExternalStream:config: Adicione um fluxo de áudio externo
removeAudioExternalStream: Remover um fluxo de áudio externo
pushAudioExternalStreamData:dados: Enviar dados de áudio PCM externos
setAudioExternalStreamVolume:tipo:volume: Definir o volume para um fluxo de áudio externo
getAudioExternalStreamVolume:tipo: Obtenha o volume de um fluxo de áudio externo
clearAudioExternalStreamBuffer:fadeoutMs: Limpe o buffer para um fluxo de áudio externo

Mensagens em tempo real

API Descrição
enviarDataMsg: Envie uma mensagem de dados em tempo real

Retornos de chamada de quadro de áudio

API Descrição
setAudioFrameObserver: Defina o delegado de retorno de chamada de dados do quadro de áudio
enableAudioFrameObserver:audioFonte:config: Habilitar ou desabilitar retornos de chamada de quadro de áudio em um ponto especificado

Retornos de chamada de quadro de vídeo

API Descrição
setVideoFrameObserver: Defina o delegado de retorno de chamada de dados do quadro de vídeo
enableVideoFrameObserver:videoFonte:config: Ativar ou desativar retornos de chamada de quadro de vídeo em um ponto especificado

Retornos de chamada AoqEngineDelegate

Retorno de chamada Descrição
onError:mensagem: Retorno de chamada de erro do mecanismo
onWarning:mensagem: Retorno de chamada de aviso do motor
onConnectionStatusChange: Retorno de chamada de mudança de estado de conexão
onStats: Retorno de chamada de estatísticas
onAudioDeviceStateChanged: Retorno de chamada de mudança de estado do dispositivo de áudio
onAudioDeviceRouteChanged: Retorno de chamada de mudança de rota de saída de áudio
onAudioDeviceInterrompido: Retorno de chamada de interrupção de dispositivo de áudio
onVideoDeviceStateChanged: Retorno de chamada de mudança de estado do dispositivo de vídeo
onAudioFileState: Retorno de chamada do estado de reprodução do arquivo de áudio
onDataMsg: Mensagem de dados em tempo real recebeu retorno de chamada
AoqAudioFrameDelegado Protocolo de ouvinte de dados de quadro de áudio
AoqVideoFrameDelegado Protocolo de ouvinte de dados de quadro de vídeo
onLocalAudioVolumeIndicação Retorno de chamada de volume de captura local
onScreenCaptureStateChanged Retorno de chamada do estado de captura de tela

Detalhes da API

Captura de tela

- (int)startScreenCapture:(AoqScreenCaptureConfig * _Nonnull)config;
- (int)stopScreenCapture;

config especifica configurações de captura de tela. O conteúdo da tela é enviado no AoqTrackTypeScreen pista.

Para começar, 0 significa que a solicitação foi aceita; onScreenCaptureStateChanged relata o resultado de forma assíncrona. Um retorno diferente de zero rejeita a solicitação de forma síncrona sem um evento de falha duplicado. Stop retorna 0 em caso de sucesso ou um valor diferente de zero em caso de falha e relata o estado interrompido por meio desse retorno de chamada.

Com isExternal=NO, a captura usa uma extensão de upload de transmissão. Integrar e configurar AoqScreenShare.framework e exibir o seletor de transmissão do sistema. No tempo limite, o onScreenCaptureStateChanged: retorno de chamada relata falha com AoqECScreenStartFailed. Você não precisa esperar por Iniciado antes de ativar a transmissão.

Para quadros brutos externos, defina isExternal=YES. Isso não habilita o canal de recebimento de ramal. Forneça molduras de tela brutas por meio de pushExternalVideoCapturedFrame para codificação SDK. Para quadros codificados externos, configure a trilha Screen para codificação externa com setVideoEncoderConfig, então ligue pushExternalVideoEncodedFrame; startScreenCapture não é obrigatório.

onScreenCaptureStateChanged

@optional
- (void)onScreenCaptureStateChanged:(AoqScreenCaptureState * _Nonnull)state;

state contém o estado da captura de tela. Iniciado significa que a captura ou entrada externa está pronta, e não que a mídia foi enviada. Falhas de captura de tela também não são relatadas por meio de onError.

###setVideoDecoderConfig:

- (int)setVideoDecoderConfig:(AoqVideoCodecConfig * _Nonnull)config;

config especifica configurações de decodificação de vídeo. Somente os seguintes campos terão efeito: trackType, codecType, width, height, fps, bitrate. Outros campos aplicam-se apenas à codificação.

A tela não suporta decodificação downstream. Se config.trackType é Tela, o método retorna AoqECUnSupport sem aplicar a configuração.

Retorna 0 em caso de sucesso ou um valor diferente de zero em caso de falha.

enableLocalAudioVolumeIndicação:

- (int)enableLocalAudioVolumeIndication:(AoqAudioVolumeIndicationConfig * _Nonnull)config;

config especifica configurações de indicação de volume. Os retornos de chamada são emitidos em config.interval. Chame esse método depois startAudioCapture.

Retorna 0 em caso de sucesso ou um valor diferente de zero em caso de falha.

- (void)onLocalAudioVolumeIndication:(AoqAudioVolume * _Nonnull)volume;

O volume argumento de retorno de chamada contém o volume de captura local.

Ciclo de vida do motor

createEngine:delegado:

Crie a instância do mecanismo. O SDK mantém o mecanismo como um singleton global.

+ (instancetype _Nonnull)createEngine:(AoqCreateConfig * _Nonnull)config
                             delegate:(id<AoqEngineDelegate> _Nonnull)delegate;

destruir

+ (int)destroy;

getVersion

+ (NSString * _Nonnull)getVersion;

conectar:

- (int)connect:(AoqConnectConfig * _Nonnull)config;

desconectar

- (int)disconnect;

Gerenciamento de dispositivos de áudio

- (int)startAudioCapture:(AoqAudioCaptureConfig * _Nonnull)config;
- (int)stopAudioCapture;
- (int)muteAudioCapture:(BOOL)mute;
- (int)startAudioPlayer:(AoqAudioPlaybackConfig * _Nonnull)config;
- (int)stopAudioPlayer;
- (int)pauseAudioPlayer:(NSInteger)fadeMs;
- (int)resumeAudioPlayer:(NSInteger)fadeMs;
- (int)interruptAudioPlayer:(AoqTrackType)trackType fadeMs:(NSInteger)fadeMs;
- (int)enableSpeakerphone:(BOOL)enable;
- (BOOL)isSpeakerphoneEnabled;
- (int)setAudioSessionRestriction:(int)restriction;

Configuração do codec de áudio

- (int)setAudioEncoderConfig:(AoqAudioCodecConfig * _Nonnull)config;
- (int)setAudioDecoderConfig:(AoqAudioCodecConfig * _Nonnull)config;

Gerenciamento de dispositivos de vídeo

- (int)startVideoCapture:(AoqVideoCaptureConfig * _Nonnull)config;
- (int)stopVideoCapture;
- (int)switchCamera:(AoqCameraDirection)direction;
- (int)setLocalView:(AoqTrackType)trackType canvas:(AoqVideoCanvas * _Nullable)canvas;
- (int)setRemoteView:(AoqTrackType)trackType canvas:(AoqVideoCanvas * _Nullable)canvas;

Passe AoqTrackTypeVideo como o trackType parâmetro para setLocalView e setRemoteView.

Codificação de vídeo e entrada externa

- (int)setVideoEncoderConfig:(AoqVideoCodecConfig * _Nonnull)config;
- (int)pushExternalVideoCapturedFrame:(AoqTrackType)trackType frame:(AoqVideoFrame * _Nonnull)frame;
- (int)pushExternalVideoEncodedFrame:(AoqTrackType)trackType frame:(AoqVideoEncodedFrame * _Nonnull)frame;

Passe AoqTrackTypeVideo como o trackType parâmetro.

Controle de fluxo de mídia

- (int)enableSendMediaStream:(AoqTrackType)trackType enable:(BOOL)enable;

trackType aceita AoqTrackTypeAudio ou AoqTrackTypeVideo ou AoqTrackTypeScreen.

Reprodução de arquivo de áudio

- (int)startAudioFile:(NSString * _Nonnull)fileId config:(AoqAudioFileMixConfig * _Nonnull)config;
- (int)stopAudioFile:(NSString * _Nonnull)fileId;
- (int)pauseAudioFile:(NSString * _Nonnull)fileId;
- (int)resumeAudioFile:(NSString * _Nonnull)fileId;
- (long long)getAudioFileDuration:(NSString * _Nonnull)fileId;
- (long long)getAudioFileCurrentPosition:(NSString * _Nonnull)fileId;
- (int)setAudioFilePositionMillis:(NSString * _Nonnull)fileId positionMillis:(long long)positionMillis;
- (int)setAudioFileVolume:(NSString * _Nonnull)fileId type:(AoqAudioStreamDirection)type volume:(NSInteger)volume;
- (int)getAudioFileVolume:(NSString * _Nonnull)fileId type:(AoqAudioStreamDirection)type;

Fluxos de áudio externos

- (int)addAudioExternalStream:(NSString * _Nonnull)streamId config:(AoqAudioExternalStreamConfig * _Nonnull)config;
- (int)pushAudioExternalStreamData:(NSString * _Nonnull)streamId data:(AoqAudioFrameData * _Nonnull)data;
- (int)setAudioExternalStreamVolume:(NSString * _Nonnull)streamId type:(AoqAudioStreamDirection)type volume:(NSInteger)volume;
- (int)getAudioExternalStreamVolume:(NSString * _Nonnull)streamId type:(AoqAudioStreamDirection)type;
- (void)clearAudioExternalStreamBuffer:(NSString * _Nonnull)streamId fadeoutMs:(NSInteger)fadeoutMs;
- (int)removeAudioExternalStream:(NSString * _Nonnull)streamId;

Mensagens em tempo real

- (int)sendDataMsg:(AoqDataMsg * _Nonnull)msg;

Retornos de chamada de quadro de áudio

- (int)setAudioFrameObserver:(id<AoqAudioFrameDelegate> _Nullable)delegate;
- (int)enableAudioFrameObserver:(BOOL)enabled audioSource:(AoqAudioSource)audioSource config:(AoqAudioObserverConfig * _Nonnull)config;

Retornos de chamada de quadro de vídeo

- (int)setVideoFrameObserver:(id<AoqVideoFrameDelegate> _Nullable)delegate;
- (int)enableVideoFrameObserver:(BOOL)enabled videoSource:(AoqVideoSource)videoSource config:(AoqVideoObserverConfig * _Nonnull)config;

Retornos de chamada AoqEngineDelegate

Todos os métodos de retorno de chamada são @required.

- (void)onError:(NSInteger)code message:(NSString * _Nonnull)message;
- (void)onWarning:(NSInteger)code message:(NSString * _Nonnull)message;
- (void)onConnectionStatusChange:(AoqConnectionStatus)status;
- (void)onStats:(AoqStats * _Nonnull)stats;
- (void)onAudioDeviceStateChanged:(AoqAudioDeviceState * _Nonnull)state;
- (void)onAudioDeviceRouteChanged:(NSInteger)routeType;
- (void)onAudioDeviceInterrupted:(BOOL)interrupt;
- (void)onAudioFileState:(AoqAudioFileState * _Nonnull)state;
- (void)onVideoDeviceStateChanged:(AoqVideoDeviceState * _Nonnull)state;
- (void)onDataMsg:(AoqDataMsg * _Nonnull)msg;

AoqAudioFrameDelegate (@opcional)

- (void)onCapturedAudioFrame:(AoqAudioFrameData * _Nonnull)frame;
- (void)onProcessCapturedAudioFrame:(AoqAudioFrameData * _Nonnull)frame;
- (void)onPublishAudioFrame:(AoqTrackType)trackType frame:(AoqAudioFrameData * _Nonnull)frame;
- (void)onPlaybackAudioFrame:(AoqAudioFrameData * _Nonnull)frame;

AoqVideoFrameDelegate (@opcional)

- (BOOL)onCapturedVideoFrame:(AoqTrackType)trackType frame:(AoqVideoFrame * _Nonnull)frame;
- (BOOL)onPreEncodeVideoFrame:(AoqTrackType)trackType frame:(AoqVideoFrame * _Nonnull)frame;
- (BOOL)onRemoteVideoFrame:(AoqTrackType)trackType frame:(AoqVideoFrame * _Nonnull)frame;

Tipos de dados e enumerações

AoqScreenCaptureState

Campo Tipo Padrão Descrição
estado AoqScreenCaptureStateCode AoqScreenCaptureNone Estado de captura de tela.
motivo NSInteiro 0 0 para estados normais; um AoqErrorCode em caso de falha.

AoqScreenCaptureStateCode

Valor Número Descrição
AoqScreenCaptureNone 0 Nenhum
AoqScreenCaptureIniciando 1 Iniciando
AoqScreenCaptureiniciado 2 Entrada pronta; não indica transmissão
AoqScreenCaptureStopping 3 Parando
AoqScreenCaptureStopped 4 Parado
AoqScreenCaptureFail 5 Falha no início ou no tempo de execução

AoqScreenCaptureConfig

Campo Tipo Padrão Descrição
éExterno BOOL NÃO Se o aplicativo fornece quadros de tela brutos.
grupo de aplicativos NSString* nada ID opcional do AppGroup compartilhado pelo aplicativo e pela extensão de transmissão. Se for nulo, as configurações serão entregues por meio do handshake de soquete e nenhum dos destinos precisará do recurso App Groups. Ignorado para captura externa.

AoqVideoCodecConfig

Campo Tipo Padrão Descrição
trackType AoqTrackType AoqTrackTypeVídeo Tipo de trilha
tipo de codec AoqEncoderType AoqEncoderTypeVideoH264 Codec
largura NSInteiro 540 Largura em pixels
altura NSInteiro 960 Altura em pixels
FPS NSInteiro 5 Taxa de quadros
taxa de bits NSInteiro 500000 Taxa de bits em bps
minTaxa de bits NSInteiro 128.000 Taxa de bits mínima em bps
keyframeInterval NSInteiro 2 Intervalo de quadro-chave em segundos
modo espelho AoqMirrorMode AoqMirrorModeDesativado Modo espelho
modo de orientação AoqOrientationMode AoqOrientationModeAuto Modo de orientação
éExterno BOOL NÃO Se o aplicativo fornece quadros codificados.

AoqAudioVolume

Campo Tipo Padrão Descrição
éFala BOOL NÃO Se a fala foi detectada.
volume NSInteiro 0 Volume instantâneo suavizado, de 0 a 255.

AoqAudioVolumeIndicaçãoConfig

Campo Tipo Padrão Descrição
relatórioDiscurso BOOL NÃO Seja para detectar fala.
intervalo NSInteiro 0 Intervalo de retorno de chamada em milissegundos. Valores de 0 ou menos desabilitam retornos de chamada; valores entre 0 e 10 usam 10.
suave NSInteiro 3 Fator de suavização, de 0 a 10. Valores mais altos produzem resultados mais suaves.

AoqTrackParam.trackMode

Campo Tipo Padrão Descrição
modo de trilha Modo AoqTrack AoqTrackModeSegmento Aplica-se apenas ao áudio downstream.

Modo AoqTrack

Valor Número Descrição
AoqTrackModeSegmento 0 Modo segmento: entrega dados em segmentos semânticos, como frases. Aplica-se apenas ao áudio downstream.
AoqTrackModeStream 1 Modo Stream: fornece dados continuamente. Aplica-se apenas ao áudio downstream.

AoqCreateConfig (campos adicionados na v1.3.0)

Campo Tipo Padrão Descrição
maxEncodedVideoFrameBytes NSInteiro 190×1024 Tamanho máximo do quadro codificado em bytes. Aplica-se apenas ao codificador JPEG interno do SDK.
enableDropOversizedVideoFrame BOOL NÃO Para o codificador JPEG interno do SDK, é necessário descartar um quadro que permanece superdimensionado com a qualidade mais baixa.

AoqErrorCode

Valor enum Valor Descrição
AoqErrorCodeOK 0 Sucesso
AoqErrorCodeParamInválido 1 Parâmetro inválido
AoqErrorCodeStateInválido 2 Estado inválido
AoqErrorCodeUnSupport 3 Operação não suportada
AoqErrorCodeÁudio 100 Erro genérico de áudio
AoqErrorCodeAudioExternalBufferFull 110 Buffer de áudio externo cheio
AoqErrorCodeAudioDevice 120 Erro genérico do dispositivo de áudio
AoqErrorCodeAudioDeviceRecordingAuthFailed 121 Permissão de gravação não concedida
AoqErrorCodeAudioDeviceRecordingOccupied 122 Dispositivo de gravação em uso
AoqErrorCodeAudioDeviceRecordingBackgroundStart 123 Falha ao iniciar a gravação em segundo plano
AoqErrorCodeAudioDeviceRecordingStartFail 124 Falha no início da gravação
AoqErrorCodeAudioDevicePlayoutOccupied 125 Dispositivo de reprodução em uso
AoqErrorCodeAudioDevicePlayoutBackgroundStart 126 Falha ao iniciar a reprodução em segundo plano
AoqErrorCodeAudioDevicePlayoutStartFail 127 Falha no início da reprodução
AoqErrorCodeAudioDeviceEarpieceRequiresVoipMode 128 Fone de ouvido requer modo VoIP
AoqErrorCodeVídeo 200 Erro genérico de vídeo
AoqErrorCodeVideoExternalBufferFull 210 Buffer de vídeo externo cheio
AoqErrorCodeVideoExternalCaptureNotEnabled 211 Captura de vídeo externa não habilitada
AoqErrorCodeVideoExternalEncoderNotEnabled 212 Codificador de vídeo externo não ativado
AoqErrorCodeVideoDispositivo 220 Erro genérico do dispositivo de vídeo
AoqErrorCodeVideoDeviceCameraOpenFail 221 Falha ao abrir a câmera
AoqErrorCodeVideoDeviceCameraAuthFailed 222 Permissão de câmera não concedida
AoqErrorCodeVideoDeviceCameraOccupied 223 Câmera em uso
AoqErrorCodeVideoDeviceCameraRunningError 224 Erro de tempo de execução da câmera
AoqErrorCodeVideoCodec 230 Erro genérico do codec de vídeo
AoqErrorCodeVideoCodecEncoderInitFail 231 Falha na inicialização do codificador de vídeo
AoqErrorCodeVideoRender 240 Erro genérico de renderização de vídeo
AoqErrorCodeVideoRenderCreateFail 241 Falha na criação do renderizador de vídeo
AoqErrorCodeVideoRenderDrawError 242 Erro de renderização de vídeo
AoqECScreen 300 Erro geral de compartilhamento de tela
AoqECScreenAuthFailed 310 Permissão de compartilhamento de tela negada
AoqECScreenStartFailed 311 Falha ao iniciar o compartilhamento de tela

AoqTrackType

Valor enum Valor Descrição
AoqTrackTypeÁudio 0 Faixa de áudio
AoqTrackTypeVídeo 1 Faixa de vídeo
AoqTrackTypeData 2 Faixa de mensagens de dados
AoqTrackTypeScreen 3 Faixa de compartilhamento de tela. Somente uplink.

AoqConnectConfig

subscribeTracks não deve incluir AoqTrackTypeScreen; caso contrário, connect retorna AoqECUnSupport sem iniciar uma conexão. setRemoteView também retorna AoqECUnSupport para tela.

Campo Tipo Descrição
ficha NSString* Token de autenticação
sid NSString* ID da sessão
certificadoImpressão digital NSString* Impressão digital do certificado do servidor
pontos finais de retransmissão NSArray\
* Lista de terminais de retransmissão
espaço de trabalhoIdHash NSString* Hash de ID do espaço de trabalho
publicar Trilhas NSArray\
* Faixas locais para publicar
inscrever-seFaixas NSArray\
* Faixas remotas para assinar

AoqAudioPlaybackConfig

Campo Tipo Padrão Descrição
isVoipMode BOOL NÃO SIM: habilite o modo VoIP (hardware AEC); aplica-se a dispositivos móveis
isDefaultSpeaker BOOL SIM SIM: padrão é alto-falante; NÃO: fone de ouvido
éExterno BOOL NÃO SIM: saída de áudio externa
canal NSInteiro 1 Contagem de canais: 1 ou 2

Tipos de estatísticas

####AoqStats

Campo Tipo Descrição
audioPublishStats NSArray\
* Estatísticas de publicação de áudio
videoPublishStats NSArray\
* Estatísticas de publicação de vídeo
dataMsgPublishStats NSArray\
* Estatísticas de publicação de mensagens de dados
áudioSubscribeStats NSArray\
* Estatísticas de assinatura de áudio
vídeoSubscribeStats NSArray\
* Estatísticas de assinatura de vídeo
dataMsgSubscribeStats NSArray\
* Estatísticas de assinatura de mensagens de dados
estatísticas da rede AoqNetworkStats * Estatísticas da rede

####AoqNetworkStats

Campo Tipo Descrição
enviarTaxa de bits NSUInteiro Enviar taxa de bits (bps)
enviarBytes NSUInteiro Bytes cumulativos enviados
taxa de bits recebida NSUInteiro Receber taxa de bits (bps)
recvBytes NSUInteiro Bytes acumulados recebidos
perda NSUInteiro Taxa de perda de pacotes
rt NSUInteiro Tempo de ida e volta (ms)

AoqAudioPublishStats

trackType / taxa de bits / bytes / encodeVolume

####AoqVideoPublishStats

trackType / taxa de bits / bytes / encodeFps

AoqAudioSubscribeStats

trackType / taxa de bits / bytes / playVolume

AoqVideoSubscribeStats

trackType / taxa de bits / bytes / decodeFps / renderFps

AoqDataMsgPublishStats / AoqDataMsgSubscribeStats

trackType / taxa de bits / bytes

Principais diferenças do Android SDK

Diferença iOS Android
Padrão de retorno de chamada @protocol delegado Ouvinte de classe abstrata
Controle de sessão AVAudio setAudioSessionRestriction: (somente iOS) Não há equivalente
Retorno de chamada de foco de áudio Nenhum (usa onAudioDeviceInterrupted: em vez disso) onAudioDeviceFocusChanged
Formato de pixel de vídeo Suporta cópia zero de CVPixelBuffer Suporta TextureOES / Texture2D
Visualização de renderização de vídeo UIView SurfaceView/TexturaView
Configuração do modo Bluetooth Não isBTScoMode (gerenciado pelo sistema operacional) AoqCreateConfig.isBTScoMode
Write-back de retorno de chamada de quadro de vídeo I420/CVPixelBuffer I420