すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Model Studio:AOQ クライアント SDK iOS API リファレンス

最終更新日:Nov 06, 2026

AOQ Client SDK iOS API リファレンスは、エンジンライフサイクル、オーディオ/ビデオデバイス管理、コーデック設定、メディアストリーム制御、オーディオファイル再生、外部オーディオストリーム、リアルタイムメッセージング、フレームコールバック、デリゲートプロトコル、およびデータ型と列挙型を網羅しています。

API インデックス

注記AOQ SDK は汎用の動画 API を提供します。Qwen-Audio-Realtime は動画の入出力をサポートしていません。その他のモデルのメディア機能は、それぞれのアクセスドキュメントをご覧ください。

エンジンライフサイクル

API

説明

createEngine:delegate:

エンジンインスタンス (シングルトン) を作成します。

destroy

エンジンインスタンスを破棄します。

getVersion

SDK バージョン文字列を取得します。

connect:

リレーサーバーに接続します。

disconnect

サーバーから切断します。

オーディオデバイス管理

API

説明

startAudioCapture:

オーディオキャプチャデバイス (マイク) を開きます。

stopAudioCapture

オーディオキャプチャデバイスを閉じます。

muteAudioCapture:

オーディオキャプチャをミュートまたはミュート解除します。

startAudioPlayer:

オーディオ再生 (リモートオーディオの再生) を開始します。

stopAudioPlayer

オーディオ再生を停止します。

pauseAudioPlayer:

オプションでフェードアウトしながら、オーディオ再生を一時停止します。

resumeAudioPlayer:

オプションでフェードインしながら、オーディオ再生を再開します。

interruptAudioPlayer:fadeMs:

現在のオーディオコールターンを中断します。

enableSpeakerphone:

オーディオ出力をスピーカーとイヤピースの間で切り替えます。

isSpeakerphoneEnabled

スピーカーが現在アクティブかどうかを確認します。

setAudioSessionRestriction:

AVAudioSession の制御権限を設定します。

オーディオコーデック設定

API

説明

setAudioEncoderConfig:

オーディオエンコーディングパラメーターを設定します。

setAudioDecoderConfig:

オーディオデコーディングパラメーターを設定します。

ビデオデバイス管理

API

説明

startVideoCapture:

ビデオキャプチャデバイス (カメラ) を開きます。

stopVideoCapture

ビデオキャプチャデバイスを閉じます。

switchCamera:

フロントカメラとリアカメラを切り替えます。

setLocalView:canvas:

ローカルビデオのレンダリングビューを設定または削除します。

setRemoteView:canvas:

リモートビデオのレンダリングビューを設定または削除します。

ビデオエンコーディングと外部入力

API

説明

setVideoEncoderConfig:

ビデオエンコーディングパラメーターを設定します。

pushExternalVideoCapturedFrame:frame:

外部でキャプチャした RAW ビデオフレームをプッシュします。

pushExternalVideoEncodedFrame:frame:

外部でエンコード済みのビデオフレームをプッシュします。

メディアストリーム制御

API

説明

enableSendMediaStream:enable:

ローカルメディアストリーム送信を有効または無効にします。

オーディオファイルの再生

API

説明

startAudioFile:config:

ローカルのオーディオファイルのストリーミングを開始します。

stopAudioFile:

オーディオファイルの再生を停止します。

pauseAudioFile:

オーディオファイルの再生を一時停止します。

resumeAudioFile:

オーディオファイルの再生を再開します。

getAudioFileDuration:

オーディオファイルの総再生時間を取得します。

getAudioFileCurrentPosition:

現在の再生位置を取得します。

setAudioFilePositionMillis:positionMillis:

オーディオファイル内の位置にシークします。

setAudioFileVolume:type:volume:

オーディオファイルの音量を設定します。

getAudioFileVolume:type:

現在のオーディオファイルの音量を取得します。

外部オーディオストリーム

API

説明

addAudioExternalStream:config:

外部オーディオストリームを追加します。

removeAudioExternalStream:

外部オーディオストリームを削除します。

pushAudioExternalStreamData:data:

