Skip to main content

Referencia de API del AOQ Client SDK para Android

El AOQ Client SDK para Android proporciona un conjunto completo de capacidades de comunicación de audio y video en tiempo real, que incluye gestión del ciclo de vida del motor, captura y reproducción de audio/video, configuración de códecs, inyección de flujos de audio externos, mezcla de archivos de audio, mensajería en tiempo real y callbacks de fotogramas de audio/video. Este documento es la referencia completa de la API de Java para la plataforma Android.

El SDK de AOQ proporciona API generales de video. Qwen-Audio-Realtime no admite entrada ni salida de video. Para conocer las capacidades de medios de otros modelos, consulte su documentación de conexión.

Índice de API

Ciclo de vida del motor

APIDescripción
createEngineCrear una instancia del motor (singleton)
destroyDestruir la instancia del motor
getVersionObtener la versión del SDK
connectConectar al servidor Relay
disconnectDesconectar del servidor

Gestión de dispositivos de audio

APIDescripción
startAudioCaptureAbrir el dispositivo de captura de audio (micrófono)
stopAudioCaptureCerrar el dispositivo de captura de audio
muteAudioCaptureSilenciar o reactivar la captura de audio
startAudioPlayerIniciar renderizado de audio (reproducción de audio remoto)
stopAudioPlayerDetener la renderización de audio
pauseAudioPlayerPausar el renderizado de audio, con desvanecimiento opcional
resumeAudioPlayerReanudar el renderizado de audio, con aparición gradual opcional
interruptAudioPlayerInterrumpir la sesión de audio actual
enableSpeakerphoneCambiar la salida de audio entre el altavoz y el auricular
isSpeakerphoneEnabledVerificar si la salida de audio usa el altavoz

Configuración de codificación de audio

APIDescripción
setAudioEncoderConfigEstablecer parámetros de codificación de audio
setAudioDecoderConfigEstablecer parámetros de decodificación de audio

Reproducción de archivos de audio

APIDescripción
startAudioFileIniciar la reproducción y publicación de un archivo de audio local
stopAudioFileDetener la reproducción del archivo de audio
pauseAudioFilePausar la reproducción del archivo de audio
resumeAudioFileReanudar la reproducción del archivo de audio
getAudioFileDurationObtener la duración total del archivo de audio
getAudioFileCurrentPositionObtener la posición de reproducción actual del archivo de audio
setAudioFilePositionMillisBuscar una posición en el archivo de audio
setAudioFileVolumeEstablecer el volumen del archivo de audio
getAudioFileVolumeObtener el volumen actual del archivo de audio

Secuencias de audio externas

APIDescripción
addAudioExternalStreamAgregar un flujo de audio externo
pushAudioExternalStreamDataEnviar datos de audio PCM externos
setAudioExternalStreamVolumeEstablecer el volumen de la secuencia de audio externa
getAudioExternalStreamVolumeObtener el volumen de la secuencia de audio externa
clearAudioExternalStreamBufferBorrar el búfer de la secuencia de audio externa
removeAudioExternalStreamEliminar un flujo de audio externo

Callbacks de cuadros de audio

APIDescripción
setAudioFrameObserverEstablecer el listener del callback de tramas de audio
enableAudioFrameObserverHabilitar o deshabilitar callbacks de tramas de audio en una etapa específica

Indicación de volumen de audio local

APIDescripción
enableLocalAudioVolumeIndicationHabilitar o deshabilitar la indicación de volumen de captura local

Gestión de dispositivos de video

APIDescripción
startVideoCaptureAbrir el dispositivo de captura de video (cámara)
stopVideoCaptureCerrar el dispositivo de captura de video
switchCameraCambiar entre cámaras frontal y trasera
setLocalViewEstablecer o eliminar la ventana de renderizado de video local
setRemoteViewEstablecer o eliminar la ventana de renderizado de video remoto

Codificación de video y entrada externa

APIDescripción
setVideoEncoderConfigEstablecer parámetros de codificación de video
setVideoDecoderConfigEstablecer parámetros de decodificación de video
pushExternalVideoCapturedFrameEnviar tramas de video capturadas externamente
pushExternalVideoEncodedFrameEnviar tramas de video codificadas externamente

Captura de pantalla

APIDescripción
startScreenCaptureIniciar la captura de pantalla
stopScreenCaptureDetener la captura de pantalla

Control de transmisión de flujo de medios

APIDescripción
enableSendMediaStreamHabilitar o deshabilitar la transmisión de secuencia de medios local

Callbacks de cuadros de video

APIDescripción
setVideoFrameObserverEstablecer el listener del callback de tramas de video
enableVideoFrameObserverHabilitar o deshabilitar callbacks de tramas de video en una etapa específica

Mensajes en tiempo real

APIDescripción
sendDataMsgEnviar un mensaje de datos en tiempo real

Callbacks de AoqClientListener

APIDescripción
onErrorCallback de error del motor
onWarningCallback de advertencia del motor
onConnectionStatusChangeCallback de cambio de estado de conexión
onStatsCallback de estadísticas del motor
onAudioDeviceStateChangedCallback de cambio de estado de operación del dispositivo de audio
onAudioDeviceRouteChangedCallback de cambio de ruta de salida de audio
onAudioDeviceInterruptedCallback de interrupción del dispositivo de audio
onScreenCaptureStateChangedCallback de cambio de estado de captura de pantalla
onVideoDeviceStateChangedCallback de cambio de estado de operación del dispositivo de video
onAudioDeviceFocusChangedCallback de cambio de enfoque de audio
onAudioFileStateCallback de estado de reproducción de archivo de audio
onLocalAudioVolumeIndicationCallback de indicación de volumen de captura local
onDataMsgCallback de mensaje de datos en tiempo real recibido

Callbacks de AoqAudioFrameListener

APIDescripción
onCapturedAudioFrameSe invoca cuando se captura un cuadro de audio sin procesar. El cuadro contiene datos PCM no procesados.
onProcessCapturedAudioFrameSe invoca para un cuadro de audio después del procesamiento 3A, como la cancelación de eco y la supresión de ruido.
onPublishAudioFrameSe invoca para un cuadro de audio antes de la publicación, inmediatamente antes de la codificación y la transmisión.
onPlaybackAudioFrameSe invoca para un cuadro de audio remoto antes de la reproducción, después de la decodificación y la mezcla.

Callbacks de AoqVideoFrameListener

APIDescripción
onCapturedVideoFrameSe invoca cuando se captura un cuadro de video sin procesar, antes del preprocesamiento.
onPreEncodeVideoFrameSe invoca para un cuadro de video después del preprocesamiento y antes de la codificación.
onRemoteVideoFrameSe invoca para un cuadro de video remoto después de la decodificación y antes de la renderización.

Detalles de la API

pushExternalVideoCapturedFrame admite Video y Screen. Habilite primero la captura externa en la pista correspondiente; de lo contrario, devolverá AoqECVideoExternalCaptureNotEnabled (211).

Ciclo de vida del motor

createEngine Cree la instancia del motor. El SDK mantiene el motor como un singleton global; llamar a este método nuevamente devuelve la instancia existente.
@NonNull
public static AoqClientEngine createEngine(
    @NonNull Context context,
    @NonNull AoqCreateConfig config,
    @NonNull AoqClientListener listener)

Parámetro

Tipo

Descripción

context

Context

Contexto de aplicación Android

config

AoqCreateConfig

Configuración de creación del motor

listener

AoqClientListener

Listener de callbacks de eventos del motor

Devuelve: Instancia de AoqClientEngine; nunca null. destroy Destruye la instancia del motor y libera todos los recursos. Llame a createEngine nuevamente antes de usar el SDK después de la destrucción.
public static int destroy()
Parámetros: None. Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode. getVersion Obtiene la versión actual del SDK. Se puede llamar antes de createEngine.
@NonNull
public static String getVersion()
Parámetros: None. Valor devuelto: Una cadena de versión, como "1.3.0". connect Se conecta al servidor de Relay. AppServer envía los parámetros de conexión al cliente. Esta llamada regresa de inmediato. El resultado real de la conexión se informa mediante la función de callback onConnectionStatusChange.
En la documentación general de la API del SDK, AppServer asigna los parámetros de conexión mediante /api/v1/allocate. Para un modelo específico, consulte Conexión mediante AOQ de Qwen-Omni-Realtime, Conexión mediante AOQ de Qwen-Audio-Realtime o Conexión mediante AOQ de Qwen-LiveTranslate-Realtime.
public abstract int connect(@NonNull AoqConnectConfig config)
ParámetroTipoDescripción
configAoqConnectConfigConfiguración de conexión, incluyendo Token, SID, puntos finales Relay y pistas de publicación/suscripción
Valor de retorno: 0 indica que la llamada se ha enviado para ejecución asíncrona. Un valor distinto de cero indica un fallo en la validación de parámetros y corresponde a AoqErrorCode.
La pista Screen solo admite transmisión ascendente; la suscripción descendente no está implementada. No incluya AoqTrackTypeScreen en config.subscribeTracks. De lo contrario, se devuelve AoqECUnSupport y no se inicia ninguna conexión. No habilite el envío de medios con enableSendMediaStream(true) antes de que la conexión tenga éxito. Habilítelo después de que onConnectionStatusChange notifique Connected.
disconnect Desconecta del servidor y libera los recursos de conexión. Retorna inmediatamente. El resultado de la desconexión se notifica a través de onConnectionStatusChange.
public abstract int disconnect()
Parámetros: None. Valor de retorno: 0 indica que la llamada se ha enviado para ejecución asíncrona. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

