Skip to main content
Ikhtisar SDK AOQ

Referensi API AOQ Client SDK iOS

Referensi API AOQ Client SDK iOS mencakup siklus hidup engine, manajemen perangkat audio/video, konfigurasi codec, kontrol aliran media, pemutaran file audio, aliran audio eksternal, messaging real-time, callback frame, protokol delegate, serta tipe data dan enumerasi.

Indeks API

Engine lifecycle

API

Deskripsi

createEngine:delegate:

Buat instans engine (singleton)

destroy

Hapus instans engine

getVersion

Ambil string versi SDK

connect:

Hubungkan ke server Relay

disconnect

Putuskan koneksi dari server

Manajemen perangkat audio

API

Deskripsi

startAudioCapture:

Buka perangkat perekam audio (mikrofon).

stopAudioCapture

Tutup perangkat capture audio

muteAudioCapture:

Bisukan atau aktifkan kembali capture audio

startAudioPlayer:

Mulai pemutaran audio (mainkan audio remote)

stopAudioPlayer

Hentikan pemutaran audio

pauseAudioPlayer:

Jeda pemutaran audio dengan fade-out opsional

resumeAudioPlayer:

Lanjutkan pemutaran audio dengan fade-in opsional

interruptAudioPlayer:fadeMs:

Interupsi giliran panggilan audio saat ini

enableSpeakerphone:

Alihkan output audio antara speaker dan earpiece

isSpeakerphoneEnabled

Periksa apakah speaker sedang aktif

setAudioSessionRestriction:

Atur izin kontrol AVAudioSession

Konfigurasi codec audio

API

Deskripsi

setAudioEncoderConfig:

Atur parameter encoding audio

setAudioDecoderConfig:

Atur parameter decoding audio

Manajemen perangkat video

API

Deskripsi

startVideoCapture:

Buka perangkat capture video (kamera)

stopVideoCapture

Tutup perangkat capture video

switchCamera:

Alihkan antara kamera depan dan belakang

setLocalView:canvas:

Atur atau hapus tampilan rendering video lokal

setRemoteView:canvas:

Atur atau hapus tampilan rendering video remote

Encoding video dan input eksternal

API

Deskripsi

setVideoEncoderConfig:

Atur parameter encoding video

pushExternalVideoCapturedFrame:frame:

Dorong frame video mentah yang ditangkap secara eksternal

pushExternalVideoEncodedFrame:frame:

Dorong frame video yang telah diencode secara eksternal

Kontrol aliran media

API

Deskripsi

enableSendMediaStream:enable:

Aktifkan atau nonaktifkan pengiriman aliran media lokal

Pemutaran file audio

API

Deskripsi

startAudioFile:config:

Mulai streaming file audio lokal

stopAudioFile:

Hentikan pemutaran file audio

pauseAudioFile:

Jeda pemutaran file audio

resumeAudioFile:

Lanjutkan pemutaran file audio

getAudioFileDuration:

Ambil durasi total file audio

getAudioFileCurrentPosition:

Ambil posisi pemutaran saat ini

setAudioFilePositionMillis:positionMillis:

Lompat ke posisi tertentu dalam file audio

setAudioFileVolume:type:volume:

Atur volume file audio

getAudioFileVolume:type:

Ambil volume file audio saat ini

Aliran audio eksternal

API

Deskripsi

addAudioExternalStream:config:

Tambahkan aliran audio eksternal

removeAudioExternalStream:

Hapus aliran audio eksternal

pushAudioExternalStreamData:data:

Dorong data audio PCM eksternal

setAudioExternalStreamVolume:type:volume:

Atur volume untuk aliran audio eksternal

getAudioExternalStreamVolume:type:

Ambil volume untuk aliran audio eksternal

clearAudioExternalStreamBuffer:fadeoutMs:

Bersihkan buffer untuk aliran audio eksternal

Messaging real-time

API

Deskripsi

sendDataMsg:

Kirim pesan data real-time

Callback frame audio

API

Deskripsi

setAudioFrameObserver:

Atur delegate callback data frame audio

enableAudioFrameObserver:audioSource:config:

Aktifkan atau nonaktifkan callback frame audio pada titik tertentu

Callback bingkai video

API

Deskripsi

setVideoFrameObserver:

Atur delegate callback data frame video

enableVideoFrameObserver:videoSource:config:

