Skip to main content
AOQ SDK overview

Referência da API do SDK Cliente AOQ para iOS

Referência da API do SDK Cliente AOQ para iOS. Abrange o ciclo de vida do engine, gerenciamento de dispositivos de áudio e vídeo, configuração de codec, controle de stream de mídia, reprodução de arquivos de áudio, streams de áudio externos, mensagens em tempo real, callbacks de frame, protocolos delegate, tipos de dados e enumerações.

Índice de APIs

Ciclo de vida do engine

API

Descrição

createEngine:delegate:

Crie a instância do engine (singleton)

destroy

Destrói a instância do engine

getVersion

Obtém a string de versão do SDK

connect:

Conecta ao servidor Relay

disconnect

Desconecta do servidor

Gerenciamento de dispositivos de áudio

API

Descrição

startAudioCapture:

Abre o dispositivo de captura de áudio (microfone)

stopAudioCapture

Fecha o dispositivo de captura de áudio

muteAudioCapture:

Silencia ou reativa a captura de áudio

startAudioPlayer:

Inicia a reprodução de áudio (reproduz áudio remoto)

stopAudioPlayer

Interrompe a reprodução de áudio

pauseAudioPlayer:

Pausa a reprodução de áudio com fade-out opcional

resumeAudioPlayer:

Retoma a reprodução de áudio com fade-in opcional

interruptAudioPlayer:fadeMs:

Interrompe o turno atual da chamada de áudio

enableSpeakerphone:

Alterna a saída de áudio entre alto-falante e auricular

isSpeakerphoneEnabled

Verifica se o alto-falante está ativo

setAudioSessionRestriction:

Defina as permissões de controle do AVAudioSession

Configuração de codec de áudio

API

Descrição

setAudioEncoderConfig:

Defina os parâmetros de codificação de áudio

setAudioDecoderConfig:

Defina os parâmetros de decodificação de áudio

Gerenciamento de dispositivos de vídeo

API

Descrição

startVideoCapture:

Abre o dispositivo de captura de vídeo (câmera)

stopVideoCapture

Fecha o dispositivo de captura de vídeo

switchCamera:

Alterna entre as câmeras frontal e traseira

setLocalView:canvas:

Defina ou remova a view de renderização de vídeo local

setRemoteView:canvas:

Defina ou remova a view de renderização de vídeo remoto

Codificação de vídeo e entrada externa

API

Descrição

setVideoEncoderConfig:

Defina os parâmetros de codificação de vídeo

pushExternalVideoCapturedFrame:frame:

Envia um frame de vídeo bruto capturado externamente

pushExternalVideoEncodedFrame:frame:

Envia um frame de vídeo codificado externamente

Controle de stream de mídia

API

Descrição

enableSendMediaStream:enable:

Ative ou desative o envio de stream de mídia local

Reprodução de arquivo de áudio

API

Descrição

startAudioFile:config:

Inicia o streaming de um arquivo de áudio local

stopAudioFile:

Para a reprodução do arquivo de áudio

pauseAudioFile:

Pausa a reprodução do arquivo de áudio

resumeAudioFile:

Retoma a reprodução do arquivo de áudio

getAudioFileDuration:

Obtém a duração total do arquivo de áudio

getAudioFileCurrentPosition:

Obtém a posição atual da reprodução

setAudioFilePositionMillis:positionMillis:

Busca uma posição específica no arquivo de áudio

setAudioFileVolume:type:volume:

Defina o volume do arquivo de áudio

getAudioFileVolume:type:

Obtém o volume atual do arquivo de áudio

Streams de áudio externos

API

Descrição

addAudioExternalStream:config:

Adiciona um stream de áudio externo

removeAudioExternalStream:

Remove um stream de áudio externo

pushAudioExternalStreamData:data:

Envia dados de áudio PCM externos

setAudioExternalStreamVolume:type:volume:

Defina o volume de um stream de áudio externo

getAudioExternalStreamVolume:type:

Obtém o volume de um stream de áudio externo

clearAudioExternalStreamBuffer:fadeoutMs:

Limpa o buffer de um stream de áudio externo

Mensagens em tempo real

API

Descrição

sendDataMsg:

Envia uma mensagem de dados em tempo real

Callbacks de frame de áudio

API

