Referencia de API del SDK cliente AOQ para iOS, que abarca el ciclo de vida del motor, gestión de dispositivos de audio/video, configuración de códecs, control de flujos multimedia, reproducción de archivos de audio, flujos de audio externos, mensajería en tiempo real, devoluciones de llamada de cuadros, protocolos de delegado, así como tipos de datos y enumeraciones.
Í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 |
| enableSpeakerphone | Cambiar la salida de audio entre el altavoz y el auricular |
| isSpeakerphoneEnabled | Verificar si la salida de audio usa el altavoz |
| setAudioSessionRestriction | Establecer permisos de control de AVAudioSession (solo iOS) |
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 |
| switchCamera | Cambiar entre cámaras frontal y trasera |
| 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 |
|---|---|
| startScreenCapture | Iniciar captura de pantalla (Broadcast Upload Extension) |
| 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 |
Callbacks de 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 |
| onAudioDeviceInterrupted | Callback de interrupción del dispositivo 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 |
| onScreenCaptureStateChanged | Callback de cambio de estado de captura de pantalla (@optional) |
Callbacks de 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. |
Callbacks de AoqVideoFrameDelegate
| API | Descripción |
|---|---|
| onCapturedVideoFrame | Se invoca cuando se captura un cuadro de video sin procesar, antes del preprocesamiento. |
| 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 un singleton global; las llamadas repetidas devuelven la instancia existente.
| Parámetro | Tipo | Descripción |
|---|---|---|
| config | AoqCreateConfig * | Configuración de creación del motor |
| delegate | id<AoqEngineDelegate> | Delegado de eventos del motor |
destroy
Destruye la instancia del motor y libera todos los recursos. Llame a createEngine: nuevamente antes de usar el SDK después de la destrucción.
getVersion
Obtiene la versión actual del SDK. Se puede llamar antes de createEngine:.
connect:
Se conecta al servidor de Relay. AppServer envía los parámetros de conexión al cliente. Esta llamada regresa de inmediato. El resultado real de la conexión se informa mediante la función de callback onConnectionStatusChange:.
/api/v1/allocate. Para un modelo específico, consulte Conexión mediante AOQ de Qwen-Omni-Realtime, Conexión mediante AOQ de Qwen-Audio-Realtime o Conexión mediante AOQ de Qwen-LiveTranslate-Realtime.| Parámetro | Tipo | Descripción |
|---|---|---|
| config | AoqConnectConfig * | Configuración de conexión, incluyendo Token, SID, puntos finales Relay y pistas de publicación/suscripción |
disconnect
Se desconecta del servidor y libera recursos de conexión. Retorna inmediatamente. El resultado de la desconexión se notifica a través de onConnectionStatusChange:.
Gestión de dispositivos de audio
startAudioCapture:
Abre el dispositivo de captura de audio (micrófono) y comienza a capturar audio local. Para entrada de audio externa (pushAudioExternalStreamData:data:), establezca isExternal en YES. En este modo, el micrófono no se abre.
| Parámetro | Tipo | Descripción |
|---|---|---|
| config | AoqAudioCaptureConfig * | Configuración de captura de audio |
stopAudioCapture
Cierra el dispositivo de captura de audio y detiene la captura de audio local.
muteAudioCapture:
Silencia o reactiva la captura de audio. A diferencia de stopAudioCapture, silenciar mantiene la captura activa pero envía cuadros silenciosos.
| Parámetro | Tipo | Descripción |
|---|---|---|
| mute | BOOL | YES silencia la captura; NO la reactiva. |
startAudioPlayer:
Inicia el renderizado de audio y reproduce audio remoto a través del altavoz o auricular. Para renderizado externo (reproducir PCM usted mismo), establezca isExternal en YES.
| Parámetro | Tipo | Descripción |
|---|---|---|
| config | AoqAudioPlaybackConfig * | Configuración de reproducción de audio |
stopAudioPlayer
Detiene el renderizado de audio y cierra el dispositivo de reproducción.
pauseAudioPlayer:
Pausa la renderización de audio con un fundido de salida opcional. Los datos de audio remoto continúan llegando mientras está en pausa, pero no se reproducen.
| Parámetro | Tipo | Descripción |
|---|---|---|
| fadeMs | NSInteger | Duración del desvanecimiento de salida en milisegundos. 0 pausa la reproducción inmediatamente. |
resumeAudioPlayer:
Reanuda el renderizado de audio con fundido de entrada opcional. Llame a este método después de pauseAudioPlayer:.
| Parámetro | Tipo | Descripción |
|---|---|---|
| fadeMs | NSInteger | Duración del desvanecimiento de entrada en milisegundos. 0 reanuda la reproducción inmediatamente. |
interruptAudioPlayer:fadeMs:
Interrumpe la conversación de audio actual y borra el búfer de reproducción. Esto se usa comúnmente cuando un usuario interrumpe el habla de la IA en una conversación.
| Parámetro | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Tipo de pista a interrumpir |
| fadeMs | NSInteger | Duración del desvanecimiento de salida en milisegundos. 0 interrumpe la reproducción inmediatamente. |
enableSpeakerphone:
Cambia la salida de audio al altavoz o al auricular. Solo surte efecto después de startAudioPlayer:.
| Parámetro | Tipo | Descripción |
|---|---|---|
| enable | BOOL | YES cambia al altavoz; NO cambia al auricular. |
isSpeakerphoneEnabled
Verifica si el audio se está reproduciendo actualmente a través del altavoz.
setAudioSessionRestriction:
Establece los permisos de control de AVAudioSession del SDK (solo iOS). Limita el control del SDK cuando la aplicación gestiona AVAudioSession por sí misma.
| Parámetro | Tipo | Descripción |
|---|---|---|
| restriction | int | Máscara de bits de permisos de AVAudioSession correspondiente a AoqAudioSessionRestriction. Se pueden combinar múltiples banderas mediante OR bit a bit. |
Configuración del códec de audio
Configuración de codificación de audio
setAudioEncoderConfig:
Configura la codificación de audio para la publicación. Los cambios de configuración surten efecto inmediatamente.
| Parámetro | Tipo | Descripción |
|---|---|---|
| config | AoqAudioCodecConfig * | Configuración de codificación de audio. Establezca trackType en AoqTrackTypeAudio. |
setAudioDecoderConfig:
Configura la decodificación de audio para el audio suscrito. La configuración debe coincidir con la configuración de codificación remota.
| Parámetro | Tipo | Descripción |
|---|---|---|
| config | AoqAudioCodecConfig * | Configuración de decodificación de audio. Establezca trackType en AoqTrackTypeAudio. |
Reproducción de archivos de audio
startAudioFile:config:
Inicia la transmisión y reproducción de un archivo de audio local. La transmisión remota y la reproducción local pueden ejecutarse simultáneamente, con sus volúmenes controlados por publishVolume y playoutVolume, respectivamente.
| Parámetro | Tipo | Descripción |
|---|---|---|
| fileId | NSString * | Identificador de archivo definido por la aplicación utilizado para control posterior |
| config | AoqAudioFileMixConfig * | Configuración de reproducción de archivo de audio |
stopAudioFile:
Detiene la reproducción del archivo de audio.
| Parámetro | Tipo | Descripción |
|---|---|---|
| fileId | NSString * | Identificador de archivo, que coincide con el valor pasado a startAudioFile:config: |
pauseAudioFile:
Pausa la reproducción del archivo de audio.
| Parámetro | Tipo | Descripción |
|---|---|---|
| fileId | NSString * | Identificador de archivo |
resumeAudioFile:
Reanuda la reproducción del archivo de audio. Llame a este método después de pauseAudioFile:.
| Parámetro | Tipo | Descripción |
|---|---|---|
| fileId | NSString * | Identificador de archivo |
getAudioFileDuration:
Obtiene la duración total de un archivo de audio.
| Parámetro | Tipo | Descripción |
|---|---|---|
| fileId | NSString * | Identificador de archivo |
getAudioFileCurrentPosition:
Obtiene la posición de reproducción actual de un archivo de audio.
| Parámetro | Tipo | Descripción |
|---|---|---|
| fileId | NSString * | Identificador de archivo |
setAudioFilePositionMillis:positionMillis:
Establece la posición de reproducción de un archivo de audio (búsqueda).
| Parámetro | Tipo | Descripción |
|---|---|---|
| fileId | NSString * | Identificador de archivo |
| positionMillis | long long | Posición de reproducción objetivo en milisegundos |
setAudioFileVolume:type:volume:
Establece el volumen del archivo de audio. Los volúmenes de transmisión y de reproducción local se pueden controlar por separado.
| Parámetro | Tipo | Descripción |
|---|---|---|
| fileId | NSString * | Identificador de archivo |
| type | AoqAudioStreamDirection | Dirección del volumen. AoqAudioStreamPublish controla la transmisión; AoqAudioStreamPlayout controla la reproducción. |
| volume | NSInteger | Volumen. Valores válidos: 0-100. |
getAudioFileVolume:type:
Obtiene el volumen actual del archivo de audio.
| Parámetro | Tipo | Descripción |
|---|---|---|
| fileId | NSString * | Identificador de archivo |
| type | AoqAudioStreamDirection | Dirección del volumen |
Secuencias de audio externas
addAudioExternalStream:config:
Añade un flujo de audio externo. Se pueden crear múltiples flujos independientes y distinguirlos por streamId.
| Parámetro | Tipo | Descripción |
|---|---|---|
| streamId | NSString * | Identificador de flujo externo definido por la aplicación |
| config | AoqAudioExternalStreamConfig * | Configuración de flujo de audio externo |
pushAudioExternalStreamData:data:
Alimenta datos de audio PCM externos en la secuencia especificada.
| Parámetro | Tipo | Descripción |
|---|---|---|
| streamId | NSString * | Identificador de flujo externo |
| data | AoqAudioFrameData * | Datos de fotograma de audio PCM |
setAudioExternalStreamVolume:type:volume:
Establece el volumen del flujo de audio externo. Los volúmenes de transmisión y de reproducción local se pueden controlar por separado.
| Parámetro | Tipo | Descripción |
|---|---|---|
| streamId | NSString * | Identificador de flujo externo |
| type | AoqAudioStreamDirection | Dirección del volumen |
| volume | NSInteger | Volumen. Valores válidos: 0-100. |
getAudioExternalStreamVolume:type:
Obtiene el volumen actual de la secuencia de audio externa.
| Parámetro | Tipo | Descripción |
|---|---|---|
| streamId | NSString * | Identificador de flujo externo |
| type | AoqAudioStreamDirection | Dirección del volumen |
clearAudioExternalStreamBuffer:fadeoutMs:
Borra el búfer del flujo de audio externo con un fundido de salida opcional. Se usa comúnmente para interrumpir la reproducción actual.
| Parámetro | Tipo | Descripción |
|---|---|---|
| streamId | NSString * | Identificador de flujo externo |
| fadeoutMs | NSInteger | Duración del desvanecimiento de salida en milisegundos. -1 usa el valor predeterminado, 0 borra el búfer inmediatamente y un valor mayor que 0 retiene la duración especificada para el desvanecimiento de salida. |
removeAudioExternalStream:
Elimina una secuencia de audio externa y libera sus recursos.
| Parámetro | Tipo | Descripción |
|---|---|---|
| streamId | NSString * | Identificador de flujo externo |
Devoluciones de llamada de cuadros de audio
setAudioFrameObserver:
Establece el delegado de fotogramas de audio. Pase delegate=nil para eliminarlo.
| Parámetro | Tipo | Descripción |
|---|---|---|
| delegate | id<AoqAudioFrameDelegate> | Protocolo de delegado de tramas de audio. Pase nil para eliminarlo. |
enableAudioFrameObserver:audioSource:config:
Habilita o deshabilita las devoluciones de llamada de cuadros de audio en la posición especificada.
| Parámetro | Tipo | Descripción |
|---|---|---|
| enabled | BOOL | YES habilita las devoluciones de llamada; NO las deshabilita. |
| audioSource | AoqAudioSource | Posición de la fuente de audio: captura, después del procesamiento 3A, publicación o reproducción |
| config | AoqAudioObserverConfig * | Configuración de callback |
Indicación de volumen de audio local
enableLocalAudioVolumeIndication:
Habilita o deshabilita las indicaciones de volumen de audio capturado localmente. Cuando está habilitado, el SDK invoca onLocalAudioVolumeIndication: a intervalos de config.interval para reportar el volumen capturado localmente y si se detecta voz.
| Parámetro | Tipo | Descripción |
|---|---|---|
| config | AoqAudioVolumeIndicationConfig * | Configuración de indicación de volumen. interval<=0 deshabilita las devoluciones de llamada. |
Gestión de dispositivos de video
startVideoCapture:
Abre el dispositivo de captura de video (cámara). El video capturado se envía a través de AoqTrackTypeVideo. Para entrada de video externa (pushExternalVideoCapturedFrame:frame:), establezca isExternal en YES; la cámara no se abre en este modo.
| Parámetro | Tipo | Descripción |
|---|---|---|
| config | AoqVideoCaptureConfig * | Configuración de captura de video. |
stopVideoCapture
Cierra el dispositivo de captura de video y detiene la captura de video local.
switchCamera:
Alterna entre las cámaras frontal y trasera. Llame a este método después de startVideoCapture:(isExternal=NO).
| Parámetro | Tipo | Descripción |
|---|---|---|
| direction | AoqCameraDirection | Dirección de la cámara objetivo: AoqCameraDirectionFront para la cámara frontal y AoqCameraDirectionBack para la cámara trasera. |
setLocalView:canvas:
Establece o elimina la vista de renderizado de video local. Pase canvas=nil o canvas.view=nil para desvincular el renderizado.
| Parámetro | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Tipo de pista. Establezca en AoqTrackTypeVideo para vista previa local. |
| canvas | AoqVideoCanvas * | Lienzo de renderizado de video. Pase nil para desvincularlo. |
setRemoteView:canvas:
Establece o elimina la vista de renderizado de video remoto. Pase canvas=nil o canvas.view=nil para desvincularla.
| Parámetro | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Tipo de pista |
| canvas | AoqVideoCanvas * | Lienzo de renderizado de video. Pase nil para desvincularlo. |
Codificación de video y entrada externa
setVideoEncoderConfig:
Configura la codificación de video para la publicación, enrutada por config.trackType. Si isExternal=YES, pushExternalVideoEncodedFrame:frame: envía tramas codificadas directamente sin recodificación por parte del SDK.
| Parámetro | Tipo | Descripción |
|---|---|---|
| config | AoqVideoCodecConfig * | Configuración de codificación de video. |
setVideoDecoderConfig:
Configura la decodificación de video para el video suscrito, enrutado por config.trackType. Solo trackType/codecType/width/height/fps/bitrate aplican a la decodificación. Los demás campos aplican solo a la codificación.
| Parámetro | Tipo | Descripción |
|---|---|---|
| config | AoqVideoCodecConfig * | Configuración de decodificación de video. |
pushExternalVideoCapturedFrame:frame:
Envía fotogramas de video sin procesar externos para su codificación y transmisión por parte del SDK. Los fotogramas se enrutan por trackType. La captura externa debe estar habilitada para la pista correspondiente.
| Parámetro | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Tipo de pista. Para AoqTrackTypeVideo, llame primero a startVideoCapture:(isExternal=YES). Para AoqTrackTypeScreen, llame primero a startScreenCapture:(isExternal=YES). |
| frame | AoqVideoFrame * | Datos de fotograma de video externo. |
pushExternalVideoEncodedFrame:frame:
Envía tramas de video codificadas externas. El SDK las empaqueta y envía sin recodificarlas. Las tramas se consumen solo después de llamar a setVideoEncoderConfig:(isExternal=YES) para el trackType correspondiente. No se requiere startVideoCapture:/startScreenCapture:.
| Parámetro | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Tipo de pista. Admite AoqTrackTypeVideo / AoqTrackTypeScreen. |
| frame | AoqVideoEncodedFrame * | Fotograma de video codificado externo. |
Captura de pantalla
config especifica la configuración de captura de pantalla. El contenido de la pantalla se envía en la pista AoqTrackTypeScreen.
Para start, 0 significa que la solicitud es aceptada; onScreenCaptureStateChanged informa el resultado de forma asíncrona. Un valor de retorno distinto de cero rechaza la solicitud sincrónicamente sin un evento de fallo duplicado. Stop devuelve 0 en caso de éxito o un valor distinto de cero en caso de fallo, e informa el estado detenido a través de esta devolución de llamada.
Con isExternal=NO, la captura utiliza una Broadcast Upload Extension. Integre y configure AoqScreenShare.framework y muestre el selector de transmisión del sistema. En caso de tiempo de espera agotado, la devolución de llamada onScreenCaptureStateChanged: reporta un fallo con AoqECScreenStartFailed. No necesita esperar a Started antes de habilitar la transmisión.
Para tramas sin procesar externas, establezca isExternal=YES. Esto no habilita el canal de recepción de la extensión. Proporcione tramas de Screen sin procesar a través de pushExternalVideoCapturedFrame para la codificación del SDK. Para tramas codificadas externas, configure la pista Screen para codificación externa con setVideoEncoderConfig, luego llame a pushExternalVideoEncodedFrame; no se requiere startScreenCapture.
Control de transmisión de flujo de medios
enableSendMediaStream:enable:
Habilita o deshabilita el envío de un flujo de medios local, seleccionado por trackType. Cuando el envío está deshabilitado, la captura y la codificación continúan, pero los datos no se envían a través de la red.
| Parámetro | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Tipo de pista. Admite AoqTrackTypeAudio/AoqTrackTypeVideo/AoqTrackTypeScreen. |
| enable | BOOL | YES habilita el envío; NO deshabilita el envío. |
Devoluciones de llamada de cuadros de video
setVideoFrameObserver:
Establece el delegado de fotogramas de video. Pase delegate=nil para eliminarlo.
| Parámetro | Tipo | Descripción |
|---|---|---|
| delegate | id<AoqVideoFrameDelegate> | Protocolo de delegado de tramas de video. Pase nil para eliminarlo. |
enableVideoFrameObserver:videoSource:config:
Habilita o deshabilita las devoluciones de llamada de cuadros de video en la posición especificada.
| Parámetro | Tipo | Descripción |
|---|---|---|
| enabled | BOOL | YES habilita las devoluciones de llamada; NO las deshabilita. |
| videoSource | AoqVideoSource | Posición de la fuente de video: después de la captura, antes de la codificación o después de la decodificación remota |
| config | AoqVideoObserverConfig * | Configuración de devolución de llamada. Use config.trackType para observar la pista de Video o Screen. |
Callbacks de AoqEngineDelegate
onScreenCaptureStateChanged: es @optional. Todos los demás callbacks de AoqEngineDelegate son @required.
Mensajes en tiempo real
sendDataMsg:
Envía un mensaje de datos en tiempo real al extremo remoto. Llame a este método después de que connect: tenga éxito y se haya llamado a enableSendMediaStream:(Data, YES).
| Parámetro | Tipo | Descripción |
|---|---|---|
| msg | AoqDataMsg * | Mensaje de datos |
Callbacks de AoqEngineDelegate
onError:message:
Devolución de llamada de error del motor. Se activa cuando ocurre un error irrecuperable.
| Parámetro | Tipo | Descripción |
|---|---|---|
| code | NSInteger | Código de error correspondiente a un valor de enumeración AoqErrorCode |
| message | NSString * | Descripción del error |
onWarning:message:
Devolución de llamada de advertencia del motor. Se activa por excepciones recuperables que no impiden que el SDK continúe ejecutándose.
| Parámetro | Tipo | Descripción |
|---|---|---|
| code | NSInteger | Código de advertencia correspondiente a un valor de enumeración AoqWarningCode |
| message | NSString * | Descripción de la advertencia |
onConnectionStatusChange:
Devolución de llamada de cambio de estado de conexión. Transiciones de estado: Disconnected → Connecting → Connected/Failed → Disconnected.
| Parámetro | Tipo | Descripción |
|---|---|---|
| status | AoqConnectionStatus | Estado de conexión actual |
onStats:
Callback de estadísticas del motor. El SDK informa periódicamente estadísticas de publicación y suscripción de audio/video y estadísticas de red para monitorear la calidad de la llamada y las condiciones de la red, y diagnosticar problemas de audio/video.
| Parámetro | Tipo | Descripción |
|---|---|---|
| stats | AoqStats * | Estadísticas de publicación y suscripción de audio/video/mensajes de datos, y estadísticas de red |
onAudioDeviceStateChanged:
Callback para cambios en el estado de captura/reproducción del dispositivo de audio.
| Parámetro | Tipo | Descripción |
|---|---|---|
| state | AoqAudioDeviceState * | Estado del dispositivo de audio, incluyendo estado (código de estado) y motivo (motivo del error) |
onAudioDeviceRouteChanged:
Callback para cambios en la ruta de salida de audio.
| Parámetro | Tipo | Descripción |
|---|---|---|
| routeType | NSInteger | Ruta de salida de audio actual, correspondiente a un valor de enumeración AoqAudioDeviceRouteType |
onAudioDeviceInterrupted:
Devolución de llamada de interrupción del dispositivo de audio. Se activa por interrupciones del sistema, como llamadas entrantes u otra aplicación que toma el enfoque de audio.
| Parámetro | Tipo | Descripción |
|---|---|---|
| interrupt | BOOL | YES indica interrupción; NO indica recuperación de la interrupción. |
onAudioFileState:
Callback de estado de reproducción de archivo de audio.
| Parámetro | Tipo | Descripción |
|---|---|---|
| state | AoqAudioFileState * | Estado de reproducción del archivo de audio, incluyendo fileId, stateCode y errorCode |
onLocalAudioVolumeIndication:
Reporta el volumen de audio capturado localmente. Se activa solo después de habilitar las indicaciones de volumen mediante enableLocalAudioVolumeIndication:.
| Parámetro | Tipo | Descripción |
|---|---|---|
| volume | AoqAudioVolume * | Información de volumen local, incluyendo isSpeech (si se detecta voz) y volume (volumen instantáneo suavizado [0-255]). |
onVideoDeviceStateChanged:
Callback para cambios en el estado de captura del dispositivo de video.
| Parámetro | Tipo | Descripción |
|---|---|---|
| state | AoqVideoDeviceState * | Estado del dispositivo de video, incluyendo estado (código de estado) y motivo (motivo del error) |
onDataMsg:
Callback para mensajes de datos en tiempo real recibidos.
| Parámetro | Tipo | Descripción |
|---|---|---|
| msg | AoqDataMsg * | Mensaje de datos |
onScreenCaptureStateChanged
Reporta cambios en el estado de captura de pantalla (@optional) usando AoqScreenCaptureStateCode y el AoqErrorCode unificado. Las notificaciones se entregan en orden en el hilo principal. Los fallos de captura de pantalla no se reportan también a través de onError:.
| Parámetro | Tipo | Descripción |
|---|---|---|
| state | AoqScreenCaptureState * | Estado de captura de pantalla, incluyendo estado (código de estado) y motivo (causa del error). |
Callbacks de AoqAudioFrameDelegate
Protocolo de delegado de fotogramas de audio. Todos los métodos son @optional; impleméntelos según sea necesario.
| Método | Cuándo se activa | Parámetro |
|---|---|---|
| onCapturedAudioFrame: | Cuando se captura un fotograma de audio sin procesar | frame: AoqAudioFrameData * |
| onProcessCapturedAudioFrame: | Fotograma de audio después del procesamiento 3A | frame: AoqAudioFrameData * |
| onPublishAudioFrame:frame: | Fotograma de audio antes de la publicación | trackType: tipo de pista; frame: AoqAudioFrameData * |
| onPlaybackAudioFrame: | Fotograma de audio remoto antes de la reproducción | frame: AoqAudioFrameData * |
onCapturedAudioFrame
Se invoca cuando se captura un cuadro de audio sin procesar. El cuadro contiene datos PCM no procesados.
| Parámetro | Tipo | Descripción |
|---|---|---|
| frame | AoqAudioFrameData * | Datos de fotograma de audio capturado |
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.
| Parámetro | Tipo | Descripción |
|---|---|---|
| frame | 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 |
| frame | AoqAudioFrameData * | Datos de trama de audio antes de la publicación |
onPlaybackAudioFrame
Se invoca para un cuadro de audio remoto antes de la reproducción, después de la decodificación y la mezcla.
| Parámetro | Tipo | Descripción |
|---|---|---|
| frame | AoqAudioFrameData * | Datos de trama de audio remota antes de la reproducción |
Callbacks de AoqVideoFrameDelegate
Protocolo de delegado de tramas de video. Todos los métodos son @optional. Retornar NO indica que no hubo modificación de datos. Cada una de las tres devoluciones de llamada incluye trackType para distinguir las pistas de Video y Screen.
| Método | Cuándo se activa | Parámetro |
|---|---|---|
| onCapturedVideoFrame:frame: | Cuando se captura un fotograma de video sin procesar (antes del preprocesamiento) | trackType: tipo de pista; frame: AoqVideoFrame * |
| onPreEncodeVideoFrame:frame: | Fotograma de video antes de la codificación (después del preprocesamiento) | trackType: tipo de pista; frame: AoqVideoFrame * |
| onRemoteVideoFrame:frame: | Fotograma de video remoto después de la decodificación y antes del renderizado | trackType: tipo de pista; frame: AoqVideoFrame * |
onCapturedVideoFrame
Se invoca cuando se captura un cuadro de video sin procesar, antes del preprocesamiento.
| Parámetro | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Tipo de pista (Video/Pantalla) |
| frame | AoqVideoFrame * | Datos de fotograma de video capturado |
onPreEncodeVideoFrame
Se invoca para un cuadro de video después del preprocesamiento y antes de la codificación.
| Parámetro | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Tipo de pista (Video/Pantalla) |
| frame | AoqVideoFrame * | Datos de fotograma de video 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.
| Parámetro | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Tipo de pista (Video/Pantalla) |
| frame | AoqVideoFrame * | Datos de fotograma de video remoto decodificado |
Tipos de datos y enumeraciones
Tipos comunes
AoqCreateConfig (campos añadidos en v1.3.0)
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| maxEncodedVideoFrameBytes | NSInteger | 190 × 1024 | Tamaño máximo del cuadro codificado en bytes. Aplica solo al codificador JPEG interno del SDK. |
| 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
subscribeTracks no debe incluir AoqTrackTypeScreen; de lo contrario, connect devuelve AoqECUnSupport sin iniciar una conexión. setRemoteView también devuelve AoqECUnSupport para Screen.
Campo | Tipo | Descripción |
|---|---|---|
token | NSString * | Token de autenticación |
sid | NSString * | ID de sesión |
certFingerprint | NSString * | Huella digital del certificado del servidor |
relayEndpoints | NSArray<AoqRelayEndpoint *> * | Lista de endpoints de Relay |
workspaceIdHash | NSString * | Hash del ID del espacio de trabajo |
publishTracks | NSArray<AoqTrackParam *> * | Pistas locales para publicar |
subscribeTracks | NSArray<AoqTrackParam *> * | Pistas remotas a suscribir |
AoqRelayEndpoint
Endpoint de retransmisión.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| routeIndex | NSInteger | -1 | Índice de ruta |
| endpoint | NSString * | "" | Dirección del servidor (nombre de dominio o dirección IP) |
| port | NSInteger | 0 | Puerto UDP del servidor |
| tcpPort | NSInteger | 0 | Puerto de respaldo TCP. 0 usa el puerto predeterminado del SDK, 443. |
AoqTrackParam.trackMode
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| trackMode | AoqTrackMode | AoqTrackModeSegment | Aplica solo a audio descendente. |
AoqTrackParam
Propiedades de la pista.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| trackType | AoqTrackType | AoqTrackTypeAudio | Tipo de pista |
| trackMode | AoqTrackMode | AoqTrackModeSegment | Modo de transmisión o sin transmisión. Se aplica solo al audio descendente. |
Enumeraciones
AoqTrackMode
| Valor | Número | Descripción |
|---|---|---|
| AoqTrackModeSegment | 0 | Modo de segmento: entrega datos en segmentos semánticos, como oraciones. Aplica solo al audio descendente. |
| AoqTrackModeStream | 1 | Modo de flujo: entrega datos de forma continua. Aplica solo al audio descendente. |
AoqErrorCode
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqECOK | 0 | Éxito |
AoqECParamInvalid | 1 | Parámetro no válido |
AoqECStateInvalid | 2 | Estado no válido |
AoqECUnSupport | 3 | Operación no compatible |
AoqECAudio | 100 | Error genérico de audio |
AoqECAudioExternalBufferFull | 110 | Búfer de audio externo lleno |
AoqECAudioDevice | 120 | Error genérico de dispositivo de audio |
AoqECAudioDeviceRecordingAuthFailed | 121 | Permiso de grabación no concedido |
AoqECAudioDeviceRecordingOccupied | 122 | Dispositivo de grabación en uso |
AoqECAudioDeviceRecordingBackgroundStart | 123 | Error al iniciar la grabación en segundo plano |
AoqECAudioDeviceRecordingStartFail | 124 | Error al iniciar la grabación |
AoqECAudioDevicePlayoutOccupied | 125 | Dispositivo de reproducción en uso |
AoqECAudioDevicePlayoutBackgroundStart | 126 | Error al iniciar la reproducción en segundo plano |
AoqECAudioDevicePlayoutStartFail | 127 | Error al iniciar la reproducción |
AoqECAudioDeviceEarpieceRequiresVoipMode | 128 | El auricular requiere modo VoIP |
AoqECVideo | 200 | Error genérico de video |
AoqECVideoExternalBufferFull | 210 | Búfer de video externo lleno |
AoqECVideoExternalCaptureNotEnabled | 211 | Captura de video externa no habilitada |
AoqECVideoExternalEncoderNotEnabled | 212 | Codificador de video externo no habilitado |
AoqECVideoDevice | 220 | Error genérico de dispositivo de video |
AoqECVideoDeviceCameraOpenFail | 221 | Error al abrir la cámara |
AoqECVideoDeviceCameraAuthFailed | 222 | Permiso de cámara no concedido |
AoqECVideoDeviceCameraOccupied | 223 | Cámara en uso |
AoqECVideoDeviceCameraRunningError | 224 | Error de ejecución de la cámara |
AoqECVideoCodec | 230 | Error genérico del códec de video |
AoqECVideoCodecEncoderInitFail | 231 | Error en la inicialización del codificador de video |
AoqECVideoRender | 240 | Error genérico de renderizado de video |
AoqECVideoRenderCreateFail | 241 | Fallo en la creación del renderizador de video |
AoqECVideoRenderDrawError | 242 | Error de dibujo en renderizado de video |
| AoqECScreen | 300 | Error general de uso compartido de pantalla |
| AoqECScreenAuthFailed | 310 | Permiso de uso compartido de pantalla denegado |
| AoqECScreenStartFailed | 311 | Error al iniciar el uso compartido de pantalla |
AoqTrackType
Valor de enumeración | Valor | Descripción |
|---|---|---|
AoqTrackTypeAudio | 0 | Pista de audio |
AoqTrackTypeVideo | 1 | Pista de video |
AoqTrackTypeData | 2 | Pista de mensajería de datos |
| AoqTrackTypeScreen | 3 | Pista de pantalla compartida. Solo enlace ascendente. |
AoqWarningCode
Códigos de advertencia.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqWCOK | 0 | Sin advertencia |
| AoqWCAudio | 100 | Advertencia general de audio |
| AoqWCAudioHowling | 101 | Acople de audio detectado |
| AoqWCAudioDevice | 120 | Advertencia general de dispositivo de audio |
| AoqWCAudioDeviceMicEnumerateError | 121 | Error de enumeración de micrófono |
| AoqWCAudioDeviceMicStartTimeout | 122 | Tiempo de espera de inicio del micrófono agotado |
| AoqWCAudioDeviceRecordingError | 123 | Error de grabación |
| AoqWCAudioDeviceSpeakerEnumerateError | 124 | Error de enumeración de altavoces |
| AoqWCAudioDeviceSpeakerStartTimeout | 125 | Tiempo de espera de inicio del altavoz agotado |
| AoqWCAudioDevicePlayoutError | 126 | Error de reproducción |
| AoqWCVideo | 200 | Advertencia general de video |
| AoqWCVideoCameraEnumerateError | 201 | Error de enumeración de cámaras |
| AoqWCVideoEncoderSwitched | 202 | Codificador de video cambiado |
| AoqWCVideoRenderDowngrade | 203 | Renderizado de video degradado |
AoqEncoderType
Formatos de medios de pista.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqEncoderTypeUnknown | 0 | Formato desconocido |
| AoqEncoderTypeAudioPCM | 1 | Audio PCM |
| AoqEncoderTypeAudioOpus | 2 | Audio Opus |
| AoqEncoderTypeVideoH264 | 3 | Video H.264 |
| AoqEncoderTypeVideoJpeg | 4 | Video JPEG |
| AoqEncoderTypeDataText | 5 | Datos de texto |
AoqConnectionStatus
Estados de conexión del motor.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqConnectionStatusDisconnected | 0 | Desconectado |
| AoqConnectionStatusConnecting | 1 | Conectando |
| AoqConnectionStatusConnected | 2 | Conectado |
| AoqConnectionStatusFailed | 3 | Error de conexión |
AoqMirrorMode
Modo espejo.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqMirrorModeDisabled | 0 | Espejo deshabilitado |
| AoqMirrorModeEnabled | 1 | Espejo habilitado |
AoqOrientationMode
Orientación del video.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqOrientationModeAuto | 0 | Automático |
| AoqOrientationModePortrait | 1 | Vertical |
| AoqOrientationModeLandscape | 2 | Horizontal |
Tipos de audio
AoqAudioPlaybackConfig
Campo | Tipo | Predeterminado | Descripción |
|---|---|---|---|
isVoipMode | BOOL | NO | YES: habilitar modo VoIP (AEC por hardware); aplica a móviles |
isDefaultSpeaker | BOOL | YES | YES: altavoz por defecto; NO: auricular |
isExternal | BOOL | NO | YES: salida de audio externa |
channel | NSInteger | 1 | Recuento de canales: 1 o 2 |
AoqAudioCaptureConfig
Configuración de captura de audio.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| isExternal | BOOL | NO | Si se debe usar captura externa |
| isVoipMode | BOOL | NO | Si se debe habilitar el modo VoIP (AEC por hardware). Efectivo en dispositivos móviles. |
| channel | NSInteger | 1 | Número de canales. Admite 1/2. |
AoqAudioCodecConfig
Configuración de códec de audio compartida por setAudioEncoderConfig: y setAudioDecoderConfig:.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| trackType | AoqTrackType | AoqTrackTypeAudio | Tipo de pista |
| codecType | AoqEncoderType | AoqEncoderTypeAudioOpus | Formato de codificación |
| sampleRate | NSInteger | 48000 | Tasa de muestreo en Hz |
| channel | NSInteger | 1 | Número de canales |
| bitrate | NSInteger | 32000 | Tasa de bits en bps |
AoqAudioSessionRestriction
Máscara de bits de permisos de AVAudioSession (NS_OPTIONS; los indicadores se pueden combinar con OR bit a bit). Utilizado por setAudioSessionRestriction:.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqAudioSessionNone | 0 | Sin restricciones (el SDK gestiona completamente AVAudioSession) |
| AoqAudioSessionSetCategory | 1 | Restringe al SDK de establecer la categoría |
| AoqAudioSessionConfigureSession | 2 | Restringe al SDK de configurar la sesión |
| AoqAudioSessionDeactivateSession | 4 | Restringe al SDK de desactivar la sesión |
| AoqAudioSessionActivateSession | 8 | Restringe al SDK de activar la sesión |
AoqAudioDeviceStateCode
Códigos de estado de captura y reproducción del dispositivo de audio.
| 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
Estado de captura y reproducción del dispositivo de audio.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| state | AoqAudioDeviceStateCode | AoqAudioDeviceNone | Estado de operación del dispositivo |
| reason | NSInteger | 0 | Código de motivo de error (consulte AoqErrorCode) |
AoqAudioDeviceRouteType
Tipos de ruta de dispositivo de audio.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqAudioDeviceRouteDefault | 0 | Ruta predeterminada |
| AoqAudioDeviceRouteHeadset | 1 | Auriculares con micrófono |
| AoqAudioDeviceRouteEarpiece | 2 | Auricular |
| AoqAudioDeviceRouteHeadsetNoMic | 3 | Auriculares sin micrófono |
| AoqAudioDeviceRouteSpeakerPhone | 4 | Altavoz |
| AoqAudioDeviceRouteUsb | 5 | Dispositivo de audio USB |
| AoqAudioDeviceRouteBluetooth | 6 | Modo Bluetooth SCO |
| AoqAudioDeviceRouteBluetoothA2dp | 7 | Modo Bluetooth A2DP |
Tipos de archivos de audio
AoqAudioFileMixConfig
Configuración de reproducción de archivos de audio.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| fileName | NSString * | "" | Nombre del archivo incluyendo su ruta. No debe estar vacío. |
| cycles | NSInteger | -1 | Recuento de bucles. -1 realiza un bucle indefinidamente. |
| startPosMs | NSInteger | 0 | Posición inicial de reproducción en milisegundos |
| publishVolume | NSInteger | 100 | Volumen de publicación. Valores válidos: 0-100. |
| playoutVolume | NSInteger | 100 | Volumen de reproducción. Valores válidos: 0-100. |
AoqAudioFileStateCode
Códigos de estado de reproducción de archivo de audio.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqAudioFileNone | 0 | Sin estado |
| AoqAudioFileStarted | 1 | Reproducción iniciada |
| AoqAudioFileStopped | 2 | Reproducción detenida |
| AoqAudioFilePaused | 3 | Reproducción en pausa |
| AoqAudioFileResumed | 4 | Reproducción reanudada |
| AoqAudioFileEnded | 5 | Reproducción finalizada |
| AoqAudioFileBuffering | 6 | Almacenamiento en búfer de reproducción |
| AoqAudioFileBufferingEnd | 7 | Almacenamiento en búfer finalizado |
| AoqAudioFileFailed | 8 | Error en la reproducción |
AoqAudioFileErrorCode
Códigos de error de reproducción de archivo de audio.
| 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
Estado del archivo de audio.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| fileId | NSString * | "" | Identificador de archivo |
| stateCode | AoqAudioFileStateCode | AoqAudioFileNone | Código de estado de reproducción del archivo |
| errorCode | AoqAudioFileErrorCode | AoqAudioFileNoError | Código de error del archivo |
Tipos de flujo de audio externo y volumen
AoqAudioVolume
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| isSpeech | BOOL | NO | Si se detecta voz. |
| volume | NSInteger | 0 | Volumen instantáneo suavizado, de 0 a 255. |
AoqAudioVolumeIndicationConfig
| 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. |
AoqAudioStreamDirection
Direcciones del flujo de audio.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqAudioStreamPublish | 0 | Publicando flujo |
| AoqAudioStreamPlayout | 1 | Flujo de reproducción |
AoqAudioExternalStreamToggle
Estados de alternancia de secuencia de audio externa.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqAudioExternalStreamToggleNormal | 0 | Estado normal |
| AoqAudioExternalStreamTogglePause | 1 | Estado en pausa |
AoqAudioExternalStreamConfig
Configuración de flujo de audio externo.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| trackType | AoqTrackType | AoqTrackTypeAudio | Tipo de pista de audio |
| codecType | AoqEncoderType | AoqEncoderTypeAudioPCM | Formato de flujo de audio |
| channels | NSInteger | 1 | Número de canales |
| sampleRate | NSInteger | 48000 | Tasa de muestreo en Hz |
| playoutVolume | NSInteger | 100 | Volumen de reproducción (0-100) |
| publishVolume | NSInteger | 100 | Volumen de publicación (0-100) |
| maxBufferDuration | NSInteger | 1000 | Duración máxima del búfer en milisegundos |
| enable3A | BOOL | NO | Si se debe aplicar el procesamiento 3A al PCM de entrada |
AoqAudioFrameData
Datos de fotograma de audio externo.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| dataPtr | void * | NULL | Puntero a datos de audio PCM sin procesar (@Nullable) |
| dataSize | NSInteger | 0 | Tamaño de datos PCM en bytes |
| numOfSamples | NSInteger | 0 | Número de muestras por canal |
| bytesPerSample | NSInteger | 0 | Bytes por muestra |
| numOfChannels | NSInteger | 0 | Número de canales |
| samplesPerSec | NSInteger | 0 | Muestras por segundo (tasa de muestreo) |
| pushSequence | int32_t | 0 | Ronda de entrada PCM |
| timeStamp | int64_t | 0 | Marca de tiempo |
| autoGenMute | BOOL | NO | Válido en devoluciones de llamada de datos. YES indica silencio generado por el SDK. |
AoqAudioSource
Fuentes de datos del callback de tramas de audio.
| 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 publicados |
| AoqAudioSourcePlayback | 3 | Datos de audio de reproducción |
AoqAudioObserverMode
Modos de callback de fotogramas de audio.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqAudioObserverModeReadOnly | 0 | Modo de solo lectura |
| AoqAudioObserverModeReadWrite | 1 | Modo de lectura y escritura |
AoqAudioObserverConfig
Configuración del callback de tramas de audio.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| sampleRate | NSInteger | 48000 | Tasa de muestreo de audio del callback en Hz |
| channels | NSInteger | 1 | Recuento de canales de audio del callback |
| mode | AoqAudioObserverMode | AoqAudioObserverModeReadOnly | Modo de lectura y escritura |
Tipos de video
AoqScreenCaptureState
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| state | AoqScreenCaptureStateCode | AoqScreenCaptureNone | Estado de la captura de pantalla. |
| reason | NSInteger | 0 | 0 para estados normales; un AoqErrorCode en caso de fallo. |
AoqScreenCaptureStateCode
| Valor | Número | Descripción |
|---|---|---|
| AoqScreenCaptureNone | 0 | None |
| AoqScreenCaptureStarting | 1 | Iniciando |
| AoqScreenCaptureStarted | 2 | Entrada lista; no indica transmisión |
| AoqScreenCaptureStopping | 3 | Deteniendo |
| AoqScreenCaptureStopped | 4 | Detenido |
| AoqScreenCaptureFail | 5 | Fallo de inicio o de ejecución |
AoqScreenCaptureConfig
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| isExternal | BOOL | NO | Si la aplicación suministra tramas de pantalla sin procesar. |
| appGroup | NSString * | nil | ID de AppGroup opcional compartido por la aplicación y Broadcast Extension. Si es nil, la configuración se entrega a través del protocolo de enlace del socket y ningún destino necesita la capacidad App Groups. Se ignora para captura externa. |
AoqVideoCodecConfig
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| trackType | AoqTrackType | AoqTrackTypeVideo | Tipo de pista |
| codecType | AoqEncoderType | AoqEncoderTypeVideoH264 | Códec |
| width | NSInteger | 540 | Ancho en píxeles |
| height | NSInteger | 960 | Altura en píxeles |
| fps | NSInteger | 5 | Tasa de fotogramas |
| bitrate | NSInteger | 500000 | Tasa de bits en bps |
| minBitrate | NSInteger | 128000 | Tasa de bits mínima en bps |
| keyframeInterval | NSInteger | 2 | Intervalo de fotogramas clave en segundos |
| mirrorMode | AoqMirrorMode | AoqMirrorModeDisabled | Modo espejo |
| orientationMode | AoqOrientationMode | AoqOrientationModeAuto | Modo de orientación |
| isExternal | BOOL | NO | Si la aplicación suministra fotogramas codificados. |
AoqRenderMode
Modos de renderizado.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqRenderModeAuto | 0 | Modo automático |
| AoqRenderModeStretch | 1 | Modo de estiramiento. La imagen se distorsiona cuando las relaciones de aspecto difieren. |
| AoqRenderModeFill | 2 | Modo letterbox. Se añaden barras negras arriba y abajo o a los lados cuando las relaciones de aspecto difieren. |
| AoqRenderModeCrop | 3 | Modo de recorte. El ancho o la altura se recortan cuando las relaciones de aspecto difieren, eliminando parte de la imagen. |
AoqVideoCanvas
Lienzo de renderización de video.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| view | UIView * | nil | Vista de visualización. Pase nil para eliminar el vínculo de renderizado (@Nullable). |
| renderMode | AoqRenderMode | AoqRenderModeAuto | Modo de renderización |
AoqCameraDirection
Dirección de la cámara.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqCameraDirectionFront | 0 | Cámara frontal |
| AoqCameraDirectionBack | 1 | Cámara trasera (efectivo en dispositivos móviles) |
AoqVideoCaptureConfig
Configuración de captura de video.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| width | NSInteger | 1280 | Ancho de captura en píxeles. Se ignora cuando isExternal=YES. |
| height | NSInteger | 720 | Alto de captura en píxeles. Se ignora cuando isExternal=YES. |
| fps | NSInteger | 15 | Tasa de cuadros de captura. Se ignora cuando isExternal=YES (la sincronización se determina por la entrada de cuadros). |
| isExternal | BOOL | NO | Indica si se debe usar captura externa. Cuando es YES, la cámara no se abre; proporcione los cuadros mediante pushExternalVideoCapturedFrame:. |
| cameraDirection | AoqCameraDirection | AoqCameraDirectionFront | Dirección de la cámara. Se ignora cuando isExternal=YES. |
AoqVideoPixelFormat
Formatos de píxeles de video.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqVideoPixelFormatUnknown | 0 | Formato desconocido |
| AoqVideoPixelFormatI420 | 1 | I420 (formato planar YUV) |
| AoqVideoPixelFormatNV12 | 2 | NV12 (formato semiplanar YUV) |
| AoqVideoPixelFormatNV21 | 3 | NV21 (formato semiplanar YUV) |
| AoqVideoPixelFormatBGRA | 4 | BGRA (32 bits) |
| AoqVideoPixelFormatRGBA | 5 | RGBA (32 bits) |
| AoqVideoPixelFormatCVPixelBuffer | 6 | Ruta de copia cero de Apple. Establezca pixelBuffer en un CVPixelBufferRef. |
AoqVideoFrame
Datos de video externos, también utilizados en callbacks de fotogramas de video (AoqVideoFrameDelegate).
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| format | AoqVideoPixelFormat | AoqVideoPixelFormatUnknown | Formato de píxel |
| width | NSInteger | 0 | Ancho en píxeles |
| height | NSInteger | 0 | Altura en píxeles |
| data | NSData * | nil | Datos en formato empaquetado (NV12/NV21/BGRA/RGBA) (@Nullable) |
| dataY | NSData * | nil | Datos del plano Y I420 (@Nullable) |
| dataU | NSData * | nil | Datos del plano U I420 (@Nullable) |
| dataV | NSData * | nil | Datos del plano V I420 (@Nullable) |
| strideY | NSInteger | 0 | Stride del plano Y |
| strideU | NSInteger | 0 | Stride del plano U |
| strideV | NSInteger | 0 | Stride del plano V |
| pixelBuffer | CVPixelBufferRef | NULL | Búfer de copia cero de Apple. Se utiliza cuando format=AoqVideoPixelFormatCVPixelBuffer (@Nullable). |
| timeStamp | int64_t | 0 | Marca de tiempo en milisegundos. Si es 0, el SDK la completa utilizando el reloj local. |
AoqVideoCodecType
Tipo de códec para tramas codificadas externamente.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqVideoCodecTypeJPEG | 0 | Codificación JPEG |
AoqVideoEncodedFrame
Cuadro de video codificado externamente. La aplicación codifica el cuadro; el SDK lo empaqueta y lo envía sin recodificar.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| codec | AoqVideoCodecType | AoqVideoCodecTypeJPEG | Formato de codificación |
| data | NSData * | No vacío | Datos codificados |
| width | NSInteger | 0 | Ancho en píxeles |
| height | NSInteger | 0 | Altura en píxeles |
| timeStamp | int64_t | 0 | Marca de tiempo en milisegundos. Si es 0, el SDK la completa utilizando el reloj local. |
AoqVideoDeviceStateCode
Códigos de estado de captura del dispositivo de video.
| Valor de enumeració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 | Fallo al iniciar la cámara |
AoqVideoDeviceState
Estado de captura del dispositivo de video.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| state | AoqVideoDeviceStateCode | AoqVideoDeviceNone | Estado de captura del dispositivo |
| reason | NSInteger | 0 | Código de motivo de error (consulte AoqErrorCode) |
Tipos de callback de fotogramas de video
AoqVideoSource
Fuentes de datos del callback de tramas de video (posiciones en la tubería).
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqVideoSourceCaptured | 0 | Datos de video después de la captura (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 |
AoqVideoObserverMode
Modos de callback de fotogramas de video.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqVideoObserverModeReadOnly | 0 | Modo de solo lectura |
| AoqVideoObserverModeReadWrite | 1 | Modo de lectura y escritura |
AoqVideoObserverAlignment
Alineación del ancho de salida de video.
| Valor de enumeración | Valor | Descripción |
|---|---|---|
| AoqVideoObserverAlignmentDefault | 0 | Alineación predeterminada |
| AoqVideoObserverAlignmentEven | 1 | Alineación par |
| AoqVideoObserverAlignment4 | 2 | Alineación de 4 bytes |
| AoqVideoObserverAlignment8 | 3 | Alineación de 8 bytes |
| AoqVideoObserverAlignment16 | 4 | Alineación de 16 bytes |
AoqVideoObserverConfig
Configuración del callback de tramas de video.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| trackType | AoqTrackType | AoqTrackTypeVideo | Pista de video a observar. Solo se admiten Video y Screen. |
| format | AoqVideoPixelFormat | AoqVideoPixelFormatI420 | Formato de píxel de callback deseado |
| alignment | AoqVideoObserverAlignment | AoqVideoObserverAlignmentDefault | Política de alineación de ancho |
| mode | AoqVideoObserverMode | AoqVideoObserverModeReadOnly | Modo de lectura/escritura. Solo I420/CVPixelBuffer admite acceso de lectura y escritura. |
| mirrorApplied | BOOL | NO | Indica si se deben reflejar los datos del callback |
Tipos de mensajes de datos
AoqDataMsg
Estructura de datos de mensajes en tiempo real.
| Campo | Tipo | Valor predeterminado | Descripción |
|---|---|---|---|
| data | NSData * | NSData vacío | Datos del mensaje que hacen referencia a memoria propiedad del llamador |
Tipos de estadísticas
AoqStats
Campo | Tipo | Descripción |
|---|---|---|
audioPublishStats | NSArray<AoqAudioPublishStats *> * | Estadísticas de publicación de audio |
videoPublishStats | NSArray<AoqVideoPublishStats *> * | Estadísticas de publicación de video |
dataMsgPublishStats | NSArray<AoqDataMsgPublishStats *> * | Estadísticas de publicación de mensajes de datos |
audioSubscribeStats | NSArray<AoqAudioSubscribeStats *> * | Estadísticas de suscripción de audio |
videoSubscribeStats | NSArray<AoqVideoSubscribeStats *> * | Estadísticas de suscripción de video |
dataMsgSubscribeStats | NSArray<AoqDataMsgSubscribeStats *> * | Estadísticas de suscripción de mensajes de datos |
networkStats | AoqNetworkStats * | Estadísticas de red |
AoqNetworkStats
Campo | Tipo | Descripción |
|---|---|---|
sendBitrate | NSUInteger | Tasa de bits de envío (bps) |
sendBytes | NSUInteger | Bytes enviados acumulados |
recvBitrate | NSUInteger | Tasa de bits de recepción (bps) |
recvBytes | NSUInteger | Bytes acumulados recibidos |
loss | NSUInteger | Tasa de pérdida de paquetes |
rtt | NSUInteger | Tiempo de ida y vuelta (ms) |
AoqAudioPublishStats
Estadísticas de publicación de audio.
| Campo | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Tipo de pista |
| bitrate | NSUInteger | Tasa de bits en bps |
| bytes | NSUInteger | Total de bytes enviados |
| encodeVolume | NSUInteger | Volumen de codificación de publicación |
AoqVideoPublishStats
Estadísticas de publicación de video.
| Campo | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Tipo de pista |
| bitrate | NSUInteger | Tasa de bits en bps |
| bytes | NSUInteger | Total de bytes enviados |
| encodeFps | NSUInteger | Tasa de cuadros de codificación |
AoqAudioSubscribeStats
Estadísticas de suscripción de audio.
| Campo | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Tipo de pista |
| bitrate | NSUInteger | Tasa de bits en bps |
| bytes | NSUInteger | Total de bytes recibidos |
| playVolume | NSUInteger | Volumen de reproducción |
AoqVideoSubscribeStats
Estadísticas de suscripción de video.
| Campo | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Tipo de pista |
| bitrate | NSUInteger | Tasa de bits en bps |
| bytes | NSUInteger | Total de bytes recibidos |
| decodeFps | NSUInteger | Tasa de fotogramas de decodificación |
| renderFps | NSUInteger | Tasa de fotogramas de renderizado |
AoqDataMsgPublishStats
Estadísticas de publicación de mensajes de datos.
| Campo | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Tipo de pista |
| bitrate | NSUInteger | Tasa de bits en bps |
| bytes | NSUInteger | Total de bytes enviados |
AoqDataMsgSubscribeStats
Estadísticas de suscripción a mensajes de datos.
| Campo | Tipo | Descripción |
|---|---|---|
| trackType | AoqTrackType | Tipo de pista |
| bitrate | NSUInteger | Tasa de bits en bps |
| bytes | NSUInteger | Total de bytes recibidos |