enableSendMediaStream détermine si le client envoie des flux audio ou vidéo au service d'IA. Cette méthode permet de contrôler précisément le démarrage de la transmission dans les scénarios utilisant le protocole AOQ.
Présentation
L'API enableSendMediaStream gère l'envoi des flux audio et vidéo par le client vers le service d'IA. Dans le cadre du protocole AOQ, certains modèles nécessitent une confirmation session.updated avant d'accepter les données multimédias. Utilisez cette API pour déclencher l'envoi au moment opportun.
Définition de l'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
Paramètres :
Paramètre | Type | Description |
|---|---|---|
trackType | AoqTrackType | Type de piste multimédia : |
enable | Bool |
|
Flux de contrôle
Le déroulement typique du contrôle des flux multimédias est le suivant :
Exemple (iOS Swift)
Désactiver l'envoi avant la connexion
// 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)
Activer après réception de 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)
}
}
Remarques importantes
- Moment d'appel : Appelez cette méthode après
createEngine. Tout appel antérieur à la création du moteur reste sans effet. - Comportement par défaut : Sans appel explicite à cette API, le SDK envoie les flux multimédias dès l'établissement de la connexion.
- Compatibilité des modèles : Certains modèles attendent un événement
session.updatedavant d'accepter les données multimédias. Adoptez le schéma « désactiver d'abord, puis activer » pour garantir une compatibilité maximale. - Contrôle indépendant : L'audio et la vidéo se gèrent séparément. Vous pouvez ainsi envoyer le son sans transmettre la vidéo.
Scénarios courants
Scénario | Action | Description |
|---|---|---|
Avant la connexion au modèle |
| Attendez la réception de session.updated avant tout envoi. |
Après réception de session.updated |
| L'IA est prête ; lancez la transmission. |