Aktifkan atau nonaktifkan callback frame video pada titik tertentu

Callback AoqEngineDelegate

Callback

Deskripsi

onError:message:

Callback error engine

onWarning:message:

Callback peringatan engine

onConnectionStatusChange:

Callback perubahan status koneksi

onStats:

Callback statistik

onAudioDeviceStateChanged:

Callback perubahan status perangkat audio

onAudioDeviceRouteChanged:

Callback perubahan rute output audio

onAudioDeviceInterrupted:

Callback interupsi perangkat audio

onVideoDeviceStateChanged:

Callback perubahan status perangkat video

onAudioFileState:

Callback status pemutaran file audio

onDataMsg:

Callback pesan data real-time diterima

AoqAudioFrameDelegate

Protokol listener data frame audio

AoqVideoFrameDelegate

Protokol listener data frame video

Detail API

Engine lifecycle

createEngine:delegate:

Membuat instans engine. SDK menyimpan engine sebagai singleton global.
+ (instancetype _Nonnull)createEngine:(AoqCreateConfig * _Nonnull)config
                             delegate:(id<AoqEngineDelegate> _Nonnull)delegate;

destroy

+ (int)destroy;

getVersion

+ (NSString * _Nonnull)getVersion;

connect:

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

disconnect

- (int)disconnect;

Manajemen perangkat audio

