Skip to main content

Referencia de API del SDK cliente AOQ para iOS

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

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

Ciclo de vida del motor

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

Gestión de dispositivos de audio

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

Configuración de codificación de audio

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

Reproducción de archivos de audio

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

Secuencias de audio externas

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

Devoluciones de llamada de cuadros de audio

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

Indicación de volumen de audio local

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

Gestión de dispositivos de video

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

Codificación de video y entrada externa

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

Captura de pantalla

APIDescripción
startScreenCaptureIniciar captura de pantalla (Broadcast Upload Extension)
stopScreenCaptureDetener la captura de pantalla

Control de transmisión de flujo de medios

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

Devoluciones de llamada de cuadros de video

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

Mensajes en tiempo real

APIDescripción
sendDataMsgEnviar un mensaje de datos en tiempo real

Callbacks de AoqEngineDelegate

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

Callbacks de AoqAudioFrameDelegate

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

Callbacks de AoqVideoFrameDelegate

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

Detalles de la API

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.
+ (instancetype _Nonnull)createEngine:(AoqCreateConfig * _Nonnull)config
                             delegate:(id<AoqEngineDelegate> _Nonnull)delegate;
ParámetroTipoDescripción
configAoqCreateConfig *Configuración de creación del motor
delegateid<AoqEngineDelegate>Delegado de eventos del motor
Valor de retorno: Una instancia de AoqClientEngine. Nunca nil.

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.
+ (int)destroy;
Parámetros: None. Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

getVersion

Obtiene la versión actual del SDK. Se puede llamar antes de createEngine:.
+ (NSString * _Nonnull)getVersion;
Parámetros: None. Valor devuelto: Una cadena de versión, como "1.3.0".

connect:

Se conecta al servidor de Relay. AppServer envía los parámetros de conexión al cliente. Esta llamada regresa de inmediato. El resultado real de la conexión se informa mediante la función de callback onConnectionStatusChange:.
En la documentación general de la API del SDK, AppServer asigna los parámetros de conexión mediante /api/v1/allocate. Para un modelo específico, consulte Conexión mediante AOQ de Qwen-Omni-Realtime, Conexión mediante AOQ de Qwen-Audio-Realtime o Conexión mediante AOQ de Qwen-LiveTranslate-Realtime.
- (int)connect:(AoqConnectConfig * _Nonnull)config;
ParámetroTipoDescripción
configAoqConnectConfig *Configuración de conexión, incluyendo Token, SID, puntos finales Relay y pistas de publicación/suscripción
Valor de retorno: 0 indica que la llamada se ha enviado para ejecución asíncrona. Un valor distinto de cero indica un fallo en la validación de parámetros y corresponde a AoqErrorCode.
La pista Screen admite solo transmisión ascendente; la suscripción descendente no está implementada. No incluya AoqTrackTypeScreen en config.subscribeTracks. De lo contrario, se retorna AoqECUnSupport y no se inicia ninguna conexión. No habilite el envío con enableSendMediaStream:enable:YES antes de que la conexión tenga éxito. Habilítelo después de que onConnectionStatusChange: reporte Connected.

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:.
- (int)disconnect;
Parámetros: None. Valor de retorno: 0 indica que la llamada se ha enviado para ejecución asíncrona. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

Gestión de dispositivos de audio

startAudioCapture:

Abre el dispositivo de captura de audio (micrófono) 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.
- (int)startAudioCapture:(AoqAudioCaptureConfig * _Nonnull)config;
ParámetroTipoDescripción
configAoqAudioCaptureConfig *Configuración de captura de audio
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode. Por ejemplo, AoqECAudioDeviceRecordingAuthFailed indica que no se ha concedido el permiso de grabación.
Configure NSMicrophoneUsageDescription en Info.plist y obtenga permiso de grabación. Los cambios de estado del dispositivo se notifican a través de onAudioDeviceStateChanged:.

stopAudioCapture

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

muteAudioCapture:

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

startAudioPlayer:

Inicia 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.
- (int)startAudioPlayer:(AoqAudioPlaybackConfig * _Nonnull)config;
ParámetroTipoDescripción
configAoqAudioPlaybackConfig *Configuración de reproducción de audio
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode. Por ejemplo, AoqECAudioDevicePlayoutOccupied indica que el dispositivo de reproducción está ocupado.
Los cambios de estado del dispositivo se notifican a través de onAudioDeviceStateChanged:. Los cambios de ruta de salida se notifican a través de onAudioDeviceRouteChanged:.

stopAudioPlayer

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

pauseAudioPlayer:

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

resumeAudioPlayer:

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

interruptAudioPlayer: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.
- (int)interruptAudioPlayer:(AoqTrackType)trackType fadeMs:(NSInteger)fadeMs;
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista a interrumpir
fadeMsNSIntegerDuración del desvanecimiento de salida en milisegundos. 0 interrumpe la reproducción inmediatamente.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

enableSpeakerphone:

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

isSpeakerphoneEnabled

Verifica si el audio se está reproduciendo actualmente a través del altavoz.
- (BOOL)isSpeakerphoneEnabled;
Parámetros: None. Valor de retorno: YES indica salida por altavoz. NO indica auricular u otra ruta.

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.
- (int)setAudioSessionRestriction:(int)restriction;
ParámetroTipoDescripción
restrictionintMáscara de bits de permisos de AVAudioSession correspondiente a AoqAudioSessionRestriction. Se pueden combinar múltiples banderas mediante OR bit a bit.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
Por defecto, el SDK gestiona completamente AVAudioSession. Utilice este método para restringir el comportamiento del SDK si la aplicación necesita gestionar la categoría o el estado de activación por sí misma.

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.
- (int)setAudioEncoderConfig:(AoqAudioCodecConfig * _Nonnull)config;
ParámetroTipoDescripción
configAoqAudioCodecConfig *Configuración de codificación de audio. Establezca trackType en AoqTrackTypeAudio.
Valor de retorno: 0 en caso de éxito; distinto de cero en caso de fallo (un valor de AoqErrorCode, como AoqECParamInvalid para parámetros no válidos).
codecType especifica el formato de codificación (Opus por defecto). sampleRate y channel deben coincidir con la configuración de captura. bitrate solo se aplica a códecs con pérdida como Opus.

