índice API
#SDK Android
Referência da API AOQ Android SDK
Referência completa da API Java para o SDK do cliente AOQ no Android, abrangendo o ciclo de vida do mecanismo, captura e reprodução de áudio/vídeo, configuração de codec, mensagens em tempo real e retornos de chamada de quadro.
índice API
Ciclo de vida do motor
| API | Descrição |
|---|---|
| criarEngine | 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 |
|---|---|
| iniciarAudioCapture | 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 |
| retomarAudioPlayer | Retomar a reprodução de áudio com fade-in opcional |
| interromperAudioPlayer | 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 |
| 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 |
|---|---|
| iniciarVideoCapture | 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 |
| definirLocalView | Definir ou remover a visualização de renderização de vídeo local |
| definirRemoteView | Definir ou remover a visualização de renderização remota de vídeo |
| iniciarScreenCapture | 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 | Enviar um quadro de vídeo bruto capturado externamente |
| pushExternalVideoEncodedFrame | Enviar um quadro de vídeo codificado externamente |
| setVideoDecoderConfig | Definir parâmetros de decodificação de vídeo |
Controle de fluxo de mídia/mensagens em tempo real
| API | Descrição |
|---|---|
| ativarSendMediaStream | Habilitar ou desabilitar envio de fluxo de mídia local |
| enviarDataMsg | Envie uma mensagem de dados em tempo real |
Reprodução de arquivo de áudio
| API | Descrição |
|---|---|
| startAudioFile | Comece a transmitir um arquivo de áudio local |
| pararAudioFile | Pare a reprodução do arquivo de áudio |
| pausaAudioFile | 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 |
| getAudioFileCurrentPosition | Obtenha a posição de reprodução atual |
| setAudioFilePositionMillis | Busque uma posição no arquivo de áudio |
| setAudioFileVolume | Defina o volume do arquivo de áudio |
| getAudioFileVolume | Obtenha o volume atual do arquivo de áudio |
Fluxos de áudio externos
| API | Descrição |
|---|---|
| addAudioExternalStream | Adicione um fluxo de áudio externo |
| removerAudioExternalStream | Remover um fluxo de áudio externo |
| pushAudioExternalStreamData | Enviar dados de áudio PCM externos |
| setAudioExternalStreamVolume | Definir o volume para um fluxo de áudio externo |
| getAudioExternalStreamVolume | Obtenha o volume de um fluxo de áudio externo |
| clearAudioExternalStreamBuffer | Limpe o buffer para um fluxo de áudio externo |
Retornos de chamada de quadro de áudio/vídeo
| API | Descrição |
|---|---|
| setAudioFrameObserver | Definir o ouvinte de retorno de chamada de dados do quadro de áudio |
| ativarAudioFrameObserver | Habilitar ou desabilitar retornos de chamada de quadro de áudio em um ponto especificado |
| setVideoFrameObserver | Definir o ouvinte de retorno de chamada de dados do quadro de vídeo |
| ativarVideoFrameObserver | Ativar ou desativar retornos de chamada de quadro de vídeo em um ponto especificado |
Retornos de chamada AoqClientListener
| Retorno de chamada | Descrição |
|---|---|
| onError | Retorno de chamada de erro do mecanismo |
| emAviso | Retorno de chamada de aviso do motor |
| onConnectionStatusAlterar | Retorno de chamada de mudança de estado de conexão |
| onStats | Retorno de chamada de estatísticas do mecanismo |
| 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 |
| onAudioDeviceFocusAlterado | Retorno de chamada de mudança de foco de áudio |
| onAudioFileState | Retorno de chamada do estado de reprodução do arquivo de áudio |
| onDataMsg | Mensagem de dados em tempo real recebeu retorno de chamada |
| onLocalAudioVolumeIndicação | Retorno de chamada de volume de captura local |
| onScreenCaptureStateChanged | Retorno de chamada do estado de captura de tela |
Detalhes da API
Requisitos de entrada de vídeo externa
pushExternalVideoCapturedFrame suporta vídeo e tela. Habilite primeiro a captura externa na trilha correspondente; caso contrário, ele retorna AoqECVideoExternalCaptureNotEnabled (211).
Captura de tela
public abstract int startScreenCapture(@NonNull AoqScreenCaptureConfig config)
public abstract int stopScreenCapture()
trackType suporta AoqTrackTypeAudio, AoqTrackTypeVideoe AoqTrackTypeScreen.
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. 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=false, o SDK captura por meio do MediaProjection. Iniciar a captura novamente enquanto ela está ativa retorna AoqECStateInvalid; parar é idempotente.
Para quadros brutos externos, defina isExternal=true e fornecer molduras de tela brutas através 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
public void onScreenCaptureStateChanged(@NonNull AoqScreenCaptureState 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. Fail e Stopped são estados terminais emitidos após a limpeza.
###setVideoDecoderConfig
public abstract int setVideoDecoderConfig(@NonNull AoqVideoCodecConfig 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.
enableLocalAudioVolumeIndication
public abstract int enableLocalAudioVolumeIndication(@NonNull AoqAudioVolumeIndicationConfig 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.
public void onLocalAudioVolumeIndication(@NonNull AoqAudioVolume volume) {}
O volume argumento de retorno de chamada contém o volume de captura local.
Ciclo de vida do motor
criarEngine
Crie a instância do mecanismo. O SDK mantém o mecanismo como um singleton global; chamar esse método novamente retorna a instância existente.
@NonNull
public static AoqClientEngine createEngine(
@NonNull Context context,
@NonNull AoqCreateConfig config,
@NonNull AoqClientListener listener)
| Parâmetro | Tipo | Descrição |
|---|---|---|
| contexto | Contexto | Contexto do aplicativo Android |
| configuração | AoqCreateConfig | Configuração de criação do motor |
| ouvinte | AoqClientListener | Ouvinte de retorno de chamada de evento do mecanismo |
Retorna: instância AoqClientEngine; nunca nulo.
destruir
Destrua a instância do mecanismo e libere todos os recursos.
public static int destroy()
Retorna: 0 em caso de sucesso; diferente de zero em caso de falha.
obter versão
@NonNull
public static String getVersion()
Retorna: String de versão, por exemplo "1.0.0".
conectar
Conecte-se ao servidor de retransmissão. Os parâmetros de conexão são alocados pelo servidor de aplicação via /api/v1/allocate e entregue ao cliente.
public abstract int connect(@NonNull AoqConnectConfig config)
Retorna: 0 se a chamada foi despachada (assíncrona); diferente de zero se a validação do parâmetro falhou.
desconectar
public abstract int disconnect()
Retorna: 0 se a chamada foi despachada (assíncrona); diferente de zero em caso de falha.
Gerenciamento de dispositivos de áudio
public abstract int startAudioCapture(@NonNull AoqAudioCaptureConfig config)
public abstract int stopAudioCapture()
public abstract int muteAudioCapture(boolean mute)
public abstract int startAudioPlayer(@NonNull AoqAudioPlaybackConfig config)
public abstract int stopAudioPlayer()
public abstract int pauseAudioPlayer(int fadeMs)
public abstract int resumeAudioPlayer(int fadeMs)
public abstract int interruptAudioPlayer(@NonNull AoqTrackType trackType, int fadeMs)
public abstract int enableSpeakerphone(boolean enable)
public abstract boolean isSpeakerphoneEnabled()
fadeMs: duração do fade-out/fade-in em milissegundos; 0 significa imediato.
Configuração do codec de áudio
public abstract int setAudioEncoderConfig(@NonNull AoqAudioCodecConfig config)
public abstract int setAudioDecoderConfig(@NonNull AoqAudioCodecConfig config)
Gerenciamento de dispositivos de vídeo
public abstract int startVideoCapture(@NonNull AoqVideoCaptureConfig config)
public abstract int stopVideoCapture()
public abstract int switchCamera(@NonNull AoqCameraDirection direction)
public abstract int setLocalView(@NonNull AoqTrackType trackType, @Nullable AoqVideoCanvas canvas)
public abstract int setRemoteView(@NonNull AoqTrackType trackType, @Nullable AoqVideoCanvas canvas)
Passe AoqTrackTypeVideo como o trackType parâmetro para setLocalView e setRemoteView.
Codificação de vídeo e entrada externa
public abstract int setVideoEncoderConfig(@NonNull AoqVideoCodecConfig config)
public abstract int pushExternalVideoCapturedFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoFrame frame)
public abstract int pushExternalVideoEncodedFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoEncodedFrame frame)
pushExternalVideoCapturedFrame consome quadros de vídeo depois startVideoCapture(isExternal=true) e quadros de tela depois startScreenCapture(isExternal=true). Se o buffer interno estiver cheio, o método retornará AoqECVideoExternalBufferFull (210).
Controle de fluxo de mídia
public abstract int enableSendMediaStream(@NonNull AoqTrackType trackType, boolean enable)
Padrão recomendado: chamada enableSendMediaStream(false) após a inicialização, ative uma vez onConnectionStatusChange relatórios Connected.
Reprodução de arquivo de áudio
public abstract int startAudioFile(@NonNull String fileId, @NonNull AoqAudioFileMixConfig config)
public abstract int stopAudioFile(@NonNull String fileId)
public abstract int pauseAudioFile(@NonNull String fileId)
public abstract int resumeAudioFile(@NonNull String fileId)
public abstract long getAudioFileDuration(@NonNull String fileId)
public abstract long getAudioFileCurrentPosition(@NonNull String fileId)
public abstract int setAudioFilePositionMillis(@NonNull String fileId, long positionMillis)
public abstract int setAudioFileVolume(@NonNull String fileId, @NonNull AoqAudioStreamDirection type, int volume)
public abstract int getAudioFileVolume(@NonNull String fileId, @NonNull AoqAudioStreamDirection type)
Fluxos de áudio externos
public abstract int addAudioExternalStream(@NonNull String streamId, @NonNull AoqAudioExternalStreamConfig config)
public abstract int removeAudioExternalStream(@NonNull String streamId)
public abstract int pushAudioExternalStreamData(@NonNull String streamId, @NonNull AoqAudioFrameData data)
public abstract int setAudioExternalStreamVolume(@NonNull String streamId, @NonNull AoqAudioStreamDirection type, int volume)
public abstract int getAudioExternalStreamVolume(@NonNull String streamId, @NonNull AoqAudioStreamDirection type)
public abstract void clearAudioExternalStreamBuffer(@NonNull String streamId, int fadeoutMs)
Quando pushAudioExternalStreamData retorna AoqErrorCodeAudioExternalBufferFull (110), o buffer interno está cheio. Aguarde 30 ms e tente novamente.
Mensagens em tempo real
public abstract int sendDataMsg(@NonNull AoqDataMsg msg)
Retornos de chamada de quadro de áudio
public abstract int setAudioFrameObserver(@Nullable AoqClientListener.AoqAudioFrameListener listener)
public abstract int enableAudioFrameObserver(boolean enabled, @NonNull AoqAudioSource audioSource, @NonNull AoqAudioObserverConfig config)
Retornos de chamada de quadro de vídeo
public abstract int setVideoFrameObserver(@Nullable AoqClientListener.AoqVideoFrameListener listener)
public abstract int enableVideoFrameObserver(boolean enabled, @NonNull AoqVideoSource videoSource, @NonNull AoqVideoObserverConfig config)
Retornos de chamada AoqClientListener
AoqClientListener é o ponto de entrega unificado para todos os eventos assíncronos do SDK. Todos os métodos de retorno de chamada têm uma implementação vazia padrão, portanto, você só precisa substituir aqueles de seu interesse.
public void onError(int code, String message)
public void onWarning(int code, String message)
public void onConnectionStatusChange(@NonNull AoqConnectionStatus status)
public void onStats(@NonNull AoqStats stats)
public void onAudioDeviceStateChanged(@NonNull AoqAudioDeviceState state)
public void onAudioDeviceRouteChanged(int routeType)
public void onAudioDeviceInterrupted(boolean interrupt)
public void onVideoDeviceStateChanged(@NonNull AoqVideoDeviceState state)
public void onAudioDeviceFocusChanged(int audioFocus)
public void onAudioFileState(@NonNull AoqAudioFileState state)
public void onDataMsg(@NonNull AoqDataMsg msg)
Transições de estado de conexão: Desconectado → Conectando → Conectado/Falha → Desconectado.
AoqAudioFrameListener
public interface AoqAudioFrameListener {
default void onCapturedAudioFrame(@NonNull AoqAudioFrameData frame) {}
default void onProcessCapturedAudioFrame(@NonNull AoqAudioFrameData frame) {}
default void onPublishAudioFrame(@NonNull AoqTrackType trackType, @NonNull AoqAudioFrameData frame) {}
default void onPlaybackAudioFrame(@NonNull AoqAudioFrameData frame) {}
}
AoqVideoFrameListener
public interface AoqVideoFrameListener {
default boolean onCapturedVideoFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoFrameData frame) { return false; }
default boolean onPreEncodeVideoFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoFrameData frame) { return false; }
default boolean onRemoteVideoFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoFrameData frame) { return false; }
}
Retorno true para indicar que você modificou os dados do quadro e want o SDK para lê-lo (o write-back só entra em vigor no formato I420). O ByteBuffer e textureId em frame são válidos apenas durante o retorno de chamada; copie-os antes de qualquer uso assíncrono.
Tipos de dados e enumerações
AoqScreenCaptureState
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
| estado | AoqScreenCaptureStateCode | AoqScreenCaptureNone | Estado de captura de tela. |
| motivo | interno | 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 |
AoqScreenShareNotificationFactory
public interface AoqScreenShareNotificationFactory {
@Nullable Notification createNotification(@NonNull Context serviceContext);
}
Retorne null para usar a notificação padrão. Crie o NotificationChannel com createNotificationChannel antes de retornar uma notificação personalizada; caso contrário, o serviço em primeiro plano não será iniciado.
AoqScreenCaptureConfig
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
| éExterno | booleano | falso | Se o aplicativo fornece quadros de tela brutos. |
| mediaProjectionIntent | Intenção | nulo | Passe uma intenção de permissão MediaProjection existente ou nulo para permitir que o SDK solicite permissão. Ignorado para captura externa. |
| notificaçãoFábrica | AoqScreenShareNotificationFactory | nulo | Fábrica de notificação de serviço em primeiro plano. Nulo usa a notificação padrão. Ignorado para captura externa. |
AoqAudioVolume
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
| éFala | booleano | falso | Se a fala foi detectada. |
| volume | interno | 0 | Volume instantâneo suavizado, de 0 a 255. |
AoqAudioVolumeIndicaçãoConfig
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
| relatórioDiscurso | booleano | falso | Seja para detectar fala. |
| intervalo | interno | 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 | interno | 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. |
Tipos gerais
AoqCreateConfig
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
| trabalhoDir | Corda | "" | Diretório de trabalho do SDK |
| isBTScoMode | booleano | falso | verdadeiro: modo Bluetooth SCO; falso: modo A2DP |
| habilitarDumpÁudio | booleano | falso | Habilitar despejo de áudio (para depuração) |
| extras | Corda | "" | String de parâmetros extras |
| maxEncodedVideoFrameBytes | interno | 190×1024 | Tamanho máximo do quadro codificado em bytes. Aplica-se apenas ao codificador JPEG interno do SDK. |
| enableDropOversizedVideoFrame | booleano | falso | Para o codificador JPEG interno do SDK, é necessário descartar um quadro que permanece superdimensionado com a qualidade mais baixa. |
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 | Padrão | Descrição |
|---|---|---|---|
| ficha | Corda | "" | Token de autenticação |
| sid | Corda | "" | ID da sessão |
| certificadoImpressão digital | Corda | "" | Impressão digital do certificado do servidor |
| pontos finais de retransmissão | Lista\ | ||
| vazio | Lista de terminais de retransmissão | ||
| espaço de trabalhoIdHash | Corda | "" | Hash de ID do espaço de trabalho |
| publicar Trilhas | Lista\ |
| vazio | Faixas locais para publicar |
| inscrever-seFaixas | Lista
| vazio | Faixas remotas para assinar |
Tipos de estatísticas
AoqNetworkStats
| Campo | Tipo | Descrição |
|---|---|---|
| enviarTaxa de bits | interno | Enviar taxa de bits (bps) |
| enviarBytes | longo | Bytes cumulativos enviados |
| taxa de bits recebida | interno | Receber taxa de bits (bps) |
| recvBytes | longo | Bytes acumulados recebidos |
| perda | interno | Taxa de perda de pacotes (0-100) |
| rt | interno | Tempo de ida e volta (ms) |
Enumerações
AoqErrorCode
| Valor enum | Valor | Descrição |
|---|---|---|
| AoqErrorCodeOK | 0 | Sucesso |
| AoqErrorCodeParamInválido | 1 | Parâmetro inválido |
| AoqErrorCodeStateInválido | 2 | Estado inválido |
| AoqErrorCodeUnSupport | 3 | Não suportado |
| 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 |
Código de aviso Aoq
| Valor enum | Valor | Descrição |
|---|---|---|
| AoqWCOK | 0 | Nenhum aviso |
| AoqWCAudio | 100 | Aviso genérico de áudio |
| AoqWCAudioUivo | 101 | Uivo de áudio detectado |
| AoqWCAudioDispositivo | 120 | Aviso genérico do dispositivo de áudio |
| AoqWCAudioDeviceMicEnumerateError | 121 | Erro de enumeração de microfone |
| AoqWCAudioDeviceMicStartTimeout | 122 | Tempo limite de início do microfone |
| AoqWCAudioDeviceRecordingError | 123 | Erro de gravação |
| AoqWCAudioDeviceSpeakerEnumerateError | 124 | Erro de enumeração de alto-falantes |
| AoqWCAudioDeviceSpeakerStartTimeout | 125 | Tempo limite de início do alto-falante |
| AoqWCAudioDevicePlayoutError | 126 | Erro de reprodução |
| AoqWCVídeo | 200 | Aviso genérico de vídeo |
| AoqWCVideoCameraEnumerateError | 201 | Erro de enumeração de câmera |
| AoqWCVideoEncoderSwitched | 202 | Codificador de vídeo comutado |
| AoqWCVideoRenderDowngrade | 203 | Renderização de vídeo rebaixada |
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. |
AoqEncoderType
| Valor enum | Valor | Descrição |
|---|---|---|
| AoqEncoderTypeUnknown | 0 | Formato desconhecido |
| AoqEncoderTypeAudioPCM | 1 | Áudio PCM |
| AoqEncoderTypeAudioOpus | 2 | Opus de áudio |
| AoqEncoderTypeVideoH264 | 3 | Vídeo H.264 |
| AoqEncoderTypeVideoJpeg | 4 | Vídeo JPEG |
| AoqEncoderTypeDataText | 5 | Texto de dados |
AoqConnectionStatus
| Valor enum | Valor | Descrição |
|---|---|---|
| AoqConnectionStatusDisconnected | 0 | Desconectado |
| AoqConnectionStatusConectando | 1 | Conectando |
| AoqConnectionStatusConectado | 2 | Conectado |
| AoqConnectionStatusFalha | 3 | Falha na conexão |
Tipos de áudio
AoqAudioCaptureConfig
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
| éExterno | booleano | falso | Se deve usar o modo de captura externa |
| isVoipMode | booleano | falso | Se deve ativar o modo VoIP (afeta o roteamento do dispositivo, por exemplo, fone de ouvido) |
| canal | interno | 1 | Contagem de canais (padrão: mono) |
AoqAudioPlaybackConfig
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
| isVoipMode | booleano | falso | Se deve ativar o modo VoIP (hardware AEC); aplica-se a dispositivos móveis |
| isDefaultSpeaker | booleano | verdade | Se o padrão é o alto-falante; aplica-se a dispositivos móveis |
| éExterno | booleano | falso | Se deve usar o modo de reprodução externa |
| canal | interno | 1 | Contagem de canais (padrão: mono) |
AoqAudioCodecConfig
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
| trackType | AoqTrackType | Áudio | Tipo de trilha |
| tipo de codec | AoqEncoderType | ÁudioOpus | Formato de codec |
| taxa de amostra | interno | 48.000 | Taxa de amostragem (Hz) |
| canal | interno | 1 | Contagem de canais |
| taxa de bits | interno | 32.000 | Taxa de bits (bps) |
Tipos de vídeo
AoqVideoCaptureConfig
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
| largura | interno | 1280 | Largura de captura (pixels); ignorado quando isExternal=true |
| altura | interno | 720 | Altura de captura (pixels); ignorado quando isExternal=true |
| FPS | interno | 15 | Taxa de quadros de captura; ignorado quando isExternal=true |
| éExterno | booleano | falso | Modo de captura externa; quando verdadeiro, a câmera não está aberta |
| direção da câmera | AoqCameraDireção | Frente | Direção da câmera; ignorado quando isExternal=true |
AoqVideoCodecConfig
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
| trackType | AoqTrackType | Vídeo | Tipo de trilha |
| tipo de codec | AoqEncoderType | VídeoH264 | Formato de codec |
| largura | interno | 540 | Largura de codificação (pixels) |
| altura | interno | 960 | Altura de codificação (pixels) |
| FPS | interno | 5 | Taxa de quadros de codificação |
| taxa de bits | interno | 500000 | Taxa de bits alvo (bps) |
| minTaxa de bits | interno | 128.000 | Taxa de bits mínima (bps) |
| keyframeInterval | interno | 2 | Intervalo de quadro-chave (segundos) |
| modo espelho | AoqMirrorMode | Desativado | Modo espelho |
| modo de orientação | AoqOrientationMode | Automóvel | Modo de orientação de vídeo |
| éExterno | booleano | falso | Quando verdadeiro, o SDK ignora a recodificação; usar pushExternalVideoEncodedFrame entregar dados pré-codificados |
AoqVideoPixelFormat
| Valor enum | Valor | Descrição |
|---|---|---|
| AoqVideoPixelFormatUnknown | 0 | Formato desconhecido |
| AoqVideoPixelFormatI420 | 1 | I420 (YUV plano) |
| AoqVideoPixelFormatNV12 | 2 | NV12 (YUV semiplanar) |
| AoqVideoPixelFormatNV21 | 3 | NV21 (YUV semiplanar) |
| AoqVideoPixelFormatBGRA | 4 | BGRA 32 bits |
| AoqVideoPixelFormatRGBA | 5 | RGBA de 32 bits |
| AoqVideoPixelFormatTextureOES | 7 | Textura OES externa |
| AoqVideoPixelFormatTexture2D | 8 | Textura 2D padrão |
Tipos de fluxo de áudio externo
AoqAudioExternalStreamConfig
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
| trackType | AoqTrackType | Áudio | Tipo de faixa de áudio |
| tipo de codec | AoqEncoderType | ÁudioPCM | Formato de fluxo de áudio |
| canais | interno | 1 | Contagem de canais |
| taxa de amostra | interno | 48.000 | Taxa de amostragem (Hz) |
| volume de reprodução | interno | 100 | Volume de reprodução [0-100] |
| publicarVolume | interno | 100 | Volume de publicação [0-100] |
| maxBufferDuration | interno | 1000 | Duração máxima do buffer (milissegundos) |
| habilitar3A | booleano | falso | Se deve aplicar o processamento 3A ao PCM de entrada |
AoqAudioStreamDirection
| Valor enum | Valor | Descrição |
|---|---|---|
| AoqAudioStreamPublicar | 0 | Publicar stream (enviar) |
| AoqAudioStreamPlayout | 1 | Fluxo de reprodução (receber) |
Tipos de mensagens de dados
AoqDataMsg
| Campo | Tipo | Padrão | Descrição |
|---|---|---|---|
| dados | byte[] | novo byte[0] | Dados da mensagem (matriz de bytes) |