Descrição

setAudioFrameObserver:

Defina o delegate de callback de dados de frame de áudio

enableAudioFrameObserver:audioSource:config:

Ative ou desative callbacks de frame de áudio em um ponto especificado

Callbacks de frame de vídeo

API

Descrição

setVideoFrameObserver:

Defina o delegate de callback de dados de frame de vídeo

enableVideoFrameObserver:videoSource:config:

Ative ou desative callbacks de frame de vídeo em um ponto especificado

Callbacks do AoqEngineDelegate

Callback

Descrição

onError:message:

Callback de erro do engine

onWarning:message:

Callback de aviso do engine

onConnectionStatusChange:

Callback de alteração de status de conexão

onStats:

Callback de estatísticas

onAudioDeviceStateChanged:

Callback de alteração de estado do dispositivo de áudio

onAudioDeviceRouteChanged:

Callback de alteração de rota de saída de áudio

onAudioDeviceInterrupted:

Callback de interrupção do dispositivo de áudio

onVideoDeviceStateChanged:

Callback de alteração de estado do dispositivo de vídeo

onAudioFileState:

Callback de estado de reprodução de arquivo de áudio

onDataMsg:

Callback de recebimento de mensagem de dados em tempo real

AoqAudioFrameDelegate

Protocolo listener de dados de frame de áudio

AoqVideoFrameDelegate

Protocolo listener de dados de frame de vídeo

Detalhes da API

Ciclo de vida do engine

createEngine:delegate:

Crie a instância do engine. O SDK mantém o engine como um singleton global.
+ (instancetype _Nonnull)createEngine:(AoqCreateConfig * _Nonnull)config
                             delegate:(id<AoqEngineDelegate> _Nonnull)delegate;

destroy

+ (int)destroy;

getVersion

+ (NSString * _Nonnull)getVersion;

connect:

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

disconnect

