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.
destroy
getVersion
connect:
disconnect
Manajemen perangkat audio
Konfigurasi codec audio
Manajemen perangkat video
AoqTrackTypeVideo sebagai parameter trackType untuk setLocalView dan setRemoteView.
Encoding video dan input eksternal
AoqTrackTypeVideo sebagai parameter trackType.
Kontrol aliran media
trackType menerima AoqTrackTypeAudio atau AoqTrackTypeVideo.
Pemutaran file audio
Aliran audio eksternal
Messaging real-time
Panggilan balik bingkai audio
Callback frame video
Callback AoqEngineDelegate
Semua metode callback bersifat @required.
AoqAudioFrameDelegate (@optional)
AoqVideoFrameDelegate (@optional)
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 |
| Listener kelas abstrak |
Kontrol AVAudioSession |
| Tidak ada padanan |
Callback fokus audio | Tidak ada (menggunakan |
|
Format piksel video | Mendukung zero-copy CVPixelBuffer | Mendukung TextureOES / Texture2D |
Tampilan rendering video | UIView | SurfaceView / TextureView |
Konfigurasi mode Bluetooth | Tidak ada |
|
Penulisan ulang callback frame video | I420 / CVPixelBuffer | I420 |