setAudioDecoderConfig:

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

Reproducción de archivos de audio

startAudioFile: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.
- (int)startAudioFile:(NSString * _Nonnull)fileId config:(AoqAudioFileMixConfig * _Nonnull)config;
ParámetroTipoDescripción
fileIdNSString *Identificador de archivo definido por la aplicación utilizado para control posterior
configAoqAudioFileMixConfig *Configuración de reproducción de archivo de audio
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
Los cambios de estado de reproducción se notifican a través de onAudioFileState:. Las llamadas repetidas con el mismo fileId reemplazan la reproducción anterior.

stopAudioFile:

Detiene la reproducción del archivo de audio.
- (int)stopAudioFile:(NSString * _Nonnull)fileId;
ParámetroTipoDescripción
fileIdNSString *Identificador de archivo, que coincide con el valor pasado a startAudioFile:config:
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

pauseAudioFile:

Pausa la reproducción del archivo de audio.
- (int)pauseAudioFile:(NSString * _Nonnull)fileId;
ParámetroTipoDescripción
fileIdNSString *Identificador de archivo
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

resumeAudioFile:

Reanuda la reproducción del archivo de audio. Llame a este método después de pauseAudioFile:.
- (int)resumeAudioFile:(NSString * _Nonnull)fileId;
ParámetroTipoDescripción
fileIdNSString *Identificador de archivo
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

getAudioFileDuration:

Obtiene la duración total de un archivo de audio.
- (long long)getAudioFileDuration:(NSString * _Nonnull)fileId;
ParámetroTipoDescripción
fileIdNSString *Identificador de archivo
Valor de retorno: La duración total en milisegundos. Devuelve 0 si el archivo no está cargado o no existe.

getAudioFileCurrentPosition:

Obtiene la posición de reproducción actual de un archivo de audio.
- (long long)getAudioFileCurrentPosition:(NSString * _Nonnull)fileId;
ParámetroTipoDescripción
fileIdNSString *Identificador de archivo
Valor de retorno: La posición de reproducción actual en milisegundos. Devuelve 0 si el archivo no está cargado o no existe.

setAudioFilePositionMillis:positionMillis:

Establece la posición de reproducción de un archivo de audio (búsqueda).
- (int)setAudioFilePositionMillis:(NSString * _Nonnull)fileId positionMillis:(long long)positionMillis;
ParámetroTipoDescripción
fileIdNSString *Identificador de archivo
positionMillislong longPosición de reproducción objetivo en milisegundos
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

setAudioFileVolume: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.
- (int)setAudioFileVolume:(NSString * _Nonnull)fileId type:(AoqAudioStreamDirection)type volume:(NSInteger)volume;
ParámetroTipoDescripción
fileIdNSString *Identificador de archivo
typeAoqAudioStreamDirectionDirección del volumen. AoqAudioStreamPublish controla la transmisión; AoqAudioStreamPlayout controla la reproducción.
volumeNSIntegerVolumen. Valores válidos: 0-100.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

getAudioFileVolume:type:

Obtiene el volumen actual del archivo de audio.
- (int)getAudioFileVolume:(NSString * _Nonnull)fileId type:(AoqAudioStreamDirection)type;
ParámetroTipoDescripción
fileIdNSString *Identificador de archivo
typeAoqAudioStreamDirectionDirección del volumen
Valor de retorno: El volumen actual (0-100). Devuelve 0 si el archivo no existe.

Secuencias de audio externas

addAudioExternalStream:config:

Añade un flujo de audio externo. Se pueden crear múltiples flujos independientes y distinguirlos por streamId.
- (int)addAudioExternalStream:(NSString * _Nonnull)streamId config:(AoqAudioExternalStreamConfig * _Nonnull)config;
ParámetroTipoDescripción
streamIdNSString *Identificador de flujo externo definido por la aplicación
configAoqAudioExternalStreamConfig *Configuración de flujo de audio externo
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

pushAudioExternalStreamData:data:

Alimenta datos de audio PCM externos en la secuencia especificada.
- (int)pushAudioExternalStreamData:(NSString * _Nonnull)streamId data:(AoqAudioFrameData * _Nonnull)data;
ParámetroTipoDescripción
streamIdNSString *Identificador de flujo externo
dataAoqAudioFrameData *Datos de fotograma de audio PCM
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo. Se devuelve AoqECAudioExternalBufferFull(110) cuando el búfer está lleno.
La memoria referenciada por data.dataPtr necesita permanecer válida solo durante la llamada; el SDK la copia internamente. La tasa de muestreo y el número de canales deben coincidir con la configuración pasada a addAudioExternalStream:config:.

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.
- (int)setAudioExternalStreamVolume:(NSString * _Nonnull)streamId type:(AoqAudioStreamDirection)type volume:(NSInteger)volume;
ParámetroTipoDescripción
streamIdNSString *Identificador de flujo externo
typeAoqAudioStreamDirectionDirección del volumen
volumeNSIntegerVolumen. Valores válidos: 0-100.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

getAudioExternalStreamVolume:type:

Obtiene el volumen actual de la secuencia de audio externa.
- (int)getAudioExternalStreamVolume:(NSString * _Nonnull)streamId type:(AoqAudioStreamDirection)type;
ParámetroTipoDescripción
streamIdNSString *Identificador de flujo externo
typeAoqAudioStreamDirectionDirección del volumen
Valor de retorno: El volumen actual (0-100). Devuelve 0 si el flujo no existe.

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.
- (void)clearAudioExternalStreamBuffer:(NSString * _Nonnull)streamId fadeoutMs:(NSInteger)fadeoutMs;
ParámetroTipoDescripción
streamIdNSString *Identificador de flujo externo
fadeoutMsNSIntegerDuración del desvanecimiento de salida en milisegundos. -1 usa el valor predeterminado, 0 borra el búfer inmediatamente y un valor mayor que 0 retiene la duración especificada para el desvanecimiento de salida.
Valor de retorno: None (void).

removeAudioExternalStream:

Elimina una secuencia de audio externa y libera sus recursos.
- (int)removeAudioExternalStream:(NSString * _Nonnull)streamId;
ParámetroTipoDescripción
streamIdNSString *Identificador de flujo externo
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

Devoluciones de llamada de cuadros de audio

setAudioFrameObserver:

Establece el delegado de fotogramas de audio. Pase delegate=nil para eliminarlo.
- (int)setAudioFrameObserver:(id<AoqAudioFrameDelegate> _Nullable)delegate;
ParámetroTipoDescripción
delegateid<AoqAudioFrameDelegate>Protocolo de delegado de tramas de audio. Pase nil para eliminarlo.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
Establezca primero el delegado con este método, luego llame a enableAudioFrameObserver:audioSource:config: para habilitar callbacks en las posiciones requeridas.

enableAudioFrameObserver:audioSource:config:

Habilita o deshabilita las devoluciones de llamada de cuadros de audio en la posición especificada.
- (int)enableAudioFrameObserver:(BOOL)enabled audioSource:(AoqAudioSource)audioSource config:(AoqAudioObserverConfig * _Nonnull)config;
ParámetroTipoDescripción
enabledBOOLYES habilita las devoluciones de llamada; NO las deshabilita.
audioSourceAoqAudioSourcePosición de la fuente de audio: captura, después del procesamiento 3A, publicación o reproducción
configAoqAudioObserverConfig *Configuración de callback
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
Las devoluciones de llamada se ejecutan en hilos internos del SDK. No realice operaciones que consuman mucho tiempo ni llamadas bloqueantes en ellas. dataPtr es válido solo durante la devolución de llamada. Haga una copia para uso asíncrono.

Indicación de volumen de audio local

enableLocalAudioVolumeIndication:

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

Gestión de dispositivos de video

startVideoCapture:

Abre el dispositivo de captura de video (cámara). El video capturado se envía a través de AoqTrackTypeVideo. Para entrada de video externa (pushExternalVideoCapturedFrame:frame:), establezca isExternal en YES; la cámara no se abre en este modo.
- (int)startVideoCapture:(AoqVideoCaptureConfig * _Nonnull)config;
ParámetroTipoDescripción
configAoqVideoCaptureConfig *Configuración de captura de video.
Valor de retorno: 0 en caso de éxito; distinto de cero en caso de fallo (un valor AoqErrorCode, como AoqECVideoDeviceCameraAuthFailed cuando no se ha concedido el permiso de cámara).
Configure NSCameraUsageDescription en Info.plist y obtenga permiso de cámara. Los cambios de estado del dispositivo se notifican a través de onVideoDeviceStateChanged:.

stopVideoCapture

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

switchCamera:

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

setLocalView:canvas:

Establece o elimina la vista de renderizado de video local. Pase canvas=nil o canvas.view=nil para desvincular el renderizado.
- (int)setLocalView:(AoqTrackType)trackType canvas:(AoqVideoCanvas * _Nullable)canvas;
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista. Establezca en AoqTrackTypeVideo para vista previa local.
canvasAoqVideoCanvas *Lienzo de renderizado de video. Pase nil para desvincularlo.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.

setRemoteView:canvas:

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

Codificación de video y entrada externa

setVideoEncoderConfig:

Configura la codificación de video para la publicación, enrutada por config.trackType. Si isExternal=YES, pushExternalVideoEncodedFrame:frame: envía tramas codificadas directamente sin recodificación por parte del SDK.
- (int)setVideoEncoderConfig:(AoqVideoCodecConfig * _Nonnull)config;
ParámetroTipoDescripción
configAoqVideoCodecConfig *Configuración de codificación de video.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
Antes de usar pushExternalVideoEncodedFrame:, llame a este método con isExternal=YES. Este modo omite la tubería de captura y no requiere startVideoCapture:/startScreenCapture:. Al usar pushExternalVideoCapturedFrame:, mantenga isExternal=NO para que el SDK codifique las tramas.

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.
- (int)setVideoDecoderConfig:(AoqVideoCodecConfig * _Nonnull)config;
ParámetroTipoDescripción
configAoqVideoCodecConfig *Configuración de decodificación de video.
Valor de retorno: 0 en caso de éxito; distinto de cero en caso de fallo. Si config.trackType es AoqTrackTypeScreen, devuelve AoqECUnSupport y no aplica la configuración.
La pista Screen actualmente solo admite publicación, no suscripción. No establezca config.trackType en AoqTrackTypeScreen.