Gestión de dispositivos de audio

startAudioCapture

Abre el dispositivo de captura de audio (micrófono) e inicia la captura de audio local. Para entrada de audio externa (pushAudioExternalStreamData), establezca isExternal en true. En este modo, el micrófono no se abre.
public abstract int startAudioCapture(@NonNull AoqAudioCaptureConfig config)
ParámetroTipoDescripción
configAoqAudioCaptureConfigConfiguración de captura de audio
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode. Por ejemplo, AoqECAudioDeviceRecordingAuthFailed indica que no se ha concedido el permiso de grabación.
En Android, solicite el permiso RECORD_AUDIO antes de llamar a este método. Los cambios de estado del dispositivo se reportan a través de onAudioDeviceStateChanged.

stopAudioCapture

Cierra el dispositivo de captura de audio y detiene la captura de audio local.
public abstract int stopAudioCapture()
Parámetros: None. Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

muteAudioCapture

Silencia o reactiva la captura de audio. A diferencia de stopAudioCapture, silenciar mantiene la captura activa pero envía cuadros silenciosos.
public abstract int muteAudioCapture(boolean mute)
ParámetroTipoDescripción
mutebooleantrue silencia la captura; false la reactiva.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
Este método solo surte efecto después de llamar a startAudioCapture.

startAudioPlayer

Inicia la renderización de audio y reproduce el audio remoto a través del altavoz o el auricular. Para renderización externa (reproducir PCM usted mismo), establezca isExternal en true.
public abstract int startAudioPlayer(@NonNull AoqAudioPlaybackConfig config)
ParámetroTipoDescripción
configAoqAudioPlaybackConfigConfiguración de reproducción de audio
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode. Por ejemplo, AoqECAudioDevicePlayoutOccupied indica que el dispositivo de reproducción está ocupado.
Los cambios de estado del dispositivo se reportan a través de onAudioDeviceStateChanged. Los cambios de ruta de salida se reportan a través de onAudioDeviceRouteChanged.

stopAudioPlayer

Detiene el renderizado de audio y cierra el dispositivo de reproducción.
public abstract int stopAudioPlayer()
Parámetros: None. Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

pauseAudioPlayer

Pausa la renderización de audio con un fundido de salida opcional. Los datos de audio remoto continúan llegando mientras está en pausa, pero no se reproducen.
public abstract int pauseAudioPlayer(int fadeMs)
ParámetroTipoDescripción
fadeMsintDuración del desvanecimiento de salida en milisegundos. 0 pausa la reproducción inmediatamente.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

resumeAudioPlayer

Reanuda la renderización de audio con un fundido de entrada opcional. Llame a este método después de pauseAudioPlayer.
public abstract int resumeAudioPlayer(int fadeMs)
ParámetroTipoDescripción
fadeMsintDuración del desvanecimiento de entrada en milisegundos. 0 reanuda la reproducción inmediatamente.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

interruptAudioPlayer

Interrumpe la conversación de audio actual y borra el búfer de reproducción. Esto se usa comúnmente cuando un usuario interrumpe el habla de la IA en una conversación.
public abstract int interruptAudioPlayer(@NonNull AoqTrackType trackType, int fadeMs)
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista a interrumpir
fadeMsintDuración del desvanecimiento de salida en milisegundos. 0 interrumpe la reproducción inmediatamente.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

enableSpeakerphone

Cambia la salida de audio al altavoz o al auricular. Solo surte efecto después de startAudioPlayer.
public abstract int enableSpeakerphone(boolean enable)
ParámetroTipoDescripción
enablebooleantrue cambia al altavoz; false cambia al auricular.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode. Por ejemplo, AoqECAudioDeviceEarpieceRequiresVoipMode indica que el auricular requiere modo VoIP.
Cambiar al auricular requiere AoqAudioPlaybackConfig.isVoipMode=true. Los cambios de ruta se reportan a través de onAudioDeviceRouteChanged.

isSpeakerphoneEnabled

Verifica si el audio se está reproduciendo actualmente a través del altavoz.
public abstract boolean isSpeakerphoneEnabled()
Parámetros: None. Valor de retorno: true indica salida por altavoz. false indica el auricular u otra ruta.

Configuración del códec de audio

Configuración de codificación de audio

setAudioEncoderConfig

Configura la codificación de audio para la publicación. Los cambios de configuración surten efecto inmediatamente.
public abstract int setAudioEncoderConfig(@NonNull AoqAudioCodecConfig config)
ParámetroTipoDescripción
configAoqAudioCodecConfigConfiguración de codificación de audio. Establezca trackType en AoqTrackTypeAudio.
Valor de retorno: 0 en caso de éxito; distinto de cero en caso de fallo (un valor de AoqErrorCode, como AoqECParamInvalid para parámetros no válidos).
codecType especifica el formato de codificación (Opus por defecto). sampleRate y channel deben coincidir con la configuración de captura. bitrate solo se aplica a códecs con pérdida como Opus.

setAudioDecoderConfig

Configura la decodificación de audio para el audio suscrito. La configuración debe coincidir con la configuración de codificación remota.
public abstract int setAudioDecoderConfig(@NonNull AoqAudioCodecConfig config)
ParámetroTipoDescripción
configAoqAudioCodecConfigConfiguración de decodificación de audio. Establezca trackType en AoqTrackTypeAudio.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
sampleRate debe coincidir con la tasa de muestreo de salida del codificador remoto. Una discrepancia puede causar errores de decodificación o problemas de calidad de audio.

Reproducción de archivos de audio

startAudioFile

Inicia la transmisión y reproducción de un archivo de audio local. La transmisión remota y la reproducción local pueden ejecutarse simultáneamente, con sus volúmenes controlados por publishVolume y playoutVolume, respectivamente.
public abstract int startAudioFile(@NonNull String fileId, @NonNull AoqAudioFileMixConfig config)
ParámetroTipoDescripción
fileIdStringIdentificador de archivo definido por la aplicación utilizado para control posterior
configAoqAudioFileMixConfigConfiguración de reproducción de archivo de audio
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
Los cambios de estado de reproducción se reportan a través de onAudioFileState. Las llamadas repetidas con el mismo fileId reemplazan la reproducción anterior.

stopAudioFile

Detiene la reproducción del archivo de audio.
public abstract int stopAudioFile(@NonNull String fileId)
ParámetroTipoDescripción
fileIdStringIdentificador de archivo, que coincide con el valor pasado a startAudioFile
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

pauseAudioFile

Pausa la reproducción del archivo de audio.
public abstract int pauseAudioFile(@NonNull String fileId)
ParámetroTipoDescripción
fileIdStringIdentificador de archivo
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

resumeAudioFile

Reanuda la reproducción del archivo de audio. Llame a este método después de pauseAudioFile.
public abstract int resumeAudioFile(@NonNull String fileId)
ParámetroTipoDescripción
fileIdStringIdentificador de archivo
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

getAudioFileDuration

Obtiene la duración total de un archivo de audio.
public abstract long getAudioFileDuration(@NonNull String fileId)
ParámetroTipoDescripción
fileIdStringIdentificador de archivo
Valor de retorno: La duración total en milisegundos. Devuelve 0 si el archivo no está cargado o no existe.

getAudioFileCurrentPosition

Obtiene la posición de reproducción actual de un archivo de audio.
public abstract long getAudioFileCurrentPosition(@NonNull String fileId)
ParámetroTipoDescripción
fileIdStringIdentificador de archivo
Valor de retorno: La posición de reproducción actual en milisegundos. Devuelve 0 si el archivo no está cargado o no existe.

setAudioFilePositionMillis

Establece la posición de reproducción de un archivo de audio (búsqueda).
public abstract int setAudioFilePositionMillis(@NonNull String fileId, long positionMillis)
ParámetroTipoDescripción
fileIdStringIdentificador de archivo
positionMillislongPosición de reproducción objetivo en milisegundos
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

setAudioFileVolume

Establece el volumen del archivo de audio. Los volúmenes de transmisión y de reproducción local se pueden controlar por separado.
public abstract int setAudioFileVolume(@NonNull String fileId, @NonNull AoqAudioStreamDirection type, int volume)
ParámetroTipoDescripción
fileIdStringIdentificador de archivo
typeAoqAudioStreamDirectionDirección del volumen. AoqAudioStreamPublish controla la transmisión; AoqAudioStreamPlayout controla la reproducción.
volumeintVolumen. Valores válidos: 0-100.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

getAudioFileVolume

Obtiene el volumen actual del archivo de audio.
public abstract int getAudioFileVolume(@NonNull String fileId, @NonNull AoqAudioStreamDirection type)
ParámetroTipoDescripción
fileIdStringIdentificador de archivo
typeAoqAudioStreamDirectionDirección del volumen
Valor de retorno: El volumen actual (0-100). Devuelve 0 si el archivo no existe.

Secuencias de audio externas

addAudioExternalStream

Añade un flujo de audio externo. Se pueden crear múltiples flujos independientes y distinguirlos por streamId.
public abstract int addAudioExternalStream(@NonNull String streamId, @NonNull AoqAudioExternalStreamConfig config)
ParámetroTipoDescripción
streamIdStringIdentificador de flujo externo definido por la aplicación
configAoqAudioExternalStreamConfigConfiguración de flujo de audio externo
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

