Tradução de apoio para consulta. Código e identificadores técnicos preservados. Consultar referência original ↗
Controle de fluxo de mídia
Controle de envio/parada de fluxo de mídia AOQ SDK
enableSendMediaStream controla se o cliente envia fluxos de mídia de áudio ou vídeo para o serviço de IA, proporcionando controle preciso sobre quando a transmissão de mídia começa em cenários de protocolo AOQ.
Visão geral
enableSendMediaStream controla se o cliente envia fluxos de mídia de áudio ou vídeo para o serviço de IA. Em cenários de protocolo AOQ, alguns modelos exigem um session.updated confirmação antes que eles possam aceitar dados de mídia. Use esta API para começar a enviar na hora certa.
Definição de API
iOS / Mac
```swift
// iOS / Mac
func enableSendMediaStream(_ trackType: AoqTrackType, enable: Bool)
```
Android
```java
// Android
void enableSendMediaStream(AoqTrackType trackType, boolean enable)
```
HarmonyOS (ArkTS)
```javascript
// HarmonyOS (ArkTS)
enableSendMediaStream(trackType: AoqTrackType, enable: boolean): void
```
Parâmetros:
| Parâmetro | Tipo | Descrição |
|---|---|---|
| trackType | AoqTrackType | Tipo de faixa de mídia: .audio ou .video |
| habilitar | Bool | true = começar a enviar; false = pausar envio |
Fluxo de controle
Um fluxo típico de controle de fluxo de mídia é o seguinte:
Exemplo (iOS Swift)
Desative o envio 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 após receber 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
- Quando ligar: Deve ser chamado depois
createEngine. Chamar antes da criação do mecanismo não tem efeito. - Comportamento padrão: se esta API não for chamada, o SDK começará a enviar fluxos de mídia imediatamente após uma conexão bem-sucedida.
- Compatibilidade do modelo: Alguns modelos requerem um
session.updatedevento antes de aceitarem dados de mídia. Use o padrão "desativar primeiro e depois ativar" para obter compatibilidade máxima. - Controle independente: Áudio e vídeo podem ser controlados de forma independente – por exemplo, você pode enviar áudio sem enviar vídeo.
Cenários comuns
| Cenário | Ação | Descrição |
|---|---|---|
| Antes de conectar ao modelo | enable(.audio, false) |
Aguarde session.updated antes de enviar |
| Depois de receber session.updated | enable(.audio, true) |
A IA está pronta; comece a enviar |