- (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 de 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 parâmetro trackType 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 parâmetro trackType.

Controle de stream de mídia

- (int)enableSendMediaStream:(AoqTrackType)trackType enable:(BOOL)enable;
O parâmetro trackType aceita AoqTrackTypeAudio ou AoqTrackTypeVideo.

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;

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

Callbacks de frame de áudio

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

Callbacks de frame de vídeo

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

Callbacks do AoqEngineDelegate

Todos os métodos de callback 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 (@optional)

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

AoqVideoFrameDelegate (@optional)

- (BOOL)onCapturedVideoFrame:(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

AoqErrorCode

Valor da enumeração

Valor

Descrição

AoqErrorCodeOK

0

Sucesso

AoqErrorCodeParamInvalid

1

Parâmetro inválido

AoqErrorCodeStateInvalid

2

Estado inválido

AoqErrorCodeUnSupport

3

Operação não suportada

AoqErrorCodeAudio

100

Erro genérico de áudio

AoqErrorCodeAudioExternalBufferFull

110

Buffer de áudio externo cheio

AoqErrorCodeAudioDevice

120

Erro genérico de 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 gravação em segundo plano

AoqErrorCodeAudioDeviceRecordingStartFail

124

Falha ao iniciar gravação

AoqErrorCodeAudioDevicePlayoutOccupied

125

Dispositivo de reprodução em uso

AoqErrorCodeAudioDevicePlayoutBackgroundStart

126

Falha ao iniciar reprodução em segundo plano

AoqErrorCodeAudioDevicePlayoutStartFail

127

Falha ao iniciar reprodução

AoqErrorCodeAudioDeviceEarpieceRequiresVoipMode

128

Auricular requer modo VoIP

AoqErrorCodeVideo

200

Erro genérico de vídeo

AoqErrorCodeVideoExternalBufferFull

210

Buffer de vídeo externo cheio

AoqErrorCodeVideoExternalCaptureNotEnabled

211

Captura de vídeo externa não ativada

AoqErrorCodeVideoExternalEncoderNotEnabled

212

Codificador de vídeo externo não ativado

AoqErrorCodeVideoDevice

220

Erro genérico de dispositivo de vídeo

AoqErrorCodeVideoDeviceCameraOpenFail

221

Falha ao abrir a câmera

AoqErrorCodeVideoDeviceCameraAuthFailed

222

Permissão da câmera não concedida

AoqErrorCodeVideoDeviceCameraOccupied

223

Câmera em uso

AoqErrorCodeVideoDeviceCameraRunningError

224

Erro de execução da câmera

AoqErrorCodeVideoCodec

230

Erro genérico de 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 desenho na renderização de vídeo

AoqTrackType

Valor da enumeração

Valor

Descrição

AoqTrackTypeAudio

0

Faixa de áudio

AoqTrackTypeVideo

1

Faixa de vídeo

AoqTrackTypeData

2

Faixa de mensagens de dados

AoqConnectConfig

Campo

Tipo

Descrição

token

NSString *

Token de autenticação

sid

NSString *

ID da sessão

certFingerprint

NSString *

Impressão digital do certificado do servidor

relayEndpoints

NSArray<AoqRelayEndpoint >

Lista de endpoints Relay

workspaceIdHash

NSString *

Hash do ID do workspace

publishTracks

NSArray<AoqTrackParam >

Faixas locais para publicar

subscribeTracks

NSArray<AoqTrackParam >

Faixas remotas para assinar

AoqAudioPlaybackConfig

Campo

Tipo

Padrão

Descrição

isVoipMode

BOOL

NO

YES: ative o modo VoIP (AEC de hardware); aplica-se a dispositivos móveis

isDefaultSpeaker

BOOL

YES

YES: usa o alto-falante por padrão; NO: usa o auricular

isExternal

BOOL

NO

YES: saída de áudio externa

channel

NSInteger

1

Contagem de canais: 1 ou 2

Tipos de estatísticas

AoqStats

Campo

Tipo

Descrição

audioPublishStats

NSArray<AoqAudioPublishStats >

Estatísticas de publicação de áudio

videoPublishStats

NSArray<AoqVideoPublishStats >

Estatísticas de publicação de vídeo

dataMsgPublishStats

NSArray<AoqDataMsgPublishStats >

Estatísticas de publicação de mensagens de dados

audioSubscribeStats

NSArray<AoqAudioSubscribeStats >

Estatísticas de assinatura de áudio

videoSubscribeStats

NSArray<AoqVideoSubscribeStats >

Estatísticas de assinatura de vídeo

dataMsgSubscribeStats

NSArray<AoqDataMsgSubscribeStats >

Estatísticas de assinatura de mensagens de dados

networkStats

AoqNetworkStats *

Estatísticas de rede

AoqNetworkStats

Campo

Tipo

Descrição

sendBitrate

NSUInteger

Taxa de bits de envio (bps)

sendBytes

NSUInteger

Bytes enviados acumulados

recvBitrate

NSUInteger

Taxa de bits de recebimento (bps)

recvBytes

NSUInteger

Bytes recebidos acumulados

loss

NSUInteger

Taxa de perda de pacotes

rtt

NSUInteger

Tempo de ida e volta (ms)

AoqAudioPublishStats

trackType / bitrate / bytes / encodeVolume

AoqVideoPublishStats

trackType / bitrate / bytes / encodeFps

AoqAudioSubscribeStats

trackType / bitrate / bytes / playVolume

AoqVideoSubscribeStats

trackType / bitrate / bytes / decodeFps / renderFps

AoqDataMsgPublishStats / AoqDataMsgSubscribeStats

trackType / bitrate / bytes

Principais diferenças em relação ao SDK para Android

Diferença

iOS

Android

Padrão de callback

Delegate @protocol

Listener de classe abstrata

Controle do AVAudioSession

setAudioSessionRestriction: (apenas iOS)

Sem equivalente

Callback de foco de áudio

Nenhum (usa onAudioDeviceInterrupted: em vez disso)

onAudioDeviceFocusChanged

Formato de pixel de vídeo

Suporta cópia zero com CVPixelBuffer

Suporta TextureOES / Texture2D

Visualize a renderização de vídeo

UIView

SurfaceView / TextureView

Configuração de modo Bluetooth

Sem isBTScoMode (gerenciado pelo SO)

AoqCreateConfig.isBTScoMode

Write-back de callback de frame de vídeo

I420 / CVPixelBuffer

I420

Referência da API de Geração de Texto
Geração de Imagens
  • FAQ
Geração de Vídeo
Áudio
Incorporação de Texto
Produção de Modelos