pushExternalVideoCapturedFrame: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.
- (int)pushExternalVideoCapturedFrame:(AoqTrackType)trackType frame:(AoqVideoFrame * _Nonnull)frame;
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista. Para AoqTrackTypeVideo, llame primero a startVideoCapture:(isExternal=YES). Para AoqTrackTypeScreen, llame primero a startScreenCapture:(isExternal=YES).
frameAoqVideoFrame *Datos de fotograma de video externo.
Valor de retorno: 0 en caso de éxito; AoqECVideoExternalCaptureNotEnabled(211) si la captura externa no está habilitada para la pista; AoqECVideoExternalBufferFull(210) si el búfer está lleno; < 0 en otros fallos.
Si frame.timeStamp<=0, el SDK lo completa usando el reloj local. La ruta de copia cero de CVPixelBuffer es compatible (format=AoqVideoPixelFormatCVPixelBuffer).

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:.
- (int)pushExternalVideoEncodedFrame:(AoqTrackType)trackType frame:(AoqVideoEncodedFrame * _Nonnull)frame;
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista. Admite AoqTrackTypeVideo / AoqTrackTypeScreen.
frameAoqVideoEncodedFrame *Fotograma de video codificado externo.
Valor de retorno: 0 en caso de éxito; AoqECVideoExternalEncoderNotEnabled(212) si la codificación externa no está habilitada para la pista; < 0 en caso de fallo.
frame.timeStamp se pasa sin cambios. El SDK no lo completa. El llamador debe asegurarse de que las marcas de tiempo aumenten monótonamente.

Captura de pantalla

- (int)startScreenCapture:(AoqScreenCaptureConfig * _Nonnull)config;
- (int)stopScreenCapture;
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.
- (int)enableSendMediaStream:(AoqTrackType)trackType enable:(BOOL)enable;
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista. Admite AoqTrackTypeAudio/AoqTrackTypeVideo/AoqTrackTypeScreen.
enableBOOLYES habilita el envío; NO deshabilita el envío.
Valor de retorno: 0 indica una llamada exitosa. Un valor menor que 0 indica fallo y corresponde a AoqErrorCode.
Después de la inicialización, llame primero a enableSendMediaStream:enable:NO. Habilite el envío después de que onConnectionStatusChange: reporte Connected para evitar la pérdida de datos antes de que se establezca la conexión.

Devoluciones de llamada de cuadros de video

setVideoFrameObserver:

Establece el delegado de fotogramas de video. Pase delegate=nil para eliminarlo.
- (int)setVideoFrameObserver:(id<AoqVideoFrameDelegate> _Nullable)delegate;
ParámetroTipoDescripción
delegateid<AoqVideoFrameDelegate>Protocolo de delegado de tramas de video. Pase nil para eliminarlo.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
Establezca primero el delegado con este método, luego llame a enableVideoFrameObserver:videoSource:config: para habilitar callbacks en las posiciones requeridas.

enableVideoFrameObserver:videoSource:config:

Habilita o deshabilita las devoluciones de llamada de cuadros de video en la posición especificada.
- (int)enableVideoFrameObserver:(BOOL)enabled videoSource:(AoqVideoSource)videoSource config:(AoqVideoObserverConfig * _Nonnull)config;
ParámetroTipoDescripción
enabledBOOLYES habilita las devoluciones de llamada; NO las deshabilita.
videoSourceAoqVideoSourcePosición de la fuente de video: después de la captura, antes de la codificación o después de la decodificación remota
configAoqVideoObserverConfig *Configuración de devolución de llamada. Use config.trackType para observar la pista de Video o Screen.
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
Las devoluciones de llamada se ejecutan en hilos internos del SDK. No realice operaciones que consuman mucho tiempo en ellas. Solo I420/CVPixelBuffer admite el modo de lectura-escritura (mode=ReadWrite); otros formatos son de solo lectura.

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).
- (int)sendDataMsg:(AoqDataMsg * _Nonnull)msg;
ParámetroTipoDescripción
msgAoqDataMsg *Mensaje de datos
Valor de retorno: 0 indica éxito. Un valor distinto de cero indica fallo y corresponde a AoqErrorCode.
El extremo remoto recibe el mensaje a través de onDataMsg:. El tamaño del mensaje está sujeto a límites internos del SDK. Divida los mensajes demasiado grandes en partes más pequeñas antes de enviarlos.

Callbacks de AoqEngineDelegate

onError:message:

Devolución de llamada de error del motor. Se activa cuando ocurre un error irrecuperable.
- (void)onError:(NSInteger)code message:(NSString * _Nonnull)message;
ParámetroTipoDescripción
codeNSIntegerCódigo de error correspondiente a un valor de enumeración AoqErrorCode
messageNSString *Descripción del error
Valor de retorno: None (void).

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.
- (void)onWarning:(NSInteger)code message:(NSString * _Nonnull)message;
ParámetroTipoDescripción
codeNSIntegerCódigo de advertencia correspondiente a un valor de enumeración AoqWarningCode
messageNSString *Descripción de la advertencia
Valor de retorno: None (void).

onConnectionStatusChange:

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

onStats:

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

onAudioDeviceStateChanged:

Callback para cambios en el estado de captura/reproducción del dispositivo de audio.
- (void)onAudioDeviceStateChanged:(AoqAudioDeviceState * _Nonnull)state;
ParámetroTipoDescripción
stateAoqAudioDeviceState *Estado del dispositivo de audio, incluyendo estado (código de estado) y motivo (motivo del error)
Valor de retorno: None (void).

onAudioDeviceRouteChanged:

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

onAudioDeviceInterrupted:

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

onAudioFileState:

Callback de estado de reproducción de archivo de audio.
- (void)onAudioFileState:(AoqAudioFileState * _Nonnull)state;
ParámetroTipoDescripción
stateAoqAudioFileState *Estado de reproducción del archivo de audio, incluyendo fileId, stateCode y errorCode
Valor de retorno: None (void).

onLocalAudioVolumeIndication:

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

onVideoDeviceStateChanged:

Callback para cambios en el estado de captura del dispositivo de video.
- (void)onVideoDeviceStateChanged:(AoqVideoDeviceState * _Nonnull)state;
ParámetroTipoDescripción
stateAoqVideoDeviceState *Estado del dispositivo de video, incluyendo estado (código de estado) y motivo (motivo del error)
Valor de retorno: None (void).

onDataMsg:

Callback para mensajes de datos en tiempo real recibidos.
- (void)onDataMsg:(AoqDataMsg * _Nonnull)msg;
ParámetroTipoDescripción
msgAoqDataMsg *Mensaje de datos
Valor de retorno: None (void).
Los callbacks se ejecutan en hilos internos del SDK. No realice operaciones que consuman mucho tiempo en ellos. NSData es válido solo durante el callback. Haga una copia para uso asíncrono.

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:.
- (void)onScreenCaptureStateChanged:(AoqScreenCaptureState * _Nonnull)state;
ParámetroTipoDescripción
stateAoqScreenCaptureState *Estado de captura de pantalla, incluyendo estado (código de estado) y motivo (causa del error).
Valor de retorno: None (void).
Started indica que la captura o la entrada externa están listas, no que se hayan enviado medios. Fail y Stopped son estados terminales después de la limpieza.

Callbacks de AoqAudioFrameDelegate

Protocolo de delegado de fotogramas de audio. Todos los métodos son @optional; impleméntelos según sea necesario.
@protocol AoqAudioFrameDelegate <NSObject>
@optional
- (void)onCapturedAudioFrame:(AoqAudioFrameData * _Nonnull)frame;
- (void)onProcessCapturedAudioFrame:(AoqAudioFrameData * _Nonnull)frame;
- (void)onPublishAudioFrame:(AoqTrackType)trackType frame:(AoqAudioFrameData * _Nonnull)frame;
- (void)onPlaybackAudioFrame:(AoqAudioFrameData * _Nonnull)frame;
@end
MétodoCuándo se activaParámetro
onCapturedAudioFrame:Cuando se captura un fotograma de audio sin procesarframe: AoqAudioFrameData *
onProcessCapturedAudioFrame:Fotograma de audio después del procesamiento 3Aframe: AoqAudioFrameData *
onPublishAudioFrame:frame:Fotograma de audio antes de la publicacióntrackType: tipo de pista; frame: AoqAudioFrameData *
onPlaybackAudioFrame:Fotograma de audio remoto antes de la reproducciónframe: AoqAudioFrameData *
Valor de retorno: None (void).
Los callbacks se activan solo después de que enableAudioFrameObserver:audioSource:config: habilite el AoqAudioSource correspondiente. dataPtr es válido solo durante el callback.

onCapturedAudioFrame

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

onProcessCapturedAudioFrame

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

onPublishAudioFrame

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

onPlaybackAudioFrame

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

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.
@protocol AoqVideoFrameDelegate <NSObject>
@optional
- (BOOL)onCapturedVideoFrame:(AoqTrackType)trackType frame:(AoqVideoFrame * _Nonnull)frame;
- (BOOL)onPreEncodeVideoFrame:(AoqTrackType)trackType frame:(AoqVideoFrame * _Nonnull)frame;
- (BOOL)onRemoteVideoFrame:(AoqTrackType)trackType frame:(AoqVideoFrame * _Nonnull)frame;
@end
MétodoCuándo se activaPará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 renderizadotrackType: tipo de pista; frame: AoqVideoFrame *
Valor de retorno: BOOL. YES indica que los datos fueron modificados y deben escribirse de nuevo en el SDK (compatible solo con I420/CVPixelBuffer). NO indica que no hubo modificaciones.
Las devoluciones de llamada se activan solo después de que enableVideoFrameObserver:videoSource:config: habilite el AoqVideoSource correspondiente. NSData/pixelBuffer en frame referencia memoria interna del SDK y es válido solo durante la devolución de llamada. Haga una copia para uso asíncrono.

onCapturedVideoFrame

Se invoca cuando se captura un cuadro de video sin procesar, antes del preprocesamiento.
- (BOOL)onCapturedVideoFrame:(AoqTrackType)trackType frame:(AoqVideoFrame *)frame;
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista (Video/Pantalla)
frameAoqVideoFrame *Datos de fotograma de video capturado
Valor de retorno: BOOL. YES indica que los datos modificados deben escribirse de nuevo en el SDK (compatible solo con I420/CVPixelBuffer). NO indica que no hay modificación.
Las devoluciones de llamada se activan solo después de que enableVideoFrameObserver:videoSource:config: habilite el AoqVideoSource correspondiente. NSData/pixelBuffer en frame referencia memoria interna del SDK y es válido solo durante la devolución de llamada. Haga una copia para uso asíncrono.

onPreEncodeVideoFrame

Se invoca para un cuadro de video después del preprocesamiento y antes de la codificación.
- (BOOL)onPreEncodeVideoFrame:(AoqTrackType)trackType frame:(AoqVideoFrame *)frame;
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista (Video/Pantalla)
frameAoqVideoFrame *Datos de fotograma de video antes de la codificación
Valor de retorno: BOOL. YES indica que los datos modificados deben escribirse de nuevo en el SDK (compatible solo con I420/CVPixelBuffer). NO indica que no hay modificación.
Las devoluciones de llamada se activan solo después de que enableVideoFrameObserver:videoSource:config: habilite el AoqVideoSource correspondiente. NSData/pixelBuffer en frame referencia memoria interna del SDK y es válido solo durante la devolución de llamada. Haga una copia para uso asíncrono.

onRemoteVideoFrame

