enableSendMediaStream は、クライアントが AI サービスに音声またはビデオのメディアストリームを送信するかどうかを制御し、AOQ プロトコルシナリオでメディア伝送が開始されるタイミングを正確に制御できるようにします。
概要
enableSendMediaStream は、クライアントが AI サービスにオーディオまたはビデオのメディアストリームを送信するかどうかを制御します。 AOQ プロトコルシナリオでは、一部のモデルはメディアデータを受け入れる前に session.updated の確認が必要です。 この API を使用して、適切なタイミングで送信を開始します。
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
パラメーター
パラメーター | 型 | 説明 |
|---|---|---|
trackType | AoqTrackType | メディアトラックタイプ: |
enable | ブール値 |
|
制御フロー
一般的なメディアストリーム制御フローは次のとおりです。
例 (iOS Swift)
接続前に送信を無効化
// 接続前にオーディオとビデオの送信を無効化し、モデルが準備完了になる前にデータを受信しないようにします。
engine.enableSendMediaStream(.audio, enable: false)
engine.enableSendMediaStream(.video, enable: false)
// 接続を開始します
engine.connect(config)
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" {
// AIがセッション設定を確認しました。メディア送信を開始します
engine.enableSendMediaStream(.audio, enable: true)
engine.enableSendMediaStream(.video, enable: true)
}
}
重要な注意事項
- 呼び出しのタイミング:
createEngineの呼び出し後に呼び出す必要があります。エンジンが作成される前に呼び出しても、効果はありません。 - デフォルトの動作: この API が呼び出されない場合、SDK は接続成功後、直ちにメディアストリームの送信を開始します。
- モデルの互換性: モデルによっては、メディアデータを受け入れる前に
session.updatedイベントが必要です。最大限の互換性を確保するために、「一度無効化してから有効化する」パターンを使用してください。 - 独立制御: オーディオとビデオは独立して制御できます。たとえば、ビデオを送信せずにオーディオのみを送信できます。
適用シナリオ
シナリオ | 操作 | 説明 |
|---|---|---|
モデルへの接続前 |
|
|
|
| AI is ready; start sending |