pushAudioExternalStreamData

Alimenta datos de audio PCM externos en la secuencia especificada.
public abstract int pushAudioExternalStreamData(@NonNull String streamId, @NonNull AoqAudioFrameData data)
ParámetroTipoDescripción
streamIdStringIdentificador de flujo externo
dataAoqAudioFrameDataDatos de fotograma de audio PCM
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo. Se devuelve AoqECAudioExternalBufferFull(110) cuando el búfer está lleno. data solo necesita permanecer válido durante la llamada; el SDK lo copia internamente. La tasa de muestreo y el número de canales deben coincidir con la configuración pasada a addAudioExternalStream.

setAudioExternalStreamVolume

Establece el volumen del flujo de audio externo. Los volúmenes de transmisión y de reproducción local se pueden controlar por separado.
public abstract int setAudioExternalStreamVolume(@NonNull String streamId, @NonNull AoqAudioStreamDirection type, int volume)
ParámetroTipoDescripción
streamIdStringIdentificador de flujo externo
typeAoqAudioStreamDirectionDirección del volumen
volumeintVolumen. Valores válidos: 0-100.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

getAudioExternalStreamVolume

Obtiene el volumen actual de la secuencia de audio externa.
public abstract int getAudioExternalStreamVolume(@NonNull String streamId, @NonNull AoqAudioStreamDirection type)
ParámetroTipoDescripción
streamIdStringIdentificador de flujo externo
typeAoqAudioStreamDirectionDirección del volumen
Valor de retorno: El volumen actual (0-100). Devuelve 0 si el flujo no existe.

clearAudioExternalStreamBuffer

Borra el búfer del flujo de audio externo con un fundido de salida opcional. Se usa comúnmente para interrumpir la reproducción actual.
public abstract void clearAudioExternalStreamBuffer(@NonNull String streamId, int fadeoutMs)
ParámetroTipoDescripción
streamIdStringIdentificador de flujo externo
fadeoutMsintDuración del desvanecimiento de salida en milisegundos. -1 usa el valor predeterminado, 0 borra el búfer inmediatamente y un valor mayor que 0 retiene la duración especificada para el desvanecimiento de salida.
Valor de retorno: None (void).
Si el búfer está lleno, pushAudioExternalStreamData devuelve AoqECAudioExternalBufferFull(110). Espere 30 ms antes de reintentar.

removeAudioExternalStream

Elimina una secuencia de audio externa y libera sus recursos.
public abstract int removeAudioExternalStream(@NonNull String streamId)
ParámetroTipoDescripción
streamIdStringIdentificador de flujo externo
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

Devoluciones de llamada de cuadros de audio

setAudioFrameObserver

Establece el listener de cuadros de audio. Pase listener=null para eliminarlo.
public abstract int setAudioFrameObserver(@Nullable AoqClientListener.AoqAudioFrameListener listener)
ParámetroTipoDescripción
listenerAoqAudioFrameListenerEscucha de fotogramas de audio. Pase null para eliminarla.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
Use este método para establecer el listener primero, luego llame a enableAudioFrameObserver para habilitar las devoluciones de llamada en las posiciones requeridas.

enableAudioFrameObserver

Habilita o deshabilita las devoluciones de llamada de cuadros de audio en la posición especificada.
public abstract int enableAudioFrameObserver(boolean enabled, @NonNull AoqAudioSource audioSource, @NonNull AoqAudioObserverConfig config)
ParámetroTipoDescripción
enabledbooleantrue habilita los callbacks; false los deshabilita.
audioSourceAoqAudioSourcePosición de la fuente de audio: captura, después del procesamiento 3A, publicación o reproducción
configAoqAudioObserverConfigConfiguración de callback
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode. Los datos del callback solo son válidos durante el callback. Realice una copia para uso asíncrono.

Indicación de volumen de audio local

enableLocalAudioVolumeIndication

Habilita o deshabilita las indicaciones de volumen de audio capturado localmente. Cuando está habilitado, el SDK invoca onLocalAudioVolumeIndication a intervalos config.interval para informar el volumen capturado localmente y si se detecta voz.
public abstract int enableLocalAudioVolumeIndication(@NonNull AoqAudioVolumeIndicationConfig config)
ParámetroTipoDescripción
configAoqAudioVolumeIndicationConfigConfiguración de indicación de volumen. interval<=0 deshabilita las devoluciones de llamada.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
Llame a este método después de startAudioCapture para obtener datos de volumen. Los valores de interval>0 y <10 se tratan como 10.

Gestión de dispositivos de video

startVideoCapture

Abre el dispositivo de captura de video (cámara). El video capturado se envía a través de AoqTrackTypeVideo. Para entrada de video externa (pushExternalVideoCapturedFrame), establezca isExternal en true; la cámara no se abre en este modo.
public abstract int startVideoCapture(@NonNull AoqVideoCaptureConfig config)
ParámetroTipoDescripción
configAoqVideoCaptureConfigConfiguración de captura de video.
Valor de retorno: 0 en caso de éxito; distinto de cero en caso de fallo (un valor AoqErrorCode, como AoqECVideoDeviceCameraAuthFailed cuando no se ha concedido el permiso de cámara).
En Android, solicite el permiso CAMERA antes de llamar a este método. Los cambios de estado del dispositivo se reportan a través de onVideoDeviceStateChanged.

stopVideoCapture

Cierra el dispositivo de captura de video y detiene la captura de video local.
public abstract int stopVideoCapture()
Parámetros: None. Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

switchCamera

Alterna entre la cámara frontal y la trasera. Llame a este método después de startVideoCapture(isExternal=false).
public abstract int switchCamera(@NonNull AoqCameraDirection direction)
ParámetroTipoDescripción
directionAoqCameraDirectionDirección de la cámara objetivo: AoqCameraDirectionFront para la cámara frontal y AoqCameraDirectionBack para la cámara trasera.
Valor de retorno: 0 en caso de éxito; < 0 en caso de fallo (un valor de AoqErrorCode).
Este método no tiene efecto en el modo de captura externa (isExternal=true).

setLocalView

Establece o elimina la vista de renderización de video local. Pase canvas=null o canvas.view=null para eliminar la renderización.
public abstract int setLocalView(@NonNull AoqTrackType trackType, @Nullable AoqVideoCanvas canvas)
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista
canvasAoqVideoCanvasLienzo de renderizado de video. Pase null para eliminar el renderizado.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

setRemoteView

Establece o elimina la vista de renderización de video remoto. Pase canvas=null o canvas.view=null para desvincularla.
public abstract int setRemoteView(@NonNull AoqTrackType trackType, @Nullable AoqVideoCanvas canvas)
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista
canvasAoqVideoCanvasLienzo de renderizado de video. Pase null para desvincularlo.
Valor de retorno: 0 en caso de éxito; distinto de cero en caso de fallo. Si trackType es AoqTrackTypeScreen, devuelve AoqECUnSupport y no vincula la vista.
La pista Screen actualmente solo admite publicación y no tiene video remoto para renderizar. No establezca trackType en AoqTrackTypeScreen.

Codificación de video y entrada externa

setVideoEncoderConfig

Configura la codificación de video para publicación. Si isExternal=true, pushExternalVideoEncodedFrame envía fotogramas codificados directamente por trackType sin recodificación por parte del SDK.
public abstract int setVideoEncoderConfig(@NonNull AoqVideoCodecConfig config)
ParámetroTipoDescripción
configAoqVideoCodecConfigConfiguración de codificación de video.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
Antes de usar pushExternalVideoEncodedFrame, llame a este método con isExternal=true. Este modo omite la tubería de captura y no requiere startVideoCapture/startScreenCapture. Al usar pushExternalVideoCapturedFrame, mantenga isExternal=false para que el SDK codifique los fotogramas.

setVideoDecoderConfig

Configura la decodificación de video para el video suscrito, enrutado por config.trackType. Solo trackType, codecType, width, height, fps y bitrate aplican a la decodificación. Los otros campos aplican solo a la codificación.
public abstract int setVideoDecoderConfig(@NonNull AoqVideoCodecConfig config)
ParámetroTipoDescripción
configAoqVideoCodecConfigConfiguración de decodificación de video.
Valor de retorno: 0 en caso de éxito; distinto de cero en caso de fallo. Si config.trackType es AoqTrackTypeScreen, devuelve AoqECUnSupport y no aplica la configuración.
La pista Screen actualmente solo admite publicación, no suscripción. No establezca config.trackType en AoqTrackTypeScreen.

pushExternalVideoCapturedFrame

Envía fotogramas de video sin procesar externos para su codificación y transmisión por parte del SDK. Los fotogramas se enrutan por trackType. La captura externa debe estar habilitada para la pista correspondiente.
public abstract int pushExternalVideoCapturedFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoFrame frame)
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista. Para AoqTrackTypeVideo, llame primero a startVideoCapture(isExternal=true). Para AoqTrackTypeScreen, llame primero a startScreenCapture(isExternal=true).
frameAoqVideoFrameDatos de fotograma de video externo.
Valor de retorno: 0 en caso de éxito; AoqECVideoExternalCaptureNotEnabled(211) si la captura externa no está habilitada para la pista; < 0 en caso de fallo. Los datos del fotograma solo son válidos durante la llamada. El SDK los copia internamente.