外部 PCM オーディオデータをプッシュします。

setAudioExternalStreamVolume:type:volume:

外部オーディオストリームの音量を設定します。

getAudioExternalStreamVolume:type:

外部オーディオストリームの音量を取得します。

clearAudioExternalStreamBuffer:fadeoutMs:

外部オーディオストリームのバッファーをクリアします。

リアルタイムメッセージング

API

説明

sendDataMsg:

リアルタイムデータメッセージを送信します。

オーディオフレームコールバック

API

説明

setAudioFrameObserver:

オーディオフレームデータのコールバックデリゲートを設定します。

enableAudioFrameObserver:audioSource:config:

指定したポイントでのオーディオフレームコールバックを有効または無効にします。

ビデオフレームコールバック

API

説明

setVideoFrameObserver:

ビデオフレームデータのコールバックデリゲートを設定します。

enableVideoFrameObserver:videoSource:config:

指定したポイントでのビデオフレームコールバックを有効または無効にします。

AoqEngineDelegate コールバック

コールバック

説明

onError:message:

エンジンエラーのコールバックです。

onWarning:message:

エンジン警告のコールバックです。

onConnectionStatusChange:

接続状態の変更コールバックです。

onStats:

統計のコールバックです。

onAudioDeviceStateChanged:

オーディオデバイスの状態変更コールバックです。

onAudioDeviceRouteChanged:

オーディオ出力ルートの変更コールバックです。

onAudioDeviceInterrupted:

オーディオデバイスの中断コールバックです。

onVideoDeviceStateChanged:

ビデオデバイスの状態変更コールバックです。

onAudioFileState:

オーディオファイル再生状態のコールバックです。

onDataMsg:

リアルタイムデータメッセージ受信のコールバックです。

AoqAudioFrameDelegate

オーディオフレームデータのリスナープロトコルです。

AoqVideoFrameDelegate

ビデオフレームデータのリスナープロトコルです。

API 詳細

エンジンライフサイクル

createEngine:delegate:

エンジンインスタンスを作成します。SDK はエンジンをグローバルシングルトンとして保持します。

+ (instancetype _Nonnull)createEngine:(AoqCreateConfig * _Nonnull)config
                             delegate:(id<AoqEngineDelegate> _Nonnull)delegate;

destroy

+ (int)destroy;

getVersion

+ (NSString * _Nonnull)getVersion;

connect:

Relay サーバーに接続します。AppServer が接続パラメーターをクライアントに配信します。この呼び出しは直ちに戻ります。実際の接続結果は onConnectionStatusChange: コールバックで通知されます。

注記汎用 SDK API のドキュメントでは、AppServer が /api/v1/allocate を通じて接続パラメーターを割り当てます。特定のモデルについては、Qwen-Omni-Realtime AOQ アクセス、Qwen-Audio-Realtime AOQ アクセス、Qwen-LiveTranslate-Realtime AOQ アクセスをご覧ください。

- (int)connect:(AoqConnectConfig * _Nonnull)config;

disconnect

- (int)disconnect;

オーディオデバイス管理

- (int)startAudioCapture:(AoqAudioCaptureConfig * _Nonnull)config;
- (int)stopAudioCapture;
- (int)muteAudioCapture:(BOOL)mute;
- (int)startAudioPlayer:(AoqAudioPlaybackConfig * _Nonnull)config;
- (int)stopAudioPlayer;
- (int)pauseAudioPlayer:(NSInteger)fadeMs;
- (int)resumeAudioPlayer:(NSInteger)fadeMs;
- (int)interruptAudioPlayer:(AoqTrackType)trackType fadeMs:(NSInteger)fadeMs;
- (int)enableSpeakerphone:(BOOL)enable;
- (BOOL)isSpeakerphoneEnabled;
- (int)setAudioSessionRestriction:(int)restriction;

オーディオコーデック設定

- (int)setAudioEncoderConfig:(AoqAudioCodecConfig * _Nonnull)config;
- (int)setAudioDecoderConfig:(AoqAudioCodecConfig * _Nonnull)config;