- (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;

Konfigurasi codec audio

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

Manajemen perangkat video

- (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;
Gunakan AoqTrackTypeVideo sebagai parameter trackType untuk setLocalView dan setRemoteView.

Encoding video dan input eksternal

- (int)setVideoEncoderConfig:(AoqVideoCodecConfig * _Nonnull)config;
- (int)pushExternalVideoCapturedFrame:(AoqTrackType)trackType frame:(AoqVideoFrame * _Nonnull)frame;
- (int)pushExternalVideoEncodedFrame:(AoqTrackType)trackType frame:(AoqVideoEncodedFrame * _Nonnull)frame;
Gunakan AoqTrackTypeVideo sebagai parameter trackType.

Kontrol aliran media

- (int)enableSendMediaStream:(AoqTrackType)trackType enable:(BOOL)enable;
trackType menerima AoqTrackTypeAudio atau AoqTrackTypeVideo.

Pemutaran file audio

- (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;

Aliran audio eksternal

- (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;

Messaging real-time

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

Panggilan balik bingkai audio

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

Callback frame video

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

Callback AoqEngineDelegate

Semua metode callback bersifat @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;

Tipe data dan enumerasi

AoqErrorCode

Nilai enum

Nilai

Deskripsi

AoqErrorCodeOK

0

Berhasil

AoqErrorCodeParamInvalid

1

Parameter tidak valid

AoqErrorCodeStateInvalid

2

Status tidak valid

AoqErrorCodeUnSupport

3

Operasi tidak didukung

AoqErrorCodeAudio

100

Error umum audio

AoqErrorCodeAudioExternalBufferFull

110

Buffer audio eksternal penuh

AoqErrorCodeAudioDevice

120

Error umum perangkat audio

AoqErrorCodeAudioDeviceRecordingAuthFailed

121

Izin merekam tidak diberikan

AoqErrorCodeAudioDeviceRecordingOccupied

122

Perangkat perekam sedang digunakan

AoqErrorCodeAudioDeviceRecordingBackgroundStart

123

Gagal memulai perekaman di latar belakang

AoqErrorCodeAudioDeviceRecordingStartFail

124

Gagal memulai perekaman

AoqErrorCodeAudioDevicePlayoutOccupied

125

Perangkat pemutaran sedang digunakan

AoqErrorCodeAudioDevicePlayoutBackgroundStart

126

Gagal memulai pemutaran di latar belakang

AoqErrorCodeAudioDevicePlayoutStartFail

127

Gagal memulai pemutaran

AoqErrorCodeAudioDeviceEarpieceRequiresVoipMode

128

Earpiece memerlukan mode VoIP

AoqErrorCodeVideo

200

Error umum video

AoqErrorCodeVideoExternalBufferFull

210

Buffer video eksternal penuh

AoqErrorCodeVideoExternalCaptureNotEnabled

211

Capture video eksternal tidak diaktifkan

AoqErrorCodeVideoExternalEncoderNotEnabled

212

Encoder video eksternal tidak diaktifkan

AoqErrorCodeVideoDevice

220

Error umum perangkat video

AoqErrorCodeVideoDeviceCameraOpenFail

221

Gagal membuka kamera

AoqErrorCodeVideoDeviceCameraAuthFailed

222

Izin kamera tidak diberikan

AoqErrorCodeVideoDeviceCameraOccupied

223

Kamera sedang digunakan

AoqErrorCodeVideoDeviceCameraRunningError

224

Error runtime kamera

AoqErrorCodeVideoCodec

230

Error umum codec video

AoqErrorCodeVideoCodecEncoderInitFail

231

Inisialisasi encoder video gagal

AoqErrorCodeVideoRender

240

Error umum rendering video

AoqErrorCodeVideoRenderCreateFail

241

Pembuatan renderer video gagal

AoqErrorCodeVideoRenderDrawError

242

Kesalahan rendering video saat menggambar

AoqTrackType

Nilai enum

Nilai

Deskripsi

AoqTrackTypeAudio

0

Track audio

AoqTrackTypeVideo

1

Video Track

AoqTrackTypeData

2

Track Data Messaging

AoqConnectConfig

Field

Type

Deskripsi

token

NSString *

Token autentikasi

sid

NSString *

ID sesi

certFingerprint

NSString *

Sidik jari sertifikat server

relayEndpoints

NSArray<AoqRelayEndpoint *> *

Daftar endpoint Relay

workspaceIdHash

NSString *

Hash ID ruang kerja

publishTracks

NSArray<AoqTrackParam *> *

Track lokal yang akan dipublikasikan

subscribeTracks

NSArray<AoqTrackParam *> *

Track jarak jauh untuk berlangganan

AoqAudioPlaybackConfig

Field

Tipe

Default

Deskripsi

isVoipMode

BOOL

NO

YES: aktifkan mode VoIP (AEC hardware); berlaku untuk perangkat mobile

isDefaultSpeaker

BOOL

YES

YES: default ke speaker; NO: earpiece

isExternal

BOOL

NO

YES: output audio eksternal

channel

NSInteger

1

Jumlah channel: 1 atau 2

Tipe statistik

AoqStats

Field

Tipe

Deskripsi

audioPublishStats

NSArray<AoqAudioPublishStats *> *

Statistik publikasi audio

videoPublishStats

NSArray<AoqVideoPublishStats *> *

Statistik publikasi video

dataMsgPublishStats

NSArray<AoqDataMsgPublishStats *> *

Statistik publikasi pesan data

audioSubscribeStats

NSArray<AoqAudioSubscribeStats *> *

Statistik langganan audio

videoSubscribeStats

NSArray<AoqVideoSubscribeStats *> *

Statistik langganan video

dataMsgSubscribeStats

NSArray<AoqDataMsgSubscribeStats *> *

Statistik langganan pesan data

networkStats

AoqNetworkStats *

Statistik jaringan

AoqNetworkStats

Field

Tipe

Deskripsi

sendBitrate

NSUInteger

Bitrate pengiriman (bps)

sendBytes

NSUInteger

Total byte terkirim

recvBitrate

NSUInteger

Bitrate penerimaan (bps)

recvBytes

NSUInteger

Total byte diterima

loss

NSUInteger

Laju loss paket

rtt

NSUInteger

Round-trip time (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

Perbedaan utama dari SDK Android

Perbedaan

iOS

Android

Pola callback

@protocol delegate

Listener kelas abstrak

Kontrol AVAudioSession

setAudioSessionRestriction: (khusus iOS)

Tidak ada padanan

Callback fokus audio

Tidak ada (menggunakan onAudioDeviceInterrupted: sebagai gantinya)

onAudioDeviceFocusChanged

Format piksel video

Mendukung zero-copy CVPixelBuffer

Mendukung TextureOES / Texture2D

Tampilan rendering video

UIView

SurfaceView / TextureView

Konfigurasi mode Bluetooth

Tidak ada isBTScoMode (dikelola oleh OS)

AoqCreateConfig.isBTScoMode

Penulisan ulang callback frame video

I420 / CVPixelBuffer

I420

Pembuatan Gambar
  • FAQ
Video Generation
Model Dunia
Audio
  • Pembuatan audio
Realtime API
Penyematan Teks
TokenPlan
Model production