pushExternalVideoEncodedFrame

Envía fotogramas de video codificados externamente. El SDK los empaqueta y envía sin recodificar. Los fotogramas solo se consumen después de llamar a setVideoEncoderConfig(isExternal=true) para el trackType correspondiente. No se requiere startVideoCapture/startScreenCapture.
public abstract int pushExternalVideoEncodedFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoEncodedFrame frame)
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista
frameAoqVideoEncodedFrameFotograma de video codificado externo.
Valor de retorno: 0 en caso de éxito; AoqECVideoExternalEncoderNotEnabled(212) si la codificación externa no está habilitada para la pista; < 0 en caso de fallo.
frame.timeStamp se pasa sin cambios. El SDK no lo completa. El llamador debe asegurarse de que las marcas de tiempo aumenten monótonamente.
pushExternalVideoCapturedFrame consume fotogramas Video después de startVideoCapture(isExternal=true) y fotogramas Screen después de startScreenCapture(isExternal=true). Si el búfer interno está lleno, el método devuelve AoqECVideoExternalBufferFull (210).

Captura de pantalla

public abstract int startScreenCapture(@NonNull AoqScreenCaptureConfig config)
public abstract int stopScreenCapture()
trackType admite AoqTrackTypeAudio, AoqTrackTypeVideo y AoqTrackTypeScreen. config especifica la configuración de captura de pantalla. El contenido de la pantalla se envía en la pista AoqTrackTypeScreen. Para iniciar, 0 significa que la solicitud es aceptada; onScreenCaptureStateChanged informa el resultado de forma asíncrona. Un retorno distinto de cero rechaza la solicitud sincrónicamente. Detener devuelve 0 en caso de éxito o un valor distinto de cero en caso de fallo, e informa el estado detenido a través de este callback. Con isExternal=false, el SDK captura mediante MediaProjection. Iniciar la captura nuevamente mientras está activa devuelve AoqECStateInvalid; detenerla es idempotente. Para fotogramas sin procesar externos, establezca isExternal=true y proporcione fotogramas Screen sin procesar a través de pushExternalVideoCapturedFrame para la codificación del SDK. Para fotogramas codificados externamente, configure la pista Screen para codificación externa con setVideoEncoderConfig, luego llame a pushExternalVideoEncodedFrame; no se requiere startScreenCapture.

Control de transmisión de flujo de medios

enableSendMediaStream

Habilita o deshabilita el envío de un flujo de medios local, seleccionado por trackType. Cuando el envío está deshabilitado, la captura y la codificación continúan, pero los datos no se envían a través de la red.
public abstract int enableSendMediaStream(@NonNull AoqTrackType trackType, boolean enable)
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista. Admite AoqTrackTypeAudio/AoqTrackTypeVideo/AoqTrackTypeScreen.
enablebooleantrue habilita el envío; false deshabilita el envío.
Valor de retorno: 0 indica una llamada exitosa. Un valor menor que 0 indica fallo y corresponde a AoqErrorCode.
Después de la inicialización, llame primero a enableSendMediaStream(false). Habilite el envío después de que onConnectionStatusChange notifique Connected para evitar la pérdida de datos antes de que se establezca la conexión.

Devoluciones de llamada de cuadros de video

setVideoFrameObserver

Establece el listener de cuadros de video. Pase listener=null para eliminarlo.
public abstract int setVideoFrameObserver(@Nullable AoqClientListener.AoqVideoFrameListener listener)
ParámetroTipoDescripción
listenerAoqVideoFrameListenerListener de fotogramas de video. Pase null para eliminarlo.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
Use este método para establecer el listener primero, luego llame a enableVideoFrameObserver para habilitar las devoluciones de llamada en las posiciones requeridas.

enableVideoFrameObserver

Habilita o deshabilita las devoluciones de llamada de cuadros de video en la posición especificada.
public abstract int enableVideoFrameObserver(boolean enabled, @NonNull AoqVideoSource videoSource, @NonNull AoqVideoObserverConfig config)
ParámetroTipoDescripción
enabledbooleantrue habilita los callbacks; false los deshabilita.
videoSourceAoqVideoSourcePosición de la fuente de video: después de la captura, antes de la codificación o después de la decodificación remota
configAoqVideoObserverConfigConfiguración de devolución de llamada. Use config.trackType para observar la pista de Video o Screen.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
Los callbacks se ejecutan en hilos internos del SDK. No realice operaciones que consuman mucho tiempo en ellos. Solo I420 admite modo de lectura-escritura (mode=ReadWrite); otros formatos son de solo lectura.

Callbacks de AoqClientListener

AoqClientListener es el punto de entrega unificado para todos los eventos asíncronos del SDK. Todos los métodos de callback tienen una implementación vacía predeterminada, por lo que solo necesita sobrescribir los que le interesen.

Mensajes en tiempo real

sendDataMsg

Envía un mensaje de datos en tiempo real al extremo remoto. Llame a este método después de que connect tenga éxito y se haya llamado a enableSendMediaStream(Data, true).
public abstract int sendDataMsg(@NonNull AoqDataMsg msg)
ParámetroTipoDescripción
msgAoqDataMsgMensaje de datos
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
El extremo remoto recibe el mensaje a través de onDataMsg. El tamaño del mensaje está sujeto a límites internos del SDK. Divida los mensajes demasiado grandes en partes más pequeñas antes de enviarlos.

Callbacks de AoqClientListener

onError

Devolución de llamada de error del motor. Se activa cuando ocurre un error irrecuperable.
public void onError(int code, String message)
ParámetroTipoDescripción
codeintCódigo de error correspondiente a un valor de enumeración AoqErrorCode
messageStringDescripción del error
Valor de retorno: None (void).

onWarning

Devolución de llamada de advertencia del motor. Se activa por excepciones recuperables que no impiden que el SDK continúe ejecutándose.
public void onWarning(int code, String message)
ParámetroTipoDescripción
codeintCódigo de advertencia correspondiente a un valor de enumeración AoqWarningCode
messageStringDescripción de la advertencia
Valor de retorno: None (void).

onConnectionStatusChange

Devolución de llamada de cambio de estado de conexión. Transiciones de estado: Disconnected → Connecting → Connected/Failed → Disconnected.
public void onConnectionStatusChange(@NonNull AoqClientEngine.AoqConnectionStatus status)
ParámetroTipoDescripción
statusAoqConnectionStatusEstado de conexión actual
Valor de retorno: None (void).
Habilite el envío de medios con enableSendMediaStream(true) después de recibir Connected.

onStats

Callback de estadísticas del motor. El SDK informa periódicamente estadísticas de publicación y suscripción de audio/video y estadísticas de red para monitorear la calidad de la llamada y las condiciones de la red, y diagnosticar problemas de audio/video.
public void onStats(@NonNull AoqClientEngine.AoqStats stats)
ParámetroTipoDescripción
statsAoqStatsEstadísticas de publicación y suscripción de audio/video/mensajes de datos, y estadísticas de red
Valor de retorno: None (void).

onAudioDeviceStateChanged

Callback para cambios en el estado de captura/reproducción del dispositivo de audio.
public void onAudioDeviceStateChanged(@NonNull AoqClientEngine.AoqAudioDeviceState state)
ParámetroTipoDescripción
stateAoqAudioDeviceStateEstado del dispositivo de audio, incluyendo estado (código de estado) y motivo (motivo del error)
Valor de retorno: None (void).

onAudioDeviceRouteChanged

Callback para cambios en la ruta de salida de audio.
public void onAudioDeviceRouteChanged(int routeType)
ParámetroTipoDescripción
routeTypeintRuta de salida de audio actual, correspondiente a un valor de enumeración AoqAudioDeviceRouteType
Valor de retorno: None (void).

onAudioDeviceInterrupted

Devolución de llamada de interrupción del dispositivo de audio. Se activa por interrupciones del sistema, como llamadas entrantes u otra aplicación que toma el enfoque de audio.
public void onAudioDeviceInterrupted(boolean interrupt)
ParámetroTipoDescripción
interruptbooleantrue indica interrupción; false indica recuperación de la interrupción.
Valor de retorno: None (void).

onScreenCaptureStateChanged

Notifica cambios en el estado de captura de pantalla mediante AoqScreenCaptureStateCode y el AoqErrorCode unificado. Las notificaciones se entregan en orden en el hilo principal de Android.
public void onScreenCaptureStateChanged(@NonNull AoqClientEngine.AoqScreenCaptureState state)
ParámetroTipoDescripción
stateAoqScreenCaptureStateEstado de captura de pantalla, incluyendo estado (código de estado) y motivo (causa del error).
Valor de retorno: None (void).
Started indica que la captura o la entrada externa están listas, no que se hayan enviado medios. Fail y Stopped son estados terminales después de la limpieza. Los fallos de captura solo se notifican a través de este callback.

onVideoDeviceStateChanged

Callback para cambios en el estado de captura del dispositivo de video.
public void onVideoDeviceStateChanged(@NonNull AoqClientEngine.AoqVideoDeviceState state)
ParámetroTipoDescripción
stateAoqVideoDeviceStateEstado del dispositivo de video, incluyendo estado (código de estado) y motivo (motivo del error)
Valor de retorno: None (void).

onAudioDeviceFocusChanged