ビデオデバイス管理

- (int)startVideoCapture:(AoqVideoCaptureConfig * _Nonnull)config;
- (int)stopVideoCapture;
- (int)switchCamera:(AoqCameraDirection)direction;
- (int)setLocalView:(AoqTrackType)trackType canvas:(AoqVideoCanvas * _Nullable)canvas;
- (int)setRemoteView:(AoqTrackType)trackType canvas:(AoqVideoCanvas * _Nullable)canvas;

setLocalView と setRemoteView の trackType パラメーターには、AoqTrackTypeVideo を指定します。

ビデオエンコーディングと外部入力

- (int)setVideoEncoderConfig:(AoqVideoCodecConfig * _Nonnull)config;
- (int)pushExternalVideoCapturedFrame:(AoqTrackType)trackType frame:(AoqVideoFrame * _Nonnull)frame;
- (int)pushExternalVideoEncodedFrame:(AoqTrackType)trackType frame:(AoqVideoEncodedFrame * _Nonnull)frame;

trackType パラメーターには、AoqTrackTypeVideo を指定します。

メディアストリームコントロール

- (int)enableSendMediaStream:(AoqTrackType)trackType enable:(BOOL)enable;

trackType には、AoqTrackTypeAudio または AoqTrackTypeVideo を指定できます。

オーディオファイル再生

- (int)startAudioFile:(NSString * _Nonnull)fileId config:(AoqAudioFileMixConfig * _Nonnull)config;
- (int)stopAudioFile:(NSString * _Nonnull)fileId;
- (int)pauseAudioFile:(NSString * _Nonnull)fileId;
- (int)resumeAudioFile:(NSString * _Nonnull)fileId;
- (long long)getAudioFileDuration:(NSString * _Nonnull)fileId;
- (long long)getAudioFileCurrentPosition:(NSString * _Nonnull)fileId;
- (int)setAudioFilePositionMillis:(NSString * _Nonnull)fileId positionMillis:(long long)positionMillis;
- (int)setAudioFileVolume:(NSString * _Nonnull)fileId type:(AoqAudioStreamDirection)type volume:(NSInteger)volume;
- (int)getAudioFileVolume:(NSString * _Nonnull)fileId type:(AoqAudioStreamDirection)type;

外部オーディオストリーム

- (int)addAudioExternalStream:(NSString * _Nonnull)streamId config:(AoqAudioExternalStreamConfig * _Nonnull)config;
- (int)pushAudioExternalStreamData:(NSString * _Nonnull)streamId data:(AoqAudioFrameData * _Nonnull)data;
- (int)setAudioExternalStreamVolume:(NSString * _Nonnull)streamId type:(AoqAudioStreamDirection)type volume:(NSInteger)volume;
- (int)getAudioExternalStreamVolume:(NSString * _Nonnull)streamId type:(AoqAudioStreamDirection)type;
- (void)clearAudioExternalStreamBuffer:(NSString * _Nonnull)streamId fadeoutMs:(NSInteger)fadeoutMs;
- (int)removeAudioExternalStream:(NSString * _Nonnull)streamId;

リアルタイムメッセージング

- (int)sendDataMsg:(AoqDataMsg * _Nonnull)msg;

オーディオフレームコールバック

- (int)setAudioFrameObserver:(id<AoqAudioFrameDelegate> _Nullable)delegate;
- (int)enableAudioFrameObserver:(BOOL)enabled audioSource:(AoqAudioSource)audioSource config:(AoqAudioObserverConfig * _Nonnull)config;

ビデオフレームコールバック

- (int)setVideoFrameObserver:(id<AoqVideoFrameDelegate> _Nullable)delegate;
- (int)enableVideoFrameObserver:(BOOL)enabled videoSource:(AoqVideoSource)videoSource config:(AoqVideoObserverConfig * _Nonnull)config;

AoqEngineDelegate コールバック

すべてのコールバックメソッドは @required です。

