Este tema describe las API de Objective-C, las devoluciones de llamada y los tipos de datos del SDK de cliente AOQ para macOS.
AoqClientEngine e informa eventos asíncronos a través del protocolo AoqEngineDelegate.
Índice de API
Ciclo de vida del motor
| API | Descripción |
|---|---|
| createEngine | Crear una instancia del motor (singleton) |
| destroy | Destruir la instancia del motor |
| getVersion | Obtener la versión del SDK |
| 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 (micrófono) |
| stopAudioCapture | Cerrar el dispositivo de captura de audio |
| muteAudioCapture | Silenciar o reactivar la captura de audio |
| startAudioPlayer | Iniciar renderizado de audio (reproducción de audio remoto) |
| stopAudioPlayer | Detener la renderización de audio |
| pauseAudioPlayer | Pausar el renderizado de audio, con desvanecimiento opcional |
| resumeAudioPlayer | Reanudar el renderizado de audio, con aparición gradual opcional |
| interruptAudioPlayer | Interrumpir la sesión de audio actual |
Configuración de codificación de audio
| API | Descripción |
|---|---|
| setAudioEncoderConfig | Establecer parámetros de codificación de audio |
| setAudioDecoderConfig | Establecer parámetros de decodificación de audio |
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 |
Devoluciones de llamada de cuadros de audio
| API | Descripción |
|---|---|
| setAudioFrameObserver | Establecer el delegado de callback de fotogramas de audio |
| enableAudioFrameObserver | Habilitar o deshabilitar callbacks de tramas de audio en una etapa específica |
Indicación de volumen de audio local
| API | Descripción |
|---|---|
| enableLocalAudioVolumeIndication | Habilitar o deshabilitar la indicación de volumen de captura local |
Gestión de dispositivos de video
| API | Descripción |
|---|---|
| startVideoCapture | Abrir el dispositivo de captura de video (cámara) |
| stopVideoCapture | Cerrar el dispositivo de captura de video |
| setLocalView | Establecer o eliminar la ventana de renderizado de video local |
| setRemoteView | Establecer o eliminar la ventana de renderizado de video remoto |
Codificación 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 |
| pushExternalVideoCapturedFrame | Enviar tramas de video capturadas externamente |
| pushExternalVideoEncodedFrame | Enviar tramas de video codificadas externamente |
Captura de pantalla
| API | Descripción |
|---|---|
| getScreenSourceList | Obtener la lista de fuentes de captura de pantalla (solo escritorio Mac) |
| 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 |
Devoluciones de llamada de cuadros de video
| API | Descripción |
|---|---|
| setVideoFrameObserver | Establecer el delegado de callback de fotogramas de video |
| enableVideoFrameObserver | Habilitar o deshabilitar callbacks de tramas de video en una etapa específica |
Mensajes en tiempo real
| API | Descripción |
|---|---|
| sendDataMsg | Enviar un mensaje de datos en tiempo real |
AoqEngineDelegate
| 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 | Callback de cambio de ruta de salida de audio |
| 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 |
AoqAudioFrameDelegate
| API | Descripción |
|---|---|
| onCapturedAudioFrame | Se invoca cuando se captura un cuadro de audio sin procesar. El cuadro contiene datos PCM no procesados. |
| 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. |
| onPublishAudioFrame | Se invoca para un cuadro de audio antes de la publicación, inmediatamente antes de la codificación y la transmisión. |
| onPlaybackAudioFrame | Se invoca para un cuadro de audio remoto antes de la reproducción, después de la decodificación y la mezcla. |
AoqVideoFrameDelegate
| API | Descripción |
|---|---|
| onCapturedVideoFrame | Se llama cuando se captura un fotograma de video sin procesar, antes del preprocesamiento. trackType distingue entre pistas de Video y Screen. |
| onPreEncodeVideoFrame | Se invoca para un cuadro de video después del preprocesamiento y antes de la codificación. |
| onRemoteVideoFrame | Se invoca para un cuadro de video remoto después de la decodificación y antes de la renderización. |
Detalles de la API
Ciclo de vida del motor
createEngine:delegate:
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 |
|---|---|---|
|
| Configuración de creación del motor. Para más información, consulte |
|
| Delegado de devolución de llamada de eventos del motor. Para obtener más información, consulte |
destroy
Destruye la instancia del motor. Después de destruir el motor, debe llamar a createEngine:delegate: nuevamente antes de poder continuar usándolo.
getVersion
Obtiene la versión 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 |
|---|---|---|
|
| Configuración de autenticación de conexión. Para obtener más información, consulte |
disconnect
Desconecta del servidor.
Gestión de dispositivos de audio
startAudioCapture:
Abre el dispositivo de captura de audio (micrófono).
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Configuración de captura de audio. Para obtener más información, consulte |
stopAudioCapture
Cierra el dispositivo de captura de audio.
muteAudioCapture:
Silencia o reactiva la captura de audio.
Parámetros | Tipo | Descripción |
|---|---|---|
|
|
|
startAudioPlayer:
Inicia el renderizado de audio para reproducir audio remoto.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Configuración de reproducción de audio. Para obtener más información, consulte |
stopAudioPlayer
Detiene el renderizado de audio.
pauseAudioPlayer:
Pausa el renderizado de audio, con soporte para desvanecimiento de salida.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Duración del desvanecimiento de salida, en milisegundos. 0 indica pausa inmediata. |
resumeAudioPlayer:
Reanuda el renderizado de audio, con soporte para desvanecimiento de entrada.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Duración del desvanecimiento de entrada, en milisegundos. 0 indica reanudación inmediata. |
interruptAudioPlayer:fadeMs:
Interrumpe la sesión de audio actual y detiene el audio que se está reproduciendo.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Tipo de pista. Para más información, consulte |
|
| Duración del desvanecimiento de salida, en milisegundos. 0 indica interrupción inmediata. |
Configuración de codificación de audio
setAudioEncoderConfig:
Establece los parámetros de codificación de audio.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Configuración de códec de audio. Para más información, consulte |
setAudioDecoderConfig:
Establece los parámetros de decodificación de audio.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Configuración de códec de audio. Para más información, consulte |
Reproducción de archivos de audio
startAudioFile:config:
Inicia la reproducción de un archivo de audio local en el flujo de publicación.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| ID del archivo de audio. La capa de negocio debe garantizar que sea único. |
|
| Configuración de mezcla de archivos de audio. Para obtener más información, consulte |
stopAudioFile:
Detiene la reproducción del archivo de audio.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| ID del archivo de audio |
pauseAudioFile:
Pausa la reproducción del archivo de audio.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| ID del archivo de audio |
resumeAudioFile:
Reanuda la reproducción del archivo de audio.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| ID del archivo de audio |
getAudioFileDuration:
Obtiene la duración total del archivo de audio.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| ID del archivo de audio |
getAudioFileCurrentPosition:
Obtiene la posición de reproducción actual del archivo de audio.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| ID del archivo de audio |
setAudioFilePositionMillis:positionMillis:
Establece la posición de reproducción del archivo de audio (búsqueda).
Parámetros | Tipo | Descripción |
|---|---|---|
|
| ID del archivo de audio |
|
| Posición de reproducción, en milisegundos |
setAudioFileVolume:type:volume:
Establece el volumen del archivo de audio.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| ID del archivo de audio |
|
| Dirección del flujo de audio. Para obtener más información, consulte |
|
| Valor de volumen. Valores válidos: 0 a 100. |
getAudioFileVolume:type:
Obtiene el volumen actual del archivo de audio.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| ID del archivo de audio |
|
| Dirección del flujo de audio. Para obtener más información, consulte |
Secuencias de audio externas
addAudioExternalStream:config:
Añade un flujo de audio externo.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| ID de flujo de audio externo. La capa de negocio debe garantizar que sea único. |
|
| Configuración de flujo de audio externo. Para obtener más información, consulte |
pushAudioExternalStreamData:data:
Proporciona datos PCM de audio externos. Si se devuelve AoqECAudioExternalBufferFull (110), el búfer del SDK está lleno y le recomendamos esperar aproximadamente 20 ms y luego enviar el marco de datos actual nuevamente.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| ID de flujo de audio externo |
|
| Datos de audio externos sin procesar. Para más información, consulte |
AoqECAudioExternalBufferFull.setAudioExternalStreamVolume:type:volume:
Establece el volumen de un flujo de audio externo.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| ID de flujo de audio externo |
|
| Tipo de flujo de audio externo. Para obtener más información, consulte |
|
| Valor de volumen. Valores válidos: 0 a 100. |
getAudioExternalStreamVolume:type:
Obtiene el volumen de un flujo de audio externo.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| ID de flujo de audio externo |
|
| Tipo de flujo de audio externo. Para obtener más información, consulte |
clearAudioExternalStreamBuffer:fadeoutMs:
Borra el búfer de un flujo de audio externo.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| ID de flujo de audio externo |
|
| Duración del desvanecimiento. -1 utiliza el desvanecimiento predeterminado del SDK, 0 borra todo sin desvanecimiento, y un valor mayor que 0 mantiene un desvanecimiento del número especificado de milisegundos. |
removeAudioExternalStream:
Elimina un flujo de audio externo.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| ID de flujo de audio externo |
Devoluciones de llamada de cuadros de audio
setAudioFrameObserver:
Establece el delegado de devolución de llamada de datos de fotogramas de audio. Pase nil para detener las devoluciones de llamada. Después de establecer el delegado, llame a enableAudioFrameObserver:audioSource:config: para habilitar la devolución de llamada para la fuente de datos correspondiente.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Delegado de devolución de llamada de fotogramas de audio. Para obtener más información, consulte |
enableAudioFrameObserver:audioSource:config:
Habilita o deshabilita el callback de fotogramas de audio en una posición especificada.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Especifica si se permiten los callbacks de datos |
|
| Tipo de fuente de datos de audio sin procesar. Para obtener más información, consulte |
|
| Configuración de parámetros de devolución de llamada. Para obtener más información, consulte |
Indicación de volumen de audio local
enableLocalAudioVolumeIndication:
Habilita o deshabilita la indicación de volumen de captura local. Una vez habilitada, la devolución de llamada onLocalAudioVolumeIndication: se activa en el intervalo especificado por config.interval. Si config.interval <= 0, la devolución de llamada se deshabilita. Debe llamar a este método después de startAudioCapture: para obtener datos de volumen.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Configuración de indicación de volumen. Para obtener más información, consulte |
Gestión de dispositivos de video
startVideoCapture:
Abre el dispositivo de captura de video (cámara). Cuando se configura isExternal=YES, la cámara no se abre y los fotogramas son proporcionados por pushExternalVideoCapturedFrame:frame:.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Configuración de captura de video. Para obtener más información, consulte |
stopVideoCapture
Cierra el dispositivo de captura de video.
setLocalView:canvas:
Establece o elimina la ventana de renderizado de video local. Si pasa nil para canvas o canvas.view es nil, se elimina el vínculo.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Pista de video. Pase |
|
| Lienzo de renderizado. Para obtener más información, consulte |
setRemoteView:canvas:
Establece o elimina la ventana de renderizado de video remoto. Si pasa nil para canvas o canvas.view es nil, se elimina el vínculo.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Pista de video. Pase |
|
| Lienzo de renderizado. Para obtener más información, consulte |
Codificación de video y entrada externa
setVideoEncoderConfig:
Establece los parámetros de codificación de video y los enruta basándose en config.trackType.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Configuración de códec de video. Para más información, consulte |
setVideoDecoderConfig:
Establece los parámetros de decodificación de video (una propuesta de códec en el lado de suscripción, que debe llamarse antes de connect:). La llamada se enruta según config.trackType.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Configuración de códec de video. Para más información, consulte |
pushExternalVideoCapturedFrame:frame:
Envía un fotograma de video externo. Primero debe llamar a startVideoCapture: y configurar isExternal=YES. Si no se inicia la captura de video externa o el formato no es compatible, se devuelve AoqECParamInvalid.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Destino de enrutamiento. Pase |
|
| Datos de fotograma de video externo. Para más información, consulte |
AoqECVideoExternalBufferFull (210) indica que el búfer está lleno; un valor menor que 0 indica otro error.
pushExternalVideoEncodedFrame:frame:
Envía un fotograma de video codificado externamente directamente, omitiendo el codificador. Primero debe llamar a setVideoEncoderConfig: y configurar isExternal=YES. Actualmente solo se admite JPEG.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Destino de enrutamiento. Pase |
|
| Datos de fotograma codificados externamente. Para obtener más información, consulte |
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.
Llame a getScreenSourceList para enumerar pantallas y ventanas, luego pase los valores seleccionados de sourceId y sourceType en la configuración de captura.
Para cuadros sin procesar externos, establezca isExternal=YES y proporcione cuadros de Pantalla sin procesar a través de pushExternalVideoCapturedFrame para la codificación del SDK. Para cuadros codificados externamente, configure la pista de Pantalla para codificación externa con setVideoEncoderConfig, luego llame a pushExternalVideoEncodedFrame.
getScreenSourceList
Control de transmisión de flujo de medios
enableSendMediaStream:enable:
Habilita o deshabilita el envío de un flujo de medios local. Le recomendamos deshabilitar el envío después de la inicialización y habilitarlo solo después de que la devolución de llamada onConnectionStatusChange: informe AoqConnectionStatusConnected.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Destino de enrutamiento. Se admiten |
|
|
|
Devoluciones de llamada de cuadros de video
setVideoFrameObserver:
Establece el delegado de devolución de llamada de datos de fotogramas de video. Pase nil para detener las devoluciones de llamada. Después de establecer el delegado, llame a enableVideoFrameObserver:videoSource:config: para habilitar la devolución de llamada para la fuente de datos correspondiente.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Delegado de devolución de llamada de fotogramas de video. Para obtener más información, consulte |
enableVideoFrameObserver:videoSource:config:
Habilita o deshabilita el callback de fotogramas de video en una posición especificada.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Especifica si se habilitan los callbacks de datos en una posición |
|
| Fuente de datos de la devolución de llamada de fotogramas de video (posición en la canalización). Para obtener más información, consulte |
|
| Configuración de parámetros de devolución de llamada. Para obtener más información, consulte |
Mensajes en tiempo real
sendDataMsg:
Envía un mensaje de datos en tiempo real.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Contenido del mensaje. Para más información, consulte |
AoqEngineDelegate
AoqEngineDelegate es el punto de entrada unificado para todas las notificaciones de eventos asíncronos del SDK. Se pasa cuando llama a createEngine:delegate:. Todos los métodos de devolución de llamada son @required. Transiciones de estado: Disconnected → Connecting → Connected/Failed → Disconnected.
onError:message:
Devolución de llamada de error del motor.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Código de error. Para más información, consulte |
|
| Descripción del error |
onWarning:message:
Devolución de llamada de advertencia del motor.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Código de advertencia. Para más información, consulte |
|
| Descripción de la advertencia |
onConnectionStatusChange:
Callback de cambio de estado de conexión del motor.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Estado de conexión. Para más información, consulte |
onStats:
Devolución de llamada de estadísticas del motor.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Datos estadísticos. Para más información, consulte |
onAudioDeviceStateChanged:
Devolución de llamada para cambios en el estado de la operación de captura y reproducción del dispositivo de audio.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Estado del dispositivo de audio. Para más información, consulte |
onAudioDeviceRouteChanged:
Devolución de llamada de cambio de ruta de salida de audio.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Tipo de ruta. Para los valores válidos, consulte |
onAudioFileState:
Callback para el estado de reproducción de archivos de audio.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Estado de reproducción del archivo. Para más información, consulte |
onLocalAudioVolumeIndication:
Devolución de llamada de indicación de volumen de captura local. Para habilitarla, llame a enableLocalAudioVolumeIndication:.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Información de volumen local. Para más información, consulte |
onVideoDeviceStateChanged:
Devolución de llamada para cambios en el estado de la operación de captura del dispositivo de video.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Estado del dispositivo de video. Para más información, consulte |
onDataMsg:
Devolución de llamada para un mensaje de datos en tiempo real recibido.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Mensaje de datos. Para más información, consulte |
AoqAudioFrameDelegate
Protocolo para devoluciones de llamada de datos de fotogramas de audio. Todos los métodos son @optional. No realice operaciones que consuman mucho tiempo en las devoluciones de llamada. De lo contrario, pueden producirse anomalías en el audio.
onCapturedAudioFrame:
Devolución de llamada para datos capturados sin procesar. Para habilitarla, llame a enableAudioFrameObserver: y establezca audioSource = AoqAudioSourceCaptured. Puede configurar la tasa de muestreo y el número de canales, y se admite el modo de lectura y escritura.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Datos de audio capturados sin procesar. Para más información, consulte |
onProcessCapturedAudioFrame:
Devolución de llamada para datos después del procesamiento 3A. Para habilitarla, llame a enableAudioFrameObserver: y establezca audioSource = AoqAudioSourceProcessCaptured. Puede configurar la tasa de muestreo y el número de canales, y se admite el modo de lectura y escritura.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Datos de audio sin procesar después del procesamiento 3A. Para obtener más información, consulte |
onPublishAudioFrame:frame:
Devolución de llamada para datos de publicación. Para habilitarla, llame a enableAudioFrameObserver: y establezca audioSource = AoqAudioSourcePublish. Puede configurar la tasa de muestreo y el número de canales, y solo se admite el modo de solo lectura.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Tipo de pista. Para más información, consulte |
|
| Datos de audio sin procesar que se publicarán. Para obtener más información, consulte |
onPlaybackAudioFrame:
Devolución de llamada para datos de reproducción. Para habilitarla, llame a enableAudioFrameObserver: y establezca audioSource = AoqAudioSourcePlayback. Puede configurar la tasa de muestreo y el número de canales, y se admite el modo de lectura y escritura.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Datos de audio sin procesar para reproducción. Para obtener más información, consulte |
AoqVideoFrameDelegate
Protocolo para devoluciones de llamada de datos de fotogramas de video. Todos los métodos son @optional. No realice operaciones que consuman mucho tiempo en las devoluciones de llamada. De lo contrario, puede producirse tartamudeo en el video. Un valor de retorno de YES indica que los datos se han modificado y deben escribirse de nuevo en el SDK. La reescritura solo surte efecto para I420 y CVPixelBuffer. Un valor de retorno de NO indica que es de solo lectura. Los datos en frame son válidos solo durante la devolución de llamada. Para usarlos de forma asíncrona, cópielos usted mismo.
onCapturedVideoFrame:
Devolución de llamada para datos locales sin procesar después de la captura, antes del preprocesamiento. Para habilitarla, llame a enableVideoFrameObserver: y establezca videoSource = AoqVideoSourceCaptured.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Datos de fotograma de video capturado. Para más información, consulte |
| trackType | AoqTrackType | Tipo de pista de video: Video o Pantalla. |
YES indica que los datos se han modificado y deben escribirse de nuevo en el SDK; NO indica que es de solo lectura.
onPreEncodeVideoFrame:frame:
Devolución de llamada para datos locales sin procesar antes de la codificación, después del preprocesamiento. Para habilitarla, llame a enableVideoFrameObserver: y establezca videoSource = AoqVideoSourcePreEncode.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Tipo de pista de video. Para más información, consulte |
|
| Datos de fotograma de video antes de la codificación. Para obtener más información, consulte |
YES indica que los datos se han modificado y deben escribirse de nuevo en el SDK; NO indica que es de solo lectura.
onRemoteVideoFrame:frame:
Devolución de llamada para datos remotos sin procesar después de la decodificación y antes del renderizado. Para habilitarla, llame a enableVideoFrameObserver: y establezca videoSource = AoqVideoSourceRemote.
Parámetros | Tipo | Descripción |
|---|---|---|
|
| Tipo de pista de video. Para más información, consulte |
|
| Datos de fotograma de video remoto. Para más información, consulte |
YES indica que los datos se han modificado y deben escribirse de nuevo en el SDK; NO indica que es de solo lectura.
Tipos de datos y enumeraciones
Tipos comunes
AoqCreateConfig
Configuración de creación del motor.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
|
|
| Directorio de trabajo del SDK |
|
|
| Especifica si se habilita el volcado de datos de audio sin procesar (para depuración) |
|
|
| Parámetros extendidos |
| maxEncodedVideoFrameBytes | NSInteger | 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 | NO | 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. |
AoqConnectConfig
Configuración para conectarse al servidor de retransmisión.
Campo | Tipo | Descripción |
|---|---|---|
|
| Token de autenticación de conexión |
|
| ID de sesión |
|
| Huella digital del certificado del servidor |
|
| Lista de puntos de acceso de retransmisión |
|
| ID hash del espacio de trabajo |
|
| Matriz de atributos de pista de publicación local |
|
| Matriz de atributos de pista de suscripción local |
AoqRelayEndpoint
Un punto de acceso de retransmisión.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
|
|
| Índice de ruta |
|
|
| Dirección del servidor (nombre de dominio o dirección IP) |
|
|
| Puerto del servidor |
| tcpPort | NSInteger | 0 | Puerto de reserva TCP. Un valor de 0 utiliza el puerto predeterminado del SDK, 443. |
AoqTrackParam
El atributo de la pista.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
|
|
| Tipo de pista |
|
|
| Modo de transmisión o sin transmisión. Efectivo solo para el enlace descendente de audio. |
AoqDataMsg
Estructura de datos de un mensaje en tiempo real.
Campo | Tipo | Descripción |
|---|---|---|
|
| Contenido del mensaje. Apunta a memoria mantenida por el invocador. |
Tipos de estadísticas
AoqStats
Estadísticas del motor.
Campo | Tipo | Descripción |
|---|---|---|
|
| Arreglo de estadísticas de publicación para audio |
|
| Arreglo de estadísticas de publicación para video |
|
| Arreglo de estadísticas de publicación para mensajes de datos |
|
| Arreglo de estadísticas de suscripción para audio |
|
| Arreglo de estadísticas de suscripción para video |
|
| Arreglo de estadísticas de suscripción para mensajes de datos |
|
| Estadísticas de red |
AoqNetworkStats
Estadísticas de red.
Campo | Tipo | Descripción |
|---|---|---|
|
| Tasa de bits de envío, en bit/s |
|
| Bytes enviados acumulados |
|
| Tasa de bits de recepción, en bit/s |
|
| Bytes acumulados recibidos |
|
| Tasa de pérdida de paquetes, de 0 a 100 |
|
| Latencia de ida y vuelta, en ms |
AoqAudioPublishStats
Estadísticas de publicación de audio.
Campo | Tipo | Descripción |
|---|---|---|
|
| Tipo de pista |
|
| Tasa de bits, en bit/s |
|
| Bytes acumulados |
|
| Volumen de codificación del flujo de publicación |
AoqVideoPublishStats
Estadísticas de publicación de video.
Campo | Tipo | Descripción |
|---|---|---|
|
| Tipo de pista |
|
| Tasa de bits, en bit/s |
|
| Bytes acumulados |
|
| Tasa de cuadros de codificación |
AoqDataMsgPublishStats
Estadísticas de publicación para mensajes de datos.
Campo | Tipo | Descripción |
|---|---|---|
|
| Tipo de pista |
|
| Tasa de bits, en bit/s |
|
| Bytes acumulados |
AoqAudioSubscribeStats
Estadísticas de suscripción de audio.
Campo | Tipo | Descripción |
|---|---|---|
|
| Tipo de pista |
|
| Tasa de bits, en bit/s |
|
| Bytes acumulados |
|
| Volumen de reproducción |
AoqVideoSubscribeStats
Estadísticas de suscripción de video.
Campo | Tipo | Descripción |
|---|---|---|
|
| Tipo de pista |
|
| Tasa de bits, en bit/s |
|
| Bytes acumulados |
|
| Tasa de fotogramas de decodificación |
|
| Tasa de fotogramas de renderizado |
AoqDataMsgSubscribeStats
Estadísticas de suscripción para mensajes de datos.
Campo | Tipo | Descripción |
|---|---|---|
|
| Tipo de pista |
|
| Tasa de bits, en bit/s |
|
| Bytes acumulados |
Enumeraciones
AoqErrorCode
Enumeración de códigos de error.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Éxito |
| 1 | Parámetro no válido |
| 2 | Estado no válido |
| 3 | La API no es compatible |
| 100 | Error genérico de audio |
| 110 | El búfer de audio externo está lleno |
| 120 | Error genérico de dispositivo de audio |
| 121 | Permiso de grabación no concedido |
| 122 | El dispositivo de grabación está en uso |
| 123 | Iniciar grabación en segundo plano |
| 124 | Error al iniciar la grabación |
| 125 | El dispositivo de reproducción está en uso |
| 126 | Iniciar reproducción en segundo plano |
| 127 | Error al iniciar la reproducción |
| 200 | Error genérico de video |
| 210 | El búfer de video externo está lleno |
| 211 | La captura de video externa no está habilitada |
| 212 | La codificación de video externa no está habilitada |
| 220 | Error genérico de dispositivo de video |
| 221 | Error al abrir la cámara |
| 222 | Permiso de cámara no concedido |
| 223 | La cámara está en uso |
| 224 | Error de ejecución de la cámara |
| 230 | Error genérico de códec de video |
| 231 | Error al inicializar el codificador |
| 240 | Error genérico de renderizado de video |
| 241 | Error al crear la vista de renderizado |
| 242 | Error de dibujo de renderizado |
AoqWarningCode
Enumeración de códigos de advertencia.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Sin advertencia |
| 100 | Advertencia genérica de audio |
| 101 | Acople de audio detectado |
| 120 | Advertencia genérica de dispositivo de audio |
| 121 | Error de enumeración de micrófono |
| 122 | Se agotó el tiempo de inicio del micrófono |
| 123 | Error de grabación |
| 124 | Error de enumeración de altavoces |
| 125 | Se agotó el tiempo de inicio del altavoz |
| 126 | Error de reproducción |
| 200 | Advertencia genérica de video |
| 201 | Error de enumeración de cámaras |
| 202 | Codificador de video cambiado |
| 203 | Renderizado de video degradado |
AoqTrackType
Tipo de pista.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Pista de audio |
| 1 | Pista de video |
| 2 | Pista de mensajes de datos |
| AoqTrackTypeScreen | 3 | Pista de uso compartido de pantalla. Admite enlace ascendente. |
AoqEncoderType
Tipo de codificador.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Formato desconocido |
| 1 | Audio PCM |
| 2 | Audio Opus |
| 3 | Video H.264 |
| 4 | Video JPEG |
| 5 | Texto del mensaje |
AoqTrackMode
Modo de transmisión o sin transmisión. Efectivo solo para el enlace descendente de audio.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Segmentado: los datos se empaquetan y entregan en segmentos semánticos, como una oración. |
| 1 | Transmisión: los datos se entregan de forma continua. |
AoqConnectionStatus
Estado de conexión del motor.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Desconectado |
| 1 | Conectando |
| 2 | Conectado |
| 3 | Error de conexión |
Tipos de audio
AoqAudioCaptureConfig
Configuración de captura de audio.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
|
|
| Especifica si se debe utilizar captura externa |
|
|
| Número de canales de captura de audio. Se admiten 1 y 2. |
AoqAudioPlaybackConfig
Configuración de reproducción de audio.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
|
|
| Especifica si se debe utilizar reproducción externa |
|
|
| Número de canales de reproducción de audio. Se admiten 1 y 2. |
AoqAudioCodecConfig
Configuración del códec de audio.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
|
|
| Tipo de pista |
|
|
| Formato de códec |
|
|
| Tasa de muestreo, en Hz |
|
|
| Número de canales |
|
|
| Tasa de bits, en bit/s |
AoqAudioDeviceStateCode
Código de estado del dispositivo de audio.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Sin estado |
| 1 | Iniciando captura |
| 2 | Captura iniciada |
| 3 | Deteniendo captura |
| 4 | Captura detenida |
| 5 | Error en la captura |
| 6 | Iniciando reproducción |
| 7 | Reproducción iniciada |
| 8 | Deteniendo reproducción |
| 9 | Reproducción detenida |
| 10 | Error en la reproducción |
AoqAudioDeviceState
Estado del dispositivo de audio.
Campo | Tipo | Descripción |
|---|---|---|
|
| Código de estado |
|
| Código de error ( |
AoqAudioDeviceRouteType
Tipo de ruta del dispositivo de audio.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Valor predeterminado |
| 1 | Auriculares |
| 2 | Receiver |
| 3 | Auriculares sin micrófono |
| 4 | Altavoz integrado |
| 5 | USB |
| 6 | Bluetooth |
| 7 | Bluetooth A2DP |
Tipos de archivos de audio
AoqAudioFileMixConfig
Configuración para reproducir un archivo de audio en el flujo de publicación.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
|
| - | Nombre del archivo (incluida la ruta). Obligatorio. |
|
|
| Número de bucles. -1 indica un bucle ilimitado. |
|
|
| Posición de inicio de reproducción, en ms |
|
|
| Volumen de publicación. Valores válidos: de 0 a 100. |
|
|
| Volumen de reproducción. Valores válidos: de 0 a 100. |
AoqAudioFileStateCode
Código de estado del archivo de audio.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Sin estado |
| 1 | Iniciado |
| 2 | Detenido |
| 3 | En pausa |
| 4 | Reanudado |
| 5 | Reproducción completada |
| 6 | Buffering |
| 7 | Almacenamiento en búfer finalizado |
| 8 | Error en la reproducción |
AoqAudioFileErrorCode
Código de error de reproducción de archivo de audio.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Sin error |
| 1 | Error al abrir el archivo |
| 2 | Error al decodificar el archivo |
AoqAudioFileState
Estado del archivo de audio.
Campo | Tipo | Descripción |
|---|---|---|
|
| ID de archivo |
|
| Código de estado |
|
| Código de error |
Tipos de flujo de audio externo y volumen
AoqAudioStreamDirection
Dirección de un flujo de audio externo.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Publicación de audio |
| 1 | Audio de reproducción |
AoqAudioExternalStreamToggle
Estado de conmutación del flujo de audio externo.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Recuperado |
| 1 | En pausa |
AoqAudioExternalStreamConfig
Configuración de flujo de audio externo.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
|
|
| Tipo de pista de audio |
|
|
| Formato de flujo de audio. Se admite PCM. |
|
|
| Número de canales |
|
|
| Tasa de muestreo, en Hz |
|
|
| Volumen de reproducción. Valores válidos: de 0 a 100. |
|
|
| Volumen de publicación. Valores válidos: de 0 a 100. |
|
|
| Duración máxima del búfer, en ms |
|
|
| Especifica si se debe aplicar el procesamiento 3A al PCM de entrada |
AoqAudioFrameData
Datos de audio externos.
Campo | Tipo | Descripción |
|---|---|---|
|
| Puntero a los datos PCM de audio sin procesar |
|
| Número de bytes de los datos PCM |
|
| Número de muestras (por canal) |
|
| Bytes por muestra |
|
| Número de canales |
|
| Número de muestras por segundo |
|
| Ronda de entrada PCM |
|
| Marca de tiempo |
|
| Válido en callbacks de datos. |
AoqAudioSource
Fuente de datos del callback de fotogramas de audio.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Datos de audio capturados |
| 1 | Datos de audio después del procesamiento 3A |
| 2 | Datos de audio a publicar (requiere una conexión exitosa) |
| 3 | Datos de audio a reproducir |
AoqAudioObserverMode
Modo de devolución de llamada de fotograma de audio.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Solo lectura |
| 1 | Lectura-escritura |
AoqAudioObserverConfig
Configuración del callback de tramas de audio.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
|
|
| Frecuencia de muestreo del audio de devolución de llamada |
|
|
| Número de canales de audio en la devolución de llamada |
|
|
| Modo de lectura y escritura |
AoqAudioVolumeIndicationConfig
Configuración de indicación de volumen local.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| reportSpeech | BOOL | NO | Si se debe detectar voz. |
| interval | NSInteger | 0 | Intervalo 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. |
| smooth | NSInteger | 3 | Factor de suavizado, de 0 a 10. Los valores más altos producen resultados más suaves. |
AoqAudioVolume
Información de volumen local.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| isSpeech | BOOL | NO | Si se detecta voz. |
| volume | NSInteger | 0 | Volumen instantáneo suavizado, de 0 a 255. |
Tipos de video
AoqVideoCaptureConfig
Configuración de captura de video.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
|
|
| Ancho de captura, en píxeles. Este parámetro no tiene efecto cuando |
|
|
| Alto de captura, en píxeles. Este parámetro no tiene efecto cuando |
|
|
| Tasa de fotogramas de captura. Este parámetro no tiene efecto cuando |
|
|
| Especifica si se utiliza captura externa. Si es |
AoqVideoCanvas
Estructura de datos para el renderizado de video.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
|
|
| Vista de visualización. Pase nil para eliminar el enlace de renderizado. |
|
|
| Modo de renderización |
view dure más que el período durante el cual se establece mediante setLocalView: / setRemoteView:.
AoqRenderMode
Modo de visualización de renderizado.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Modo automático |
| 1 | Modo de estiramiento para llenar. Cuando las relaciones de aspecto no coinciden, la imagen se estira a la relación objetivo y se distorsiona. |
| 2 | Modo letterbox. Cuando las relaciones de aspecto no coinciden, se añaden barras negras en la parte superior e inferior o en los lados izquierdo y derecho. |
| 3 | Modo de recorte. Cuando las relaciones de aspecto no coinciden, se recorta el ancho o el alto y se pierde parte de la imagen. |
AoqRenderView
El control de vista de renderizado, que hereda de NSView y puede usarse como AoqVideoCanvas.view.
Atributo | Tipo | Descripción |
|---|---|---|
|
| Vista de visualización utilizada internamente por el motor |
|
| Ancho de renderizado |
|
| Alto de renderizado |
|
| Especifica si se habilita el renderizado Metal |
|
| Delegado de eventos de la vista de renderizado |
AoqRenderViewDelegate
El protocolo delegado de eventos de la vista de renderizado.
Callback | Descripción |
|---|---|
| Callback para cambios en el tamaño de la vista de renderizado |
AoqVideoPixelFormat
Formato de píxel de video.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Formato desconocido |
| 1 | I420 |
| 2 | NV12 |
| 3 | NV21 |
| 4 | BGRA |
| 5 | RGBA |
| 6 | Ruta de copia cero. Establezca el campo |
AoqVideoFrame
Datos de video externos.
Campo | Tipo | Descripción |
|---|---|---|
|
| Formato de píxel |
|
| Ancho, en píxeles |
|
| Alto, en píxeles |
|
| Datos en formato empaquetado (NV12/NV21/BGRA/RGBA) |
|
| Datos de los tres planos I420 |
|
| Stride de los tres planos I420 |
|
| Copia cero, que se utiliza cuando |
|
| Marca de tiempo, en ms. Si es 0, el SDK la completa con el reloj local. |
AoqVideoCodecType
El tipo de códec del fotograma codificado externamente.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | 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 | Descripción |
|---|---|---|
|
| Formato de códec |
|
| Datos codificados |
|
| Ancho, en píxeles |
|
| Alto, en píxeles |
|
| Marca de tiempo, en ms. Si es 0, el SDK la completa con el reloj local. |
AoqVideoCodecConfig
Parámetros de códec de video, compartidos por codificación y decodificación. 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, mientras que los demás campos se utilizan solo para la codificación.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
|
|
| Modo de codificación externa. Cuando es |
|
|
| Tipo de pista |
|
|
| Formato de códec |
|
|
| Ancho de resolución |
|
|
| Alto de resolución |
|
|
| Tasa de fotogramas |
|
|
| Tasa de bits inicial, en bit/s |
|
|
| Tasa de bits mínima, en bit/s |
|
|
| Intervalo de fotogramas clave, en segundos |
|
|
| Modo espejo |
|
|
| Modo de orientación |
AoqMirrorMode
Modo espejo.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Deshabilitar espejo |
| 1 | Habilitar espejo |
AoqOrientationMode
Modo de orientación.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Automático |
| 1 | Vertical |
| 2 | Horizontal |
AoqVideoDeviceStateCode
Código de estado del dispositivo de video.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Sin estado |
| 1 | Iniciando cámara |
| 2 | Cámara iniciada |
| 3 | Deteniendo cámara |
| 4 | Cámara detenida |
| 5 | Error al iniciar la cámara |
AoqVideoDeviceState
Estado del dispositivo de video.
Campo | Tipo | Descripción |
|---|---|---|
|
| Código de estado |
|
| Código de error ( |
AoqVideoSource
Fuente de datos del callback de fotogramas de video (posición en la canalización).
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Datos de video capturados antes del preprocesamiento |
| 1 | Datos de video antes de la codificación, después del preprocesamiento |
| 2 | Datos de video remoto después de la decodificación y antes de la renderización |
AoqVideoObserverMode
Modo de devolución de llamada de fotograma de video.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Solo lectura |
| 1 | Lectura-escritura |
AoqVideoObserverAlignment
Método de alineación de ancho para la salida de video.
Valor de enumeración | Valor | Descripción |
|---|---|---|
| 0 | Valor predeterminado |
| 1 | Alineación de números pares |
| 2 | Alineación de 4 bytes |
| 3 | Alineación de 8 bytes |
| 4 | Alineación de 16 bytes |
AoqVideoObserverConfig
Configuración del callback de tramas de video.
Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
|
|
| Formato de píxel esperado de los datos del callback |
|
|
| Política de alineación de ancho |
|
|
| Modo de lectura-escritura. ReadWrite solo es compatible con I420 / CVPixelBuffer. |
|
|
| 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
AoqScreenShareSourceType
| Valor | Número | Descripción |
|---|---|---|
| AoqScreenShareSourceTypeDesktop | 0 | Escritorio completo |
| AoqScreenShareSourceTypeWindow | 1 | Una ventana específica |
AoqScreenSourceInfo
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| sourceType | AoqScreenShareSourceType | Escritorio | Tipo de fuente |
| sourceId | int64_t | 0 | ID de fuente |
| sourceName | NSString * | — | Nombre de la fuente |
| sourceIsSelf | BOOL | — | Si la ventana pertenece al proceso actual |
AoqScreenSourceList
| Campo | Tipo | Descripción |
|---|---|---|
| sourceList | NSArray<AoqScreenSourceInfo *> * | Matriz de fuentes de pantalla |
AoqScreenCaptureConfig
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| isExternal | BOOL | NO | Si la aplicación suministra tramas de pantalla sin procesar. |
| sourceId | int64_t | 0 | ID de fuente de pantalla. |
| sourceType | AoqScreenShareSourceType | AoqScreenShareSourceTypeWindow | Tipo de fuente de pantalla. |