Callback para cambios de enfoque de audio.
public void onAudioDeviceFocusChanged(int audioFocus)
ParámetroTipoDescripción
audioFocusintConstante AUDIOFOCUS_* de Android, como AUDIOFOCUS_GAIN, AUDIOFOCUS_LOSS o AUDIOFOCUS_LOSS_TRANSIENT
Valor de retorno: None (void).

onAudioFileState

Callback de estado de reproducción de archivo de audio.
public void onAudioFileState(@NonNull AoqClientEngine.AoqAudioFileState state)
ParámetroTipoDescripción
stateAoqAudioFileStateEstado de reproducción del archivo de audio, incluyendo fileId, stateCode y errorCode
Valor de retorno: None (void).

onLocalAudioVolumeIndication

Reporta el volumen de audio capturado localmente. Se activa solo después de habilitar las indicaciones de volumen mediante enableLocalAudioVolumeIndication.
public void onLocalAudioVolumeIndication(@NonNull AoqClientEngine.AoqAudioVolume volume)
ParámetroTipoDescripción
volumeAoqAudioVolumeInformación de volumen local, incluyendo isSpeech (si se detecta voz) y volume (volumen instantáneo suavizado [0-255]).
Valor de retorno: None (void).

onDataMsg

Callback para mensajes de datos en tiempo real recibidos.
public void onDataMsg(@NonNull AoqClientEngine.AoqDataMsg msg)
ParámetroTipoDescripción
msgAoqDataMsgMensaje de datos
Valor de retorno: None (void). Los datos del mensaje son válidos solo durante la devolución de llamada. Haga una copia para uso asíncrono.

Devoluciones de llamada de AoqAudioFrameListener

Interfaz de listener de cuadros de audio. Todos los métodos tienen implementaciones predeterminadas vacías y se pueden sobrescribir según sea necesario.
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) {}
}
MétodoCuándo se activaParámetro
onCapturedAudioFrameCuando se captura un fotograma de audio sin procesarframe: AoqAudioFrameData
onProcessCapturedAudioFrameFotograma de audio después del procesamiento 3Aframe: AoqAudioFrameData
onPublishAudioFrameFotograma de audio antes de la publicacióntrackType: tipo de pista; frame: AoqAudioFrameData
onPlaybackAudioFrameFotograma de audio remoto antes de la reproducciónframe: AoqAudioFrameData
Valor de retorno: None (void). Los datos del cuadro son válidos solo durante la devolución de llamada.

onCapturedAudioFrame

Se invoca cuando se captura un cuadro de audio sin procesar. El cuadro contiene datos PCM no procesados.
void onCapturedAudioFrame(@NonNull AoqAudioFrameData frame)
ParámetroTipoDescripción
frameAoqAudioFrameDataDatos de fotograma de audio capturado
Valor de retorno: None (void).
frame.dataPtr hace referencia a memoria administrada por el SDK y es válida solo durante la devolución de llamada. Copie los datos antes de usarlos de forma asíncrona.

onProcessCapturedAudioFrame

Se invoca para un cuadro de audio después del procesamiento 3A, como la cancelación de eco y la supresión de ruido.
void onProcessCapturedAudioFrame(@NonNull AoqAudioFrameData frame)
ParámetroTipoDescripción
frameAoqAudioFrameDataDatos de trama de audio después del procesamiento 3A
Valor de retorno: None (void).
frame.dataPtr hace referencia a memoria administrada por el SDK y es válida solo durante la devolución de llamada. Copie los datos antes de usarlos de forma asíncrona.

onPublishAudioFrame

Se invoca para un cuadro de audio antes de la publicación, inmediatamente antes de la codificación y la transmisión.
void onPublishAudioFrame(@NonNull AoqTrackType trackType, @NonNull AoqAudioFrameData frame)
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista
frameAoqAudioFrameDataDatos de trama de audio antes de la publicación
Valor de retorno: None (void).
frame.dataPtr hace referencia a memoria administrada por el SDK y es válida solo durante la devolución de llamada. Copie los datos antes de usarlos de forma asíncrona.

onPlaybackAudioFrame

Se invoca para un cuadro de audio remoto antes de la reproducción, después de la decodificación y la mezcla.
void onPlaybackAudioFrame(@NonNull AoqAudioFrameData frame)
ParámetroTipoDescripción
frameAoqAudioFrameDataDatos de trama de audio remota antes de la reproducción
Valor de retorno: None (void).
frame.dataPtr hace referencia a memoria administrada por el SDK y es válida solo durante la devolución de llamada. Copie los datos antes de usarlos de forma asíncrona.

Devoluciones de llamada de AoqVideoFrameListener

Interfaz de escucha de fotogramas de video. Todos los métodos tienen implementaciones predeterminadas que devuelven false, lo que indica que no hay modificación de datos. Cada uno de los tres callbacks incluye trackType para distinguir las pistas Video y Screen.
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; }
}
MétodoCuándo se activaParámetro
onCapturedVideoFrameCuando se captura un fotograma de video sin procesar (antes del preprocesamiento)trackType: tipo de pista; frame: AoqVideoFrameData
onPreEncodeVideoFrameFotograma de video antes de la codificación (después del preprocesamiento)trackType: tipo de pista; frame: AoqVideoFrameData
onRemoteVideoFrameFotograma de video remoto después de la decodificación y antes del renderizadotrackType: tipo de pista; frame: AoqVideoFrameData
Valor de retorno: boolean. true indica que los datos fueron modificados y deben escribirse de nuevo en el SDK (compatible solo con I420). false indica que no hubo modificación.
Los callbacks se activan solo después de que enableVideoFrameObserver habilita el AoqVideoSource correspondiente. frame.data y textureId hacen referencia a memoria interna del SDK y solo son válidos durante el callback. Realice una copia para uso asíncrono.

onCapturedVideoFrame

Se invoca cuando se captura un cuadro de video sin procesar, antes del preprocesamiento.
boolean onCapturedVideoFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoFrameData frame)
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista (Video/Pantalla)
frameAoqVideoFrameDataDatos de fotograma de video capturado
Valor de retorno: boolean. true indica que los datos modificados deben escribirse de nuevo en el SDK (admitido solo para I420). false indica que no hay modificación.
Los callbacks se activan solo después de que enableVideoFrameObserver habilita el AoqVideoSource correspondiente. frame.data y textureId hacen referencia a memoria interna del SDK y solo son válidos durante el callback. Realice una copia para uso asíncrono.

onPreEncodeVideoFrame

Se invoca para un cuadro de video después del preprocesamiento y antes de la codificación.
boolean onPreEncodeVideoFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoFrameData frame)
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista (Video/Pantalla)
frameAoqVideoFrameDataDatos de fotograma de video antes de la codificación
Valor de retorno: boolean. true indica que los datos modificados deben escribirse de nuevo en el SDK (admitido solo para I420). false indica que no hay modificación.
Los callbacks se activan solo después de que enableVideoFrameObserver habilita el AoqVideoSource correspondiente. frame.data y textureId hacen referencia a memoria interna del SDK y solo son válidos durante el callback. Realice una copia para uso asíncrono.

onRemoteVideoFrame

Se invoca para un cuadro de video remoto después de la decodificación y antes de la renderización.
boolean onRemoteVideoFrame(@NonNull AoqTrackType trackType, @NonNull AoqVideoFrameData frame)
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista (Video/Pantalla)
frameAoqVideoFrameDataDatos de fotograma de video remoto decodificado
Valor de retorno: boolean. true indica que los datos modificados deben escribirse de nuevo en el SDK (admitido solo para I420). false indica que no hay modificación.
Los callbacks se activan solo después de que enableVideoFrameObserver habilita el AoqVideoSource correspondiente. frame.data y textureId hacen referencia a memoria interna del SDK y solo son válidos durante el callback. Realice una copia para uso asíncrono.

Tipos de datos y enumeraciones

Tipos comunes

AoqRelayEndpoint

Endpoint de retransmisión.
CampoTipoValor predeterminadoDescripción
routeIndexint-1Índice de ruta
endpointString""Nombre de dominio o dirección IP del servidor de retransmisión
portint0Puerto UDP del servidor de retransmisión
tcpPortint0Puerto TCP del servidor de retransmisión

AoqTrackParam

Propiedades de la pista.
CampoTipoValor predeterminadoDescripción
trackTypeAoqTrackTypeAoqTrackTypeAudioTipo de pista
trackModeAoqTrackModeAoqTrackModeSegmentModo de transmisión o sin transmisión. Se aplica solo al audio descendente.

AoqTrackParam.trackMode

CampoTipoValor predeterminadoDescripción
trackModeAoqTrackModeAoqTrackModeSegmentAplica solo a audio descendente.
AoqCreateConfig

Campo

Tipo

Predeterminado

Descripción

workDir

String

""

Directorio de trabajo del SDK

isBTScoMode

boolean

false

true para modo Bluetooth SCO; false: modo A2DP

enableDumpAudio

boolean

false

Habilitar volcado de audio (para depuración)

extras

String

""

Cadena de parámetros adicionales

maxEncodedVideoFrameBytesint190 × 1024Tamaño máximo del cuadro codificado en bytes. Aplica solo al codificador JPEG interno del SDK.
enableDropOversizedVideoFramebooleanfalsePara el codificador JPEG interno del SDK, si se debe descartar un cuadro que sigue siendo demasiado grande incluso con la calidad más baja.
AoqConnectConfig subscribeTracks no debe incluir AoqTrackTypeScreen; de lo contrario, connect devuelve AoqECUnSupport sin iniciar una conexión. setRemoteView también devuelve AoqECUnSupport para Screen.

