Skip to main content

Control de envío de transmisión de medios

enableSendMediaStream controla si el cliente envía transmisiones de medios de audio o video al servicio de IA, lo que le brinda un control preciso sobre cuándo comienza la transmisión de medios en escenarios de protocolo AOQ.

Visión general

enableSendMediaStream controla si el cliente envía transmisiones de medios de audio o video al servicio de IA. En escenarios de protocolo AOQ, algunos modelos requieren una confirmación de session.updated antes de poder aceptar datos de medios. Utilice esta API para comenzar a enviar en el momento adecuado.

Definición de API

iOS / Mac
// iOS / Mac
func enableSendMediaStream(_ trackType: AoqTrackType, enable: Bool)
Android
// Android
void enableSendMediaStream(AoqTrackType trackType, boolean enable)
HarmonyOS (ArkTS)
// HarmonyOS (ArkTS)
enableSendMediaStream(trackType: AoqTrackType, enable: boolean): void
Parámetros:

Parámetro

Tipo

Descripción

trackType

AoqTrackType

Tipo de pista de medios: .audio o .video

enable

Bool

true = comenzar a enviar; false = pausar el envío

Flujo de control

Un flujo de control de transmisión de medios típico es el siguiente:
111

Ejemplo (iOS Swift)

Deshabilitar el envío antes de conectar

// Disable audio and video sending before connecting to prevent the model
// from receiving data before it is ready
engine.enableSendMediaStream(.audio, enable: false)
engine.enableSendMediaStream(.video, enable: false)

// Initiate the connection
engine.connect(config)

Habilitar después de recibir session.updated

func onDataMsg(_ msg: AoqDataMsg) {
    guard let obj = try? JSONSerialization.jsonObject(with: msg.data) as? [String: Any],
          let type = obj["type"] as? String else { return }

    if type == "session.updated" {
        // The AI has confirmed the session configuration; start sending media
        engine.enableSendMediaStream(.audio, enable: true)
        engine.enableSendMediaStream(.video, enable: true)
    }
}

Notas importantes

  • Cuándo llamar: Debe llamarse después de createEngine. Llamar antes de que se cree el motor no tiene ningún efecto.
  • Comportamiento predeterminado: Si no se llama a esta API, el SDK comienza a enviar transmisiones de medios inmediatamente después de una conexión exitosa.
  • Compatibilidad del modelo: Algunos modelos requieren un evento session.updated antes de aceptar datos de medios. Utilice el patrón "deshabilitar primero, luego habilitar" para obtener la máxima compatibilidad.
  • Control independiente: El audio y el video se pueden controlar de forma independiente; por ejemplo, puede enviar audio sin enviar video.

Escenarios comunes

Escenario

Acción

Descripción

Antes de conectarse al modelo

enable(.audio, false)

Espere a session.updated antes de enviar

Después de recibir session.updated

enable(.audio, true)

La IA está lista; comenzar a enviar