Se invoca para un cuadro de video remoto después de la decodificación y antes de la renderización.
- (BOOL)onRemoteVideoFrame:(AoqTrackType)trackType frame:(AoqVideoFrame *)frame;
ParámetroTipoDescripción
trackTypeAoqTrackTypeTipo de pista (Video/Pantalla)
frameAoqVideoFrame *Datos de fotograma de video remoto decodificado
Valor de retorno: BOOL. YES indica que los datos modificados deben escribirse de nuevo en el SDK (compatible solo con I420/CVPixelBuffer). NO indica que no hay modificación.
Las devoluciones de llamada se activan solo después de que enableVideoFrameObserver:videoSource:config: habilite el AoqVideoSource correspondiente. NSData/pixelBuffer en frame referencia memoria interna del SDK y es válido solo durante la devolución de llamada. Haga una copia para uso asíncrono.

Tipos de datos y enumeraciones

Tipos comunes

AoqCreateConfig (campos añadidos en v1.3.0)

CampoTipoValor predeterminadoDescripción
maxEncodedVideoFrameBytesNSInteger190 × 1024Tamaño máximo del cuadro codificado en bytes. Aplica solo al codificador JPEG interno del SDK.
enableDropOversizedVideoFrameBOOLNOPara 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.
CampoTipoValor predeterminadoDescripción
routeIndexNSInteger-1Índice de ruta
endpointNSString *""Dirección del servidor (nombre de dominio o dirección IP)
portNSInteger0Puerto UDP del servidor
tcpPortNSInteger0Puerto de respaldo TCP. 0 usa el puerto predeterminado del SDK, 443.

AoqTrackParam.trackMode

CampoTipoValor predeterminadoDescripción
trackModeAoqTrackModeAoqTrackModeSegmentAplica solo a audio descendente.

AoqTrackParam

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

Enumeraciones

AoqTrackMode

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

AoqErrorCode

Valor de enumeración

Valor

Descripción

AoqECOK

0

Éxito

AoqECParamInvalid

1

Parámetro no válido

AoqECStateInvalid

2

Estado no válido

AoqECUnSupport

3

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

AoqECScreen300Error general de uso compartido de pantalla
AoqECScreenAuthFailed310Permiso de uso compartido de pantalla denegado
AoqECScreenStartFailed311Error 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

AoqTrackTypeScreen3Pista de pantalla compartida. Solo enlace ascendente.

AoqWarningCode

Códigos de advertencia.
Valor de enumeraciónValorDescripción
AoqWCOK0Sin advertencia
AoqWCAudio100Advertencia general de audio
AoqWCAudioHowling101Acople de audio detectado
AoqWCAudioDevice120Advertencia general de dispositivo de audio
AoqWCAudioDeviceMicEnumerateError121Error de enumeración de micrófono
AoqWCAudioDeviceMicStartTimeout122Tiempo de espera de inicio del micrófono agotado
AoqWCAudioDeviceRecordingError123Error de grabación
AoqWCAudioDeviceSpeakerEnumerateError124Error de enumeración de altavoces
AoqWCAudioDeviceSpeakerStartTimeout125Tiempo de espera de inicio del altavoz agotado
AoqWCAudioDevicePlayoutError126Error de reproducción
AoqWCVideo200Advertencia general de video
AoqWCVideoCameraEnumerateError201Error de enumeración de cámaras
AoqWCVideoEncoderSwitched202Codificador de video cambiado
AoqWCVideoRenderDowngrade203Renderizado de video degradado

AoqEncoderType

Formatos de medios de pista.
Valor de enumeraciónValorDescripción
AoqEncoderTypeUnknown0Formato desconocido
AoqEncoderTypeAudioPCM1Audio PCM
AoqEncoderTypeAudioOpus2Audio Opus
AoqEncoderTypeVideoH2643Video H.264
AoqEncoderTypeVideoJpeg4Video JPEG
AoqEncoderTypeDataText5Datos de texto

AoqConnectionStatus

Estados de conexión del motor.
Valor de enumeraciónValorDescripción
AoqConnectionStatusDisconnected0Desconectado
AoqConnectionStatusConnecting1Conectando
AoqConnectionStatusConnected2Conectado
AoqConnectionStatusFailed3Error de conexión

AoqMirrorMode

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

AoqOrientationMode

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

Tipos de audio

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.
CampoTipoValor predeterminadoDescripción
isExternalBOOLNOSi se debe usar captura externa
isVoipModeBOOLNOSi se debe habilitar el modo VoIP (AEC por hardware). Efectivo en dispositivos móviles.
channelNSInteger1Número de canales. Admite 1/2.

AoqAudioCodecConfig

Configuración de códec de audio compartida por setAudioEncoderConfig: y setAudioDecoderConfig:.
CampoTipoValor predeterminadoDescripción
trackTypeAoqTrackTypeAoqTrackTypeAudioTipo de pista
codecTypeAoqEncoderTypeAoqEncoderTypeAudioOpusFormato de codificación
sampleRateNSInteger48000Tasa de muestreo en Hz
channelNSInteger1Número de canales
bitrateNSInteger32000Tasa 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ónValorDescripción
AoqAudioSessionNone0Sin restricciones (el SDK gestiona completamente AVAudioSession)
AoqAudioSessionSetCategory1Restringe al SDK de establecer la categoría
AoqAudioSessionConfigureSession2Restringe al SDK de configurar la sesión
AoqAudioSessionDeactivateSession4Restringe al SDK de desactivar la sesión
AoqAudioSessionActivateSession8Restringe al SDK de activar la sesión

AoqAudioDeviceStateCode

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

AoqAudioDeviceState

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

AoqAudioDeviceRouteType

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

Tipos de archivos de audio

AoqAudioFileMixConfig