Campo

Tipo

Predeterminado

Descripción

token

String

""

Token de autenticación

sid

String

""

ID de sesión

certFingerprint

String

""

Huella digital del certificado del servidor

relayEndpoints

List<AoqRelayEndpoint>

vacío

Lista de endpoints de Relay

workspaceIdHash

String

""

Hash del ID del espacio de trabajo

publishTracks

List<AoqTrackParam>

vacío

Pistas locales para publicar

subscribeTracks

List<AoqTrackParam>

vacío

Pistas remotas a suscribir

Tipos de estadísticas

AoqNetworkStats

Campo

Tipo

Descripción

sendBitrate

int

Tasa de bits de envío (bps)

sendBytes

long

Bytes enviados acumulados

recvBitrate

int

Tasa de bits de recepción (bps)

recvBytes

long

Bytes acumulados recibidos

loss

int

Tasa de pérdida de paquetes (0–100)

rtt

int

Tiempo de ida y vuelta (ms)

AoqStats

Estadísticas del motor. Se reportan periódicamente a través de onStats. Todos los campos pueden ser null.
CampoTipoDescripción
audioPublishStatsArreglo de AoqAudioPublishStatsArreglo de estadísticas de publicación de audio (@Nullable)
videoPublishStatsArreglo de AoqVideoPublishStatsArreglo de estadísticas de publicación de video (@Nullable)
dataMsgPublishStatsArreglo de AoqDataMsgPublishStatsArreglo de estadísticas de publicación de mensajes de datos (@Nullable)
audioSubscribeStatsArreglo de AoqAudioSubscribeStatsArreglo de estadísticas de suscripción de audio (@Nullable)
videoSubscribeStatsArreglo de AoqVideoSubscribeStatsArreglo de estadísticas de suscripción de video (@Nullable)
dataMsgSubscribeStatsArreglo de AoqDataMsgSubscribeStatsArreglo de estadísticas de suscripción de mensajes de datos (@Nullable)
networkStatsAoqNetworkStatsEstadísticas de red (@Nullable)

AoqAudioPublishStats

Estadísticas de publicación de audio.
CampoTipoValor predeterminadoDescripción
trackTypeAoqTrackTypeAoqTrackTypeAudioTipo de pista
bitrateint0Tasa de bits en bps
byteslong0Total de bytes enviados
encodeVolumeint0Volumen de codificación de publicación

AoqVideoPublishStats

Estadísticas de publicación de video.
CampoTipoValor predeterminadoDescripción
trackTypeAoqTrackTypeAoqTrackTypeVideoTipo de pista
bitrateint0Tasa de bits en bps
byteslong0Total de bytes enviados
encodeFpsint0Tasa de cuadros de codificación

AoqDataMsgPublishStats

Estadísticas de publicación de mensajes de datos.
CampoTipoValor predeterminadoDescripción
trackTypeAoqTrackTypeAoqTrackTypeDataTipo de pista
bitrateint0Tasa de bits en bps
byteslong0Total de bytes enviados

AoqAudioSubscribeStats

Estadísticas de suscripción de audio.
CampoTipoValor predeterminadoDescripción
trackTypeAoqTrackTypeAoqTrackTypeAudioTipo de pista
bitrateint0Tasa de bits en bps
byteslong0Total de bytes recibidos
playVolumeint0Volumen de reproducción

AoqVideoSubscribeStats

Estadísticas de suscripción de video.
CampoTipoValor predeterminadoDescripción
trackTypeAoqTrackTypeAoqTrackTypeVideoTipo de pista
bitrateint0Tasa de bits en bps
byteslong0Total de bytes recibidos
decodeFpsint0Tasa de fotogramas de decodificación
renderFpsint0Tasa de fotogramas de renderizado

AoqDataMsgSubscribeStats

Estadísticas de suscripción a mensajes de datos.
CampoTipoValor predeterminadoDescripción
trackTypeAoqTrackTypeAoqTrackTypeDataTipo de pista
bitrateint0Tasa de bits en bps
byteslong0Total de bytes recibidos

Enumeraciones

AoqTrackMode

ValorNúmeroDescripción
AoqTrackModeSegment0Modo de segmento: entrega datos en segmentos semánticos, como oraciones. Aplica solo al audio descendente.
AoqTrackModeStream1Modo de flujo: entrega datos de forma continua. Aplica solo al audio descendente.
AoqErrorCode

Valor de enumeración

Valor

Descripción

AoqECOK

0

Éxito

AoqECParamInvalid

1

Parámetro no válido

AoqECStateInvalid

2

Estado no válido

AoqECUnSupport

3

No compatible

AoqECAudio

100

Error genérico de audio

AoqECAudioExternalBufferFull

110

Búfer de audio externo lleno

AoqECAudioDevice

120

Error genérico de dispositivo de audio

AoqECAudioDeviceRecordingAuthFailed

121

Permiso de grabación no concedido

AoqECAudioDeviceRecordingOccupied

122

Dispositivo de grabación en uso

AoqECAudioDeviceRecordingBackgroundStart

123

Error al iniciar la grabación en segundo plano

AoqECAudioDeviceRecordingStartFail

124

Error al iniciar la grabación

AoqECAudioDevicePlayoutOccupied

125

Dispositivo de reproducción en uso

AoqECAudioDevicePlayoutBackgroundStart

126

Error al iniciar la reproducción en segundo plano

AoqECAudioDevicePlayoutStartFail

127

Error al iniciar la reproducción

AoqECAudioDeviceEarpieceRequiresVoipMode

128

El auricular requiere modo VoIP

AoqECVideo

200

Error genérico de video

AoqECVideoExternalBufferFull

210

Búfer de video externo lleno

AoqECVideoExternalCaptureNotEnabled

211

Captura de video externa no habilitada

AoqECVideoExternalEncoderNotEnabled

212

Codificador de video externo no habilitado

AoqECVideoDevice

220

Error genérico de dispositivo de video

AoqECVideoDeviceCameraOpenFail

221

Error al abrir la cámara

AoqECVideoDeviceCameraAuthFailed

222

Permiso de cámara no concedido

AoqECVideoDeviceCameraOccupied

223

Cámara en uso

AoqECVideoDeviceCameraRunningError

224

Error de ejecución de la cámara

AoqECVideoCodec

230

Error genérico del códec de video

AoqECVideoCodecEncoderInitFail

231

Error en la inicialización del codificador de video

AoqECVideoRender

240

Error genérico de renderizado de video

AoqECVideoRenderCreateFail

241

Fallo en la creación del renderizador de video

AoqECVideoRenderDrawError

242

Error de dibujo en renderizado de video

AoqECScreen300Error general de uso compartido de pantalla
AoqECScreenAuthFailed310Permiso de uso compartido de pantalla denegado
AoqECScreenStartFailed311Error al iniciar el uso compartido de pantalla
AoqWarningCode

Valor de enumeración

Valor

Descripción

AoqWCOK

0

Sin advertencia

AoqWCAudio

100

Advertencia genérica de audio

AoqWCAudioHowling

101

Acople de audio detectado

AoqWCAudioDevice

120

Advertencia genérica de dispositivo de audio

AoqWCAudioDeviceMicEnumerateError

121

Error de enumeración de micrófono

AoqWCAudioDeviceMicStartTimeout

122

Tiempo de espera agotado al iniciar el micrófono

AoqWCAudioDeviceRecordingError

123

Error de grabación

AoqWCAudioDeviceSpeakerEnumerateError

124

Error de enumeración de altavoces

AoqWCAudioDeviceSpeakerStartTimeout

125

Tiempo de espera agotado al iniciar el altavoz

AoqWCAudioDevicePlayoutError

126

Error de reproducción

AoqWCVideo

200

Advertencia genérica de video

AoqWCVideoCameraEnumerateError

201

Error de enumeración de cámaras

AoqWCVideoEncoderSwitched

202

Codificador de video cambiado

AoqWCVideoRenderDowngrade

203

Renderizado de video degradado

AoqTrackType

Valor de enumeración

Valor

Descripción

AoqTrackTypeAudio

0

Pista de audio

AoqTrackTypeVideo

1

Pista de video

AoqTrackTypeData

2

Pista de mensajería de datos

AoqTrackTypeScreen3Pista de pantalla compartida. Solo enlace ascendente.
AoqEncoderType

Valor de enumeración

Valor

Descripción

AoqEncoderTypeUnknown

0

Formato desconocido

AoqEncoderTypeAudioPCM

1

Audio PCM

AoqEncoderTypeAudioOpus

2

Audio Opus

AoqEncoderTypeVideoH264

3

Video H.264

AoqEncoderTypeVideoJpeg

4

Video JPEG

AoqEncoderTypeDataText

5

Texto de datos

AoqConnectionStatus

Valor de enumeración

Valor

Descripción

AoqConnectionStatusDisconnected

0

Desconectado

AoqConnectionStatusConnecting

1

Conectando

AoqConnectionStatusConnected

2

Conectado

AoqConnectionStatusFailed

3

Error de conexión

AoqMirrorMode

Modo espejo.
Valor de enumeraciónValorDescripción
AoqMirrorModeDisabled0Espejo deshabilitado
AoqMirrorModeEnabled1Espejo habilitado