- (void)onError:(NSInteger)code message:(NSString * _Nonnull)message;
- (void)onWarning:(NSInteger)code message:(NSString * _Nonnull)message;
- (void)onConnectionStatusChange:(AoqConnectionStatus)status;
- (void)onStats:(AoqStats * _Nonnull)stats;
- (void)onAudioDeviceStateChanged:(AoqAudioDeviceState * _Nonnull)state;
- (void)onAudioDeviceRouteChanged:(NSInteger)routeType;
- (void)onAudioDeviceInterrupted:(BOOL)interrupt;
- (void)onAudioFileState:(AoqAudioFileState * _Nonnull)state;
- (void)onVideoDeviceStateChanged:(AoqVideoDeviceState * _Nonnull)state;
- (void)onDataMsg:(AoqDataMsg * _Nonnull)msg;

AoqAudioFrameDelegate (@optional)

- (void)onCapturedAudioFrame:(AoqAudioFrameData * _Nonnull)frame;
- (void)onProcessCapturedAudioFrame:(AoqAudioFrameData * _Nonnull)frame;
- (void)onPublishAudioFrame:(AoqTrackType)trackType frame:(AoqAudioFrameData * _Nonnull)frame;
- (void)onPlaybackAudioFrame:(AoqAudioFrameData * _Nonnull)frame;

AoqVideoFrameDelegate (@optional)

- (BOOL)onCapturedVideoFrame:(AoqVideoFrame * _Nonnull)frame;
- (BOOL)onPreEncodeVideoFrame:(AoqTrackType)trackType frame:(AoqVideoFrame * _Nonnull)frame;
- (BOOL)onRemoteVideoFrame:(AoqTrackType)trackType frame:(AoqVideoFrame * _Nonnull)frame;

データ型と列挙型

AoqErrorCode

列挙値

値

説明

AoqErrorCodeOK

0

成功

AoqErrorCodeParamInvalid

1

無効なパラメーター

AoqErrorCodeStateInvalid

2

無効な状態

AoqErrorCodeUnSupport

3

サポートされていない操作

AoqErrorCodeAudio

100

オーディオの一般エラー

AoqErrorCodeAudioExternalBufferFull

110

外部オーディオバッファーがフルです。

AoqErrorCodeAudioDevice

120

オーディオデバイスの一般エラー

AoqErrorCodeAudioDeviceRecordingAuthFailed

121

録音権限がありません。

AoqErrorCodeAudioDeviceRecordingOccupied

122

録音デバイスが使用中です。

AoqErrorCodeAudioDeviceRecordingBackgroundStart

123

バックグラウンドでの録音開始に失敗しました。

AoqErrorCodeAudioDeviceRecordingStartFail

124

録音の開始に失敗しました。

AoqErrorCodeAudioDevicePlayoutOccupied

125

再生デバイスが使用中です。

AoqErrorCodeAudioDevicePlayoutBackgroundStart

126

バックグラウンドでの再生開始に失敗しました。

AoqErrorCodeAudioDevicePlayoutStartFail

127

再生の開始に失敗しました。

AoqErrorCodeAudioDeviceEarpieceRequiresVoipMode

128

イヤピースには VoIP モードが必要です。

AoqErrorCodeVideo

200

ビデオの一般エラー

AoqErrorCodeVideoExternalBufferFull

210

外部ビデオバッファーがフルです。

AoqErrorCodeVideoExternalCaptureNotEnabled

211

外部ビデオキャプチャが有効になっていません。

AoqErrorCodeVideoExternalEncoderNotEnabled

212

外部ビデオエンコーダーが有効になっていません。

AoqErrorCodeVideoDevice

220

ビデオデバイスの一般エラー

AoqErrorCodeVideoDeviceCameraOpenFail

221

カメラの起動に失敗しました。

AoqErrorCodeVideoDeviceCameraAuthFailed

222

カメラの権限がありません。

AoqErrorCodeVideoDeviceCameraOccupied

223

カメラが使用中です。

AoqErrorCodeVideoDeviceCameraRunningError

224

カメラのランタイムエラー

AoqErrorCodeVideoCodec

230

ビデオコーデックの一般エラー

AoqErrorCodeVideoCodecEncoderInitFail