Configuración de reproducción de archivos de audio.
CampoTipoValor predeterminadoDescripción
fileNameNSString *""Nombre del archivo incluyendo su ruta. No debe estar vacío.
cyclesNSInteger-1Recuento de bucles. -1 realiza un bucle indefinidamente.
startPosMsNSInteger0Posición inicial de reproducción en milisegundos
publishVolumeNSInteger100Volumen de publicación. Valores válidos: 0-100.
playoutVolumeNSInteger100Volumen de reproducción. Valores válidos: 0-100.

AoqAudioFileStateCode

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

AoqAudioFileErrorCode

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

AoqAudioFileState

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

Tipos de flujo de audio externo y volumen

AoqAudioVolume

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

AoqAudioVolumeIndicationConfig

CampoTipoValor predeterminadoDescripción
reportSpeechBOOLNOSi se debe detectar voz.
intervalNSInteger0Intervalo 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.
smoothNSInteger3Factor 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ónValorDescripción
AoqAudioStreamPublish0Publicando flujo
AoqAudioStreamPlayout1Flujo de reproducción

AoqAudioExternalStreamToggle

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

AoqAudioExternalStreamConfig

Configuración de flujo de audio externo.
CampoTipoValor predeterminadoDescripción
trackTypeAoqTrackTypeAoqTrackTypeAudioTipo de pista de audio
codecTypeAoqEncoderTypeAoqEncoderTypeAudioPCMFormato de flujo de audio
channelsNSInteger1Número de canales
sampleRateNSInteger48000Tasa de muestreo en Hz
playoutVolumeNSInteger100Volumen de reproducción (0-100)
publishVolumeNSInteger100Volumen de publicación (0-100)
maxBufferDurationNSInteger1000Duración máxima del búfer en milisegundos
enable3ABOOLNOSi se debe aplicar el procesamiento 3A al PCM de entrada

AoqAudioFrameData

Datos de fotograma de audio externo.
CampoTipoValor predeterminadoDescripción
dataPtrvoid *NULLPuntero a datos de audio PCM sin procesar (@Nullable)
dataSizeNSInteger0Tamaño de datos PCM en bytes
numOfSamplesNSInteger0Número de muestras por canal
bytesPerSampleNSInteger0Bytes por muestra
numOfChannelsNSInteger0Número de canales
samplesPerSecNSInteger0Muestras por segundo (tasa de muestreo)
pushSequenceint32_t0Ronda de entrada PCM
timeStampint64_t0Marca de tiempo
autoGenMuteBOOLNOVá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ónValorDescripción
AoqAudioSourceCaptured0Datos de audio capturados
AoqAudioSourceProcessCaptured1Datos de audio después del procesamiento 3A
AoqAudioSourcePublish2Datos de audio publicados
AoqAudioSourcePlayback3Datos de audio de reproducción

AoqAudioObserverMode

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

AoqAudioObserverConfig

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

Tipos de video

AoqScreenCaptureState

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

AoqScreenCaptureStateCode

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

AoqScreenCaptureConfig

CampoTipoValor predeterminadoDescripción
isExternalBOOLNOSi la aplicación suministra tramas de pantalla sin procesar.
appGroupNSString *nilID 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

CampoTipoValor predeterminadoDescripción
trackTypeAoqTrackTypeAoqTrackTypeVideoTipo de pista
codecTypeAoqEncoderTypeAoqEncoderTypeVideoH264Códec
widthNSInteger540Ancho en píxeles
heightNSInteger960Altura en píxeles
fpsNSInteger5Tasa de fotogramas
bitrateNSInteger500000Tasa de bits en bps
minBitrateNSInteger128000Tasa de bits mínima en bps
keyframeIntervalNSInteger2Intervalo de fotogramas clave en segundos
mirrorModeAoqMirrorModeAoqMirrorModeDisabledModo espejo
orientationModeAoqOrientationModeAoqOrientationModeAutoModo de orientación
isExternalBOOLNOSi la aplicación suministra fotogramas codificados.

AoqRenderMode

Modos de renderizado.
Valor de enumeraciónValorDescripción
AoqRenderModeAuto0Modo automático
AoqRenderModeStretch1Modo de estiramiento. La imagen se distorsiona cuando las relaciones de aspecto difieren.
AoqRenderModeFill2Modo letterbox. Se añaden barras negras arriba y abajo o a los lados cuando las relaciones de aspecto difieren.
AoqRenderModeCrop3Modo 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.
CampoTipoValor predeterminadoDescripción
viewUIView *nilVista de visualización. Pase nil para eliminar el vínculo de renderizado (@Nullable).
renderModeAoqRenderModeAoqRenderModeAutoModo de renderización

AoqCameraDirection

Dirección de la cámara.
Valor de enumeraciónValorDescripción
AoqCameraDirectionFront0Cámara frontal
AoqCameraDirectionBack1Cámara trasera (efectivo en dispositivos móviles)

AoqVideoCaptureConfig

Configuración de captura de video.
CampoTipoValor predeterminadoDescripción
widthNSInteger1280Ancho de captura en píxeles. Se ignora cuando isExternal=YES.
heightNSInteger720Alto de captura en píxeles. Se ignora cuando isExternal=YES.
fpsNSInteger15Tasa de cuadros de captura. Se ignora cuando isExternal=YES (la sincronización se determina por la entrada de cuadros).
isExternalBOOLNOIndica si se debe usar captura externa. Cuando es YES, la cámara no se abre; proporcione los cuadros mediante pushExternalVideoCapturedFrame:.
cameraDirectionAoqCameraDirectionAoqCameraDirectionFrontDirección de la cámara. Se ignora cuando isExternal=YES.

AoqVideoPixelFormat