AoqOrientationMode

Orientación del video.
Valor de enumeraciónValorDescripción
AoqOrientationModeAuto0Automático
AoqOrientationModePortrait1Vertical
AoqOrientationModeLandscape2Horizontal

Tipos de audio

AoqAudioCaptureConfig

Campo

Tipo

Predeterminado

Descripción

isExternal

boolean

false

Si se debe usar el modo de captura externa

isVoipMode

boolean

false

Si se debe habilitar el modo VoIP (afecta el enrutamiento del dispositivo, por ejemplo, el auricular)

channel

int

1

Número de canales (predeterminado: mono)

AoqAudioPlaybackConfig

Campo

Tipo

Predeterminado

Descripción

isVoipMode

boolean

false

Si se debe habilitar el modo VoIP (AEC por hardware); aplica a dispositivos móviles

isDefaultSpeaker

boolean

true

Si se debe usar el altavoz por defecto; aplica a móviles

isExternal

boolean

false

Si se debe usar el modo de reproducción externa

channel

int

1

Número de canales (predeterminado: mono)

AoqAudioCodecConfig

Campo

Tipo

Predeterminado

Descripción

trackType

AoqTrackType

Audio

Tipo de pista

codecType

AoqEncoderType

AudioOpus

Formato de códec

sampleRate

int

48000

Frecuencia de muestreo (Hz)

channel

int

1

Recuento de canales

bitrate

int

32000

Tasa de bits (bps)

AoqAudioDeviceStateCode

Códigos de estado de captura y reproducción del dispositivo de audio.
Valor de enumeraciónValorDescripción
AoqAudioDeviceNone0Sin estado
AoqAudioDeviceRecordStarting1Iniciando captura
AoqAudioDeviceRecordStarted2Captura iniciada
AoqAudioDeviceRecordStopping3Deteniendo captura
AoqAudioDeviceRecordStopped4Captura detenida
AoqAudioDeviceRecordFail5Error en la captura
AoqAudioDevicePlayStarting6Iniciando reproducción
AoqAudioDevicePlayStarted7Reproducción iniciada
AoqAudioDevicePlayStopping8Deteniendo reproducción
AoqAudioDevicePlayStopped9Reproducción detenida
AoqAudioDevicePlayFail10Error en la reproducción

AoqAudioDeviceState

Estado de captura y reproducción del dispositivo de audio.
CampoTipoValor predeterminadoDescripción
stateAoqAudioDeviceStateCodeAoqAudioDeviceNoneEstado de operación del dispositivo
reasonint0Código de motivo de error (consulte AoqErrorCode)

AoqAudioDeviceRouteType

Tipos de ruta de dispositivo de audio.
Valor de enumeraciónValorDescripción
AoqAudioDeviceRouteDefault0Ruta predeterminada
AoqAudioDeviceRouteHeadset1Auriculares con micrófono
AoqAudioDeviceRouteEarpiece2Auricular
AoqAudioDeviceRouteHeadsetNoMic3Auriculares sin micrófono
AoqAudioDeviceRouteSpeakerPhone4Altavoz
AoqAudioDeviceRouteUsb5Dispositivo de audio USB
AoqAudioDeviceRouteBluetooth6Modo Bluetooth SCO
AoqAudioDeviceRouteBluetoothA2dp7Modo Bluetooth A2DP

Tipos de archivos de audio

AoqAudioFileMixConfig

Configuración de reproducción de archivos de audio.
CampoTipoValor predeterminadoDescripción
fileNameString""Nombre del archivo incluyendo su ruta. No debe estar vacío.
cyclesint-1Recuento de bucles. -1 realiza un bucle indefinidamente.
startPosMslong0Posición inicial de reproducción en milisegundos
publishVolumeint100Volumen de publicación. Valores válidos: 0-100.
playoutVolumeint100Volumen de reproducción. Valores válidos: 0-100.

AoqAudioFileStateCode

Códigos de estado de reproducción de archivo de audio.
Valor de enumeraciónValorDescripción
AoqAudioFileNone0Sin estado
AoqAudioFileStarted1Reproducción iniciada
AoqAudioFileStopped2Reproducción detenida
AoqAudioFilePaused3Reproducción en pausa
AoqAudioFileResumed4Reproducción reanudada
AoqAudioFileEnded5Reproducción finalizada
AoqAudioFileBuffering6Almacenamiento en búfer de reproducción
AoqAudioFileBufferingEnd7Almacenamiento en búfer finalizado
AoqAudioFileFailed8Error en la reproducción

AoqAudioFileErrorCode

Códigos de error de reproducción de archivo de audio.
Valor de enumeraciónValorDescripción
AoqAudioFileNoError0Sin error
AoqAudioFileOpenFailed1Error al abrir el archivo
AoqAudioFileDecodeFailed2Error al decodificar el archivo

AoqAudioFileState

Estado del archivo de audio.
CampoTipoValor predeterminadoDescripción
fileIdString""Identificador de archivo
stateCodeAoqAudioFileStateCodeAoqAudioFileNoneCódigo de estado de reproducción del archivo
errorCodeAoqAudioFileErrorCodeAoqAudioFileNoErrorCódigo de error del archivo

Flujo de audio externo y tipos de volumen

AoqAudioExternalStreamToggle

Estados de alternancia de secuencia de audio externa.
Valor de enumeraciónValorDescripción
AoqAudioExternalStreamToggleNormal0Estado normal
AoqAudioExternalStreamTogglePause1Estado en pausa

AoqAudioFrameData

Datos de fotograma de audio externo.
CampoTipoValor predeterminadoDescripción
dataPtrmatriz de bytesnullDatos de audio PCM sin procesar (@Nullable)
dataSizeint0Tamaño de datos PCM en bytes
numOfSamplesint0Número de muestras por canal
bytesPerSampleint0Bytes por muestra
numOfChannelsint0Número de canales
samplesPerSecint0Muestras por segundo (tasa de muestreo)
pushSequenceint0Ronda de entrada PCM
timeStamplong0Marca de tiempo
autoGenMutebooleanfalseVálido en callbacks de datos. true indica silencio generado por el SDK.

AoqAudioSource

Fuentes de datos del callback de tramas de audio.
Valor de enumeraciónValorDescripción
AoqAudioSourceCaptured0Datos de audio capturados
AoqAudioSourceProcessCaptured1Datos de audio después del procesamiento 3A
AoqAudioSourcePublish2Datos de audio publicados
AoqAudioSourcePlayback3Datos de audio de reproducción

AoqAudioObserverMode

Modos de callback de fotogramas de audio.
Valor de enumeraciónValorDescripción
AoqAudioObserverModeReadOnly0Modo de solo lectura
AoqAudioObserverModeReadWrite1Modo de lectura y escritura

AoqAudioObserverConfig

Configuración del callback de tramas de audio.
CampoTipoValor predeterminadoDescripción
sampleRateint48000Tasa de muestreo de audio del callback en Hz
channelsint1Recuento de canales de audio del callback
modeAoqAudioObserverModeAoqAudioObserverModeReadOnlyModo de lectura y escritura

AoqAudioVolumeIndicationConfig

CampoTipoValor predeterminadoDescripción
reportSpeechbooleanfalseSi se debe detectar voz.
intervalint0Intervalo de devolución de llamada en milisegundos. Los valores de 0 o menos deshabilitan las devoluciones de llamada; los valores entre 0 y 10 usan 10.
smoothint3Factor de suavizado, de 0 a 10. Los valores más altos producen resultados más suaves.

AoqAudioVolume

CampoTipoValor predeterminadoDescripción
isSpeechbooleanfalseSi se detecta voz.
volumeint0Volumen instantáneo suavizado, de 0 a 255.

Tipos de video

AoqRenderMode

Modos de renderizado.
Valor de enumeraciónValorDescripción
AoqRenderModeAuto0Modo automático
AoqRenderModeStretch1Modo de estiramiento
AoqRenderModeFill2Modo de relleno
AoqRenderModeCrop3Modo de recorte

AoqVideoCanvas

Lienzo de renderización de video.
CampoTipoValor predeterminadoDescripción
viewViewnullAndroid View utilizada para la renderización (@Nullable)
renderModeAoqRenderModeAoqRenderModeAutoModo de renderización

AoqCameraDirection

Dirección de la cámara.
Valor de enumeraciónValorDescripción
AoqCameraDirectionFront0Cámara frontal
AoqCameraDirectionBack1Cámara trasera

AoqScreenCaptureConfig

CampoTipoValor predeterminadoDescripción
isExternalbooleanfalseSi la aplicación suministra tramas de pantalla sin procesar.
mediaProjectionIntentIntentnullPase un intent de permiso de MediaProjection existente, o null para permitir que el SDK solicite el permiso. Se ignora para la captura externa.
notificationFactoryAoqScreenShareNotificationFactorynullFábrica de notificaciones de servicio en primer plano. Null usa la notificación predeterminada. Se ignora para la captura externa.
AoqVideoCaptureConfig

Campo

Tipo

Predeterminado

Descripción

width

int

1280

Ancho de captura (píxeles); se ignora cuando isExternal=true

height

int

720

Altura de captura (píxeles); se ignora cuando isExternal=true

fps

int

15

Tasa de cuadros de captura; se ignora cuando isExternal=true

isExternal

boolean

false

Modo de captura externa; cuando es true, la cámara no se abre