231

ビデオエンコーダーの初期化に失敗しました。

AoqErrorCodeVideoRender

240

ビデオレンダリングの一般エラー

AoqErrorCodeVideoRenderCreateFail

241

ビデオレンダラーの作成に失敗しました。

AoqErrorCodeVideoRenderDrawError

242

ビデオレンダリングの描画エラー

AoqTrackType

列挙値

値

説明

AoqTrackTypeAudio

0

オーディオトラック

AoqTrackTypeVideo

1

ビデオトラック

AoqTrackTypeData

2

データメッセージングトラック

AoqConnectConfig

フィールド

型

説明

token

NSString *

認証トークン

sid

NSString *

セッション ID

certFingerprint

NSString *

サーバー証明書のフィンガープリント

relayEndpoints

NSArray<AoqRelayEndpoint *> *

リレーエンドポイントのリスト

workspaceIdHash

NSString *

ワークスペース ID のハッシュ

publishTracks

NSArray<AoqTrackParam *> *

パブリッシュするローカルトラック

subscribeTracks

NSArray<AoqTrackParam *> *

サブスクライブするリモートトラック

AoqAudioPlaybackConfig

フィールド

型

デフォルト

説明

isVoipMode

BOOL

NO

YES:VoIP モード (ハードウェア AEC) を有効にします。モバイル端末に適用されます。

isDefaultSpeaker

BOOL

YES

YES:スピーカーから出力します。NO:イヤピースから出力します。

isExternal

BOOL

NO

YES:外部オーディオ出力を使用します。

channel

NSInteger

1

チャネル数:1 または 2

統計のデータ型

AoqStats

フィールド

型

説明

audioPublishStats

NSArray<AoqAudioPublishStats *> *

オーディオのパブリッシュ統計

videoPublishStats

NSArray<AoqVideoPublishStats *> *

ビデオのパブリッシュ統計

dataMsgPublishStats

NSArray<AoqDataMsgPublishStats *> *

データメッセージのパブリッシュ統計

audioSubscribeStats

NSArray<AoqAudioSubscribeStats *> *

オーディオのサブスクライブ統計

videoSubscribeStats

NSArray<AoqVideoSubscribeStats *> *

ビデオのサブスクライブ統計

dataMsgSubscribeStats

NSArray<AoqDataMsgSubscribeStats *> *

データメッセージのサブスクライブ統計

networkStats

AoqNetworkStats *

ネットワーク統計

AoqNetworkStats

フィールド

型

説明

sendBitrate

NSUInteger

送信ビットレート (bps)

sendBytes

NSUInteger

送信した累積バイト数

recvBitrate

NSUInteger

受信ビットレート (bps)

recvBytes

NSUInteger

受信した累積バイト数

loss

NSUInteger

パケット損失率

rtt

NSUInteger

ラウンドトリップタイム (ms)

AoqAudioPublishStats

trackType / bitrate / bytes / encodeVolume

AoqVideoPublishStats

trackType / bitrate / bytes / encodeFps

AoqAudioSubscribeStats

trackType / bitrate / bytes / playVolume

AoqVideoSubscribeStats

trackType / bitrate / bytes / decodeFps / renderFps

AoqDataMsgPublishStats / AoqDataMsgSubscribeStats

trackType / bitrate / bytes

Android SDK との主な違い

違い

iOS

Android

コールバックパターン

@protocol デリゲート

抽象クラスリスナー

AVAudioSession の制御

setAudioSessionRestriction: (iOS のみ)

該当なし

音声フォーカス コールバック

なし (代わりに onAudioDeviceInterrupted: を使用)

onAudioDeviceFocusChanged

ビデオピクセルフォーマット

CVPixelBuffer のゼロコピーをサポート

TextureOES / Texture2D をサポート

ビデオレンダリングビュー

UIView

SurfaceView / TextureView

Bluetooth モード設定

isBTScoMode なし (OS が管理)

AoqCreateConfig.isBTScoMode

ビデオフレームコールバックのライトバック

I420 / CVPixelBuffer

I420