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.
destroy
getVersion
connect:
disconnect
Gerenciamento de dispositivos de áudio
Configuração de codec de áudio
Gerenciamento de dispositivos de vídeo
AoqTrackTypeVideo como parâmetro trackType para setLocalView e setRemoteView.
Codificação de vídeo e entrada externa
AoqTrackTypeVideo como parâmetro trackType.
Controle de stream de mídia
trackType aceita AoqTrackTypeAudio ou AoqTrackTypeVideo.
Reprodução de arquivo de áudio
Streams de áudio externos
Mensagens em tempo real
Callbacks de frame de áudio
Callbacks de frame de vídeo
Callbacks do AoqEngineDelegate
Todos os métodos de callback são @required.
AoqAudioFrameDelegate (@optional)
AoqVideoFrameDelegate (@optional)
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 | Listener de classe abstrata |
Controle do AVAudioSession |
| Sem equivalente |
Callback de foco de áudio | Nenhum (usa |
|
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 |
|
Write-back de callback de frame de vídeo | I420 / CVPixelBuffer | I420 |