Formatos de píxeles de video.
Valor de enumeraciónValorDescripción
AoqVideoPixelFormatUnknown0Formato desconocido
AoqVideoPixelFormatI4201I420 (formato planar YUV)
AoqVideoPixelFormatNV122NV12 (formato semiplanar YUV)
AoqVideoPixelFormatNV213NV21 (formato semiplanar YUV)
AoqVideoPixelFormatBGRA4BGRA (32 bits)
AoqVideoPixelFormatRGBA5RGBA (32 bits)
AoqVideoPixelFormatCVPixelBuffer6Ruta de copia cero de Apple. Establezca pixelBuffer en un CVPixelBufferRef.
iOS no admite TextureOES/Texture2D. Su ruta de copia cero utiliza CVPixelBuffer.

AoqVideoFrame

Datos de video externos, también utilizados en callbacks de fotogramas de video (AoqVideoFrameDelegate).
CampoTipoValor predeterminadoDescripción
formatAoqVideoPixelFormatAoqVideoPixelFormatUnknownFormato de píxel
widthNSInteger0Ancho en píxeles
heightNSInteger0Altura en píxeles
dataNSData *nilDatos en formato empaquetado (NV12/NV21/BGRA/RGBA) (@Nullable)
dataYNSData *nilDatos del plano Y I420 (@Nullable)
dataUNSData *nilDatos del plano U I420 (@Nullable)
dataVNSData *nilDatos del plano V I420 (@Nullable)
strideYNSInteger0Stride del plano Y
strideUNSInteger0Stride del plano U
strideVNSInteger0Stride del plano V
pixelBufferCVPixelBufferRefNULLBúfer de copia cero de Apple. Se utiliza cuando format=AoqVideoPixelFormatCVPixelBuffer (@Nullable).
timeStampint64_t0Marca de tiempo en milisegundos. Si es 0, el SDK la completa utilizando el reloj local.
iOS no tiene campos textureId/transformMatrix/eglContext. Utilice pixelBuffer para acceso de copia cero.

AoqVideoCodecType

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

AoqVideoEncodedFrame

Cuadro de video codificado externamente. La aplicación codifica el cuadro; el SDK lo empaqueta y lo envía sin recodificar.
CampoTipoValor predeterminadoDescripción
codecAoqVideoCodecTypeAoqVideoCodecTypeJPEGFormato de codificación
dataNSData *No vacíoDatos codificados
widthNSInteger0Ancho en píxeles
heightNSInteger0Altura en píxeles
timeStampint64_t0Marca de tiempo en milisegundos. Si es 0, el SDK la completa utilizando el reloj local.

AoqVideoDeviceStateCode

Códigos de estado de captura del dispositivo de video.
Valor de enumeraciónValorDescripción
AoqVideoDeviceNone0Sin estado
AoqVideoDeviceCaptureStarting1Iniciando cámara
AoqVideoDeviceCaptureStarted2Cámara iniciada
AoqVideoDeviceCaptureStopping3Deteniendo cámara
AoqVideoDeviceCaptureStopped4Cámara detenida
AoqVideoDeviceCaptureFail5Fallo al iniciar la cámara

AoqVideoDeviceState

Estado de captura del dispositivo de video.
CampoTipoValor predeterminadoDescripción
stateAoqVideoDeviceStateCodeAoqVideoDeviceNoneEstado de captura del dispositivo
reasonNSInteger0Có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ónValorDescripción
AoqVideoSourceCaptured0Datos de video después de la captura (antes del preprocesamiento)
AoqVideoSourcePreEncode1Datos de video antes de la codificación (después del preprocesamiento)
AoqVideoSourceRemote2Datos de video remoto después de la decodificación y antes de la renderización

AoqVideoObserverMode

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

AoqVideoObserverAlignment

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

AoqVideoObserverConfig

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

Tipos de mensajes de datos

AoqDataMsg

Estructura de datos de mensajes en tiempo real.
CampoTipoValor predeterminadoDescripción
dataNSData *NSData vacíoDatos 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.
CampoTipoDescripción
trackTypeAoqTrackTypeTipo de pista
bitrateNSUIntegerTasa de bits en bps
bytesNSUIntegerTotal de bytes enviados
encodeVolumeNSUIntegerVolumen de codificación de publicación

AoqVideoPublishStats

Estadísticas de publicación de video.
CampoTipoDescripción
trackTypeAoqTrackTypeTipo de pista
bitrateNSUIntegerTasa de bits en bps
bytesNSUIntegerTotal de bytes enviados
encodeFpsNSUIntegerTasa de cuadros de codificación

AoqAudioSubscribeStats

Estadísticas de suscripción de audio.
CampoTipoDescripción
trackTypeAoqTrackTypeTipo de pista
bitrateNSUIntegerTasa de bits en bps
bytesNSUIntegerTotal de bytes recibidos
playVolumeNSUIntegerVolumen de reproducción

AoqVideoSubscribeStats

Estadísticas de suscripción de video.
CampoTipoDescripción
trackTypeAoqTrackTypeTipo de pista
bitrateNSUIntegerTasa de bits en bps
bytesNSUIntegerTotal de bytes recibidos
decodeFpsNSUIntegerTasa de fotogramas de decodificación
renderFpsNSUIntegerTasa de fotogramas de renderizado

AoqDataMsgPublishStats

Estadísticas de publicación de mensajes de datos.
CampoTipoDescripción
trackTypeAoqTrackTypeTipo de pista
bitrateNSUIntegerTasa de bits en bps
bytesNSUIntegerTotal de bytes enviados

AoqDataMsgSubscribeStats

Estadísticas de suscripción a mensajes de datos.
CampoTipoDescripción
trackTypeAoqTrackTypeTipo de pista
bitrateNSUIntegerTasa de bits en bps
bytesNSUIntegerTotal de bytes recibidos