cameraDirection

AoqCameraDirection

Frontal

Dirección de la cámara; ignorada cuando isExternal=true

AoqVideoCodecConfig

Campo

Tipo

Predeterminado

Descripción

trackType

AoqTrackType

Video

Tipo de pista

codecType

AoqEncoderType

VideoH264

Formato de códec

width

int

540

Ancho de codificación (píxeles)

height

int

960

Alto de codificación (píxeles)

fps

int

5

Tasa de cuadros de codificación

bitrate

int

500000

Tasa de bits objetivo (bps)

minBitrate

int

128000

Tasa de bits mínima (bps)

keyframeInterval

int

2

Intervalo de fotogramas clave (segundos)

mirrorMode

AoqMirrorMode

Deshabilitado

Modo espejo

orientationMode

AoqOrientationMode

Automático

Modo de orientación de video

isExternal

boolean

false

Cuando es true, el SDK omite la recodificación; use pushExternalVideoEncodedFrame para entregar datos precodificados

AoqVideoPixelFormat

Valor de enumeración

Valor

Descripción

AoqVideoPixelFormatUnknown

0

Formato desconocido

AoqVideoPixelFormatI420

1

I420 (YUV planar)

AoqVideoPixelFormatNV12

2

NV12 (YUV semi-planar)

AoqVideoPixelFormatNV21

3

NV21 (YUV semi-planar)

AoqVideoPixelFormatBGRA

4

BGRA de 32 bits

AoqVideoPixelFormatRGBA

5

RGBA de 32 bits

AoqVideoPixelFormatTextureOES

7

Textura OES externa

AoqVideoPixelFormatTexture2D

8

Textura 2D estándar

AoqVideoFrame

Datos de video externos.
CampoTipoValor predeterminadoDescripción
formatAoqVideoPixelFormatAoqVideoPixelFormatUnknownFormato de píxel
widthint0Ancho del video en píxeles
heightint0Altura del video en píxeles
datamatriz de bytesnullDatos en formato empaquetado (NV12/NV21/BGRA/RGBA) (@Nullable)
dataYmatriz de bytesnullDatos del plano Y I420 (@Nullable)
dataUmatriz de bytesnullDatos del plano U I420 (@Nullable)
dataVmatriz de bytesnullDatos del plano V I420 (@Nullable)
strideYint0Stride del plano Y
strideUint0Stride del plano U
strideVint0Stride del plano V
textureIdint0ID de textura (válido para TEXTURE_OES/TEXTURE_2D)
transformMatrixmatriz floatnullMatriz de transformación de textura de 4×4 en orden de filas (@Nullable)
eglContextEGLContextnullContexto EGL compartido (@Nullable)
timeStamplong0Marca de tiempo en milisegundos. Si es 0, el SDK la completa utilizando el reloj local.

AoqVideoCodecType

Tipo de códec para tramas codificadas externamente.
Valor de enumeraciónValorDescripción
AoqVideoCodecTypeJPEG0Codificación JPEG

AoqVideoEncodedFrame

Cuadro de video codificado externamente. La aplicación codifica el cuadro; el SDK lo empaqueta y lo envía sin recodificar.
CampoTipoValor predeterminadoDescripción
codecAoqVideoCodecTypeAoqVideoCodecTypeJPEGFormato de codificación
datamatriz de bytesnullDatos codificados (@Nullable)
widthint0Ancho en píxeles
heightint0Altura en píxeles
timeStamplong0Marca de tiempo en milisegundos. Si es 0, el SDK la completa utilizando el reloj local.

AoqVideoDeviceStateCode

Códigos de estado de captura del dispositivo de video.
Valor de enumeraciónValorDescripción
AoqVideoDeviceNone0Sin estado
AoqVideoDeviceCaptureStarting1Iniciando captura
AoqVideoDeviceCaptureStarted2Captura iniciada
AoqVideoDeviceCaptureStopping3Deteniendo captura
AoqVideoDeviceCaptureStopped4Captura detenida
AoqVideoDeviceCaptureFail5Error en la captura

AoqVideoDeviceState

Estado de captura del dispositivo de video.
CampoTipoValor predeterminadoDescripción
stateAoqVideoDeviceStateCodeAoqVideoDeviceNoneEstado de captura del dispositivo
reasonint0Código de motivo de error (consulte AoqErrorCode)
AoqAudioExternalStreamConfig

Campo

Tipo

Predeterminado

Descripción

trackType

AoqTrackType

Audio

Tipo de pista de audio

codecType

AoqEncoderType

AudioPCM

Formato de flujo de audio

channels

int

1

Recuento de canales

sampleRate

int

48000

Frecuencia de muestreo (Hz)

playoutVolume

int

100

Volumen de reproducción [0–100]

publishVolume

int

100

Volumen de publicación [0–100]

maxBufferDuration

int

1000

Duración máxima del búfer (milisegundos)

enable3A

boolean

false

Si se debe aplicar el procesamiento 3A al PCM de entrada

AoqAudioStreamDirection

Valor de enumeración

Valor

Descripción

AoqAudioStreamPublish

0

Publicar flujo (enviar)

AoqAudioStreamPlayout

1

Flujo de reproducción (recibir)

AoqScreenCaptureStateCode

ValorNúmeroDescripción
AoqScreenCaptureNone0None
AoqScreenCaptureStarting1Iniciando
AoqScreenCaptureStarted2Entrada lista; no indica transmisión
AoqScreenCaptureStopping3Deteniendo
AoqScreenCaptureStopped4Detenido
AoqScreenCaptureFail5Fallo de inicio o de ejecución

AoqScreenCaptureState

CampoTipoValor predeterminadoDescripción
stateAoqScreenCaptureStateCodeAoqScreenCaptureNoneEstado de la captura de pantalla.
reasonint00 para estados normales; un AoqErrorCode en caso de fallo.

AoqScreenShareNotificationFactory

public interface AoqScreenShareNotificationFactory {
    @Nullable Notification createNotification(@NonNull Context serviceContext);
}
Devuelva null para usar la notificación predeterminada. Cree el NotificationChannel con createNotificationChannel antes de devolver una notificación personalizada; de lo contrario, el servicio en primer plano no se iniciará.

Tipos de callback de fotogramas de video

AoqVideoSource

Fuentes de datos del callback de tramas de video (posiciones en la tubería).
Valor de enumeraciónValorDescripción
AoqVideoSourceCaptured0Datos de video después de la captura (antes del preprocesamiento)
AoqVideoSourcePreEncode1Datos de video antes de la codificación (después del preprocesamiento)
AoqVideoSourceRemote2Datos de video remoto después de la decodificación y antes de la renderización

AoqVideoObserverMode

Modos de callback de fotogramas de video.
Valor de enumeraciónValorDescripción
AoqVideoObserverModeReadOnly0Modo de solo lectura
AoqVideoObserverModeReadWrite1Modo de lectura y escritura

AoqVideoObserverAlignment

Alineación del ancho de salida de video.
Valor de enumeraciónValorDescripción
AoqVideoObserverAlignmentDefault0Alineación predeterminada
AoqVideoObserverAlignmentEven1Alineación par
AoqVideoObserverAlignment42Alineación de 4 bytes
AoqVideoObserverAlignment83Alineación de 8 bytes
AoqVideoObserverAlignment164Alineación de 16 bytes

AoqVideoObserverConfig

Configuración del callback de tramas de video.
CampoTipoValor predeterminadoDescripción
trackTypeAoqTrackTypeAoqTrackTypeVideoPista de video a observar. Solo se admiten Video y Screen.
formatAoqVideoPixelFormatAoqVideoPixelFormatI420Formato de píxel de callback deseado
alignmentAoqVideoObserverAlignmentAoqVideoObserverAlignmentDefaultPolítica de alineación de ancho
modeAoqVideoObserverModeAoqVideoObserverModeReadOnlyModo de lectura/escritura. Solo I420 admite acceso de lectura y escritura.
mirrorAppliedbooleanfalseIndica si se deben reflejar los datos del callback

AoqVideoFrameData

Datos de callback de fotograma de video. Los campos byte/texture hacen referencia a memoria interna del SDK y solo son válidos durante el callback. Realice una copia para uso asíncrono.
CampoTipoValor predeterminadoDescripción
formatAoqVideoPixelFormatAoqVideoPixelFormatUnknownFormato de píxel
widthint0Ancho en píxeles
heightint0Altura en píxeles
dataByteBuffernullDatos en formato empaquetado (NV12/NV21/BGRA/RGBA). El ByteBuffer directo hace referencia a memoria nativa (@Nullable).
dataYByteBuffernullPlano Y I420 (@Nullable)
dataUByteBuffernullPlano U I420 (@Nullable)
dataVByteBuffernullPlano V I420 (@Nullable)
strideYint0Stride del plano Y
strideUint0Stride del plano U
strideVint0Stride del plano V
textureIdint0ID de textura (válido para TEXTURE_OES/TEXTURE_2D)
transformMatrixmatriz floatnullMatriz de transformación de textura de 4×4 en orden de filas (válida para TEXTURE_OES/TEXTURE_2D) (@Nullable)
timeStamplong0Marca de tiempo en milisegundos

Tipos de mensajes de datos

AoqDataMsg

Campo

Tipo

Predeterminado

Descripción

data

byte[]

new byte[0]

Datos del mensaje (matriz de bytes)