Este tema describe las API de C++, las devoluciones de llamada y los tipos de datos de AOQ Client SDK para Linux.
Índice de API
Ciclo de vida del motor
| API | Descripción |
|---|---|
| createEngine | Crear una instancia del motor (método singleton estático) |
| destroy | Destruir la instancia del motor (método estático) |
| getVersion | Obtener la versión del SDK (método estático) |
| connect | Conectar al servidor Relay |
| disconnect | Desconectar del servidor |
Gestión de dispositivos de audio
| API | Descripción |
|---|---|
| startAudioCapture | Abrir el dispositivo de captura de audio (operación nula en Linux) |
| stopAudioCapture | Cerrar el dispositivo de captura de audio (sin efecto en Linux) |
| muteAudioCapture | Silenciar o reactivar la captura de audio |
| startAudioPlayer | Iniciar renderizado de audio (sin efecto en Linux) |
| stopAudioPlayer | Detener la renderización de audio (sin efecto en Linux) |
| pauseAudioPlayer | Pausar el renderizado de audio, con desvanecimiento opcional |
| resumeAudioPlayer | Reanudar el renderizado de audio, con aparición gradual opcional |
| interruptAudioPlayer | Interrumpir la reproducción de audio actual |
Configuración del códec de audio
| API | Descripción |
|---|---|
| setAudioEncoderConfig | Establecer parámetros de codificación de audio |
| setAudioDecoderConfig | Establecer parámetros de decodificación de audio |
Gestión de dispositivos de video
| API | Descripción |
|---|---|
| startVideoCapture | Abrir el dispositivo de captura de video (Linux solo admite captura externa) |
| stopVideoCapture | Cerrar el dispositivo de captura de video |
| setLocalView | Establecer o eliminar la ventana de renderización de video local (sin renderizador en Linux) |
| setRemoteView | Establecer o eliminar la ventana de renderización de video remoto (sin renderizador en Linux) |
Configuración de códec de video y entrada externa
| API | Descripción |
|---|---|
| setVideoEncoderConfig | Establecer parámetros de codificación de video |
| setVideoDecoderConfig | Establecer parámetros de decodificación de video (propuesta de códec del suscriptor) |
| pushExternalVideoCapturedFrame | Enviar tramas de video capturadas externamente |
| pushExternalVideoEncodedFrame | Enviar tramas de video codificadas externamente |
Captura de pantalla
| API | Descripción |
|---|---|
| startScreenCapture | Iniciar la captura de pantalla |
| stopScreenCapture | Detener la captura de pantalla |
Control de transmisión de flujo de medios
| API | Descripción |
|---|---|
| enableSendMediaStream | Habilitar o deshabilitar la transmisión de secuencia de medios local |
Reproducción de archivos de audio
| API | Descripción |
|---|---|
| startAudioFile | Iniciar la reproducción y publicación de un archivo de audio local |
| stopAudioFile | Detener la reproducción del archivo de audio |
| pauseAudioFile | Pausar la reproducción del archivo de audio |
| resumeAudioFile | Reanudar la reproducción del archivo de audio |
| getAudioFileDuration | Obtener la duración total del archivo de audio |
| getAudioFileCurrentPosition | Obtener la posición de reproducción actual del archivo de audio |
| setAudioFilePositionMillis | Buscar una posición en el archivo de audio |
| setAudioFileVolume | Establecer el volumen del archivo de audio |
| getAudioFileVolume | Obtener el volumen actual del archivo de audio |
Secuencias de audio externas
| API | Descripción |
|---|---|
| addAudioExternalStream | Agregar un flujo de audio externo |
| pushAudioExternalStreamData | Enviar datos de audio PCM externos |
| setAudioExternalStreamVolume | Establecer el volumen de la secuencia de audio externa |
| getAudioExternalStreamVolume | Obtener el volumen de la secuencia de audio externa |
| clearAudioExternalStreamBuffer | Borrar el búfer de la secuencia de audio externa |
| removeAudioExternalStream | Eliminar un flujo de audio externo |
Mensajes en tiempo real
| API | Descripción |
|---|---|
| sendDataMsg | Enviar un mensaje de datos en tiempo real |
Devoluciones de llamada de cuadros de audio
| API | Descripción |
|---|---|
| setAudioFrameObserver | Registrar el observador de tramas de audio (virtual puro) |
| enableAudioFrameObserver | Habilitar o deshabilitar devoluciones de llamada de tramas de audio en una etapa específica (virtual puro) |
Indicación de volumen de audio local
| API | Descripción |
|---|---|
| enableLocalAudioVolumeIndication | Habilitar o deshabilitar las devoluciones de llamada de indicación de volumen de captura local |
Devoluciones de llamada de cuadros de video
| API | Descripción |
|---|---|
| setVideoFrameObserver | Registrar el observador de tramas de video (virtual puro) |
| enableVideoFrameObserver | Habilitar o deshabilitar devoluciones de llamada de tramas de video en una etapa específica (virtual puro) |
Devoluciones de llamada de AoqEngineEventListener
| API | Descripción |
|---|---|
| onError | Callback de error del motor |
| onWarning | Callback de advertencia del motor |
| onConnectionStatusChange | Callback de cambio de estado de conexión |
| onStats | Callback de estadísticas del motor |
| onAudioDeviceStateChanged | Callback de cambio de estado de operación del dispositivo de audio |
| onAudioDeviceRouteChanged | Devolución de llamada de cambio de ruta de salida de audio (no se activa en Linux) |
| onAudioFileState | Callback de estado de reproducción de archivo de audio |
| onLocalAudioVolumeIndication | Callback de indicación de volumen de captura local |
| onVideoDeviceStateChanged | Callback de cambio de estado de operación del dispositivo de video |
| onDataMsg | Callback de mensaje de datos en tiempo real recibido |
Devoluciones de llamada de IAudioFrameObserver
| API | Descripción |
|---|---|
| onCapturedAudioFrame | Se invoca cuando se captura un cuadro de audio sin procesar. El cuadro contiene datos PCM no procesados. |
| onProcessCapturedAudioFrame | Invocado para una trama de audio después del procesamiento 3A (AEC/AGC/ANS). |
| onPublishAudioFrame | Se invoca para un cuadro de audio antes de la publicación, inmediatamente antes de la codificación y la transmisión. |
| onPlaybackAudioFrame | Invocado para una trama de audio remota decodificada antes de la reproducción. |
Devoluciones de llamada de IVideoFrameObserver
| API | Descripción |
|---|---|
| onCapturedVideoFrame | Invocado cuando se captura una trama de video sin procesar. La trama aún no ha sido preprocesada. |
| onPreEncodeVideoFrame | Invocado para una trama de video sin procesar después del preprocesamiento y antes de la codificación. |
| onRemoteVideoFrame | Invocado para una trama de video remota sin procesar después de la decodificación y antes de la renderización. |
Detalles de la API
Ciclo de vida del motor
createEngine
Crea la instancia del motor. El SDK mantiene el motor como un singleton global, por lo que llamar a este método nuevamente devuelve la instancia existente.
Parámetros | Tipo | Descripción |
|---|---|---|
config | AoqCreateConfig | Configuración de creación del motor |
listener | AoqEngineEventListener\* | Observador de eventos del motor, que el invocador implementa mediante herencia |
nullptr en caso de fallo. El ciclo de vida del listener debe superar al del motor.
destroy
Destruye la instancia del motor y libera todos los recursos.
0 indica éxito; un valor distinto de 0 indica un fallo.
getVersion
Obtiene la versión actual del SDK.
connect
Se conecta al servidor de retransmisión. El servidor de aplicaciones obtiene parámetros de conexión AOQ temporales basados en el protocolo en uso y los envía al cliente. Para más información, consulte Autenticación por token.
Parámetros | Tipo | Descripción |
|---|---|---|
config | AoqConnectConfig | Configuración de conexión, que incluye el token, SID, la matriz de puntos de acceso de retransmisión y las matrices de pistas de publicación y suscripción |
0 indica éxito y la operación se ejecuta de forma asíncrona; un valor distinto de 0 indica un fallo. El resultado de la conexión se notifica mediante onConnectionStatusChange.
relayEndpoints / publishTracks / subscribeTracks son todas estructuras de "puntero de matriz estilo C + longitud". La memoria es mantenida por el llamante y solo necesita ser válida durante la llamada de conexión.disconnect
Desconecta del servidor y libera los recursos asociados con la conexión.
0 indica éxito; un valor distinto de 0 indica un fallo.
Gestión de dispositivos de audio
Parámetros | Tipo | Descripción |
|---|---|---|
config | AoqAudioCaptureConfig / AoqAudioPlaybackConfig | Configuración de captura y reproducción |
mute | bool | true silencia; false activa el sonido |
fadeMs | int | Duración de fundido de salida o entrada, en milisegundos. 0 indica ejecución inmediata. |
trackType | AoqTrackType | Tipo de pista |
startAudioCapture / startAudioPlayer tienen implementaciones vacías en la compilación de Linux (devuelven 0 directamente y no abren ningún dispositivo de tarjeta de sonido), y stopAudioCapture / stopAudioPlayer no tienen ningún efecto real porque el estado interno no se establece. En Linux, utilice flujos de audio externos (2.8) para la entrada de audio y utilice devoluciones de llamada de fotograma de audio (2.10) para reproducir la salida de audio usted mismo.Configuración del códec de audio
connect(). Una combinación inválida de la frecuencia de muestreo y el modo activa el callback onError con AoqECParamInvalid durante la conexión.
Gestión de dispositivos de video
Parámetros | Tipo | Descripción |
|---|---|---|
config | AoqVideoCaptureConfig | Configuración de captura de video |
trackType | AoqTrackType | Tipo de pista de video |
canvas | AoqVideoCanvas | Lienzo de renderización. Si |
startVideoCapture({.isExternal = true}) + pushExternalVideoCapturedFrame para entregar fotogramas. setLocalView / setRemoteView no tienen backend de renderizado en Linux. Para la vista previa, realice el renderizado usted mismo a través de la devolución de llamada de fotograma de video (2.12).Configuración de códec de video y entrada externa
Parámetros | Tipo | Descripción |
|---|---|---|
config | AoqVideoCodecConfig | Configuración del códec, que se enruta según |
trackType | AoqTrackType | Destino de enrutamiento. Establézcalo en |
frame | AoqVideoFrame / AoqVideoEncodedFrame | Cuadro sin procesar o datos de cuadro codificado |
setVideoDecoderConfiges una propuesta de códec para el lado de suscripción y debe llamarse antes deconnect. Durante la decodificación, solotrackType/codecType/width/height/fps/bitratesurten efecto.pushExternalVideoCapturedFramerequiere primerostartVideoCapture(isExternal=true)para Video ostartScreenCapture(isExternal=true)para Pantalla. DevuelveAoqECVideoExternalCaptureNotEnabled(211)cuando la captura externa no se ha iniciado,AoqECParamInvalidcuando el formato no es compatible yAoqECVideoExternalBufferFull(210)cuando el búfer está lleno.pushExternalVideoEncodedFramerequiere primerosetVideoEncoderConfig(isExternal=true). El SDK empaqueta y envía la trama directamente sin volver a codificarla. Actualmente solo se admite JPEG.- Cuando
frame.timeStampes0, el SDK lo rellena con la hora local.
Captura de pantalla
config especifica la configuración de captura de pantalla. El contenido de la pantalla se envía en la pista AoqTrackTypeScreen.
Devuelve 0 en caso de éxito o un valor distinto de cero en caso de fallo. Estos métodos devuelven sincrónicamente y no proporcionan un callback onScreenCaptureStateChanged.
Linux admite únicamente entrada de tramas sin procesar externas. Establezca isExternal=true. La captura de pantalla interna y la enumeración de fuentes no son compatibles; sourceId y sourceType no existen en la configuración de Linux.
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
trackType puede ser AoqTrackTypeAudio o AoqTrackTypeVideo o AoqTrackTypeScreen. Un valor de retorno de 0 indica que la llamada se despacha y se ejecuta de forma asíncrona. Se recomienda deshabilitar el envío después de la inicialización y habilitarlo solo después de que onConnectionStatusChange reporte AoqConnectionStatusConnected.
Reproducción de archivos de audio
Parámetros | Tipo | Descripción |
|---|---|---|
fileId | const char\* | ID de archivo de audio. La capa de negocio debe garantizar la unicidad global. |
config | AoqAudioFileMixConfig | Configuración de mezcla de archivos |
positionMillis | int64_t | Posición de reproducción objetivo, en milisegundos |
type | AoqAudioStreamDirection | Volumen de publicación o volumen de reproducción local |
volume | int | Volumen. Valores válidos: de 0 a 100. |
getAudioFileDuration/getAudioFileCurrentPosition: Un valor>=0es el valor en milisegundos; un valor<0indica un fallo, y su valor absoluto es-AoqErrorCode.getAudioFileVolume: Un valor de0-100es el volumen; un valor<0indica un fallo, y su valor absoluto es-AoqErrorCode.
onAudioFileState. La mezcla de archivos utiliza la ruta de publicación y no depende de la tarjeta de sonido local. Por lo tanto, en Linux, puede utilizarlo para insertar un archivo local como fuente de audio.
Secuencias de audio externas
Parámetros | Tipo | Descripción |
|---|---|---|
streamId | const char\* | ID de flujo de audio externo. La capa de negocio debe garantizar la unicidad global. |
config | AoqAudioExternalStreamConfig | Configuración de flujo de audio externo |
data | AoqAudioFrameData | Datos de audio externos sin procesar (PCM), como referencia no constante |
type | AoqAudioStreamDirection | Volumen de publicación o volumen de reproducción local |
vol | int | Volumen. Valores válidos: de 0 a 100. |
fadeoutMs | int | Duración del desvanecimiento. |
-
Cuando
pushAudioExternalStreamDatadevuelveAoqECAudioExternalBufferFull(110), el búfer interno del SDK está lleno. Se recomienda esperar 20 ms y luego enviar nuevamente la trama de datos actual. -
Mejor práctica: En escenarios de captura en tiempo real, inserte 10 ms de datos a la vez e insértelos siempre que haya datos disponibles. En escenarios de origen de archivo, inserte 40 ms de datos a la vez en intervalos de 30 ms, y maneje el valor de retorno
AoqECAudioExternalBufferFull. -
getAudioExternalStreamVolume: Un valor de0-100es el volumen; un valor<0indica un fallo, y su valor absoluto es-AoqErrorCode. -
clearAudioExternalStreamBufferdevuelvevoidy no tiene valor de retorno. -
data.pushSequencese utiliza para la notificación de finalización de consumo del SDK (ronda de entrada PCM).No existe un dispositivo de captura real en Linux. Este grupo de API es la ruta principal para el enlace ascendente de audio.
Mensajes en tiempo real
msg.data apunta a memoria mantenida por el llamante y solo necesita ser válida durante la llamada. Los mensajes del par se notifican a través del callback onDataMsg.
Devoluciones de llamada de cuadros de audio
Parámetros | Tipo | Descripción |
|---|---|---|
observer | IAudioFrameObserver\* | Instancia del observador. Pase |
enabled | bool | Especifica si se deben habilitar las devoluciones de llamada de datos en esta posición |
audioSource | AoqAudioSource | Posición de la fuente de datos de audio sin procesar |
config | AoqAudioObserverConfig | Tasa de muestreo de la devolución de llamada, número de canales y modo de lectura-escritura |
setAudioFrameObserver(observer) para registrar el listener. Luego, llame a enableAudioFrameObserver para cada posición que necesite. El ciclo de vida del observador debe cubrir todo el período del callback. Libere el observador solo después de anular su registro.
Soporte de modo lectura-escritura (véase la declaración IAudioFrameObserver): onCapturedAudioFrame / onProcessCapturedAudioFrame / onPlaybackAudioFrame admiten modo lectura-escritura, mientras que onPublishAudioFrame admite únicamente modo de solo lectura.
setAudioFrameObserver completa el registro mediante un despacho asíncrono (PostTask al hilo de control), por lo que la devolución de llamada puede surtir efecto poco después de que la llamada regrese. Antes de liberar el observador, deje un intervalo de seguridad suficiente o mantenga el objeto activo.Indicación de volumen de audio local
config.interval <= 0, la devolución de llamada se deshabilita. Una vez habilitada, onLocalAudioVolumeIndication se activa en el intervalo especificado por config.interval. Debe llamar a este método después de startAudioCapture para obtener los datos de volumen.
Devoluciones de llamada de cuadros de video
Parámetros | Tipo | Descripción |
|---|---|---|
observer | IVideoFrameObserver\* | Instancia del observador. Pase |
enabled | bool | Especifica si se deben habilitar las devoluciones de llamada de datos en esta posición |
videoSource | AoqVideoSource | Fuente de datos de la devolución de llamada de trama de video (posición en la canalización) |
config | AoqVideoObserverConfig | Formato de píxel esperado, política de alineación, modo de lectura-escritura y espejo |
true, los datos se modifican y deben escribirse de nuevo en el SDK. Esto surte efecto únicamente para I420 / CVPixelBuffer, lo que significa solo I420 en Linux. Si el callback devuelve false, los datos son de solo lectura.
AoqVideoSourceRemote).Devoluciones de llamada de AoqEngineEventListener
AoqEngineEventListener es el punto de entrada unificado para todas las notificaciones de eventos asíncronos del SDK. Usted lo hereda e implementa, y luego lo pasa cuando llama a createEngine.
= 0) sin implementación vacía predeterminada. En Linux, debe implementar completamente los siguientes 10 métodos; de lo contrario, la clase derivada no se puede instanciar. Los callbacks pueden activarse en hilos internos del SDK.Devoluciones de llamada de AoqEngineEventListener
onError
Callback de error del motor. code corresponde a un valor de enumeración AoqErrorCode (véase 3.3), y message es válido únicamente durante el callback.
onWarning
Devolución de llamada de advertencia del motor. code corresponde a un valor de enumeración AoqWarningCode (consulte 3.3).
onConnectionStatusChange
Callback de cambio de estado de conexión. Transiciones de estado: Desconectado -> Conectando -> Conectado / Fallido -> Desconectado.
onStats
Callback de estadísticas del motor. El SDK reporta periódicamente estadísticas de publicación y suscripción de audio y video, así como estadísticas de red, que puede utilizar para monitorear la calidad de la llamada y el estado de la red en tiempo real, y para diagnosticar problemas de audio y video.
Parámetros | Tipo | Descripción |
|---|---|---|
stats | AoqStats | Estadísticas de publicación y suscripción, y estadísticas de red para mensajes de audio, video y datos |
AoqStats utiliza internamente una estructura de "puntero de matriz + recuento". El puntero es válido únicamente durante el callback, por lo que debe copiar los datos usted mismo para uso asíncrono.onAudioDeviceStateChanged
Devolución de llamada para cambios en el estado de operación de captura y reproducción del dispositivo de audio. state.reason es un valor AoqErrorCode.
onAudioDeviceRouteChanged
Devolución de llamada de cambio de ruta de salida de audio. routeType corresponde a un valor de enumeración AoqAudioDeviceRouteType (consulte 3.4).
onAudioFileState
Devolución de llamada para el estado de reproducción de archivos de audio. state.fileId es válido solo durante la devolución de llamada.
onLocalAudioVolumeIndication
Devolución de llamada de indicación de volumen de captura local. Para habilitarla, llame a enableLocalAudioVolumeIndication.
onVideoDeviceStateChanged
Devolución de llamada para cambios en el estado de operación de captura del dispositivo de video. state.reason es un valor AoqErrorCode.
onDataMsg
Callback para un mensaje de datos en tiempo real recibido. msg.datatiene garantía de validez únicamente durante el callback. Si necesita utilizarlo de forma asíncrona, cópielo usted mismo.
Devoluciones de llamada de IAudioFrameObserver
Interfaz para escucha de datos de audio. No realice operaciones que consuman mucho tiempo en los callbacks. De lo contrario, pueden producirse anomalías en el audio. Todos los métodos son funciones virtuales puras y deben implementarse completamente.
Callback | Cómo habilitarlo (audioSource) | Modo de lectura-escritura |
|---|---|---|
onCapturedAudioFrame | AoqAudioSourceCaptured | Lectura-escritura admitida |
onProcessCapturedAudioFrame | AoqAudioSourceProcessCaptured | Lectura-escritura admitida |
onPublishAudioFrame | AoqAudioSourcePublish (requiere una conexión exitosa) | Solo se admite modo de solo lectura |
onPlaybackAudioFrame | AoqAudioSourcePlayback | Lectura-escritura admitida |
AoqAudioObserverConfig.
onPlaybackAudioFrame es la ruta principal para obtener el PCM descendente remoto. Debido a que el módulo 3A no se compila en Linux, los datos de onProcessCapturedAudioFrame (datos después del procesamiento 3A) son esencialmente los mismos que los datos capturados sin procesar.onCapturedAudioFrame
Se invoca cuando se captura un cuadro de audio sin procesar. El cuadro contiene datos PCM no procesados.
| Parámetro | Tipo | Descripción |
|---|---|---|
| data | const AoqAudioFrameData& | Datos de fotograma de audio capturado |
onProcessCapturedAudioFrame
Invocado para una trama de audio después del procesamiento 3A (AEC/AGC/ANS).
| Parámetro | Tipo | Descripción |
|---|---|---|
| data | const AoqAudioFrameData& | Datos de trama de audio después del procesamiento 3A |
onPublishAudioFrame
Se invoca para un cuadro de audio antes de la publicación, inmediatamente antes de la codificación y la transmisión.
| Parámetro | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Tipo de pista de audio |
| data | const AoqAudioFrameData& | Datos de trama de audio antes de la publicación |
onPlaybackAudioFrame
Invocado para una trama de audio remota decodificada antes de la reproducción.
| Parámetro | Tipo | Descripción |
|---|---|---|
| data | const AoqAudioFrameData& | Datos de trama de audio remota antes de la reproducción |
Devoluciones de llamada de IVideoFrameObserver
Interfaz para escucha de datos de video. No realice operaciones que consuman mucho tiempo en los callbacks. De lo contrario, puede producirse tartamudeo en el video. Todos los métodos son funciones virtuales puras.
Callback | Cómo habilitarlo (videoSource) | Descripción |
|---|---|---|
onCapturedVideoFrame | AoqVideoSourceCaptured | Datos sin procesar locales después de la captura, antes del preprocesamiento |
onPreEncodeVideoFrame | AoqVideoSourcePreEncode | Datos sin procesar locales antes de la codificación, después del preprocesamiento |
onRemoteVideoFrame | AoqVideoSourceRemote | Datos sin procesar remotos después de la decodificación y antes de la renderización |
true indica que los datos se modifican y deben escribirse de nuevo en el SDK, lo cual surte efecto únicamente para I420 / CVPixelBuffer; false indica solo lectura. Los punteros en frame son válidos únicamente durante el callback. Para utilizarlos de forma asíncrona, cópielos usted mismo.
onCapturedVideoFrame
Invocado cuando se captura una trama de video sin procesar. La trama aún no ha sido preprocesada.
| Parámetro | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Pista de cuadro (Video / Pantalla) |
| frame | AoqVideoFrame& | Datos de fotograma de video capturado |
onPreEncodeVideoFrame
Invocado para una trama de video sin procesar después del preprocesamiento y antes de la codificación.
| Parámetro | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Pista de cuadro (Video / Pantalla) |
| frame | AoqVideoFrame& | Datos de fotograma de video antes de la codificación |
onRemoteVideoFrame
Invocado para una trama de video remota sin procesar después de la decodificación y antes de la renderización.
| Parámetro | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Pista de cuadro (Video / Pantalla) |
| frame | AoqVideoFrame& | Datos de fotograma de video remoto decodificado |
Tipos de datos y enumeraciones
Tipos comunes
AoqCreateConfig
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
workDir | const char\* | nullptr | Directorio de trabajo del SDK (para registros y archivos temporales) |
enableDumpAudio | bool | false | Especifica si se deben guardar los datos de audio (para depuración) |
extras | const char\* | nullptr | Parámetros extendidos (una cadena JSON) |
| maxEncodedVideoFrameBytes | int | 190 × 1024 | Tamaño máximo de trama codificada en bytes. Se aplica únicamente al codificador JPEG interno del SDK. Un valor de 0 desactiva el límite. |
| enableDropOversizedVideoFrame | bool | false | Para el codificador JPEG interno del SDK, si se debe descartar un cuadro que sigue siendo demasiado grande incluso con la calidad más baja. |
createEngine regrese. El motor los copia internamente según sea necesario. El campo isBTScoMode no existe en Linux.AoqConnectConfig
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
token | const char\* | nullptr | Token de autenticación de conexión |
sid | const char\* | nullptr | ID de sesión |
certFingerprint | const char\* | nullptr | Huella digital del certificado del servidor |
workspaceIdHash | const char\* | nullptr | Hash del ID del espacio de trabajo |
relayEndpoints | const AoqRelayEndpoint\* | nullptr | Dirección de inicio del arreglo de puntos de acceso de retransmisión |
relayEndpointsCount | size_t | 0 | Número de puntos de acceso de retransmisión |
publishTracks | const AoqTrackParam\* | nullptr | Dirección de inicio del arreglo de atributos de pistas de publicación |
publishTracksCount | size_t | 0 | Número de pistas publicadas |
subscribeTracks | const AoqTrackParam\* | nullptr | Dirección de inicio del arreglo de atributos de pistas de suscripción |
subscribeTracksCount | size_t | 0 | Número de pistas suscritas |
AoqRelayEndpoint
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
route_index | int | -1 | Índice de ruta |
endpoint | const char\* | nullptr | Nombre de dominio o dirección IP del servidor de retransmisión |
port | int | 0 | Puerto del servidor de retransmisión |
| tcp_port | int | 0 | Puerto de reserva TCP. Un valor de 0 utiliza el puerto predeterminado del SDK, 443. |
route_index usa snake case, a diferencia del camel case utilizado por los otros campos.AoqTrackParam
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
trackType | AoqTrackType | AoqTrackTypeAudio | Tipo de pista |
trackMode | AoqTrackMode | AoqTrackModeSegment | Modo de transmisión o sin transmisión. Efectivo solo para el enlace descendente de audio. |
AoqDataMsg
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
data | const uint8_t\* | nullptr | Contenido del mensaje. Apunta a memoria mantenida por el invocador. |
dataSize | size_t | 0 | Número de bytes |
Tipos de estadísticas
AoqStats
Un resumen de estadísticas del motor, que se reporta periódicamente a través de onStats. Utiliza una estructura de "puntero de matriz + recuento", en la que todos los punteros tienen como valor predeterminado nullptr y todos los recuentos tienen como valor predeterminado 0.
Campo | Tipo | Descripción |
|---|---|---|
audioPublishStats | const AoqAudioPublishStats\* | Arreglo de estadísticas de publicación para audio |
audioPublishStatsCount | unsigned int | Número de entradas de estadísticas de publicación para audio |
videoPublishStats | const AoqVideoPublishStats\* | Arreglo de estadísticas de publicación para video |
videoPublishStatsCount | unsigned int | Número de entradas de estadísticas de publicación para video |
dataMsgPublishStats | const AoqDataMsgPublishStats\* | Arreglo de estadísticas de publicación para mensajes de datos |
dataMsgPublishStatsCount | unsigned int | Número de entradas de estadísticas de publicación para mensajes de datos |
audioSubscribeStats | const AoqAudioSubscribeStats\* | Arreglo de estadísticas de suscripción para audio |
audioSubscribeStatsCount | unsigned int | Número de entradas de estadísticas de suscripción para audio |
videoSubscribeStats | const AoqVideoSubscribeStats\* | Arreglo de estadísticas de suscripción para video |
videoSubscribeStatsCount | unsigned int | Número de entradas de estadísticas de suscripción para video |
dataMsgSubscribeStats | const AoqDataMsgSubscribeStats\* | Arreglo de estadísticas de suscripción para mensajes de datos |
dataMsgSubscribeStatsCount | unsigned int | Número de entradas de estadísticas de suscripción para mensajes de datos |
networkStats | const AoqNetworkStats\* | Estadísticas de red |
AoqAudioPublishStats
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
trackType | AoqTrackType | AoqTrackTypeAudio | Tipo de pista |
bitrate | unsigned int | 0 | Tasa de bits, en bit/s |
bytes | uint64_t | 0 | Bytes enviados acumulados |
encodeVolume | unsigned int | 0 | Volumen de codificación del flujo de publicación |
AoqAudioSubscribeStats
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
trackType | AoqTrackType | AoqTrackTypeAudio | Tipo de pista |
bitrate | unsigned int | 0 | Tasa de bits, en bit/s |
bytes | uint64_t | 0 | Bytes acumulados recibidos |
playVolume | unsigned int | 0 | Volumen de reproducción |
AoqVideoPublishStats
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
trackType | AoqTrackType | AoqTrackTypeVideo | Tipo de pista |
bitrate | unsigned int | 0 | Tasa de bits, en bit/s |
bytes | uint64_t | 0 | Bytes enviados acumulados |
encodeFps | unsigned int | 0 | Tasa de cuadros de codificación |
AoqVideoSubscribeStats
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
trackType | AoqTrackType | AoqTrackTypeVideo | Tipo de pista |
bitrate | unsigned int | 0 | Tasa de bits, en bit/s |
bytes | uint64_t | 0 | Bytes acumulados recibidos |
decodeFps | unsigned int | 0 | Tasa de fotogramas de decodificación |
renderFps | unsigned int | 0 | Tasa de fotogramas de renderizado |
AoqDataMsgPublishStats / AoqDataMsgSubscribeStats
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
trackType | AoqTrackType | AoqTrackTypeData | Tipo de pista |
bitrate | unsigned int | 0 | Tasa de bits, en bit/s |
bytes | uint64_t | 0 | Bytes acumulados enviados y recibidos |
AoqNetworkStats
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
sendBitrate | unsigned int | 0 | Tasa de bits de envío, en bit/s |
sendBytes | uint64_t | 0 | Bytes enviados acumulados |
recvBitrate | unsigned int | 0 | Tasa de bits de recepción, en bit/s |
recvBytes | uint64_t | 0 | Bytes acumulados recibidos |
loss | unsigned int | 0 | Tasa de pérdida de paquetes, de 0 a 100 |
rtt | unsigned int | 0 | Latencia de ida y vuelta, en ms |
Enumeraciones
AoqTrackType
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqTrackTypeAudio | 0 | Pista de audio |
AoqTrackTypeVideo | 1 | Pista de video |
AoqTrackTypeData | 2 | Pista de mensajes de datos |
| AoqTrackTypeScreen | 3 | Pista de pantalla compartida. Solo enlace ascendente. |
AoqTrackMode
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqTrackModeSegment | 0 | Segmentado: los datos se empaquetan y entregan en segmentos semánticos, como una oración. |
AoqTrackModeStream | 1 | Transmisión: los datos se entregan de forma continua. |
AoqEncoderType
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqEncoderTypeUnknown | 0 | Formato desconocido |
AoqEncoderTypeAudioPCM | 1 | Audio PCM |
AoqEncoderTypeAudioOpus | 2 | Audio Opus (basado en complementos; compilado estáticamente en Linux y disponible de forma nativa) |
AoqEncoderTypeVideoH264 | 3 | Video H.264 |
AoqEncoderTypeVideoJpeg | 4 | Video JPEG |
AoqEncoderTypeDataText | 5 | Texto del mensaje |
AoqConnectionStatus
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqConnectionStatusDisconnected | 0 | Desconectado |
AoqConnectionStatusConnecting | 1 | Conectando |
AoqConnectionStatusConnected | 2 | Conectado |
AoqConnectionStatusFailed | 3 | Error de conexión |
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 | Se llama a la API pero no está implementada en la plataforma actual o en el modo actual |
AoqECAudio | 100 | Error genérico de audio |
AoqECAudioExternalBufferFull | 110 | El búfer de audio externo está lleno |
AoqECAudioDevice | 120 | Error genérico de dispositivo de audio |
AoqECAudioDeviceRecordingAuthFailed | 121 | Permiso de grabación no concedido |
AoqECAudioDeviceRecordingOccupied | 122 | El dispositivo de grabación está en uso |
AoqECAudioDeviceRecordingBackgroundStart | 123 | Error al iniciar la grabación en segundo plano |
AoqECAudioDeviceRecordingStartFail | 124 | Error al iniciar la grabación |
AoqECAudioDevicePlayoutOccupied | 125 | El dispositivo de reproducción está en uso |
AoqECAudioDevicePlayoutBackgroundStart | 126 | Error al iniciar la reproducción en segundo plano |
AoqECAudioDevicePlayoutStartFail | 127 | Error al iniciar la reproducción |
AoqECAudioDeviceEarpieceRequiresVoipMode | 128 | El receptor requiere modo VoIP (escenarios móviles) |
AoqECVideo | 200 | Error genérico de video |
AoqECVideoExternalBufferFull | 210 | El búfer de video externo está lleno |
AoqECVideoExternalCaptureNotEnabled | 211 | La captura de video externa no está habilitada |
AoqECVideoExternalEncoderNotEnabled | 212 | La codificación de video externa no está habilitada |
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 | La cámara está en uso |
AoqECVideoDeviceCameraRunningError | 224 | Excepción de tiempo de ejecución de la cámara |
AoqECVideoCodec | 230 | Error genérico de códec de video |
AoqECVideoCodecEncoderInitFail | 231 | Error al inicializar el codificador de video |
AoqECVideoRender | 240 | Error genérico de renderizado de video |
AoqECVideoRenderCreateFail | 241 | Error al crear el renderizado de video |
AoqECVideoRenderDrawError | 242 | Error de dibujo en el renderizado de video |
| AoqECScreen | 300 | Error general de captura de pantalla |
| AoqECScreenAuthFailed | 310 | Permiso de captura de pantalla denegado |
| AoqECScreenStartFailed | 311 | Error al iniciar la captura 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 | Se agotó el tiempo de inicio del micrófono |
AoqWCAudioDeviceRecordingError | 123 | Error durante la grabación |
AoqWCAudioDeviceSpeakerEnumerateError | 124 | Error de enumeración de altavoces |
AoqWCAudioDeviceSpeakerStartTimeout | 125 | Se agotó el tiempo de inicio del altavoz |
AoqWCAudioDevicePlayoutError | 126 | Error durante la 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 |
AoqMirrorMode
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqMirrorModeDisabled | 0 | Deshabilitar espejo |
AoqMirrorModeEnabled | 1 | Habilitar espejo |
AoqOrientationMode
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqOrientationModeAuto | 0 | Auto-fit |
AoqOrientationModePortrait | 1 | Vertical |
AoqOrientationModeLandscape | 2 | Horizontal |
AoqRenderMode
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqRenderModeAuto | 0 | Modo adaptativo |
AoqRenderModeStretch | 1 | Modo de estiramiento |
AoqRenderModeFill | 2 | Modo de relleno |
AoqRenderModeCrop | 3 | Modo de recorte |
AoqVideoCanvas.renderMode. Linux no tiene implementación de renderizado, por lo que esta enumeración no surte efecto realmente.AoqAudioStreamDirection
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqAudioStreamPublish | 0 | Publicación de audio |
AoqAudioStreamPlayout | 1 | Audio de reproducción |
AoqAudioExternalStreamToggle
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqAudioExternalStreamToggleNormal | 0 | Recuperado |
AoqAudioExternalStreamTogglePause | 1 | En pausa |
Tipos de audio
AoqAudioCaptureConfig
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
isExternal | bool | false | Especifica si se debe utilizar captura externa |
channel | int | 1 | Número de canales de captura de audio. Se admiten 1 y 2. |
AoqAudioPlaybackConfig
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
isExternal | bool | false | Especifica si se debe utilizar reproducción externa |
channel | int | 1 | Número de canales de reproducción de audio. Se admiten 1 y 2. |
AoqAudioCodecConfig
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
trackType | AoqTrackType | AoqTrackTypeAudio | Tipo de pista |
codecType | AoqEncoderType | AoqEncoderTypeAudioOpus | Tipo de codificación |
sampleRate | int | 48000 | Tasa de muestreo, en Hz |
channel | int | 1 | Número de canales. Se admiten 1 y 2. |
bitrate | int | 32000 | Tasa de bits, en bit/s |
- Codificación: Opus admite 8 / 16 / 48K, y PCM admite 8 / 16 / 32 / 48K;
- Decodificación: 24K es adicionalmente compatible, pero 24K está limitado al modo Segmento (el modo Stream no admite 24K);
- Una combinación no válida activa la devolución de llamada
onErrorconAoqECParamInvalidduranteconnect.
AoqAudioDeviceRouteType
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqAudioDeviceRouteDefault | 0 | Ruta predeterminada |
AoqAudioDeviceRouteHeadset | 1 | Auriculares |
AoqAudioDeviceRouteEarpiece | 2 | Receiver |
AoqAudioDeviceRouteHeadsetNoMic | 3 | Auriculares sin micrófono |
AoqAudioDeviceRouteSpeakerPhone | 4 | Altavoz integrado |
AoqAudioDeviceRouteUsb | 5 | Dispositivo de audio USB |
AoqAudioDeviceRouteBluetooth | 6 | Bluetooth |
AoqAudioDeviceRouteBluetoothA2dp | 7 | Bluetooth A2DP |
routeType de onAudioDeviceRouteChanged. Linux no activa este callback.AoqAudioDeviceStateCode
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqAudioDeviceNone | 0 | Sin estado |
AoqAudioDeviceRecordStarting | 1 | Iniciando captura |
AoqAudioDeviceRecordStarted | 2 | Captura iniciada |
AoqAudioDeviceRecordStopping | 3 | Deteniendo captura |
AoqAudioDeviceRecordStopped | 4 | Captura detenida |
AoqAudioDeviceRecordFail | 5 | Error en la captura |
AoqAudioDevicePlayStarting | 6 | Iniciando reproducción |
AoqAudioDevicePlayStarted | 7 | Reproducción iniciada |
AoqAudioDevicePlayStopping | 8 | Deteniendo reproducción |
AoqAudioDevicePlayStopped | 9 | Reproducción detenida |
AoqAudioDevicePlayFail | 10 | Error en la reproducción |
AoqAudioDeviceState
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
state | AoqAudioDeviceStateCode | AoqAudioDeviceNone | Estado de operación del dispositivo |
reason | int | 0 | Código de motivo de error. Consulte AoqErrorCode. |
AoqAudioFrameData
Datos de audio sin procesar. Se utilizan tanto para la alimentación de flujo externo mediante pushAudioExternalStreamData como para el callback IAudioFrameObserver.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
dataPtr | void\* | 0 | Puntero a los datos PCM de audio |
numOfSamples | int | 0 | Número de muestras (por canal) |
bytesPerSample | int | 0 | Bytes por muestra |
numOfChannels | int | 0 | Número de canales |
samplesPerSec | int | 0 | Número de muestras por segundo (tasa de muestreo) |
pushSequence | int | 0 | Ronda de entrada PCM (utilizada para la notificación de finalización de consumo de flujo) |
timeStamp | int64_t | 0 | Marca de tiempo |
dataSize | int | 0 | Longitud de datos, en bytes |
autoGenMute | bool | false | Válido solo en devoluciones de llamada. true indica datos silenciosos generados por el SDK. |
AoqAudioSource
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqAudioSourceCaptured | 0 | Datos de audio capturados |
AoqAudioSourceProcessCaptured | 1 | Datos de audio después del procesamiento 3A |
AoqAudioSourcePublish | 2 | Datos de audio que se publicarán (requiere una conexión exitosa) |
AoqAudioSourcePlayback | 3 | Datos de audio a reproducir |
AoqAudioSourceMax | 4 | Marcador de posición, no utilizar |
AoqAudioObserverMode
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqAudioObserverModeReadOnly | 0 | Modo de solo lectura |
AoqAudioObserverModeReadWrite | 1 | Modo de lectura y escritura |
AoqAudioObserverConfig
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
sampleRate | int | 48000 | Tasa de muestreo del audio de la devolución de llamada, en Hz. Se realiza un remuestreo si la tasa no coincide con la de la fuente. |
channels | int | 1 | Número de canales de audio en el callback. Se admiten 1 y 2. Este parámetro está limitado por los parámetros del códec del flujo de suscripción. |
mode | AoqAudioObserverMode | AoqAudioObserverModeReadOnly | Modo de devolución de llamada |
AoqAudioVolumeIndicationConfig
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| reportSpeech | bool | false | Si se debe detectar voz. |
| interval | int | 0 | Intervalo de devolución de llamada en milisegundos. Un valor de 0 o menos deshabilita las devoluciones de llamada. Los valores mayores que 0 y menores que 10 se tratan como 10. |
| smooth | int | 3 | Coeficiente de suavizado de volumen. Valores más grandes proporcionan mayor suavizado. Valores válidos: 0-10. |
AoqAudioVolume
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| isSpeech | bool | false | Si el audio contiene voz. |
| volume | int | 0 | Volumen instantáneo suavizado. Valores válidos: 0-255. |
Tipos de archivos de audio y flujos de audio externos
AoqAudioFileMixConfig
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
fileName | const char\* | nullptr | Nombre del archivo (incluida la ruta) |
cycles | int | -1 | Número de bucles. -1 indica un bucle ilimitado. |
startPosMs | long | 0 | Posición de inicio de reproducción, en milisegundos |
publishVolume | int | 100 | Volumen de publicación. Valores válidos: de 0 a 100. |
playoutVolume | int | 100 | Volumen de reproducción. Valores válidos: de 0 a 100. |
fileId no forma parte del cuerpo de configuración y se pasa como un parámetro separado a startAudioFile.AoqAudioFileStateCode
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqAudioFileNone | 0 | Sin estado |
AoqAudioFileStarted | 1 | Iniciado |
AoqAudioFileStopped | 2 | Detenido |
AoqAudioFilePaused | 3 | En pausa |
AoqAudioFileResumed | 4 | Reanudado |
AoqAudioFileEnded | 5 | Reproducción completada |
AoqAudioFileBuffering | 6 | Buffering |
AoqAudioFileBufferingEnd | 7 | Almacenamiento en búfer finalizado |
AoqAudioFileFailed | 8 | Error en la reproducción |
AoqAudioFileErrorCode
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqAudioFileNoError | 0 | Sin error |
AoqAudioFileOpenFailed | 1 | Error al abrir el archivo |
AoqAudioFileDecodeFailed | 2 | Error al decodificar el archivo |
AoqAudioFileState
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
fileId | const char\* | nullptr | ID de archivo. Es válido solo durante la devolución de llamada. |
stateCode | AoqAudioFileStateCode | AoqAudioFileNone | Código de estado del archivo |
errorCode | AoqAudioFileErrorCode | AoqAudioFileNoError | Código de error del archivo |
AoqAudioExternalStreamConfig
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
trackType | AoqTrackType | AoqTrackTypeAudio | Tipo de pista de audio |
codecType | AoqEncoderType | AoqEncoderTypeAudioPCM | Formato de flujo de audio. Se admite PCM. |
channels | int | 1 | Número de canales. Está limitado por el códec de audio del flujo de publicación (se admiten 1 y 2, y los canales adicionales se ignoran). |
sampleRate | int | 48000 | Tasa de muestreo, en Hz |
playoutVolume | int | 100 | Volumen de reproducción. Valores válidos: de 0 a 100. |
publishVolume | int | 100 | Volumen de publicación. Valores válidos: de 0 a 100. |
maxBufferDuration | int | 600000 | Duración máxima del búfer, en milisegundos (es decir, 10 minutos). Valores válidos: 100 y superiores. Si la duración excede este valor, Push falla. |
enable3A | bool | false | Aplicar procesamiento 3A al PCM de entrada (no surte efecto en Linux) |
streamId no forma parte del cuerpo de configuración y se pasa como un parámetro separado a addAudioExternalStream.Tipos de video
AoqVideoCanvas
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
view | void\* | nullptr | Un puntero opaco al identificador de vista nativo de la plataforma. Pase nullptr para eliminar el vínculo. |
renderMode | AoqRenderMode | AoqRenderModeAuto | Modo de relleno de renderizado |
view sea más largo que el período durante el cual se establece mediante setLocalView / setRemoteView.
AoqVideoCaptureConfig
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
width | int | 1280 | Ancho de captura, en píxeles. Este parámetro no tiene efecto cuando isExternal=true. |
height | int | 720 | Altura de captura, en píxeles. Este parámetro no tiene efecto cuando isExternal=true. |
fps | int | 15 | Tasa de cuadros de captura. Este parámetro no tiene efecto cuando isExternal=true (el ritmo lo determina la entrega de cuadros). |
isExternal | bool | false | Especifica si se debe utilizar captura externa. Si es true, la cámara no se abre y las tramas se alimentan mediante pushExternalVideoCapturedFrame. |
isExternal = true.AoqVideoCodecConfig
La codificación y la decodificación comparten la misma estructura. Para la decodificación, solo trackType / codecType / width / height / fps / bitrate surten efecto y participan en la negociación como una propuesta de suscripción. minBitrate / keyframeInterval / mirrorMode / orientationMode / isExternal se utilizan únicamente para la codificación.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
isExternal | bool | false | Modo de codificación externa. Cuando es true, usted inserta tramas codificadas y el SDK no realiza captura ni codificación. |
trackType | AoqTrackType | AoqTrackTypeVideo | Tipo de pista |
codecType | AoqEncoderType | AoqEncoderTypeVideoH264 | Tipo de codificación |
width | int | 540 | Ancho de resolución, en píxeles |
height | int | 960 | Alto de resolución, en píxeles |
fps | int | 5 | Tasa de fotogramas |
bitrate | int | 500000 | Tasa de bits inicial, en bit/s |
minBitrate | int | 128000 | Tasa de bits mínima, en bit/s |
keyframeInterval | int | 2 | Intervalo de fotogramas clave, en segundos |
mirrorMode | AoqMirrorMode | AoqMirrorModeDisabled | Modo espejo |
orientationMode | AoqOrientationMode | AoqOrientationModeAuto | Modo de orientación |
AoqVideoPixelFormat
Valor de enumeración | Valor | Descripción | Compatible con Linux |
|---|---|---|---|
AoqVideoPixelFormatUnknown | 0 | Formato desconocido | - |
AoqVideoPixelFormatI420 | 1 | I420 (formato planar YUV) | Compatible |
AoqVideoPixelFormatNV12 | 2 | NV12 (formato semiplanar YUV) | Compatible |
AoqVideoPixelFormatNV21 | 3 | NV21 (formato semiplanar YUV) | Compatible |
AoqVideoPixelFormatBGRA | 4 | BGRA (32 bits) | Compatible |
AoqVideoPixelFormatRGBA | 5 | RGBA (32 bits) | Compatible |
AoqVideoPixelFormatCVPixelBuffer | 6 | Válido solo en plataformas Apple | No compatible |
AoqVideoPixelFormatTextureOES | 7 | Textura OES externa de Android | No compatible |
AoqVideoPixelFormatTexture2D | 8 | Textura 2D estándar de Android | No compatible |
AoqVideoFrame
Una trama de video sin procesar externa. Se utiliza tanto para pushExternalVideoCapturedFrame como para el callback IVideoFrameObserver.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
format | AoqVideoPixelFormat | AoqVideoPixelFormatUnknown | Formato de píxel |
width | int | 0 | Ancho, en píxeles |
height | int | 0 | Alto, en píxeles |
dataPtr | void\* | 0 | Datos en formato empaquetado (NV12 / NV21 / BGRA / RGBA) |
dataSize | int | 0 | Número de bytes de datos empaquetados |
dataY | void\* | 0 | Plano Y de I420 |
dataU | void\* | 0 | Plano U de I420 |
dataV | void\* | 0 | Plano V de I420 |
strideY | int | 0 | Paso del plano Y |
strideU | int | 0 | Paso del plano U |
strideV | int | 0 | Paso del plano V |
nativePixelBuffer | void\* | 0 | Utilizado para copia cero de Apple (CVPixelBufferRef). Este campo no se utiliza en Linux. |
textureId | int | 0 | ID de textura de Android. Este campo no se utiliza en Linux. |
transformMatrix | matriz float (16 elementos) | Todos ceros | Matriz de transformación de textura (fila principal 4x4). Este campo no se utiliza en Linux. |
timeStamp | int64_t | 0 | Marca de tiempo, en milisegundos. Si es 0, el SDK la rellena con la hora local. |
AoqVideoCodecType
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqVideoCodecTypeJPEG | 0 | Codificación JPEG |
AoqVideoEncodedFrame
Una trama de video codificada externamente. El llamante realiza la codificación, y el SDK empaqueta y envía la trama directamente sin volver a codificarla.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
codec | AoqVideoCodecType | AoqVideoCodecTypeJPEG | Formato de códec |
data | void\* | nullptr | Puntero a los datos codificados |
dataSize | int | 0 | Número de bytes de los datos codificados |
width | int | 0 | Ancho, en píxeles |
height | int | 0 | Alto, en píxeles |
timeStamp | int64_t | 0 | Marca de tiempo, en milisegundos. Si es 0, el SDK la rellena con la hora local. |
AoqVideoDeviceStateCode
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqVideoDeviceNone | 0 | Sin estado |
AoqVideoDeviceCaptureStarting | 1 | Iniciando cámara |
AoqVideoDeviceCaptureStarted | 2 | Cámara iniciada |
AoqVideoDeviceCaptureStopping | 3 | Deteniendo cámara |
AoqVideoDeviceCaptureStopped | 4 | Cámara detenida |
AoqVideoDeviceCaptureFail | 5 | Error al iniciar la cámara (por ejemplo, permiso denegado o dispositivo no disponible) |
AoqVideoDeviceState
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
state | AoqVideoDeviceStateCode | AoqVideoDeviceNone | Estado de la operación de captura del dispositivo |
reason | int | 0 | Código de motivo de error. Consulte AoqErrorCode. |
AoqVideoSource
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqVideoSourceCaptured | 0 | Datos de video capturados antes del preprocesamiento |
AoqVideoSourcePreEncode | 1 | Datos de video antes de la codificación, después del preprocesamiento |
AoqVideoSourceRemote | 2 | Datos de video remoto después de la decodificación y antes de la renderización |
AoqVideoSourceMax | 3 | Marcador de posición, no utilizar |
AoqVideoObserverMode
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqVideoObserverModeReadOnly | 0 | Modo de solo lectura |
AoqVideoObserverModeReadWrite | 1 | Modo de lectura-escritura (admitido solo para I420 / CVPixelBuffer) |
AoqVideoObserverAlignment
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqVideoObserverAlignmentDefault | 0 | Alineación predeterminada |
AoqVideoObserverAlignmentEven | 1 | Alineación de números pares |
AoqVideoObserverAlignment4 | 2 | Alineación de 4 bytes |
AoqVideoObserverAlignment8 | 3 | Alineación de 8 bytes |
AoqVideoObserverAlignment16 | 4 | Alineación de 16 bytes |
AoqVideoObserverConfig
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
format | AoqVideoPixelFormat | AoqVideoPixelFormatI420 | Formato de píxel esperado de los datos del callback |
alignment | AoqVideoObserverAlignment | AoqVideoObserverAlignmentDefault | Política de alineación de ancho |
mode | AoqVideoObserverMode | AoqVideoObserverModeReadOnly | Modo de devolución de llamada. ReadWrite solo es compatible con I420 / CVPixelBuffer. |
mirrorApplied | bool | false | Especifica si se deben reflejar los datos del callback |
| trackType | AoqTrackType | AoqTrackTypeVideo | Pista de video a observar. Admite solo Video y Screen. |
Tipos de captura de pantalla
AoqScreenCaptureConfig
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| isExternal | bool | false | Debe ser true en Linux. La aplicación captura la pantalla y suministra tramas sin procesar. |
| appGroup | const char* | nullptr | Solo para iOS. No se utiliza en esta plataforma. |
AoqClientEngine.h dentro del espacio de nombres AoqClientSdk. Todas las estructuras son tipos POD con valores predeterminados, por lo que obtiene los valores predeterminados de la tabla simplemente declarándolas. Consulte cada estructura para conocer la disponibilidad de campos y el alcance de la plataforma. AoqScreenCaptureConfig.appGroup permanece en la estructura pero solo se utiliza en iOS. sourceId y sourceType se excluyen mediante compilación condicional y no existen en la estructura en Linux.
AoqScreenCaptureStateCode
Enumeración de estado de captura de pantalla. El tipo está definido, pero el SDK actual no proporciona un callback de estado correspondiente.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqScreenCaptureNone | 0 | None |
| AoqScreenCaptureStarting | 1 | Iniciando |
| AoqScreenCaptureStarted | 2 | Iniciado |
| AoqScreenCaptureStopping | 3 | Deteniendo |
| AoqScreenCaptureStopped | 4 | Detenido |
| AoqScreenCaptureFail | 5 | Fallido |
AoqScreenCaptureState
| Campo | Tipo | Descripción |
|---|---|---|
| state | AoqScreenCaptureStateCode | Código de estado de captura de pantalla. |
| reason | int | Código de error de AoqErrorCode. 0 indica un estado normal. |