全部产品
Search
文档中心

ApsaraVideo Live:Referensi API AliRtcEngine

更新时间:Nov 16, 2025

Topik ini menjelaskan API dari SDK ApsaraVideo Real-time Communication untuk iOS.

Daftar Isi

API Dasar

API

Deskripsi fungsi

sharedInstance

Membuat instance AliRtcEngine (pola singleton).

destroy[1/2]

Menghancurkan instance AliRtcEngine (sinkron).

destroy[2/2]

Menghancurkan instance AliRtcEngine (asinkron).

setH5CompatibleMode

Menetapkan mode kompatibilitas H5.

getH5CompatibleMode

Memeriksa apakah kompatibilitas H5 diaktifkan.

getSdkVersion

Mendapatkan nomor versi SDK.

API Saluran

API

Deskripsi fungsi

setChannelProfile

Menetapkan profil saluran.

setAudioProfile

Menetapkan profil audio.

isAudioOnly

Memeriksa apakah mode saat ini hanya audio.

setAudioOnlyMode

Menetapkan mode ke hanya audio atau audio dan video.

joinChannel[1/3]

Bergabung ke saluran.

joinChannel[2/3]

Bergabung ke saluran.

joinChannel[3/3]

Bergabung ke saluran.

leaveChannel

Keluar dari saluran.

isInCall

Memeriksa apakah pengguna berada di saluran.

setClientRole

Menetapkan peran pengguna.

getCurrentClientRole

Mendapatkan peran pengguna.

refreshAuthInfo

Memperbarui informasi autentikasi.

refreshAuthInfoWithToken

Memperbarui informasi autentikasi.

API Penerbitan dan Berlangganan

API

Deskripsi fungsi

publishLocalAudioStream

Menetapkan apakah akan menerbitkan aliran audio lokal. Aliran audio diterbitkan secara default.

isLocalAudioStreamPublished

Memeriksa apakah aliran audio lokal sedang diterbitkan.

setDefaultSubscribeAllRemoteAudioStreams

Menetapkan apakah akan berlangganan aliran audio jarak jauh secara default. Semua aliran audio jarak jauh berlangganan secara default.

Panggil API ini sebelum bergabung ke saluran.

subscribeRemoteAudioStream

Menghentikan atau melanjutkan berlangganan aliran audio pengguna jarak jauh tertentu.

subscribeAllRemoteAudioStreams

Menghentikan atau melanjutkan berlangganan semua aliran audio jarak jauh.

publishLocalVideoStream

Menetapkan apakah akan menerbitkan aliran video lokal.

isLocalVideoStreamPublished

Memeriksa apakah aliran video lokal sedang diterbitkan.

setDefaultSubscribeAllRemoteVideoStreams

Menetapkan apakah akan berlangganan aliran video jarak jauh secara default. Semua aliran video jarak jauh berlangganan secara default.

Panggil API ini sebelum bergabung ke saluran.

subscribeRemoteVideoStream

Menghentikan atau melanjutkan berlangganan aliran video pengguna jarak jauh.

subscribeAllRemoteVideoStreams

Menghentikan atau melanjutkan berlangganan semua aliran video jarak jauh.

subscribeRemoteMediaStream[1/2]

Menghentikan atau melanjutkan berlangganan aliran media pengguna jarak jauh tertentu.

Gunakan API ini ketika aliran audio dan video ada dan perlu dikontrol.

subscribeRemoteMediaStream[2/2]

Menghentikan atau melanjutkan berlangganan aliran media pengguna jarak jauh tertentu.

Gunakan API ini ketika aliran audio dan video ada dan perlu dikontrol.

subscribeRemoteDestChannelStream

Menghentikan atau melanjutkan berlangganan aliran media pengguna jarak jauh tertentu di berbagai saluran.

subscribeRemoteDestChannelAllStream

Berlangganan aliran semua pengguna di saluran target.

setRemoteAudioVolume

Menetapkan volume audio jarak jauh.

API manajemen perangkat audio

API

Deskripsi fungsi

muteLocalMic

Menetapkan apakah akan menghentikan penerbitan audio lokal.

muteRemoteAudioPlaying

Menetapkan apakah akan menghentikan pemutaran aliran audio jarak jauh.

muteAllRemoteAudioPlaying

Menghentikan atau melanjutkan pemutaran semua audio jarak jauh.

startAudioCapture[1/2]

Memulai penangkapan audio.

startAudioCapture[2/2]

Memulai penangkapan audio.

stopAudioCapture

Menghentikan penangkapan audio.

enableSpeakerphone

Menetapkan output audio ke earpiece atau speaker.

isEnableSpeakerphone

Mendapatkan perangkat output audio saat ini, earpiece atau speaker.

enableAudioVolumeIndication

Mengaktifkan fitur deteksi volume.

enableEarBack

Mengaktifkan pemantauan in-ear.

setEarBackVolume

Menetapkan volume pemantauan in-ear (iOS saja).

startAudioPlayer

Memulai pemutaran audio.

stopAudioPlayer

Menghentikan pemutaran audio.

setPlayoutVolume

Menetapkan volume pemutaran.

setRecordingVolume

Menetapkan volume penangkapan.

playAudioFileTest

Memulai pengujian perangkat pemutaran audio.

stopAudioFileTest

Menghentikan pengujian perangkat pemutaran audio.

startAudioCaptureTest

Memulai pengujian perangkat penangkapan audio.

stopAudioCaptureTest

Menghentikan pengujian perangkat penangkapan audio.

setDefaultAudioRoutetoSpeakerphone

Menetapkan perangkat output default.

Perubahan suara audio dan gema

API

Deskripsi fungsi

setAudioEffectVoiceChangerMode

Menetapkan mode efek pengubah suara.

setAudioEffectPitchValue

Menetapkan parameter perubahan pitch.

setAudioEffectReverbMode

Menetapkan mode efek gema.

setAudioEffectReverbParamType

Menetapkan jenis efek gema dan parameter spesifiknya.

Input audio kustom

API

Deskripsi fungsi

addExternalAudioStream

Menambahkan aliran audio eksternal.

pushExternalAudioStream

Memasukkan data aliran audio eksternal.

setExternalAudioStream:publishVolume

Menetapkan volume penerbitan.

getExternalAudioStreamPublishVolume

Mendapatkan volume penerbitan.

setExternalAudioStream:playoutVolume

Menetapkan volume pemutaran untuk aliran audio eksternal.

getExternalAudioStreamPlayoutVolume

Mendapatkan volume pemutaran aliran audio eksternal.

removeExternalAudioStream

Menghapus aliran eksternal.

Akord audio

API

Deskripsi fungsi

getAudioFileInfo

Mendapatkan informasi tentang file akord audio.

startAudioAccompanyWithFile

Memulai pemutaran file akord.

stopAudioAccompany

Menghentikan pemutaran file akord.

setAudioAccompanyVolume

Menetapkan volume akord.

setAudioAccompanyPublishVolume

Menetapkan volume penerbitan file akord.

getAudioAccompanyPublishVolume

Mendapatkan volume penerbitan file akord.

setAudioAccompanyPlayoutVolume

Menetapkan volume pemutaran file akord.

getAudioAccompanyPlayoutVolume

Mendapatkan volume pemutaran file akord.

pauseAudioAccompany

Menjeda pemutaran akord.

resumeAudioAccompany

Melanjutkan pemutaran akord.

getAudioAccompanyDuration

Mendapatkan durasi file akord.

getAudioAccompanyCurrentPosition

Mendapatkan posisi pemutaran akord saat ini.

setAudioAccompanyPosition

Menetapkan posisi pemutaran akord.

File efek suara

API

Deskripsi fungsi

preloadAudioEffectWithSoundId

Memuat awal file efek suara.

unloadAudioEffectWithSoundId

Membongkar file efek suara yang telah dimuat sebelumnya.

playAudioEffectWithSoundId

Memulai pemutaran efek suara.

stopAudioEffectWithSoundId

Menghentikan pemutaran efek suara.

stopAllAudioEffects

Menghentikan pemutaran semua efek suara.

pauseAudioEffectWithSoundId

Menjeda efek suara.

pauseAllAudioEffects

Menjeda semua efek suara.

resumeAudioEffectWithSoundId

Melanjutkan file efek suara tertentu.

resumeAllAudioEffects

Melanjutkan semua file efek suara.

setAudioEffectPublishVolumeWithSoundId

Menetapkan volume pencampuran untuk menerbitkan efek suara.

getAudioEffectPublishVolumeWithSoundId

Mendapatkan volume pencampuran untuk menerbitkan efek suara.

setAllAudioEffectsPublishVolume

Menetapkan volume pencampuran untuk menerbitkan semua efek suara.

setAudioEffectPlayoutVolumeWithSoundId

Menetapkan volume pemutaran lokal untuk efek suara.

getAudioEffectPlayoutVolumeWithSoundId

Mendapatkan volume pemutaran lokal untuk efek suara.

setAllAudioEffectsPlayoutVolume

Menetapkan volume pemutaran lokal untuk semua efek suara.

Merekam file audio dan video

API

Deskripsi fungsi

startRecord

Merekam file audio dan video (AAC, WAV, MP4).

stopRecord

Menghentikan perekaman file audio dan video.

API manajemen perangkat video

API

Deskripsi fungsi

setLocalViewConfig

Menetapkan jendela rendering dan parameter gambar untuk pratinjau lokal.

setCameraCapturerConfiguration

Menetapkan preferensi penangkapan kamera.

enableLocalVideo

Menonaktifkan atau mengaktifkan kembali penangkapan video lokal.

muteLocalCamera

Menetapkan apakah akan menghentikan penerbitan aliran video lokal.

setRemoteViewConfig

Menetapkan jendela rendering dan parameter gambar untuk video jarak jauh.

isCameraOn

Memeriksa apakah kamera menyala.

setVideoEncoderConfiguration

Menetapkan properti pengkodean video.

setVideoDecoderConfiguration

Menetapkan properti dekode video.

switchCamera

Beralih antara kamera depan dan belakang. Kamera depan digunakan secara default.

getCurrentCameraDirection

Mendapatkan arah kamera saat ini.

startPreview

Memulai pratinjau lokal.

stopPreview

Menghentikan pratinjau lokal.

setCameraZoom

Menetapkan zoom kamera.

GetCameraMaxZoomFactor

Mendapatkan faktor zoom maksimum kamera.

GetCurrentZoom

Mendapatkan faktor zoom maksimum kamera.

SetExposure

Menetapkan eksposur kamera.

GetCurrentExposure

Mendapatkan eksposur kamera.

GetMinExposure

Mendapatkan eksposur kamera minimum.

GetMaxExposure

Mendapatkan eksposur kamera maksimum.

setCameraFlash

Mengaktifkan atau menonaktifkan lampu kilat kamera.

isCameraFocusPointSupported

Memeriksa apakah kamera mendukung fokus manual.

isCameraExposurePointSupported

Memeriksa apakah kamera mendukung pengaturan titik eksposur.

setCameraFocusPoint

Menetapkan titik fokus manual untuk kamera.

setCameraExposurePoint

Menetapkan titik eksposur untuk kamera.

isCameraAutoFocusFaceModeSupported

Memeriksa apakah kamera mendukung autofokus berbasis wajah.

setCameraAutoFocusFaceModeEnabled

Menetapkan autofokus berbasis wajah untuk kamera.

setVideoMirrorMode

Menetapkan mode cermin untuk pratinjau dan ingest aliran.

SetCapturePipelineScaleMode

Menetapkan waktu penskalaan pipeline penangkapan. Menentukan apakah data video diskalakan segera setelah ditangkap atau selama pengkodean.

Konfigurasi callback data video

API

Deskripsi fungsi

registerVideoFrameWithObserver

Mendaftarkan callback data video.

unregisterVideoSampleWithObserver

Membatalkan pendaftaran callback data video.

registerLocalVideoTextureObserver

Mendaftarkan callback tekstur video.

unregisterLocalVideoTextureObserver

Membatalkan pendaftaran callback tekstur video.

snapshotVideo

Mengambil tangkapan layar dari tampilan kamera.

registerVideoSampleObserver

Mendaftarkan callback output data video.

unRegisterVideoSampleObserver

Membatalkan pendaftaran callback output data video.

Konfigurasi callback data audio

API

Deskripsi fungsi

enableAudioFrameObserver

Menetapkan parameter callback audio.

registerAudioFrameObserver

Mendaftarkan callback data audio.

Input video kustom

API

Deskripsi fungsi

setExternalVideoSource

Mengaktifkan sumber input video eksternal.

pushExternalVideoFrame

Memasukkan data video.

API berbagi layar

API

Deskripsi fungsi

startScreenShare

Memulai ingest aliran berbagi layar.

startScreenShare

Memulai ingest aliran berbagi layar.

Catatan

API ini sudah tidak digunakan lagi.

stopScreenShare

Menghentikan ingest aliran berbagi layar.

setAudioShareAppVolume

Menetapkan volume aliran audio yang dibagikan.

isScreenSharePublished

Memeriksa apakah berbagi layar sedang diterbitkan.

setScreenShareEncoderConfiguration

Mengonfigurasi parameter pengkodean berbagi layar.

API streaming langsung bypass

API

Deskripsi fungsi

startPublishLiveStreamWithURL

Memulai streaming langsung bypass.

updatePublishLiveStreamWithURL

Memperbarui parameter streaming langsung bypass.

stopPublishLiveStreamWithURL

Menghentikan streaming langsung bypass.

GetPublishLiveStreamStateWithURL

Mendapatkan status streaming langsung bypass.

API deteksi kualitas jaringan

API

Deskripsi fungsi

startLastmileDetect

Memulai deteksi kualitas jaringan.

stopLastmileDetect

Menghentikan deteksi kualitas jaringan.

SEI

API

Deskripsi fungsi

sendMediaExtensionMsg

Mendorong aliran SEI.

sendMediaExtensionMsgEx

Mendorong aliran SEI (diperluas).

API Lainnya

API

Deskripsi fungsi

setParameter

Menetapkan parameter kustom.

getParameter

Mendapatkan parameter kustom.

setLogDirPath

Menetapkan jalur penyimpanan untuk file log SDK.

setLogLevel

Menetapkan tingkat log.

setAudioSessionOperationRestriction

Menetapkan izin kontrol SDK untuk AVAudioSession.

setDeviceOrientationMode

Menetapkan orientasi perangkat.

getNetworkTime

Mendapatkan stempel waktu jaringan.

sendDataChannelMessage

Mengirim pesan saluran data.

Callbacks

AliRtcEngineDelegate

API

Deskripsi fungsi

onConnectionStatusChange

Callback untuk perubahan status koneksi jaringan. Anda perlu menangani callback ini.

onLocalDeviceException

Callback untuk pengecualian perangkat lokal. Anda perlu menangani callback ini.

onAuthInfoWillExpire

Pemberitahuan bahwa token autentikasi akan segera kedaluwarsa. Token akan kedaluwarsa dalam 30 detik. Anda perlu menangani callback ini.

onAuthInfoExpired

Server mengembalikan bahwa token telah kedaluwarsa ketika pengguna memanggil API yang memerlukan autentikasi.

onJoinChannelResult

Callback untuk hasil bergabung ke saluran.

onLeaveChannelResult

Callback untuk hasil meninggalkan saluran.

onRemoteUserOffLineNotify

Pemberitahuan bahwa pengguna jarak jauh telah offline.

onRemoteUserOnLineNotify

Pemberitahuan bahwa pengguna jarak jauh telah online.

onRemoteTrackAvailableNotify

Pemberitahuan informasi aliran jarak jauh.

onBye

Callback ketika pengguna dikeluarkan dari server atau saluran ditutup.

onAudioPublishStateChanged

Pemberitahuan perubahan status penerbitan audio.

onAudioSubscribeStateChanged

Pemberitahuan perubahan status langganan audio.

onUserAudioMuted

Pemberitahuan bahwa pengguna jarak jauh dimatikan suaranya.

onUserAudioInterruptedBegin

Pemberitahuan bahwa gangguan perangkat audio telah dimulai.

onUserAudioInterruptedEnded

Pemberitahuan bahwa gangguan perangkat audio telah berakhir.

onVideoPublishStateChanged

Callback untuk perubahan status penerbitan video.

onVideoSubscribeStateChanged

Callback untuk perubahan status langganan aliran kamera.

onUserVideoMuted

Pemberitahuan bahwa pengguna jarak jauh mengirim frame video hitam.

onUserVideoEnabled

Pemberitahuan bahwa pengguna jarak jauh telah menonaktifkan penangkapan aliran kamera.

onUserWillResignActive

Aplikasi pengguna jarak jauh telah dipindahkan ke latar belakang.

onUserWillBecomeActive

Aplikasi pengguna jarak jauh telah dipindahkan ke latar depan.

onAudioEffectFinished

Callback ketika pemutaran efek suara lokal selesai.

onAudioVolumeCallback

Volume audio, status aktivitas suara, dan UID pengguna yang berlangganan.

onActiveSpeaker

Deteksi aktivitas suara. Callback ketika pembicara aktif terdeteksi.

onPublishLiveStreamStateChanged

Callback untuk perubahan status penerbitan aliran bypass.

onPublishTaskStateChanged

Callback untuk perubahan status tugas bypass.

onNetworkQualityChanged

Callback untuk perubahan kualitas jaringan.

onLastmileDetectResultWithQuality

Callback untuk deteksi kualitas jaringan.

onLastmileDetectResultWithBandWidth

Callback untuk hasil deteksi kualitas jaringan.

onOccurError

Jika terjadi kesalahan pada mesin, callback ini memberi tahu aplikasi.

onFirstAudioPacketSentWithTimecost

Callback untuk paket audio pertama yang dikirim.

onFirstVideoFrameReceivedWithUid

Callback untuk frame video pertama yang diterima.

onFirstVideoPacketSentWithVideoTrack

Callback untuk paket video pertama yang dikirim.

onFirstAudioPacketReceivedWithUid

Callback untuk paket audio pertama yang diterima.

onFirstRemoteAudioDecodedWithUid

Callback untuk frame audio jarak jauh pertama yang didekodekan.

onFirstRemoteVideoFrameDrawn

Callback ini dipicu ketika frame video pertama pengguna jarak jauh ditampilkan.

onFirstLocalVideoFrameDrawn

Callback ini dipicu ketika frame video pertama ditampilkan dalam pratinjau lokal.

onTestAudioVolumeCallback

Callback untuk volume penangkapan audio selama pengujian pra-panggilan.

onAudioAccompanyStateChanged

Callback untuk status pemutaran akord audio lokal.

onRemoteAudioAccompanyStarted

Callback ketika pengguna jarak jauh memulai pemutaran akord audio.

onRemoteAudioAccompanyFinished

Callback ketika pengguna jarak jauh menyelesaikan pemutaran akord audio.

onRtcStats

Callback data real-time (dipicu setiap 2 detik).

onRtcLocalVideoStats

Statistik video lokal (dipicu setiap 2 detik).

onRtcRemoteVideoStats

Statistik video jarak jauh (dipicu setiap 2 detik).

onRtcLocalAudioStats

Statistik audio lokal (dipicu setiap 2 detik).

onRtcRemoteAudioStats

Statistik audio jarak jauh (dipicu setiap 2 detik).

onMediaExtensionMsgReceived

Callback untuk pesan ekstensi media yang diterima.

onAudioRouteChanged

Callback untuk perubahan rute audio.

onSnapshotComplete

Callback untuk tangkapan layar.

onLocalAudioStateChanged

Callback untuk status perangkat penangkapan audio lokal.

onLocalVideoStateChanged

Callback untuk status perangkat penangkapan video lokal.

onRemoteUserSubscribedDataChannel

Callback ketika Anda dapat mulai mengirim pesan saluran data.

onDataChannelMessage

Callback untuk pesan saluran data.

onScreenSharePublishStateChanged

Callback untuk perubahan status penerbitan berbagi layar.

AliRtcAudioFrameDelegate

API

Deskripsi fungsi

onCapturedAudioFrame

Callback untuk data mentah yang ditangkap.

onProcessCapturedAudioFrame

Callback untuk data setelah pemrosesan 3A.

onPublishAudioFrame

Callback untuk data aliran yang diterbitkan.

onPlaybackAudioFrame

Callback untuk data pemutaran.

onRemoteUserAudioFrame

Callback untuk data penarikan aliran jarak jauh.

AliRtcEngineDestroyDelegate

API

Deskripsi fungsi

onDestroyCompletion

Callback ketika mesin dilepas. Mesin hanya dilepas setelah callback ini dieksekusi.

AliRtcTextureDelegate

API

Deskripsi fungsi

onTextureCreate

Callback untuk pembuatan konteks OpenGL.

onTextureUpdate

Callback untuk pembaruan tekstur OpenGL.

onTextureDestory

Callback untuk penghancuran konteks OpenGL.

AliRtcVideoFrameDelegate

API

Deskripsi fungsi

onCaptureVideoSample

Callback untuk frame video yang ditangkap.

onPreEncodeVideoSample

Callback untuk data video lokal yang berlangganan sebelum pengkodean.

onRemoteVideoSample

Callback untuk data video jarak jauh yang berlangganan.

onGetVideoFormatPreference

Format output data video.

onGetVideoObservedFramePosition

Posisi output data video.

Detail API

sharedInstance

Membuat instance AliRtcEngine menggunakan pola singleton.

+ (instancetype _Nonnull )sharedInstance:(id<AliRtcEngineDelegate>_Nullable)delegate extras:(NSString *_Nullable)extras;

Kapan dipanggil

Anda harus memanggil metode ini untuk membuat instance AliRtcEngine sebelum memanggil API lain dari SDK ApsaraVideo Real-time Communication (ARTC).

Batasan

  • Ini adalah metode sinkron dan harus dipanggil dari thread utama.

  • SDK mendukung pembuatan hanya satu instance AliRtcEngine untuk setiap aplikasi.

Callback terkait

Saat Anda membuat instance mesin, Anda harus mengimplementasikan callback di AliRtcEngineDelegate berdasarkan skenario bisnis Anda. Jika terjadi pengecualian selama runtime, SDK pertama-tama akan mencoba memulihkan secara otomatis menggunakan mekanisme pengulangan internalnya. Untuk kesalahan yang tidak dapat diselesaikan secara internal, SDK memberi tahu aplikasi Anda melalui antarmuka callback yang telah ditentukan. Lapisan aplikasi harus mendengarkan dan menanggapi callback kunci berikut yang tidak dapat ditangani oleh SDK:

Penyebab

Callback dan parameter

Solusi

Deskripsi

Autentikasi gagal

Parameter result dalam callback onJoinChannelResult mengembalikan AliRtcErrJoinBadToken.

Jika kesalahan ini terjadi, aplikasi perlu memeriksa apakah token benar.

Ketika pengguna memanggil API, jika autentikasi gagal, sistem mengembalikan pesan kesalahan kegagalan autentikasi dalam callback API.

Kesalahan koneksi jaringan

Callback onConnectionStatusChange mengembalikan AliRtcConnectionStatusFailed.

Jika kesalahan ini terjadi, aplikasi perlu bergabung kembali ke saluran.

SDK dapat memulihkan secara otomatis dari gangguan jaringan dalam periode tertentu. Jika waktu pemutusan melebihi ambang batas yang telah ditentukan, timeout dipicu, dan koneksi terputus. Dalam hal ini, aplikasi harus memeriksa status jaringan dan memandu pengguna untuk bergabung kembali ke saluran.

Kesalahan perangkat lokal

onLocalDeviceException

Jika kesalahan ini terjadi, aplikasi perlu memeriksa izin dan apakah perangkat keras berfungsi dengan benar.

Layanan RTC mendukung deteksi perangkat dan diagnosis kesalahan. Ketika terjadi kesalahan perangkat lokal, layanan RTC memberi tahu pelanggan melalui callback. Jika SDK tidak dapat menyelesaikan masalah sendiri, aplikasi perlu campur tangan untuk memeriksa apakah perangkat berfungsi dengan benar.

Dikeluarkan secara paksa

onBye

  • AliRtcOnByeUserReplaced: Jika kesalahan ini terjadi, periksa apakah ID pengguna sama.

  • AliRtcOnByeBeKickedOut: Jika kesalahan ini terjadi, berarti pengguna dikeluarkan secara paksa oleh logika bisnis. Pengguna perlu bergabung kembali ke saluran.

  • AliRtcOnByeChannelTerminated: Jika kesalahan ini terjadi, berarti saluran telah dihancurkan. Pengguna perlu bergabung kembali ke saluran.

Layanan RTC menyediakan fitur bagi administrator untuk mengeluarkan peserta.

Token akan segera kedaluwarsa

onWillAuthInfoExpire

Jika kesalahan ini terjadi, aplikasi perlu mendapatkan informasi autentikasi terbaru dan kemudian memanggil refreshAuthInfo untuk memperbaruinya.

Kesalahan kedaluwarsa token dapat terjadi dalam dua situasi: ketika pengguna memanggil API atau selama eksekusi program. Oleh karena itu, umpan balik kesalahan dikirim melalui callback API atau callback kesalahan terpisah.

Token kedaluwarsa

onAuthInfoExpired

Jika kesalahan ini terjadi, aplikasi perlu bergabung kembali ke saluran.

Kesalahan kedaluwarsa token dapat terjadi dalam dua situasi: ketika pengguna memanggil API atau selama eksekusi program. Oleh karena itu, umpan balik kesalahan dikirim melalui callback API atau callback kesalahan terpisah.

Parameter

Nama

Tipe

Deskripsi

delegate

id<AliRtcEngineDelegate>_Nullable

Delegasi untuk mendengarkan callback.

extras

NSString *_Nullable

Digunakan untuk menerima parameter untuk fitur grayscale dari pelanggan. Mengonfigurasi fitur SDK khusus melalui konfigurasi JSON. Dapat berupa string kosong.

destroy[1/2]

Menghancurkan instance AliRtcEngine.

+ (void)destroy;

Memanggil metode ini menghancurkan objek singleton AliRtcEngine dan melepaskan semua sumber daya internal. Anda tidak dapat lagi menggunakan metode lain dari AliRtcEngine atau callback apa pun. Untuk menggunakan mesin lagi, Anda harus memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#2db21d4f16s77" id="96631a9306wq8">sharedInstance</a> untuk membuat instance baru.

Kedua metode ini dan destroy[2/2] dapat menghancurkan instance mesin. Perbedaannya adalah yang terakhir memungkinkan Anda meneruskan objek pendengar untuk diberi tahu ketika penghancuran selesai.

Catatan
  • Tunggu hingga metode ini selesai sebelum membuat instance AliRtcEngine baru.

  • Setelah memanggil metode ini, atur objek mesin ke null.

Kapan harus memanggil

Ketika komunikasi audio dan video berakhir, panggil metode ini untuk melepaskan instance dan mengurangi konsumsi sumber daya.

Batasan

Memanggil metode ini dari dalam callback SDK dapat menyebabkan deadlock.

destroy[2/2]

Menghancurkan instance AliRtcEngine.

+ (void)destroy:(id<AliRtcEngineDestroyDelegate>_Nullable)delegate;

Menghancurkan objek singleton AliRtcEngine dan melepaskan semua sumber daya yang digunakan secara internal. Setelah metode ini dipanggil, Anda tidak dapat lagi menggunakan metode AliRtcEngine lainnya atau callback. Untuk menggunakan mesin lagi, Anda perlu memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#2db21d4f16s77" id="115fd691743nx">sharedInstance</a> untuk membuat instance baru.

Catatan

Kedua metode ini dan destroy[1/2] dapat melepaskan instance AliRtcEngine. Perbedaannya adalah metode ini adalah panggilan asinkron dan memungkinkan Anda meneruskan pengamat untuk memantau kapan penghancuran selesai. Anda hanya dapat membuat instance berikutnya setelah callback onDestroyCompletion dipicu.

Kapan Memanggil

Anda dapat memanggil metode ini untuk melepaskan instance setelah komunikasi audio dan video selesai.

Batasan

Untuk menghindari deadlock, Anda tidak boleh memanggil metode ini dalam callback SDK apa pun.

Parameter

Nama

Tipe

Deskripsi

delegate

AliRtcEngineDestroyDelegate

Objek callback setelah dilepas.

setH5CompatibleMode

Menetapkan mode kompatibilitas H5.

Penting

Anda harus memanggil metode ini untuk menetapkan mode kompatibilitas H5 sebelum membuat instance AliRtcEngine. Mode tidak dapat diubah setelah instance dibuat.

+ (void)setH5CompatibleMode:(BOOL)comp;

Parameter

Nama

Tipe

Deskripsi

comp

BOOL

YES berarti kompatibel dengan H5. NO berarti tidak kompatibel dengan H5. Nilai default adalah tidak kompatibel.

getH5CompatibleMode

Menunjukkan apakah mode kompatibilitas H5 diatur.

+ (BOOL)getH5CompatibleMode;

Nilai kembali

Mengembalikan YES jika mode kompatibilitas H5 diatur, atau NO jika tidak.

getSdkVersion

Mengambil nomor versi SDK.

+ (NSString *_Nonnull)getSdkVersion;

Nilai kembali

Nomor versi SDK saat ini sebagai string, misalnya, "2.5.0.x".

Deskripsi

Ini adalah metode statis. Anda dapat mengambil nomor versi kapan saja.

setChannelProfile

Menetapkan profil saluran.

- (int)setChannelProfile:(AliRtcChannelProfile)profile;

Metode ini menetapkan profil saluran. Saat ini menyediakan skenario untuk panggilan video dan streaming interaktif:

  • Panggilan video: Semua pengguna adalah streamer dan dapat menerbitkan dan berlangganan aliran.

  • Streaming interaktif: Anda harus memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#892915dd4edcy" id="d88dccff391by">setClientRole</a> untuk menetapkan peran pengguna. Untuk pengguna yang menerbitkan aliran di saluran, atur perannya menjadi streamer (AliRTCSdkInteractive). Jika pengguna hanya perlu menarik aliran dan tidak perlu menerbitkan aliran, atur perannya menjadi penonton (AliRTCSdkLive). Profil ini direkomendasikan untuk skenario RTC.

Catatan
  • Profil streaming interaktif direkomendasikan untuk semua skenario RTC. Untuk menggunakan profil ini, panggil metode ini dengan AliRTCSdkInteractiveLive.

  • Semua pengguna di saluran yang sama harus menggunakan profil saluran yang sama.

Kapan harus memanggil

Anda hanya dapat memanggil metode ini sebelum bergabung ke saluran. Setelah Anda bergabung ke saluran, Anda tidak dapat mengubah profil saluran sampai Anda meninggalkan saluran tersebut.

Parameter

Nama

Tipe

Deskripsi

profile

AliRtcChannelProfile

Profil saluran. Untuk semua skenario RTC, atur ini ke AliRtcChannelProfileInteractiveLive, profil streaming interaktif.

Nilai kembali

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan metode gagal.

setAudioProfile

Menetapkan profil audio.

- (int)setAudioProfile:(AliRtcAudioProfile)audio_profile audio_scene:(AliRtcAudioScenario)audio_scene;

Metode ini menetapkan mode pengkodean dan skenario audio. Untuk informasi lebih lanjut, lihat Operasi dan konfigurasi audio umum. Secara default, SDK ARTC menggunakan mode audio berkualitas tinggi (AliRtcEngineHighQualityMode) dan mode skenario musik (AliRtcSceneMusicMode). Jika pengaturan default tidak memenuhi kebutuhan Anda, Anda dapat memanggil metode ini untuk mengubahnya.

Kapan memanggil

Anda hanya dapat memanggil metode ini sebelum bergabung ke saluran. Anda tidak dapat mengubah profil setelah Anda bergabung ke saluran. Anda dapat mengubah profil lagi setelah Anda meninggalkan saluran.

Parameter

Nama

Tipe

Deskripsi

audio_profile

AliRtcAudioProfile

Parameter mode pengkodean atau penangkapan audio. Mode audio berkualitas tinggi (AliRtcEngineHighQualityMode) direkomendasikan.

Catatan

Untuk interoperabilitas dengan klien web, atur laju sampel ke 48 kHz.

  • AliRtcEngineLowQualityMode: Mode audio berkualitas rendah. Default adalah laju sampel 8000 Hz, mono, dan bitrate pengkodean maksimum 12 kbps.

  • AliRtcEngineBasicQualityMode: Mode audio berkualitas standar. Default adalah laju sampel 16000 Hz, mono, dan bitrate pengkodean maksimum 24 kbps.

  • AliRtcEngineHighQualityMode: Default adalah laju sampel 48000 Hz, mono, dan bitrate pengkodean maksimum 64 kbps.

  • AliRtcEngineStereoHighQualityMode: Mode audio berkualitas tinggi stereo. Default adalah laju sampel 48000 Hz, stereo, dan bitrate pengkodean maksimum 80 kbps.

  • AliRtcEngineSuperHighQualityMode: Mode audio berkualitas super tinggi. Default adalah laju sampel 48000 Hz, mono, dan bitrate pengkodean maksimum 96 kbps.

  • AliRtcEngineStereoSuperHighQualityMode: Mode audio berkualitas super tinggi stereo. Default adalah laju sampel 48000 Hz, stereo, dan bitrate pengkodean maksimum 128 kbps.

audio_scene

AliRtcAudioScenario

Parameter mode skenario audio, yang terutama mencakup hal berikut:

  • AliRtcSceneMusicMode (Direkomendasikan): Skenario musik. Menggunakan 3A perangkat lunak untuk menangkap audio dari ponsel untuk kualitas audio yang lebih tinggi.

  • AliRtcSceneDefaultMode: Menggunakan 3A perangkat keras dan memungkinkan Anda menangkap audio dari perangkat Bluetooth.

Deskripsi nilai kembali

Nilai kembali 0 menunjukkan bahwa pemanggilan berhasil. Nilai selain 0 menunjukkan bahwa pemanggilan gagal.

isAudioOnly

Memeriksa apakah mode saat ini hanya audio.

- (BOOL)isAudioOnly;

Nilai kembali

Mengembalikan YES jika mode hanya audio, dan NO jika mode audio dan video.

setAudioOnlyMode

Mengaktifkan atau menonaktifkan mode hanya audio.

- (int)setAudioOnlyMode:(BOOL)audioOnly;

Parameter

Nama

Tipe

Deskripsi

audioOnly

BOOL

  • YES: Mengaktifkan mode hanya audio untuk ingest dan penarikan aliran.

  • NO: Mengaktifkan mode audio dan video. Ini adalah nilai default.

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan. Nilai bukan nol menunjukkan kegagalan.

joinChannel[1/3]

Bergabung ke saluran menggunakan satu parameter.

- (int)joinChannel:(NSString *_Nonnull)token channelId:(NSString *_Nullable)channelId userId:(NSString *_Nullable)userId name:(NSString *_Nullable)userName onResultWithUserId:(void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed))onResult;

Metode ini digunakan untuk bergabung ke saluran. Di ARTC, saluran digunakan untuk mengelola pengguna. Anda harus bergabung ke saluran untuk menerbitkan atau berlangganan aliran audio dan video. Anda dapat menggunakan metode ini, joinChannel[2/3], atau joinChannel[3/3] untuk bergabung ke saluran. Metode ini berbeda dalam metode autentikasi dan informasi pengguna yang dilewatkan, seperti dijelaskan di bawah ini:

  • Ini adalah metode bergabung ke saluran dengan satu parameter. Untuk bergabung ke saluran, Anda harus melewatkan token satu parameter yang dihasilkan menggunakan autentikasi berbasis token. Gunakan metode ini untuk bergabung ke saluran dalam skenario komunikasi real-time (RTC).

  • joinChannel[2/3] adalah metode bergabung ke saluran dengan beberapa parameter. Untuk bergabung ke saluran, Anda harus melewatkan token multi-parameter yang dihasilkan menggunakan autentikasi berbasis token dan informasi pengguna yang digunakan untuk menghasilkan token.

  • joinChannel[3/3] digunakan untuk skenario interaksi real-time AI. Anda harus melewatkan token satu parameter dan mengatur properti pengguna capabilityProfile berdasarkan skenario tertentu.

Catatan

Secara default, ketika Anda bergabung ke saluran, Anda berlangganan aliran audio dan video dari semua pengguna lain di saluran dan mendorong aliran Anda sendiri ke pengguna jarak jauh. Untuk menonaktifkan langganan default ke aliran audio atau video, Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="2e9165006d7tz">setDefaultSubscribeAllRemoteAudioStreams</a> dan <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="96cf16cf8a4us">setDefaultSubscribeAllRemoteVideoStreams</a> sebelum Anda bergabung ke saluran.

Kapan Dipanggil

Anda harus memanggil ini setelah membuat mesin.

Batasan Pemanggilan

  • Untuk beralih ke saluran lain, Anda harus terlebih dahulu memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="37299758eavvg">leaveChannel</a> untuk meninggalkan saluran saat ini. Setelah Anda menerima callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="50039f328fdk7">onLeaveChannelResult</a>, Anda dapat bergabung ke saluran baru.

  • Anda hanya dapat bergabung ke satu saluran pada satu waktu.

  • Aplikasi yang menggunakan App ID berbeda tidak dapat berkomunikasi satu sama lain.

  • Jangan memanggil metode ini untuk mencoba ulang upaya bergabung ke saluran yang gagal.

Callback Terkait

Pemanggilan API ini yang berhasil memicu callback berikut:

  • Callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6d2a213d7sl2" id="903005c54be4d">onJoinChannelResult</a> mengembalikan hasil klien lokal bergabung ke saluran.

  • Setelah Anda berhasil bergabung ke saluran, callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#634626babfq9x" id="4b11b846b1f4t">onRemoteUserOnLineNotify</a> dipicu ketika pengguna jarak jauh online.

Deskripsi Metrik

Parameter

Tipe

Deskripsi

token

String

Informasi autentikasi untuk bergabung ke rapat.

channelId

String

Saluran rapat. Nilai ini harus sama dengan yang digunakan untuk menghasilkan token.

userId

String

ID pengguna untuk bergabung ke rapat. Nilai ini harus sama dengan yang digunakan untuk menghasilkan token.

userName

String

Nama tampilan pengguna. Ini bukan ID pengguna.

onResultWithUserId

void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed)

Callback ini dipanggil setelah eksekusi API.

Nilai kembali

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lain menunjukkan bahwa pemanggilan metode gagal.

joinChannel[2/3]

Bergabung ke saluran untuk rapat multi-peserta.

- (int)joinChannel:(AliRtcAuthInfo *_Nonnull)authInfo name:(NSString *_Nullable)userName onResultWithUserId:(void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed))onResult;

Metode ini memungkinkan Anda bergabung ke saluran. Di Alibaba Real-Time Communication (ARTC), saluran digunakan untuk mengelola pengguna. Anda harus bergabung ke saluran untuk menerbitkan atau berlangganan aliran audio dan video. Anda dapat menggunakan metode ini, joinChannel[1/3], atau joinChannel[3/3] untuk bergabung ke saluran. Metode ini berbeda dalam proses autentikasi dan informasi pengguna yang mereka butuhkan, seperti berikut:

  • Metode joinChannel[1/3] bergabung ke saluran menggunakan satu parameter. Untuk menggunakan metode ini, hasilkan token untuk bergabung dengan satu parameter seperti yang dijelaskan dalam Autentikasi Token, lalu lewatkan token ke metode. Metode ini direkomendasikan untuk skenario RTC.

  • Metode ini menggunakan beberapa parameter untuk bergabung ke saluran. Untuk menggunakan metode ini, hasilkan token untuk bergabung dengan beberapa parameter seperti yang dijelaskan dalam Autentikasi Token. Anda kemudian harus melewatkan token dan informasi pengguna yang digunakan untuk menghasilkannya ke metode.

  • Metode joinChannel[3/3] digunakan untuk skenario interaksi real-time AI. Untuk menggunakan metode ini, lewatkan token untuk bergabung dengan satu parameter dan atur properti pengguna capabilityProfile sesuai dengan skenario.

Catatan
  • Secara default, ketika Anda bergabung ke saluran, Anda berlangganan aliran audio dan video dari semua pengguna lain di saluran dan mendorong aliran audio dan video Anda ke pengguna jarak jauh. Jika Anda ingin menonaktifkan langganan default ke aliran audio atau video, Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="fb54669796mxq">setDefaultSubscribeAllRemoteAudioStreams</a> atau <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="abb190b699jg7">setDefaultSubscribeAllRemoteVideoStreams</a> sebelum Anda memanggil operasi ini.

  • Operasi ini bergabung ke saluran dengan beberapa parameter. Sebelum memanggil operasi ini, Anda harus menghasilkan token untuk tujuan ini seperti yang dijelaskan dalam Autentikasi Token.

Batasan Pemanggilan

  • Untuk bergabung ke saluran lain saat berada di saluran yang ada, Anda harus terlebih dahulu memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="4283c6cc013bz">leaveChannel</a> dan menunggu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="9e6478b2f0hen">onLeaveChannelResult</a> sebelum memanggil metode bergabung lagi.

  • Anda hanya dapat bergabung ke satu saluran pada satu waktu.

  • Aplikasi tidak dapat berkomunikasi lintas App ID yang berbeda.

Callback Terkait

Pemanggilan API yang berhasil memicu callback berikut:

  • Klien lokal menerima hasil bergabung ke saluran melalui callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6d2a213d7sl2" id="df00346ea8928">onJoinChannelResult</a>.

  • Setelah Anda berhasil bergabung ke saluran, Anda menerima callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#634626babfq9x" id="c3832e71e8vck">onRemoteUserOnLineNotify</a>.

Parameter

Nama

Tipe

Deskripsi

authInfo

AliRtcAuthInfo

Informasi autentikasi.

userName

String

Nama tampilan pengguna. Ini bukan ID pengguna.

onResultWithUserId

void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed)

Callback ini dipanggil setelah pemanggilan API selesai.

joinChannel[3/3]

Bergabung ke saluran.

- (int)joinChannel:(NSString *_Nonnull)token channelParam:(AliRtcChannelParam *_Nonnull)channelParam onResultWithUserId:(void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed))onResult;

Anda dapat menggunakan metode ini untuk bergabung ke saluran. Di Alibaba Real-Time Communication (ARTC), pengguna diatur ke dalam saluran. Pengguna harus bergabung ke saluran untuk menerbitkan atau berlangganan aliran audio dan video. Metode ini, joinChannel[1/3], dan joinChannel[2/3] semuanya digunakan untuk bergabung ke saluran. Mereka berbeda dalam metode autentikasi dan informasi pengguna yang mereka lewatkan. Perbedaannya adalah sebagai berikut:

  • joinChannel[1/3] adalah metode bergabung ke saluran dengan satu parameter dalam skenario Komunikasi Real-Time (RTC). Untuk bergabung ke saluran, Anda harus melewatkan token satu parameter yang dihasilkan menggunakan autentikasi berbasis token. Metode ini direkomendasikan untuk bergabung ke saluran dalam skenario RTC.

  • joinChannel[2/3] adalah metode bergabung ke saluran dengan beberapa parameter. Untuk bergabung ke saluran, Anda harus melewatkan token multi-parameter yang dihasilkan menggunakan autentikasi berbasis token dan informasi pengguna yang digunakan untuk menghasilkan token.

  • Metode ini digunakan untuk skenario interaksi real-time berbasis AI. Untuk bergabung ke saluran, Anda harus melewatkan token satu parameter dan mengatur properti pengguna capabilityProfile berdasarkan skenario. Untuk berkomunikasi dengan agen AI, atur properti ini ke AliRtcCapabilityProfileAiHuman.

Catatan

Secara default, ketika Anda bergabung ke saluran, Anda berlangganan aliran audio dan video dari semua pengguna lain di saluran dan mendorong aliran audio dan video Anda ke pengguna jarak jauh. Untuk menonaktifkan langganan default ini, Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="ce6cfa82f9xzc">setDefaultSubscribeAllRemoteAudioStreams</a> atau <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="e65b420fd5kj6">setDefaultSubscribeAllRemoteVideoStreams</a> sebelum Anda bergabung ke saluran.

Batasan penggunaan

  • Untuk beralih ke saluran yang berbeda, Anda harus terlebih dahulu memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="923190466431o">leaveChannel</a> untuk meninggalkan saluran Anda saat ini. Anda hanya dapat bergabung ke saluran baru setelah Anda menerima callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="dfd794c32covq">onLeaveChannelResult</a>.

  • Pengguna hanya dapat bergabung ke satu saluran pada satu waktu.

  • Aplikasi dengan App ID yang berbeda tidak dapat berkomunikasi satu sama lain.

  • Jika upaya bergabung ke saluran gagal, jangan memanggil metode ini lagi untuk mencoba ulang.

Callback terkait

Pemanggilan metode ini yang berhasil memicu callback berikut:

  • Hasil klien lokal bergabung ke saluran dikembalikan dalam callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6d2a213d7sl2" id="f83d0aff9btwh">onJoinChannelResult</a>.

  • Callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#634626babfq9x" id="aeef817be3a0b">onRemoteUserOnLineNotify</a> dipicu oleh klien jarak jauh setelah Anda berhasil bergabung ke saluran.

Parameter

Nama

Tipe

Deskripsi

token

NSString*

Token autentikasi. Dapatkan dari server aplikasi Anda.

channelParam

AliRtcChannelParam

Parameter untuk bergabung ke saluran.

onResultWithUserId

void (^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSInteger elapsed)

Callback ini dipicu setelah metode selesai dieksekusi.

leaveChannel

Meninggalkan saluran.

- (int)leaveChannel;

Setelah Anda memanggil metode ini, SDK menghentikan transmisi audio dan video dan meninggalkan saluran saat ini.

Catatan
  • Metode ini adalah operasi asinkron. Pemanggilan yang berhasil tidak berarti Anda telah meninggalkan saluran sampai callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="e7c0222bacrpa">onLeaveChannelResult</a> dipicu.

  • Sekali metode leaveChannel selesai, hancurkan mesin dan atur instance ke null.

Skenario Pemanggilan

  • Panggil metode ini untuk meninggalkan saluran.

  • Jika Anda berada di saluran dan ingin bergabung ke saluran lain, Anda harus terlebih dahulu memanggil metode ini untuk meninggalkan saluran saat ini.

Callback Terkait

  • Klien lokal: Memanggil metode ini memicu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="ea2e36a41csu0">onLeaveChannelResult</a>, yang melaporkan hasil meninggalkan saluran.

  • Ujung jarak jauh: Pemanggilan metode ini yang berhasil memicu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#34876c27d7zv7" id="a50f534f21mew">onRemoteUserOffLineNotify</a> untuk pengguna lain di saluran.

Nilai kembali

Nilai 0 menunjukkan bahwa pemanggilan berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan gagal.

isInCall

Memeriksa apakah pengguna berada di saluran.

- (BOOL)isInCall;

Nilai kembali

YES jika pengguna berada di saluran. NO jika tidak.

setClientRole

Menetapkan peran pengguna.

- (int)setClientRole:(AliRtcClientRole)role;

Metode ini menetapkan peran pengguna menjadi streamer atau penonton.

Dalam mode interaktif, sebelum Anda bergabung ke saluran:

  • Streamer: SDK secara otomatis mendorong aliran audio dan video lokal dan menerima aliran dari streamer lain secara default.

  • Penonton: SDK tidak mendorong aliran audio dan video lokal tetapi menerima aliran dari streamer lain.

Kapan dipanggil

Anda dapat memanggil metode ini untuk menetapkan peran pengguna sebelum bergabung ke saluran atau untuk mengganti peran pengguna setelah Anda bergabung.

Batasan

Metode ini hanya berlaku dalam mode interaktif. Mode ini diaktifkan dengan memanggil metode <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#fc9626a99f5kj" id="cd8138c77fv4r">setChannelProfile</a> untuk menetapkan profil saluran ke AliRtcInteractivelive.

Dalam mode interaktif, Anda harus secara eksplisit memanggil metode ini untuk menetapkan peran pengguna sebelum Anda bergabung ke saluran.

Parameter

Nama

Tipe

Deskripsi

role

AliRtcClientRole

Peran pengguna. Nilai default adalah AliRtcClientRolelive (penonton). Parameter ini hanya berlaku ketika profil saluran tidak diatur ke mode komunikasi.

Pengembalian

Nilai kembali 0 menunjukkan bahwa metode dipanggil berhasil. Nilai lain menunjukkan bahwa pemanggilan gagal.

getCurrentClientRole

Mengambil peran pengguna (iOS saja).

- (AliRtcClientRole)getCurrentClientRole;

Nilai kembali

Peran pengguna saat ini.

refreshAuthInfo

Memperbarui informasi autentikasi.

- (int)refreshAuthInfo:(AliRtcAuthInfo *_Nonnull)authInfo;

Metode ini memperbarui informasi autentikasi. Token kedaluwarsa setelah periode tertentu. Setelah token kedaluwarsa, SDK tidak dapat terhubung ke server.

Catatan

Kedua metode ini dan metode refreshAuthInfoWithToken memperbarui informasi autentikasi. Gunakan metode ini untuk memperbarui token untuk bergabung ke saluran dengan beberapa parameter. Gunakan refreshAuthInfoWithToken untuk memperbarui token untuk bergabung ke saluran dengan satu parameter. Untuk informasi lebih lanjut tentang cara menghasilkan token, lihat Autentikasi berbasis token.

Kapan harus memanggil

Pertimbangkan skenario berikut:

  • Ketika Anda menerima callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6766cdfb40z1a" id="c1cc6cbddb22o">onAuthInfoWillExpire</a>, yang melaporkan bahwa informasi autentikasi akan segera kedaluwarsa, kami merekomendasikan agar Anda menghasilkan ulang token di server Anda dan kemudian memanggil metode ini untuk melewatkan token baru.

  • Jika Anda tidak memperbarui token tepat waktu, callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#b04cd67880ptu" id="13c9ccb2b6ghh">onAuthInfoExpired</a> dipicu, yang menunjukkan bahwa autentikasi telah kedaluwarsa. Pada titik ini, Anda perlu menghasilkan ulang token dan kemudian memanggil joinChannel untuk bergabung kembali ke saluran.

Parameter

Nama

Tipe

Deskripsi

authInfo

AliRtcAuthInfo *_Nonnull

Informasi autentikasi.

Pengembalian

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lain menunjukkan bahwa pemanggilan gagal.

refreshAuthInfoWithToken

Memperbarui informasi autentikasi.

- (int)refreshAuthInfoWithToken:(NSString *_Nonnull)token;

Metode ini memperbarui token. Token berlaku untuk periode tertentu. Setelah token kedaluwarsa, SDK tidak dapat terhubung ke server.

Catatan
  • Kedua operasi ini dan <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6a4495191bmd" id="eb171f6dc0n9p">refreshAuthInfo</a> memperbarui token yang digunakan untuk bergabung ke saluran. Operasi ini memerlukan satu parameter, sedangkan refreshAuthInfo memerlukan beberapa parameter. Untuk informasi lebih lanjut tentang pembuatan token, lihat Autentikasi Token.

  • Jika Anda tidak memperbarui token sebelum kedaluwarsa, callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#b04cd67880ptu" id="3fd3c64767aq8">onAuthInfoExpired</a> dipicu. Anda kemudian harus memanggil joinChannel untuk bergabung kembali ke saluran.

Kapan dipanggil

Dalam situasi berikut, hasilkan ulang Token di server Anda dan kemudian panggil metode ini dengan Token baru:

Ketika callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6766cdfb40z1a" id="b1dbfcb71d5ys">onAuthInfoWillExpire</a> dipicu, menunjukkan bahwa informasi autentikasi akan segera kedaluwarsa.

Parameter

Nama

Tipe

Deskripsi

token

NSString *_Nonnull

Informasi autentikasi untuk bergabung ke saluran dengan satu parameter.

Nilai kembali

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil, sedangkan nilai lain menunjukkan kegagalan.

publishLocalAudioStream

Menentukan apakah akan menerbitkan aliran audio lokal.

- (int)publishLocalAudioStream:(BOOL)enable;

Secara default, SDK menerbitkan aliran audio. Untuk menonaktifkan perilaku default ini, panggil publishLocalAudioStream(false) sebelum Anda bergabung ke saluran.

Kapan dipanggil

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran. Jika dipanggil sebelum bergabung, pengaturan akan berlaku ketika Anda bergabung ke saluran.

Callback terkait

Ketika status penerbitan aliran audio lokal berubah, klien lokal menerima callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#86b2d8735bm71" id="e5ef180ba6e2i">onAudioPublishStateChanged</a>, yang melaporkan status penerbitan saat ini. Klien jarak jauh menerima callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6da9cf330aoer" id="299ef35806ttb">onRemoteTrackAvailableNotify</a>, yang menunjukkan bahwa aliran audio dan video pengguna jarak jauh telah berubah.

Parameter

Nama

Tipe

Deskripsi

enable

boolean

  • YES: Menerbitkan aliran audio lokal.

  • NO: Menghentikan penerbitan aliran. Nilai default adalah YES.

Mengembalikan

0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lain menunjukkan bahwa pemanggilan gagal.

isLocalAudioStreamPublished

Memeriksa apakah aliran audio lokal dapat diterbitkan.

- (BOOL)isLocalAudioStreamPublished;

Pengembalian

YES mengaktifkan dorongan, dan NO menonaktifkannya.

setDefaultSubscribeAllRemoteAudioStreams

Menetapkan apakah akan berlangganan semua aliran audio jarak jauh secara default.

- (int)setDefaultSubscribeAllRemoteAudioStreams:(BOOL)sub;

Gunakan metode ini untuk mengonfigurasi perilaku langganan default untuk aliran audio jarak jauh. Pengaturan ini berlaku untuk pengguna yang kemudian bergabung ke saluran. Atur parameter ini ke true kecuali Anda memiliki persyaratan khusus.

Kapan memanggil metode ini

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran.

  • Sebelum bergabung ke saluran:

    • Secara default, kit pengembangan perangkat lunak (SDK) berlangganan semua aliran audio jarak jauh ketika pengguna bergabung ke saluran. Untuk mengubah perilaku ini, Anda dapat memanggil metode ini sebelum bergabung ke saluran.

  • Setelah bergabung ke saluran:

    • Untuk menghentikan langganan default, Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="a467e60e4eyhk">setDefaultSubscribeAllRemoteAudioStreams</a>(false). Anda tidak akan berlangganan ke aliran audio pengguna yang kemudian bergabung ke saluran.

    • Setelah Anda menghentikan langganan default, panggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#c8249fb568gms" id="9806dd9a750pf">subscribeRemoteAudioStream</a> untuk berlangganan aliran audio pengguna tertentu. Untuk berlangganan aliran audio beberapa pengguna, Anda harus memanggil metode ini beberapa kali.

    • Setelah Anda menghentikan langganan default, memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="9507d6d3121uh">setDefaultSubscribeAllRemoteAudioStreams</a>(true) melanjutkan langganan default untuk pengguna yang bergabung ke saluran setelahnya. Pemanggilan ini tidak berlangganan Anda ke aliran audio pengguna yang bergabung ke saluran saat langganan default dihentikan.

Parameter

Nama

Tipe

Deskripsi

sub

BOOL

  • YES: Berlangganan aliran audio jarak jauh.

  • NO: Tidak berlangganan aliran audio jarak jauh. Nilai default adalah YES.

Mengembalikan

0 menunjukkan bahwa pemanggilan metode berhasil. Nilai selain 0 menunjukkan bahwa pemanggilan metode gagal.

subscribeRemoteAudioStream

Menghentikan atau melanjutkan berlangganan aliran audio pengguna jarak jauh tertentu.

- (int)subscribeRemoteAudioStream:(NSString *_Nonnull)uid sub:(BOOL)sub;

Anda dapat memanggil metode ini untuk menghentikan atau melanjutkan berlangganan aliran audio pengguna jarak jauh tertentu. Dalam sebagian besar skenario, Anda harus berlangganan aliran audio.

Catatan

Secara default, SDK berlangganan aliran audio semua pengguna jarak jauh ketika Anda bergabung ke rapat. Untuk menonaktifkan perilaku default ini, Anda dapat memanggil <a baseurl="t2309850_v10_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="044cc0f710rfg">setDefaultSubscribeAllRemoteAudioStreams</a>(false) sebelum bergabung ke rapat.

Parameter

Nama

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna jarak jauh.

sub

BOOL

  • YES: Berlangganan aliran audio pengguna yang ditentukan.

  • NO: Menghentikan berlangganan aliran audio pengguna yang ditentukan. Nilai default adalah YES.

Mengembalikan

Nilai 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lain menunjukkan bahwa pemanggilan gagal.

subscribeAllRemoteAudioStreams

Menghentikan atau melanjutkan menerima semua aliran audio jarak jauh.

- (int)subscribeAllRemoteAudioStreams:(BOOL)sub;

Metode ini bertindak sebagai sakelar utama untuk berlangganan aliran audio jarak jauh. Jika Anda mengatur parameter ke NO, hal berikut terjadi:

  • Langganan ke semua aliran audio jarak jauh di rapat saat ini dihentikan.

  • Pengguna baru juga tidak akan dapat berlangganan.

  • Anda tidak dapat menggunakan <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#c8249fb568gms" id="846b0dd501epf">subscribeRemoteAudioStream</a> untuk mengontrol aliran audio pengguna tertentu secara individual.

Untuk melanjutkan langganan, panggil metode ini lagi dan atur parameter ke YES.

Catatan

Secara default, SDK berlangganan aliran audio semua pengguna jarak jauh ketika Anda bergabung ke rapat. Untuk mengubah perilaku default ini, Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="86e8c09213k9y">setDefaultSubscribeAllRemoteAudioStreams</a>(false) sebelum bergabung ke rapat.

Parameter

Nama

Tipe

Deskripsi

sub

BOOL

  • YES: Menerima aliran audio semua pengguna.

  • NO: Menghentikan menerima aliran audio semua pengguna. Nilai default adalah YES.

Nilai kembali

Nilai 0 menunjukkan bahwa metode dipanggil berhasil. Nilai lain menunjukkan bahwa pemanggilan metode gagal.

publishLocalVideoStream

Mengaktifkan atau menonaktifkan penerbitan aliran kamera.

- (int)publishLocalVideoStream:(BOOL)enable;

Metode ini mengontrol penerbitan aliran video lokal.

Catatan

SDK menerbitkan aliran video secara default. Untuk menonaktifkan penerbitan aliran video, Anda dapat memanggil publishLocalVideoStream(false) sebelum Anda bergabung ke saluran.

Kapan dipanggil

Anda dapat memanggil metode ini sebelum atau setelah Anda bergabung ke saluran.

Jika Anda memanggil metode ini sebelum bergabung ke saluran, metode ini akan memodifikasi pengaturan default. Pengaturan baru akan berlaku ketika Anda bergabung ke saluran.

Callback terkait

Ketika status ingest aliran audio lokal berubah, klien lokal memicu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#bd67711e63tnk" id="f966292202q3d">onVideoPublishStateChanged</a> untuk melaporkan status ingest saat ini, sedangkan klien jarak jauh memicu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6da9cf330aoer" id="2fdc208ccczr1">onRemoteTrackAvailableNotify</a> untuk melaporkan perubahan pada aliran audio dan video pengguna jarak jauh.

Parameter

Nama

Tipe

Deskripsi

enable

boolean

  • YES: Menerbitkan aliran video. Ini adalah nilai default.

  • NO menghentikan proses pengiriman. Nilai default adalah YES.

isLocalVideoStreamPublished

Memeriksa apakah aliran video lokal diterbitkan.

- (BOOL)isLocalVideoStreamPublished;

Nilai kembali

YES: Aliran video lokal diterbitkan. NO: Aliran video lokal tidak diterbitkan.

setDefaultSubscribeAllRemoteVideoStreams

Menetapkan apakah akan berlangganan semua aliran video jarak jauh secara default.

- (int)setDefaultSubscribeAllRemoteVideoStreams:(BOOL)sub;

Metode ini menetapkan perilaku langganan default untuk semua aliran video jarak jauh. Secara default, kit pengembangan perangkat lunak (SDK) berlangganan semua aliran video jarak jauh.

Catatan

Secara default, SDK berlangganan ke aliran audio dan video dari pengguna jarak jauh saat Anda bergabung dengan saluran. Untuk mengubah perilaku ini, panggil metode ini sebelum bergabung dengan saluran.

Kapan harus memanggil

Anda dapat memanggil metode ini baik sebelum maupun sesudah bergabung dengan saluran.

  • Sebelum bergabung ke saluran:

    • Panggil metode ini untuk mencegah SDK berlangganan ke semua aliran video secara default.

  • Setelah bergabung ke saluran:

    • Panggil `setDefaultSubscribeAllRemoteVideoStreams(false)` untuk menghentikan perilaku langganan default. Hal ini mencegah SDK berlangganan ke aliran video pengguna yang bergabung ke saluran setelahnya.

    • Setelah menghentikan perilaku langganan default, panggil metode subscribeRemoteVideoStream untuk berlangganan aliran video pengguna tertentu. Untuk berlangganan aliran video beberapa pengguna, Anda harus memanggil metode ini untuk setiap pengguna.

    • Setelah Anda menghentikan langganan default, pemanggilan setDefaultSubscribeAllRemoteVideoStreams(false) hanya akan melanjutkan aliran audio dari pengguna yang kemudian bergabung ke saluran.

Parameter

Nama

Tipe

Deskripsi

sub

boolean

  • YES: Berlangganan aliran video. Ini adalah nilai default.

  • NO: Jangan berlangganan aliran video.

Nilai kembali

Nilai 0 menandakan bahwa panggilan metode berhasil. Nilai lainnya menandakan bahwa panggilan tersebut gagal.

subscribeRemoteVideoStream

Menghentikan atau melanjutkan penerimaan aliran video pengguna jarak jauh.

- (int)subscribeRemoteVideoStream:(NSString *_Nonnull)uid track:(AliRtcVideoTrack)track sub:(BOOL)sub;

Anda dapat berlangganan atau membatalkan langganan aliran video pengguna tertentu.

Catatan

Secara default, SDK berlangganan aliran video semua pengguna jarak jauh saat Anda bergabung ke saluran. Untuk menonaktifkan perilaku default ini, panggil <a baseurl="t2309850_v10_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="97d89be88bvan">setDefaultSubscribeAllRemoteVideoStreams</a>(false) sebelum Anda bergabung ke saluran.

Kapan Dipanggil

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran.

Deskripsi Metrik

Nama

Tipe

Deskripsi

uid

NSString *

ID pengguna. Ini adalah pengidentifikasi unik yang ditetapkan oleh server aplikasi.

track

AliRtcVideoTrack

Jenis aliran video.

sub

BOOL

Menunjukkan apakah akan berlangganan aliran tersebut.

subscribeAllRemoteVideoStreams

Menghentikan atau melanjutkan penerimaan semua aliran video jarak jauh.

Catatan

Metode ini berfungsi sebagai sakelar utama untuk berlangganan aliran video jarak jauh. Jika Anda mengatur parameter ini ke NO, SDK akan berhenti berlangganan semua aliran video jarak jauh dalam rapat saat ini, termasuk aliran dari pengguna baru yang bergabung kemudian. Hal ini terjadi meskipun sebelumnya Anda telah memanggil setDefaultSubscribeAllRemoteVideoStreams:YES.

- (int)subscribeAllRemoteVideoStreams:(BOOL)sub;

Jika Anda mengatur parameter ke false, hal-hal berikut terjadi:

  • SDK berhenti berlangganan semua aliran video jarak jauh dalam rapat saat ini.

  • SDK tidak berlangganan pengguna baru yang bergabung ke dalam rapat, meskipun Anda telah memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="0464849a17dks">setDefaultSubscribeAllRemoteVideoStreams</a> untuk mengaktifkan langganan default.

  • Anda tidak dapat menggunakan <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#1cc7ef76fdawz" id="498e782f414zz">subscribeRemoteVideoStream</a> untuk mengontrol secara terpisah aliran audio pengguna tertentu.

Untuk melanjutkan langganan, panggil kembali metode ini dan atur parameter ke true.

Catatan

Secara default, SDK berlangganan aliran video semua pengguna jarak jauh saat Anda bergabung ke dalam rapat. Untuk mengubah perilaku ini, Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="317fa38ecf6ya">setDefaultSubscribeAllRemoteVideoStreams</a> sebelum bergabung ke dalam rapat untuk menonaktifkan langganan default ini.

Deskripsi parameter

Nama

Tipe

Deskripsi

sub

BOOL

  • YES: Berlangganan aliran video semua pengguna.

  • NO: Menghentikan langganan aliran video semua pengguna. Nilai default adalah YES.

Nilai kembali

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan kegagalan.

subscribeRemoteMediaStream[1/2]

Melakukan Berlangganan atau membatalkan langganan aliran media dari pengguna jarak jauh tertentu.

- (int)subscribeRemoteMediaStream:(NSString *_Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack subVideo:(BOOL)subVideo subAudio:(BOOL)subAudio;

Metode ini berlangganan aliran audio dan video jarak jauh.

Antarmuka terkait

Dibandingkan dengan subscribeRemoteMediaStream[2/2], antarmuka ini menggunakan dua parameter Boolean, subVideo dan subAudio, untuk menentukan apakah akan berlangganan aliran audio dan video jarak jauh, serta parameter videoTrack untuk menentukan aliran video mana yang akan ditarik.

Catatan: Untuk metode ini, properti AliRtcVideoTrackNo dari AliRtcVideoTrack tidak valid. Mengaturnya tidak memiliki efek apa pun.

Parameter

Parameter

Tipe

Deskripsi

uid

String

ID pengguna jarak jauh.

videoTrack

AliRtcVideoTrack

Jenis aliran video.

subVideo

Boolean

Menentukan apakah akan menghentikan atau melanjutkan penarikan aliran video dari pengguna jarak jauh. Nilai yang valid:

  • true: (Default) Lanjutkan.

  • false: Hentikan.

subAudio

Boolean

Menentukan apakah akan menghentikan atau melanjutkan penarikan aliran audio dari pengguna jarak jauh. Nilai yang valid:

  • true: (Default) Lanjutkan.

  • false: Hentikan.

Nilai kembali

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.

subscribeRemoteMediaStream[2/2]

Berlangganan atau berhenti berlangganan aliran media dari pengguna jarak jauh tertentu.

- (int)subscribeRemoteMediaStream:(NSString *_Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack audioTrack:(AliRtcAudioTrack)audioTrack;

Anda dapat menggunakan metode ini untuk berlangganan aliran audio dan video jarak jauh.

Catatan

Metode ini menggunakan parameter videoTrack dan audioTrack untuk menentukan status langganan yang diinginkan dalam satu panggilan.

Metode terkait

Berbeda dengan subscribeRemoteMediaStream[1/2], metode ini menggunakan parameter videoTrack dan audioTrack untuk mengatur status langganan yang diinginkan dalam satu panggilan. Contohnya:

  • Untuk berlangganan aliran Kamera dan aliran mikrofon, atur videoTrack ke AliRtcVideoTrackCamera dan audioTrack ke AliRtcAudioTrackMic.

  • Untuk berhenti berlangganan aliran Kamera tetapi tetap berlangganan aliran mikrofon, atur videoTrack ke AliRtcVideoTrackNo dan audioTrack ke AliRtcAudioTrackMic.

  • Untuk berhenti berlangganan kedua aliran tersebut, atur videoTrack ke AliRtcVideoTrackNo dan audioTrack ke AliRtcAudioTrackNo.

  • Untuk berlangganan baik aliran Kamera maupun aliran berbagi layar, atur videoTrack ke AliRtcVideoTrackBoth. Logika yang sama berlaku untuk aliran audio.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *

ID pengguna jarak jauh.

videoTrack

AliRtcVideoTrack

Jenis aliran video.

audioTrack

AliRtcAudioTrack

Jenis aliran audio.

Nilai kembali

Nilai kembali 0 menunjukkan bahwa metode berhasil dipanggil. Nilai bukan nol menunjukkan bahwa panggilan gagal.

subscribeRemoteDestChannelStream

Berlangganan ke aliran pengguna tertentu di saluran lain.

- (int)subscribeRemoteDestChannelStream:(NSString *_Nonnull)channelId uid:(NSString *_Nonnull)uid track:(AliRtcVideoTrack)track subAudio:(BOOL)subAudio sub:(BOOL)sub;

Parameter

Parameter

Tipe

Deskripsi

channelId

String

ID saluran jarak jauh.

uid

String

ID pengguna jarak jauh.

track

AliRtcVideoTrack

Aliran video yang akan berlangganan.

sub_audio

boolean

Menentukan apakah akan menerima aliran audio dari pengguna jarak jauh. Nilai yang valid:

  • true (default): Melanjutkan operasi.

  • false: Menghentikan.

sub

boolean

Menentukan apakah akan berlangganan atau membatalkan langganan terhadap aliran pengguna tertentu di saluran lain.

Nilai kembalian

Mengembalikan 0 jika panggilan berhasil, atau nilai bukan nol jika panggilan gagal.

subscribeRemoteDestChannelAllStream

Berlangganan ke aliran dari semua pengguna di saluran tujuan.

- (int)subscribeRemoteDestChannelAllStream:(NSString *_Nonnull)channelId track:(AliRtcVideoTrack)track subAudio:(BOOL)subAudio sub:(BOOL)sub;

Parameter

Name

Type

Description

channelId

NSString *

Saluran target.

videotrack

AliRtcVideoTrack

Jenis aliran video.

audioTrack

AliRtcAudioTrack

Jenis aliran audio.

subAudio

BOOL

Menentukan apakah akan berlangganan aliran audio.

sub

BOOL

Menentukan apakah akan berlangganan aliran video pengguna di saluran jarak jauh.

Nilai kembali

Mengembalikan 0 jika berhasil. Nilai selain nol mengindikasikan kegagalan.

setRemoteAudioVolume

Mengatur volume pemutaran pengguna jarak jauh.

- (int)setRemoteAudioVolume:(NSString *_Nonnull)uid volume:(NSInteger)volume;
Catatan

Anda harus memanggil metode ini setelah pengguna jarak jauh bergabung ke dalam rapat. Pemanggilan metode akan gagal jika pengguna yang ditentukan belum bergabung ke dalam rapat.

Parameters

Name

Type

Description

uid

NSString *

ID pengguna. Ini adalah pengenal unik yang diberikan oleh server App.

volume

NSInteger

Volume pemutaran. Nilainya berkisar antara 0 hingga 100. 0: Bisu. 100: Volume asli.

Return value

0 menunjukkan bahwa pemanggilan metode berhasil. Nilai bukan nol menunjukkan kegagalan.

muteLocalMic

Menghentikan atau melanjutkan pengiriman aliran audio lokal.

- (int)muteLocalMic:(BOOL)mute mode:(AliRtcMuteLocalAudioMode)mode;
Catatan

Saat dimatikan suaranya, aliran audio mengirimkan frame diam. Modul perekaman dan pengkodean audio tetap berjalan.

Kapan harus dipanggil

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran.

Callback terkait

Setelah pemanggilan berhasil, callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3189c59d9fipb" id="1579c3523779c">onUserAudioMuted</a> dipicu untuk menunjukkan apakah pengguna jarak jauh dimatikan suaranya.

Parameter

Nama

Tipe

Deskripsi

mute

BOOL

  • YES: Mematikan suara aliran audio lokal dengan mengirimkan frame kosong.

  • Nilai NO menunjukkan bahwa operasi normal telah dilanjutkan. Nilai default-nya adalah NO.

mode

AliRtcMuteLocalAudioMode

Mode mute. Secara default, semua audio dimatikan suaranya.

  • AliRtcMuteAudioModeDefault: Mematikan semua audio, termasuk mikrofon dan input audio eksternal.

  • AliRtcMuteAllAudioMode: Mematikan semua audio, termasuk mikrofon dan input audio eksternal.

  • AliRtcMuteOnlyMicAudioMode: Hanya mematikan mikrofon.

Nilai kembali

Nilai kembali 0 menunjukkan pemanggilan metode berhasil. Nilai lainnya menunjukkan pemanggilan gagal.

muteRemoteAudioPlaying

Menghentikan atau melanjutkan pemutaran audio jarak jauh.

- (int)muteRemoteAudioPlaying:(NSString *_Nonnull)uid mute:(BOOL)mute;- (int)muteRemoteAudioPlaying:(NSString *_Nonnull)uid mute:(BOOL)mute;- (int)muteRemoteAudioPlaying:(NSString *_Nonnull)uid mute:(BOOL)mute;

Metode ini hanya menghentikan atau melanjutkan pemutaran audio dari pengguna jarak jauh tertentu, dan tidak memengaruhi penarikan aliran dan decoding audio jarak jauh. Untuk berhenti berlangganan aliran audio pengguna, panggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#c8249fb568gms" id="dd9dbbad0bkni">subscribeRemoteAudioStream</a>.

Kapan harus dipanggil

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran.

Parameter

Nama

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna.

mute

BOOL

  • YES: Menghentikan pemutaran.

  • NO: Melanjutkan pemutaran. Nilai default adalah NO.

Nilai Kembali

0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.

muteAllRemoteAudioPlaying

Metode ini menghentikan atau melanjutkan pemutaran semua audio jarak jauh.

- (int)muteAllRemoteAudioPlaying:(BOOL)mute;

Metode ini menghentikan atau melanjutkan semua aliran audio jarak jauh.

Catatan

Metode ini hanya menghentikan pemutaran audio dan tidak memengaruhi penarikan aliran atau pendekodean.

Kapan memanggil

Anda dapat memanggil metode ini sebelum atau setelah bergabung dengan saluran.

Parameter

Nama

Tipe

Deskripsi

mute

BOOL

  • YES: Menghentikan pemutaran.

  • NO: Melanjutkan pemutaran. Nilai default-nya adalah NO.

Nilai Kembali

Mengembalikan 0 jika panggilan metode berhasil. Nilai non-nol menunjukkan bahwa panggilan metode gagal.

startAudioCapture[1/2]

Memulai pengambilan audio.

- (void)startAudioCapture;

Metode ini memulai pengambilan audio. Anda dapat memanggilnya sebelum bergabung ke rapat untuk memulai pengambilan audio lebih awal. Secara default, SDK secara otomatis mengelola perangkat pengambilan audio. Jika Anda menghentikan pengambilan audio dengan memanggil stopAudioCapture, Anda harus memanggil metode ini lagi untuk memulainya kembali.

Kapan harus dipanggil

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke rapat.

Metode terkait

Antarmuka startAudioCapture[2/2] memungkinkan Anda menggunakan parameter untuk menentukan apakah perangkat pengambilan audio tetap diaktifkan setelah Anda meninggalkan rapat.

Callback terkait

Setelah Anda memanggil metode ini, setiap perubahan pada status pengambilan audio lokal dilaporkan melalui callback onLocalAudioStateChanged.

Pengembalian

Nilai kembali 0 menunjukkan pemanggilan berhasil. Nilai lainnya menunjukkan pemanggilan gagal.

startAudioCapture[2/2]

Memulai penangkapan audio.

- (void)startAudioCapture:(BOOL)keepAlive;

Membisukan mikrofon akan menghentikan penangkapan audio.

Anda dapat memanggil metode ini untuk memulai penangkapan audio sebelum bergabung ke dalam rapat. Jika Anda tidak memanggil metode ini, SDK secara otomatis mengontrol perangkat penangkapan audio.

Kapan harus dipanggil

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke dalam rapat.

Metode terkait

Dibandingkan dengan startAudioCapture[1/2], metode ini memungkinkan Anda menggunakan parameter keepAlive untuk mengontrol apakah perangkat penangkapan tetap diaktifkan setelah Anda meninggalkan rapat.

Callback terkait

Saat Anda memanggil metode ini, setiap perubahan status penangkapan audio lokal dilaporkan melalui callback onLocalAudioStateChanged.

Parameter

Parameter

Tipe

Deskripsi

keepAlive

boolean

Status perangkat penangkapan setelah Anda meninggalkan rapat. Nilai yang valid:

  • true: Perangkat penangkapan tetap diaktifkan setelah Anda meninggalkan rapat.

  • false (default): Perangkat penangkapan dinonaktifkan setelah Anda meninggalkan rapat.

Nilai kembali

Nilai kembali 0 menunjukkan bahwa metode berhasil dipanggil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.

stopAudioCapture

Menghentikan pengambilan audio.

- (void)stopAudioCapture;

Anda dapat memanggil metode ini untuk menghentikan pengambilan perangkat audio yang dimulai dengan memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3103c368bexf8" id="ddef64f9b93zq">startAudioCapture</a>.

Callback terkait

Pemanggilan metode ini memicu callback onLocalAudioStateChanged untuk melaporkan perubahan status pengambilan audio lokal.

Nilai kembali

Nilai kembali 0 menunjukkan pemanggilan metode berhasil. Nilai bukan nol menunjukkan pemanggilan metode gagal.

enableSpeakerphone

Mengalihkan output audio ke earpiece atau speaker (hanya iOS).

- (int)enableSpeakerphone:(BOOL)enable;

Metode ini mengalihkan perangkat pemutaran audio ke earpiece atau speaker setelah Anda bergabung ke saluran. Jika Anda tidak memanggil metode ini, rute audio default digunakan untuk pemutaran.

SDK memiliki prioritas perutean audio yang telah ditentukan sebelumnya dan secara otomatis mengalihkan rute audio berdasarkan status koneksi perangkat eksternal. Prioritasnya adalah sebagai berikut: Headset berkabel > Headset Bluetooth > Pengaturan pengguna > Pengaturan default. Oleh karena itu, memanggil metode ini tidak berpengaruh ketika perangkat eksternal terhubung. Untuk informasi selengkapnya tentang pengaturan perutean audio, lihat Pengaturan perutean audio.

Kapan harus dipanggil

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran.

Metode terkait

<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#83be8cc066qqq" id="f8de149ef8so0">setDefaultAudioRoutetoSpeakerphone</a> memodifikasi rute audio default dan menetapkan perangkat audio saat ini.

Parameter

Nama

Tipe

Deskripsi

enable

BOOL

  • YES: Mode speakerphone.

  • NO: Mode earpiece. Nilai default adalah YES.

Mengembalikan

0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.

isEnableSpeakerphone

Memeriksa apakah speakerphone diaktifkan. Metode ini hanya berlaku untuk iOS.

- (BOOL)isEnableSpeakerphone;

Deskripsi Respons

Mengembalikan YES untuk mode speaker atau NO untuk mode earpiece.

enableAudioVolumeIndication

Mengatur frekuensi callback volume dan koefisien penghalusan.

- (int)enableAudioVolumeIndication:(NSInteger)interval smooth:(NSInteger)smooth reportVad:(NSInteger)reportVad;

Metode ini memungkinkan SDK melaporkan secara berkala volume pengguna lokal yang sedang menerbitkan aliran dan volume pengguna jarak jauh dengan volume instan tertinggi.

Kapan harus dipanggil

Panggil metode ini sebelum atau setelah bergabung ke saluran.

Callback terkait

Setelah Anda berhasil memanggil metode ini, SDK memicu dua callback berikut pada interval yang ditentukan jika pengguna sedang menerbitkan aliran di saluran:

  • Callback onAudioVolumeCallback melaporkan volume audio setiap pembicara. Frekuensi callback ini ditentukan oleh parameter `interval`.

  • Saat aktivitas suara terdeteksi, callback onActiveSpeaker melaporkan UID pengguna aktif yang sedang berbicara.

Parameter

Nama

Tipe

Deskripsi

interval

NSInteger

Interval waktu dalam milidetik. Nilai minimum adalah 10 ms. Rentang yang direkomendasikan adalah 300 ms hingga 500 ms. Jika Anda mengatur parameter ini ke 0 atau nilai negatif, indikasi volume dan deteksi pembicara aktif akan dinonaktifkan.

smooth

NSInteger

Koefisien penghalusan. Nilainya berkisar antara 0 hingga 9. Nilai yang lebih besar memberikan tingkat penghalusan yang lebih tinggi. Nilai yang lebih kecil memberikan kinerja real-time yang lebih baik. Nilai yang direkomendasikan adalah 3.

reportVad

NSInteger

Menentukan apakah deteksi pembicara diaktifkan. Nilai yang valid:

  • 1: Diaktifkan. Status setiap pembicara dilaporkan dalam callback onAudioVolumeCallback.

  • 0: Dinonaktifkan.

Nilai kembali

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan metode gagal.

enableEarBack

Mengaktifkan pemantauan in-ear.

- (int)enableEarBack:(BOOL)enable;

Metode ini mengaktifkan atau menonaktifkan fitur pemantauan in-ear. Untuk hasil terbaik, gunakan fitur ini dengan headphone berkabel atau Bluetooth.

Kapan harus dipanggil

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran.

Parameter

Nama

Tipe

Deskripsi

enable

BOOL

  • YES: Mengaktifkan pemantauan in-ear.

  • NO: Menonaktifkan pemantauan in-ear. Ini adalah nilai default.

Mengembalikan

0 menunjukkan bahwa pemanggilan metode berhasil. Nilai selain 0 menunjukkan bahwa pemanggilan metode gagal.

setEarBackVolume

Mengatur volume pemantauan in-ear.

- (int)setEarBackVolume:(NSInteger)volume;

Metode ini mengatur volume pemantauan in-ear. Pengaturan ini hanya berlaku setelah Anda mengaktifkan pemantauan in-ear dengan memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#bd665d0f894ux" id="b0fa866c9bcuq">enableEarBack</a>.

Kapan harus dipanggil

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran.

Parameter

Nama

Tipe

Deskripsi

volume

NSInteger

Nilainya berkisar dari 0 hingga 100. Nilai default adalah 100.

Mengembalikan

0 menunjukkan bahwa pemanggilan metode berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan metode gagal.

startAudioPlayer

Memulai pemutaran audio.

- (void)startAudioPlayer;
Catatan

Anda dapat memanggil metode ini untuk memulai pemutaran audio lebih awal. Jika Anda tidak memanggil metode ini, SDK akan secara otomatis memulai pemutaran setelah berlangganan ke aliran audio.

stopAudioPlayer

Menghentikan pemutaran audio.

- (void)stopAudioPlayer;
Catatan

Anda dapat menggunakan metode ini untuk menghentikan pemutaran audio.

setPlayoutVolume

Mengatur volume pemutaran.

- (int)setPlayoutVolume:(NSInteger)volume;

Parameters

Name

Type

Description

volume

Volume

Volume pemutaran. Nilainya dapat berkisar dari 0 hingga 400. Nilai dari 0 hingga 100 merepresentasikan volume asli. Nilai dari 100 hingga 400 memperkuat volume.

Return value

Mengembalikan 0 jika berhasil, atau nilai bukan nol jika gagal.

setRecordingVolume

Mengatur volume perekaman.

- (int)setRecordingVolume:(NSInteger)volume;

Parameters

Name

Type

Description

volume

NSInteger

Rentang nilai yang valid adalah 0 hingga 400. Nilai 100 merepresentasikan volume asli. Nilai yang lebih besar dari 100 akan memperkuat volume.

Return value

Mengembalikan 0 jika berhasil, atau nilai bukan nol jika gagal.

playAudioFileTest

Memutar file audio.

- (int)playAudioFileTest:(NSString *_Nonnull)filePath;
Catatan

Panggil metode ini sebelum Anda bergabung ke saluran.

Parameters

Parameter

Type

Description

filePath

NSString *_Nonnull

Jalur file audio yang akan diputar.

Return value

Mengembalikan 0 jika berhasil, atau nilai bukan nol jika gagal.

stopAudioFileTest

Menghentikan pemutaran file audio.

- (int)stopAudioFileTest;
Catatan

Panggil metode ini sebelum memanggil JoinChannel.

Nilai kembalian

Mengembalikan 0 jika berhasil, atau nilai bukan nol jika gagal.

startAudioCaptureTest

Memulai pengujian perangkat tangkapan audio sebelum panggilan.

- (void)startAudioCaptureTest;
Catatan

Anda harus memanggil metode ini sebelum `joinchannel`. Metode ini gagal jika dipanggil setelah `joinchannel`.

stopAudioCaptureTest

Menghentikan pengujian pra-panggilan untuk perangkat tangkapan audio.

- (void)stopAudioCaptureTest;
Catatan

Anda hanya dapat memanggil metode ini sebelum memanggil joinchannel. Jika tidak, panggilan akan gagal.

setDefaultAudioRoutetoSpeakerphone

Menentukan apakah akan menggunakan speaker sebagai output audio default. Secara default, speaker digunakan.

- (int)setDefaultAudioRouteToSpeakerphone:(BOOL)defaultToSpeakerphone;

Anda dapat memanggil antarmuka ini sebelum bergabung ke saluran untuk mengatur perangkat routing audio default ke earpiece atau speaker. Secara default, SDK mengarahkan audio ke speaker. Untuk mengubah konfigurasi default ini, Anda harus memanggil antarmuka ini sebelum bergabung ke saluran.

Prioritas routing audio telah ditentukan sebelumnya dalam SDK dan secara otomatis beralih berdasarkan status koneksi periferal saat ini. Prioritasnya adalah sebagai berikut: Wired headset > Bluetooth headset > User settings > Default settings. Oleh karena itu, jika tidak ada perangkat periferal yang terhubung dan Anda tidak memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#f7d0d8b64fzkz" id="30798b686b5qk">enableSpeakerphone</a>, pengaturan default akan diterapkan.

Untuk informasi selengkapnya, lihat Pengaturan routing audio.

Perangkat seluler biasanya memiliki dua perangkat routing audio: earpiece dan speaker.

  • Ketika audio diarahkan ke earpiece, volumenya rendah, dan suara hanya jelas jika perangkat didekatkan ke telinga. Hal ini memberikan privasi yang baik dan cocok untuk panggilan telepon.

  • Ketika audio diarahkan ke speaker, suaranya keras, sehingga Anda dapat mendengar dengan jelas tanpa menempelkan ponsel ke wajah. Hal ini memungkinkan fitur hands-free.

API Terkait

Antarmuka ini mengubah pengaturan routing audio default, sedangkan antarmuka <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#f7d0d8b64fzkz" id="6001aa98ebapw">enableSpeakerphone</a> mengatur perangkat routing saat ini.

Kapan Memanggil

Anda dapat memanggil antarmuka ini sebelum atau setelah bergabung ke saluran.

Deskripsi Metrik

Nama

Tipe

Deskripsi

defaultToSpeakerphone

BOOL

Menentukan apakah audio diarahkan ke speaker. YES mengarahkan audio ke speaker. NO mengarahkan audio ke earpiece.

Nilai Kembalian

0 menunjukkan keberhasilan. Nilai lain menunjukkan kegagalan.

setAudioEffectVoiceChangerMode

Mengatur mode efek pengubah suara.

- (int)setAudioEffectVoiceChangerMode:(AliRtcAudioEffectVoiceChangerMode)mode;

Parameter

Nama

Tipe

Deskripsi

mode

AliRtcAudioEffectVoiceChangerMode

Mode efek pengubah suara. Nilai default adalah AliRtcSdk_AudioEffect_Voice_Changer_OFF.

Nilai kembalian

0 menunjukkan bahwa pemanggilan berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan gagal.

setAudioEffectPitchValue

Mengatur pitch efek audio.

- (int)setAudioEffectPitchValue:(double)value;

Parameters

Name

Type

Description

value

double

Nilai berkisar dari 0,5 hingga 2,0. Nilai default adalah 1,0. Nilai 1,0 menunjukkan bahwa pitch tidak berubah.

Return value

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan gagal.

setAudioEffectReverbMode

Mengatur mode efek suara reverb.

- (int)setAudioEffectReverbMode:(AliRtcAudioEffectReverbMode)mode;

Parameters

Name

Type

Description

mode

AliRtcAudioEffectReverbMode

Mode efek suara. Nilai default adalah AliRtcAudioEffectReverb_Off.

Return value

Mengembalikan nilai 0 jika pemanggilan metode berhasil, dan nilai bukan nol jika gagal.

setAudioEffectReverbParamType

Mengatur jenis dan parameter efek suara reverb.

- (int)setAudioEffectReverbParamType:(AliRtcAudioEffectReverbParamType)type value:(float)value;

Parameters

Name

Type

Description

type

AliRtcAudioEffectReverbParamType

Mode reverb untuk efek suara.

value

float

Nilai parameter.

Response Description

Nilai kembali 0 menunjukkan pemanggilan metode berhasil. Nilai lainnya menunjukkan pemanggilan metode gagal.

addExternalAudioStream

Menambahkan aliran audio eksternal.

- (int)addExternalAudioStream:(AliRtcExternalAudioStreamConfig *_Nonnull)config;

Metode ini menambahkan aliran audio eksternal. Ikuti langkah-langkah berikut:

  1. Panggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#d71bbfd2f242b" id="c3103216e9eu35">addExternalAudioStream</a> untuk menambahkan aliran audio eksternal dan mendapatkan ID aliran audio eksternal.

  2. Panggil pushExternalAudioStream untuk mendorong data audio ke aliran audio yang telah dibuat.

  3. Saat panggilan berakhir, Anda harus memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#282d70095duaw" id="16f621608d94x">removeExternalAudioStream</a> untuk menghapus aliran audio eksternal.

Untuk informasi selengkapnya tentang memublikasikan audio hasil tangkapan kustom dalam saluran, lihat Custom audio capture.

Parameters

Name

Type

Description

config

AliRtcExternalAudioStreamConfig

Konfigurasi aliran audio eksternal.

Returns

Nilai kembali lebih besar dari 0 menunjukkan panggilan berhasil. Nilai ini merupakan ID aliran audio eksternal. Nilai lainnya menunjukkan bahwa panggilan gagal.

pushExternalAudioStream

Menyisipkan data aliran audio eksternal.

- (int)pushExternalAudioStream:(int)streamId rawData:(AliRtcAudioFrame * _Nonnull)audioFrame;

Untuk menyisipkan data ke aliran audio tertentu, ikuti langkah-langkah berikut:

  1. Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#d71bbfd2f242b" id="0a353f7272shu">addExternalAudioStream</a> untuk menambahkan aliran audio eksternal dan mendapatkan ID-nya.

  2. Anda dapat memanggil metode ini untuk menyisipkan data audio ke aliran audio yang telah dibuat.

  3. Saat panggilan berakhir, panggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#282d70095duaw" id="a9ebc8d599dz4">removeExternalAudioStream</a> untuk menghapus aliran audio eksternal tersebut.

Untuk petunjuk tentang cara memublikasikan audio hasil tangkapan kustom dalam saluran, lihat Custom audio capture.

Parameters

Nama

Tipe

Deskripsi

streamId

int

ID dari aliran audio eksternal.

audioFrame

AliRtcAudioFrame

Data audio.

Returns

Nilai kembali 0 menunjukkan pemanggilan metode berhasil. Nilai lainnya menunjukkan pemanggilan gagal.

setExternalAudioStream:publishVolume

Mengatur volume publikasi aliran audio eksternal.

- (int)setExternalAudioStream:(int)streamId
                publishVolume:(int)publishVolume;

Parameter

Nama

Tipe

Deskripsi

streamId

int

ID dari aliran audio eksternal.

publishVolume

int

Volume publikasi.

Nilai kembali

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.

getExternalAudioStreamPublishVolume

Mengambil volume publikasi dari aliran audio eksternal.

- (int)getExternalAudioStreamPublishVolume:(int)streamId;

Parameters

Name

Type

Description

streamId

int

ID dari aliran audio eksternal.

Return value

Volume publikasi, yang berkisar antara 0 hingga 100. Nilai kurang dari 0 menunjukkan bahwa panggilan gagal.

setExternalAudioStream:playoutVolume

Mengatur volume pemutaran aliran audio eksternal.

- (int)setExternalAudioStream:(int)streamId
                playoutVolume:(int)playoutVolume;

Parameters

Name

Type

Description

streamId

int

ID dari aliran audio eksternal.

playoutVolume

int

Volume pemutaran.

Returns

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.

getExternalAudioStreamPlayoutVolume

Mengambil volume pemutaran aliran audio eksternal.

- (int)getExternalAudioStreamPlayoutVolume:(int)streamId;

Parameters

Name

Type

Description

streamId

int

ID dari aliran audio eksternal.

Returns

Volume pemutaran. Nilainya berkisar antara 0 hingga 100. Nilai kurang dari 0 menunjukkan bahwa panggilan gagal.

removeExternalAudioStream

Menghapus aliran audio eksternal.

- (int)removeExternalAudioStream:(int)streamId;

Metode ini menghapus aliran audio eksternal untuk ID aliran tertentu. Metode ini merupakan pasangan dari metode addExternalAudioStream.

Kapan harus dipanggil

Untuk menggunakan fitur input audio kustom, panggil metode addExternalAudioStream untuk menambahkan aliran audio dan mendapatkan ID aliran audio eksternal. Kemudian, panggil metode pushExternalAudioStream untuk mendorong data audio Anda ke SDK. Untuk menghentikan input audio kustom, panggil metode ini untuk menghapus aliran audio eksternal dan melepaskan sumber dayanya.

Parameter

Nama

Tipe

Deskripsi

streamId

int

ID dari aliran audio eksternal.

Nilai kembalian

Mengembalikan 0 jika berhasil. Nilai lain menunjukkan kegagalan.

getAudioFileInfo

Mengambil informasi mengenai berkas audio.

- (int)getAudioFileInfo:(NSString *_Nonnull)filePath;
Catatan

Ini adalah metode asinkron. Informasi berkas audio dikembalikan dalam callback {@link onAudioFileInfo:errorCode:}.

Parameters

Name

Type

Description

filePath

NSString *

Jalur menuju berkas audio.

startAudioAccompanyWithFile

Memulai pencampuran iringan audio.

- (int)startAudioAccompanyWithFile:(NSString *_Nonnull)filePath config:(AliRtcAudioAccompanyConfig *_Nonnull)config;
Catatan

Ini adalah panggilan asinkron. Anda dapat menggunakan Pendengar {@link onAudioAccompanyStateChanged:errorCode:} untuk memantau status pemutaran.

Parameters

Name

Type

Description

filePath

NSString *

Jalur file.

config

AliRtcAudioAccompanyConfig *

Konfigurasi iringan audio.

Return value

Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai lain menunjukkan bahwa panggilan gagal.

stopAudioAccompany

Menghentikan pencampuran audio iringan.

- (int)stopAudioAccompany;

Nilai kembalian

Mengembalikan 0 jika panggilan berhasil, atau nilai lain jika panggilan gagal.

setAudioAccompanyVolume

Mengatur volume audio iringan.

- (int)setAudioAccompanyVolume:(NSInteger)volume;
Catatan

Metode ini mengatur volume untuk pemutaran lokal maupun pengambilan aliran.

Parameters

Name

Type

Description

volume

NSInteger

Volume audio iringan. Nilainya berkisar dari 0 hingga 100.

Return value

Mengembalikan 0 jika berhasil. Kode kesalahan dikembalikan jika gagal.

setAudioAccompanyPublishVolume

Mengatur volume iringan audio untuk pengambilan aliran.

- (int)setAudioAccompanyPublishVolume:(NSInteger)volume;
Catatan

Pengaturan ini mengontrol volume iringan audio dalam aliran yang dipublikasikan.

Parameters

Name

Type

Description

volume

NSInteger

Volume iringan audio. Nilainya berkisar dari 0 hingga 100.

Return value

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

getAudioAccompanyPublishVolume

Mengambil volume iringan untuk pengambilan aliran.

- (int)getAudioAccompanyPublishVolume;

Return value

Nilai dari 0 hingga 100 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

setAudioAccompanyPlayoutVolume

Mengatur volume pemutaran lokal untuk iringan audio.

- (int)setAudioAccompanyPlayoutVolume:(NSInteger)volume;

Parameters

Name

Type

Description

volume

NSInteger

Volume iringan audio. Nilainya berkisar dari 0 hingga 100.

Return value

Mengembalikan 0 jika berhasil. Nilai lainnya menunjukkan kegagalan.

getAudioAccompanyPlayoutVolume

Mengambil volume pemutaran lokal dari iringan audio.

- (int)getAudioAccompanyPlayoutVolume;

Nilai kembali

Nilai kembali dari 0 hingga 100 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

pauseAudioAccompany

Menghentikan sementara iringan audio.

- (int)pauseAudioAccompany;

Return value

Mengembalikan nilai 0 jika berhasil dan nilai bukan nol jika gagal.

resumeAudioAccompany

Menjalankan kembali pencampuran iringan audio.

- (int)resumeAudioAccompany;

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan, dan nilai bukan nol menunjukkan kegagalan.

getAudioAccompanyDuration

Mengambil durasi file iringan audio dalam milidetik.

- (int)getAudioAccompanyDuration;

Nilai kembalian

Pemanggilan yang berhasil mengembalikan durasi file iringan audio dalam milidetik, yaitu nilai 0 atau lebih besar. Pemanggilan yang gagal mengembalikan nilai <0.

getAudioAccompanyCurrentPosition

Mengambil progres pemutaran file iringan dalam milidetik.

- (int)getAudioAccompanyCurrentPosition;

Nilai kembalian

Progres pemutaran file iringan. Nilai kurang dari 0 dikembalikan jika operasi gagal.

setAudioAccompanyPosition

Mengatur posisi pemutaran file iringan.

- (int)setAudioAccompanyPosition:(int)pos;

Parameters

Name

Type

Description

pos

int

Posisi pemutaran, dalam milidetik (ms).

Return value

Mengembalikan 0 jika berhasil. Nilai lainnya menunjukkan kegagalan.

preloadAudioEffectWithSoundId

Memuat sebelumnya file efek suara.

- (int)preloadAudioEffectWithSoundId:(NSInteger)soundId filePath:(NSString *_Nonnull)filePath;

Parameter

Nama

Tipe

Deskripsi

soundId

NSInteger

ID yang Anda tetapkan untuk file efek suara.

filePath

NSString *_Nonnull

Jalur file efek suara.

Nilai kembalian

0 menunjukkan bahwa pemanggilan metode berhasil. Nilai selain 0 menunjukkan bahwa pemanggilan metode gagal.

unloadAudioEffectWithSoundId

Menghapus pemuatan berkas efek suara yang telah dimuat sebelumnya.

- (int)unloadAudioEffectWithSoundId:(NSInteger)soundId;

Parameter

Nama

Tipe

Deskripsi

soundId

NSInteger

ID yang ditetapkan pengguna untuk berkas efek suara.

Deskripsi Respons

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

playAudioEffectWithSoundId

Memulai pemutaran efek suara.

- (int)playAudioEffectWithSoundId:(NSInteger)soundId filePath:(NSString *_Nonnull)filePath cycles:(NSInteger)cycles publish:(BOOL)publish;

Parameter

Nama

Tipe

Deskripsi

soundId

NSInteger

ID yang Anda tetapkan untuk berkas efek suara.

filePath

NSString *_Nonnull

Jalur berkas efek suara.

cycles

NSInteger

Jumlah putaran. Nilainya dapat berupa -1 atau bilangan bulat positif.

publish

BOOL

Apakah akan memublikasikan efek suara tersebut.

Nilai kembalian

Nilai 0 menunjukkan pemanggilan metode berhasil. Nilai lainnya menunjukkan kegagalan.

stopAudioEffectWithSoundId

Menghentikan pemutaran efek suara.

- (int)stopAudioEffectWithSoundId:(NSInteger)soundId;

Parameters

Name

Type

Description

soundId

NSInteger

ID yang diberikan ke file efek suara.

Return value

Mengembalikan 0 jika pemanggilan metode berhasil, atau nilai bukan nol jika gagal.

stopAllAudioEffects

Menghentikan pemutaran semua efek suara.

- (int)stopAllAudioEffects;

Nilai kembali

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.

pauseAudioEffectWithSoundId

Menghentikan sementara efek suara.

- (int)pauseAudioEffectWithSoundId:(NSInteger)soundId;

Parameter

Nama

Tipe

Deskripsi

soundId

NSInteger

ID yang diberikan ke file efek suara.

Nilai kembali

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.

pauseAllAudioEffects

Menghentikan sementara semua efek suara.

- (int)pauseAllAudioEffects;

Returns

0 menunjukkan bahwa pemanggilan metode berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan metode gagal.

resumeAudioEffectWithSoundId

Menjalankan kembali pemutaran efek suara.

- (int)resumeAudioEffectWithSoundId:(NSInteger)soundId;

Parameters

Name

Type

Description

soundId

NSInteger

ID yang diberikan ke file efek suara.

Return value

Mengembalikan 0 jika pemanggilan metode berhasil, atau nilai bukan nol jika pemanggilan gagal.

resumeAllAudioEffects

Menjalankan kembali pemutaran semua efek suara.

- (int)resumeAllAudioEffects;

Returns

0 menunjukkan bahwa pemanggilan metode berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan metode gagal.

setAudioEffectPublishVolumeWithSoundId

Mengatur volume efek suara tertentu untuk pengambilan aliran.

- (int)setAudioEffectPublishVolumeWithSoundId:(NSInteger)soundId volume:(NSInteger)volume;

Parameters

Name

Type

Description

soundId

NSInteger

ID berkas efek suara.

volume

NSInteger

Volume efek suara. Nilainya berkisar dari 0 hingga 100. Nilai default adalah 50.

Return value

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.

getAudioEffectPublishVolumeWithSoundId

Mengambil volume efek suara untuk pengambilan aliran.

- (int)getAudioEffectPublishVolumeWithSoundId:(NSInteger)soundId;

Parameters

Name

Type

Description

soundId

NSInteger

ID yang Anda tetapkan untuk berkas efek suara.

Nilai kembali

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.

setAllAudioEffectsPublishVolume

Mengatur volume pencampuran semua efek suara untuk aliran yang dipublikasikan.

- (int)setAllAudioEffectsPublishVolume:(NSInteger)volume;

Parameters

Name

Type

Description

volume

NSInteger

Volume pencampuran. Nilainya berkisar dari 0 hingga 100. Nilai default adalah 50.

Returns

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai selain 0 menunjukkan bahwa pemanggilan metode gagal.

setAudioEffectPlayoutVolumeWithSoundId

Mengatur volume pemutaran lokal dari efek suara.

- (int)setAudioEffectPlayoutVolumeWithSoundId:(NSInteger)soundId volume:(NSInteger)volume;

Parameter

Nama

Tipe

Deskripsi

soundId

NSInteger

ID yang Anda tetapkan untuk file efek suara.

volume

NSInteger

Volume pencampuran. Nilainya berkisar antara 0 hingga 100. Nilai default adalah 50.

Nilai kembalian

Mengembalikan 0 jika berhasil. Nilai bukan nol menunjukkan kegagalan.

getAudioEffectPlayoutVolumeWithSoundId

Mengambil volume pemutaran lokal dari efek suara.

- (int)getAudioEffectPlayoutVolumeWithSoundId:(NSInteger)soundId;

Parameters

Name

Type

Description

soundId

NSInteger

ID yang Anda tetapkan untuk file efek suara.

Returns

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan metode gagal.

setAllAudioEffectsPlayoutVolume

Mengatur volume pemutaran lokal untuk semua efek suara.

- (int)setAllAudioEffectsPlayoutVolume:(NSInteger)volume;

Parameters

Name

Type

Description

volume

NSInteger

Volume pemutaran. Nilainya berkisar dari 0 hingga 100. Nilai default adalah 50.

Return value

Nilai 0 menunjukkan pemanggilan metode berhasil. Nilai bukan nol menunjukkan pemanggilan gagal.

startRecord

Memulai perekaman file media.

- (BOOL)startRecord:(AliRtcRecordType)recordType recordFormat:(AliRtcRecordFormat)recordFormat filePath:(NSString*)filePath audioConfig:(AliRtcRecordAudioConfig*)audioConfig videoConfig:(AliRtcRecordVideoConfig*)videoConfig;

Parameter

Parameter

Tipe

Deskripsi

recordType

AliRtcRecordType

Tipe catatan.

recordFormat

AliRtcRecordFormat

Format catatan.

filePath

NSString *

Nama file dan jalur untuk rekaman.

audioConfig

AliRtcRecordAudioConfig *

Konfigurasi audio.

videoConfig

AliRtcRecordVideoConfig *

Konfigurasi video.

Nilai kembali

Nilai kembali TRUE menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

Catatan
  • Saat merekam aliran video, panggil metode ini setelah aliran berhasil dipublikasikan, yang ditandai oleh callback onVideoPublishStateChanged. Metode ini merekam aliran video yang telah dikodekan secara lokal dan menyimpannya ke file lokal.

  • Saat Anda merekam aliran audio, file hasil berisi campuran dari aliran audio lokal dan semua aliran audio jarak jauh.

stopRecord

Menghentikan perekaman file media.

- (void)stopRecord 

Parameters

Tidak ada.

setLocalViewConfig

Mengatur jendela rendering dan parameter untuk pratinjau lokal.

- (int)setLocalViewConfig:(AliVideoCanvas *_Nullable)viewConfig forTrack:(AliRtcVideoTrack)track;

Metode ini mengatur tampilan untuk pratinjau video lokal. Metode ini mengikat jendela tampilan (view) ke aliran video lokal dan mengonfigurasi parameter, seperti mode rendering, mode cermin, dan sudut rotasi. Pengaturan ini hanya memengaruhi pratinjau lokal dan tidak memengaruhi aliran video yang dipublikasikan. Untuk mengatur tampilan pengguna jarak jauh, panggil setRemoteViewConfig.

Catatan
  • Jika parameter view dalam AliVideoCanvas bernilai null, rendering akan berhenti.

  • Untuk mengubah parameter renderMode dari AliVideoCanvas selama pemutaran, ubah hanya parameter renderMode. Jangan ubah parameter lainnya.

  • Untuk mengubah parameter mirrorMode dari AliVideoCanvas selama pemutaran, ubah hanya parameter mirrorMode. Jangan ubah parameter lainnya.

  • Anda harus secara eksplisit memanggil startPreview() untuk memulai pratinjau lokal.

Kapan metode ini dipanggil

Metode ini dapat dipanggil sebelum atau setelah bergabung ke saluran.

Parameter

Nama

Tipe

Deskripsi

viewConfig

AliVideoCanvas

*_Nullable

Parameter rendering, yang mencakup jendela rendering dan mode rendering.

track

AliRtcVideoTrack

Jenis track video.

Nilai kembali

Nilai kembali 0 menunjukkan bahwa metode berhasil dipanggil. Nilai bukan nol menunjukkan bahwa panggilan gagal.

setCameraCapturerConfiguration

Mengatur preferensi pengambilan kamera.

- (int)setCameraCapturerConfiguration:(AliRtcCameraCapturerConfiguration* _Nonnull)config;

Gunakan metode ini untuk mengonfigurasi preferensi pengambilan kamera, seperti arah kamera dan laju frame pengambilan.

Kapan harus dipanggil

Panggil metode ini sebelum Anda membuka kamera. Misalnya, panggil metode ini sebelum operasi berikut:

  • startPreview

  • joinChannel

Parameter

Nama

Tipe

Deskripsi

config

AliRtcCameraCapturerConfiguration

* _Nonnull

Preferensi pengambilan kamera. Nilai default-nya adalah sebagai berikut:

  • preference: 0

  • cameraDirection: 0

  • fps: 0

  • cameraCaptureProfile: 0

  • disableVideoCaptureReverse: -1

  • enableCameraMacroFocus: -1

  • captureObserverOriginal: -1

  • nativeBufferObserver: -1

  • captureCallbackCvpixelbufferToRaw: -1

Nilai -1 menunjukkan bahwa pengaturan SDK default digunakan.

Nilai kembali

Nilai kembali 0 menunjukkan bahwa metode berhasil dipanggil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.

enableLocalVideo

Anda dapat menonaktifkan atau mengaktifkan kembali pengambilan video lokal.

- (int)enableLocalVideo:(BOOL)enable;

Metode ini mengaktifkan atau menonaktifkan pengambilan video lokal. Saat Anda menonaktifkan pengambilan video lokal, SDK berhenti mengirim data video untuk pratinjau lokal dan pengambilan aliran. Hal ini tidak memengaruhi penerimaan video jarak jauh. Jika Anda memanggil metode ini untuk menonaktifkan pengambilan video lokal, baik pratinjau lokal maupun pengambilan aliran jarak jauh akan membekukan pada bingkai terakhir.

Catatan

Pengambilan video lokal diaktifkan secara default di SDK.

Kapan harus dipanggil

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran.

Callback terkait

  • Setelah metode ini berhasil dipanggil, pengguna jarak jauh diberi tahu melalui callback onUserVideoEnabled.

Parameter

Nama

Tipe

Deskripsi

enable

BOOL

YES: Mengaktifkan pengambilan video lokal. NO: Menonaktifkan pengambilan video lokal. Nilai default adalah YES.

Nilai kembalian

Mengembalikan 0 jika pemanggilan metode berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan metode gagal.

muteLocalCamera

Menghentikan atau melanjutkan pengiriman aliran video lokal.

- (int)muteLocalCamera:(BOOL)mute forTrack:(AliRtcVideoTrack)track;

Anda dapat memanggil metode ini selama pengambilan aliran untuk mengirim frame video hitam. Pratinjau lokal tidak terpengaruh. Modul penangkapan, pengodean, dan pengiriman terus berjalan, tetapi video yang dikirim hanya terdiri dari frame hitam.

Catatan

Metode ini hanya mengontrol apakah frame hitam dikirim dalam aliran video tertentu. Metode ini tidak menghentikan pengambilan video atau pengiriman data. Untuk mematikan pengambilan video, gunakan metode enableLocalVideo. Untuk menghentikan pengiriman data video, gunakan metode publishLocalVideoStream.

Parameter

Nama

Tipe

Deskripsi

mute

BOOL

YES mengirimkan frame hitam. NO melanjutkan pengiriman video normal. Nilai default-nya adalah NO.

track

AliRtcVideoTrack

Jenis Track video yang ingin Anda ubah status penerbitannya.

Antarmuka terkait

Nilai kembali 0 mengindikasikan bahwa panggilan metode berhasil. Nilai lainnya mengindikasikan bahwa panggilan tersebut gagal.

setRemoteViewConfig

Menetapkan jendela rendering dan parameter rendering untuk aliran video jarak jauh.

- (int)setRemoteViewConfig:(AliVideoCanvas *_Nullable)canvas uid:(NSString *_Nonnull)uid forTrack:(AliRtcVideoTrack)track;

Metode ini menyambungkan tampilan aliran video pengguna jarak jauh dan menetapkan mode rendering, mode cermin, serta sudut rotasinya. Pengaturan ini hanya memengaruhi tampilan video untuk pengguna lokal. Untuk mengatur tampilan pratinjau lokal, panggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#fea843803078q" id="b6f22fe87a2es">setLocalViewConfig</a>.

  • Jika parameter view dari AliVideoCanvas bernilai null, rendering berhenti.

  • Untuk mengatur ulang parameter renderMode dari AliVideoCanvas selama pemutaran, ubah hanya parameter tersebut. Semua parameter lain harus tetap tidak berubah.

  • Untuk mengatur ulang parameter mirrorMode dari AliVideoCanvas selama pemutaran, ubah hanya parameter tersebut. Semua parameter lain harus tetap tidak berubah.

Kapan dipanggil

Anda dapat memanggil metode ini saat menerima callback onRemoteTrackAvailableNotify, yang dipicu ketika aliran video dari pengguna jarak jauh tersedia.

Parameter

Nama

Tipe

Deskripsi

canvas

AliVideoCanvas

*_Nullable

Parameter rendering, yang mencakup jendela rendering dan mode rendering.

uid

NSString *_Nonnull

ID pengguna.

track

AliRtcVideoTrack

Jenis Track video yang akan diatur.

Nilai kembali

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.

isCameraOn

Memeriksa apakah kamera menyala.

- (BOOL)isCameraOn;

Returns

Mengembalikan YES jika kamera menyala, atau NO jika kamera mati.

setVideoEncoderConfiguration

Mengatur properti pengkodean video.

- (void)setVideoEncoderConfiguration:(AliRtcVideoEncoderConfiguration* _Nonnull)config;

Anda dapat menggunakan metode ini untuk mengatur parameter video untuk aliran video, seperti resolusi, laju frame, bitrate, dan orientasi. Metode ini berlaku untuk semua skenario video.

Catatan

Semua parameter memiliki rentang nilai yang valid. Jika Anda mengatur parameter di luar rentang yang valid, kit pengembangan perangkat lunak (SDK) akan menyesuaikannya secara otomatis.

Kapan harus dipanggil

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran. Untuk mengatur properti pengkodean aliran kamera hanya sekali setiap sesi, panggil metode ini sebelum Anda bergabung ke saluran.

Batasan

Baik parameter mirrorMode maupun metode setVideoMirrorMode dapat mengatur mode cermin untuk aliran yang dimasukkan. Anda hanya boleh menggunakan salah satu dari metode tersebut. Jika Anda menggunakan keduanya, efek cermin mungkin bertentangan, yang dapat menyebabkan pengaturan cermin gagal atau berperilaku tidak sesuai harapan.

Parameter

Nama

Tipe

Deskripsi

config

AliRtcVideoEncoderConfiguration

* _Nonnull

Properti pengkodean yang telah ditentukan. Nilai default-nya adalah:

  • dimensions: [640, 480]

  • frameRate: 15

  • bitrate: 0

  • mirrorMode: 0

  • keyFrameInterval: Rentang keyframe dalam milidetik. Nilai default-nya adalah 0, yang menunjukkan bahwa interval dikendalikan oleh SDK.

  • forceStrictKeyFrameInterval: Menentukan apakah penyandi dipaksa untuk menghasilkan keyframe pada interval keyframe yang ditentukan. Nilai default-nya adalah false.

  • orientationMode: 0

  • rotation: 0

  • codecType: AliRtcVideoCodecTypeDefault

  • encoderType: AliRtcVideoEncodeCodecTypeDefault

  • seiForceFrontIFrame: -1

  • enableDynamicEncode: -1

  • disableDipenseResolutionChange: -1

  • enableDowngrade: -1

  • enableH264BFrame: -1

  • enableHevcBFrame: -1

  • backgroundHardwareToSoftware: -1

Nilai -1 untuk parameter-parameter di atas menunjukkan bahwa pengaturan default SDK digunakan.

setVideoDecoderConfiguration

Menetapkan konfigurasi decoding video.

- (void)setVideoDecoderConfiguration:(AliRtcVideoDecoderConfiguration* _Nonnull)config;

Metode ini menetapkan parameter decoding video untuk aliran kamera.

Kapan harus dipanggil

Panggil metode ini sebelum bergabung ke saluran.

Parameter

Nama

Tipe

Deskripsi

config

AliRtcVideoDecoderConfiguration

* _Nonnull

Properti decoding yang telah ditentukan. Nilai default-nya adalah:

  • codecType: AliRtcVideoCodecTypeDefault

  • enableDecoderBframe: -1

  • backgroundHardwareToSoftware: -1

Nilai -1 menunjukkan bahwa pengaturan SDK default digunakan.

switchCamera

Beralih antara kamera depan dan kamera belakang. Kamera depan digunakan secara default.

- (int)switchCamera;

Metode ini memungkinkan Anda beralih secara dinamis antara kamera aktif saat aplikasi sedang berjalan. Anda tidak perlu memulai ulang aliran video atau mengonfigurasi ulang sumber video.

Kapan harus dipanggil

Anda dapat memanggil metode ini setelah kamera berhasil dijalankan.

Batasan

Metode ini hanya tersedia di Android dan iOS.

Nilai kembali

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.

getCurrentCameraDirection

Mengambil arah kamera saat ini. Kamera depan digunakan secara default. Metode ini hanya tersedia di iOS.

- (AliRtcCameraDirection)getCurrentCameraDirection;

Return value

Mengembalikan nilai enumerasi untuk arah kamera.

startPreview

Memulai pratinjau lokal dan secara otomatis mengaktifkan kamera.

- (int)startPreview;

Anda dapat memanggil metode ini untuk memulai pratinjau video lokal. Untuk menghentikan pratinjau, panggil metode stopPreview.

Catatan

Memanggil leaveChannel untuk meninggalkan saluran akan secara otomatis menghentikan pratinjau lokal. Jika tidak ada aliran kamera yang sedang diambil, kamera akan secara otomatis mati.

Kapan harus dipanggil

  • Sebelum memanggil metode ini, Anda harus memanggil setLocalViewConfig untuk menetapkan tampilan bagi pratinjau lokal. Jika tidak, pratinjau tidak tersedia, tetapi pengambilan aliran tidak terpengaruh.

  • Anda dapat memanggil metode ini untuk memulai pratinjau sebelum memanggil joinChannel. Hal ini secara otomatis akan mengaktifkan kamera.

Nilai kembalian

0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.

stopPreview

Menghentikan pratinjau lokal.

- (int)stopPreview;

Metode ini menghentikan pratinjau video lokal dan mematikan kamera. Setelah pratinjau dihentikan, video lokal membekukan pada bingkai terakhir. Hal ini tidak memengaruhi pengambilan aliran.

Catatan

Meninggalkan saluran dengan memanggil leaveChannel secara otomatis menghentikan pratinjau lokal. Jika tidak ada aliran kamera yang sedang diambil, kamera juga akan dimatikan secara otomatis.

Kapan harus dipanggil

Anda dapat memanggil metode ini untuk menghentikan pratinjau lokal setelah Anda memulainya.

Nilai kembali

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.

setCameraZoom

Mengatur zoom kamera.

 - (int)setCameraZoom:(float)zoom;

Parameters

Name

Type

Description

zoom

float

Tingkat zoom. Nilainya berkisar dari 1 hingga nilai zoom maksimum yang didukung oleh Kamera.

Return value

Mengembalikan 0 jika berhasil. Nilai lain menunjukkan kegagalan.

GetCameraMaxZoomFactor

Mengembalikan faktor zoom maksimum dari Kamera.

 - (float)GetCameraMaxZoomFactor;

Nilai kembalian

Faktor zoom maksimum dari Kamera.

GetCurrentZoom

Mengambil rasio zoom saat ini dari kamera.

- (float)GetCurrentZoom;

Nilai yang dikembalikan

Rasio zoom saat ini dari kamera.

SetExposure

Mengatur eksposur kamera.

- (int)SetExposure:(float)exposure;

Parameters

Name

Type

Description

exposure

float

Nilai eksposur.

Return value

Mengembalikan 0 jika berhasil. Nilai bukan nol menunjukkan kegagalan.

GetCurrentExposure

Mengambil eksposur kamera.

- (float)GetCurrentExposure;

Nilai yang dikembalikan

Eksposur kamera.

GetMinExposure

Mengambil eksposur kamera minimum.

- (float)GetMinExposure;

Nilai kembalian

Eksposur kamera minimum.

GetMaxExposure

Mengambil eksposur maksimum kamera.

- (float)GetMaxExposure;

Nilai kembalian

Eksposur maksimum kamera.

setCameraFlash

Mengaktifkan atau menonaktifkan lampu kilat kamera.

- (int)setCameraFlash:(BOOL)flash;

Parameters

Name

Type

Description

flash

BOOL

Menentukan apakah lampu kilat akan diaktifkan.

Return value

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

isCameraFocusPointSupported

Memeriksa apakah kamera mendukung fokus manual.

- (BOOL)isCameraFocusPointSupported;

Nilai kembalian

Mengembalikan TRUE jika fokus manual didukung, atau FALSE jika tidak.

isCameraExposurePointSupported

Memeriksa apakah kamera mendukung pengaturan titik eksposur.

- (BOOL)isCameraExposurePointSupported;

Nilai yang dikembalikan

TRUE: Pengaturan titik eksposur didukung. FALSE: Pengaturan titik eksposur tidak didukung.

setCameraFocusPoint

Mengatur titik fokus manual untuk Kamera.

- (int)setCameraFocusPoint:(CGPoint)point;

Parameters

Name

Type

Description

point

CGPoint

Koordinat titik fokus. Titik fokus ini tetap disetel.

Return value

Nilai kembali 0 menunjukkan bahwa operasi berhasil. Nilai lainnya menunjukkan bahwa operasi gagal.

setCameraExposurePoint

Mengatur titik eksposur kamera.

- (int)setCameraExposurePoint:(CGPoint)point;

Parameters

Name

Type

Description

point

CGPoint

Koordinat titik eksposur. Pengaturan ini bersifat persisten.

Return value

Mengembalikan 0 jika operasi berhasil. Nilai bukan nol dikembalikan jika operasi gagal.

isCameraAutoFocusFaceModeSupported

Memeriksa apakah kamera mendukung autofokus berbasis wajah.

- (BOOL)isCameraAutoFocusFaceModeSupported;

Nilai kembalian

TRUE menunjukkan bahwa autofokus berbasis wajah didukung. FALSE menunjukkan bahwa fitur tersebut tidak didukung.

setCameraAutoFocusFaceModeEnabled

Mengaktifkan atau menonaktifkan autofokus wajah untuk kamera.

- (BOOL)setCameraAutoFocusFaceModeEnabled:(BOOL)enable;

Parameters

Name

Type

Description

point

CGPoint

Koordinat titik fokus. Kamera mempertahankan fokus pada titik ini.

Return value

Mengembalikan TRUE jika berhasil atau FALSE jika gagal.

setVideoMirrorMode

Mengatur mode cermin video.

- (int)setVideoMirrorMode:(AliRtcVideoPipelineMirrorMode)mirrorMode;

Metode ini mengatur mode cermin untuk pratinjau video lokal dan aliran video yang dipublikasikan.

Catatan

Metode ini memiliki prioritas lebih tinggi daripada setLocalViewConfig dan setVideoEncoderConfiguration. Kami menyarankan Anda menggunakan metode ini untuk mengatur mode cermin video.

Kapan harus dipanggil

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran. SDK mencatat pengaturan tersebut dan menerapkan mode cermin saat pratinjau video dan pengkodean (pengambilan aliran) aktif.

Batasan

Fungsionalitas metode ini tumpang tindih dengan parameter mirrorMode dalam setLocalViewConfig dan setVideoEncoderConfiguration. Untuk menghindari perilaku yang tidak diinginkan, kami menyarankan Anda hanya menggunakan metode ini untuk mengatur mode cermin.

Parameter

Nama

Tipe

Deskripsi

mirrorMode

AliRtcVideoPipelineMirrorMode

Mode cermin.

SetCapturePipelineScaleMode

Mengatur mode penskalaan untuk pipeline video.

-(void)setCapturePipelineScaleMode:(AliRtcCapturePipelineScaleMode)mode;

Metode ini menentukan apakah data video akan diskalakan segera setelah diambil atau saat encoding. Misalnya, jika resolusi pengambilan berbeda dari resolusi encoding, Anda dapat menggunakan metode ini untuk memastikan bahwa data pratinjau sesuai dengan data aliran yang dipublikasikan.

Catatan

Secara default, video diskalakan segera setelah diambil. Panggil metode ini sebelum Anda mengaktifkan Kamera, dan sebelum memanggil startPreview atau joinChannel.

Kapan memanggil metode ini

Panggil metode ini sebelum Anda mengaktifkan kamera, misalnya, sebelum Anda memanggil startPreview atau joinChannel.

Parameter

Name

Type

Description

mode

AliRtcCapturePipelineScaleMode

Jenis penskalaan.

Nilai kembali

Nilai kembali 0 mengindikasikan keberhasilan. Nilai lainnya mengindikasikan kegagalan.

registerVideoFrameWithObserver

Mendaftarkan sebuah objek untuk mengeluarkan data video.

- (void)registerVideoFrameWithObserver:(id<AliRtcVideoFrameDelegate> _Nullable)observer;

Panggil metode ini untuk mendaftarkan sebuah objek guna mengeluarkan data video. Untuk membatalkan pendaftaran objek tersebut, panggil metode unregisterVideoSampleWithObserver.

Kapan harus dipanggil

Untuk mendapatkan data video mentah, seperti data dalam format YUV atau RGBA, panggil metode ini untuk mendaftarkan observer data video. Hal ini memungkinkan Anda memperoleh data video pada berbagai tahap.

Callback terkait

Setelah Anda mendaftarkan observer data video, kit pengembangan perangkat lunak (SDK) memicu callback yang telah Anda implementasikan setiap kali sebuah frame video ditangkap. Implementasikan callback berikut sesuai kebutuhan:

Parameter

Nama

Tipe

Deskripsi

observer

AliRtcVideoFrameDelegate

Objek keluaran data video.

unregisterVideoSampleWithObserver

Membatalkan pendaftaran pengamat bingkai video.

- (void)unregisterVideoSampleWithObserver:(id<AliRtcVideoFrameDelegate> _Nullable)observer;

Antarmuka ini membatalkan pendaftaran objek untuk mengekspor data video dan merupakan pasangan dari antarmuka <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#9a3437ab16j1w" id="f524bad30a6ys">registerVideoSampleObserver</a>.

Parameters

Name

Type

Description

observer

AliRtcVideoFrameDelegate

Objek keluaran data video.

registerLocalVideoTextureObserver

Anda dapat mendaftarkan pengamat data tekstur OpenGL untuk aliran video kamera lokal.

- (void)registerLocalVideoTextureObserver:(id<AliRtcTextureDelegate> _Nullable)observer;

Untuk memperoleh data video mentah, panggil antarmuka registerVideoSampleObserver untuk mendaftarkan callback yang sesuai. Untuk memperoleh data tekstur internal, panggil antarmuka yang sesuai untuk mendaftarkan pengamat tekstur. Untuk membatalkan pendaftaran pengamat, panggil antarmuka unRegisterLocalVideoTextureObserver.

Catatan
  • API ini hanya berfungsi dengan aliran video kamera lokal.

  • Setelah Anda mendaftarkan pengamat data tekstur OpenGL untuk aliran video kamera lokal, SDK memicu callback onTextureCreate, onTextureUpdate, dan onTextureDestroy saat menangkap bingkai video.

Callback Terkait

Setelah Anda mendaftarkan pengamat untuk data tekstur OpenGL dari aliran video kamera lokal, SDK memicu callback dalam implementasi `AliRtcTextureObserver` Anda untuk setiap bingkai video yang ditangkap. Anda dapat mengimplementasikan callback yang sesuai berdasarkan kebutuhan bisnis Anda:

  • onTextureCreate: Callback ini dipicu saat konteks OpenGL internal SDK dibuat.

  • onTextureUpdate: Callback ini dipicu setelah setiap bingkai video diunggah ke tekstur OpenGL. Saat pengamat data tekstur OpenGL eksternal didaftarkan, Anda dapat memproses tekstur dalam callback ini dan mengembalikan ID tekstur yang telah diproses. Nilai kembali harus berupa ID tekstur yang valid. Jika tidak ada pemrosesan yang dilakukan, kembalikan parameter textureId.

  • onTextureDestroy: Callback ini dipicu saat konteks OpenGL internal SDK dihapus.

Deskripsi metrik

Nama

Tipe

Deskripsi

observer

AliRtcTextureDelegate

Pengamat untuk data tekstur OpenGL.

unregisterLocalVideoTextureObserver

Membatalkan pendaftaran observer untuk data tekstur OpenGL dari aliran video Kamera lokal.

- (void)unregisterLocalVideoTextureObserver:(id<AliRtcTextureDelegate> _Nullable)observer;

Metode ini merupakan pasangan dari registerLocalVideoTextureObserver.

Parameters

Name

Type

Description

observer

AliRtcTextureDelegate

Observer untuk data tekstur OpenGL.

snapshotVideo

Mengambil Snapshot dari sebuah video.

- (int)snapshotVideo:(NSString*_Nullable)userId type:(AliRtcVideoTrack)type;

Parameters

Name

Type

Description

userId

NSString *

ID pengguna. Jika `userId` bernilai `nil` atau string kosong `""`, maka merepresentasikan pengguna lokal.

type

AliRtcVideoTrack

Jenis aliran video. Hanya `{@link AliRtcVideoTrack::AliRtcVideoTrackCamera}` dan `{@link AliRtcVideoTrack::AliRtcVideoTrackScreen}` yang didukung.

Return value

Mengembalikan 0 jika operasi berhasil. Jika tidak, kode kesalahan akan dikembalikan.

setExternalVideoSource

Mengaktifkan sumber input video eksternal.

- (int)setExternalVideoSource:(BOOL)enable sourceType:(AliRtcVideoSource)type renderMode:(AliRtcRenderMode)renderMode;

Parameters

Nama

Tipe

Deskripsi

enable

BOOL

YES mengaktifkan sumber. NO menonaktifkan sumber.

type

AliRtcVideoSource

Jenis aliran.

renderMode

AliRtcRenderMode

Mode rendering.

pushExternalVideoFrame

Menyisipkan data video eksternal.

- (int)pushExternalVideoFrame:(AliRtcVideoDataSample *_Nonnull)frame sourceType:(AliRtcVideoSource)type;

Parameter

Nama

Tipe

Deskripsi

frame

AliRtcVideoDataSample

*_Nonnull

Data frame.

type

AliRtcVideoSource

Jenis aliran.

Nilai Kembali

Mengembalikan 0 jika berhasil. Nilai bukan nol menunjukkan kegagalan.

startPublishLiveStreamWithURL

Memulai aliran langsung bypass.

- (int)startPublishLiveStreamWithURL:(NSString *_Nonnull)streamURL liveTranscoding:(AliRtcLiveTranscodingParam *_Nonnull)trancoding;

Parameter

Nama

Tipe

Deskripsi

streamUrl

NSString *

URL ingest.

transcoding

AliRtcLiveTranscodingParam

*

Parameter pengambilan aliran.

Nilai kembali

Nilai kembali 0 menunjukkan panggilan berhasil. Nilai bukan nol menunjukkan panggilan gagal.

updatePublishLiveStreamWithURL

Memperbarui parameter untuk streaming langsung bypass.

- (int)updatePublishLiveStreamWithURL:(NSString *_Nonnull)streamURL liveTranscoding:(AliRtcLiveTranscodingParam *_Nonnull)trancoding;

Parameters

Name

Type

Description

streamUrl

NSString *

URL ingest.

transcoding

AliRtcLiveTranscodingParam

*

Parameter yang diperlukan untuk pengambilan aliran.

Return value

Nilai 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.

stopPublishLiveStreamWithURL

Menghentikan streaming langsung bypass.

- (int)stopPublishLiveStreamWithURL:(NSString *_Nonnull)streamURL;

Parameters

Name

Type

Description

streamUrl

NSString *_Nonnull

URL ingest.

Returns

Nilai kembali 0 menunjukkan bahwa panggilan berhasil. Nilai bukan nol menunjukkan bahwa panggilan gagal.

GetPublishLiveStreamStateWithURL

Mengambil status aliran langsung bypass.

- (AliRtcLiveTranscodingState)GetPublishLiveStreamStateWithURL:(NSString *_Nonnull)streamURL;

Parameter

Parameter

Tipe

Deskripsi

streamURL

NSString *

URL ingest.

Nilai kembalian

Mengembalikan status streaming langsung bypass.

startLastmileDetect

Memulai probe kualitas jaringan.

- (int)startLastmileDetect:(AliRtcNetworkQualityProbeConfig *_Nonnull)config;

Parameters

Parameter

Type

Description

config

AliRtcNetworkQualityProbeConfig

Parameter konfigurasi probe.

Returns

Mengembalikan nilai 0 jika berhasil, atau nilai bukan nol jika gagal.

stopLastmileDetect

Menghentikan probe kualitas jaringan.

- (int)stopLastmileDetect;

Return value

Mengembalikan nilai 0 jika berhasil. Nilai bukan nol menunjukkan kegagalan.

sendMediaExtensionMsg

Mengirim pesan Supplemental Enhancement Information (SEI).

- (int)sendMediaExtensionMsg:(NSData *_Nonnull)data repeatCount:(int)repeatCount delay:(int)delay isKeyFrame:(bool)isKeyFrame;

SDK memungkinkan Anda mengirim dan menerima pesan ekstensi media. Metode ini mengirim pesan menggunakan protokol ekstensi SEI. Untuk menerima pesan, Anda dapat mendengarkan callback onMediaExtensionMsgReceived.

Skenario umum meliputi hal-hal berikut:

  • Meneruskan timestamp untuk menghitung latensi jaringan end-to-end atau menyinkronkan data dengan layanan lain.

  • Meneruskan informasi deskriptif. Anda dapat mengirim hingga 4 KB data. Anda dapat menggunakan JSON atau string biasa untuk kontennya.

Kapan harus dipanggil

Anda dapat memanggil metode ini setelah pengambilan aliran dimulai.

Batasan

Pesan ekstensi media menggunakan kembali saluran data audio dan video. Oleh karena itu, Anda harus mengontrol frekuensi dan panjang pesan kustom. Perhatikan batasan berikut:

  • Jumlah maksimum pesan yang dapat dikirim per detik sama dengan nilai frames per second (fps) yang ditetapkan dalam profil. Hal ini karena pesan SEI dilampirkan ke frame video terenkripsi dalam aliran H.264/H.265.

  • Untuk menghindari dampak pada kualitas data media, isi pesan dibatasi hingga 4 KB. Ini cocok untuk mentransfer jumlah informasi yang kecil.

  • Parameter `repeatCount` dalam fungsi sendMediaExtensionMsg menetapkan redundansi pesan. Jika `repeatCount` lebih besar dari 1, pesan dikirim beberapa kali untuk mencegah kehilangan pesan akibat kehilangan paket jaringan.

  • Pengguna lain di saluran menerima beberapa pesan identik. Sisi penerima harus menghapus duplikat tersebut.

  • Subscriber di saluran juga menerima pesan kustom selama live streaming bypass.

  • Hanya satu pesan ekstensi media yang dapat sedang dalam proses pengiriman pada satu waktu. Jika sendMediaExtensionMsg dipanggil beberapa kali, data dari pemanggilan terbaru akan menimpa data sebelumnya.

Callback terkait

Saat publisher mengirim pesan ekstensi media, subscriber dapat menerimanya dengan mendengarkan callback onMediaExtensionMsgReceived.

Parameter

Nama

Tipe

Deskripsi

data

NSData *

Konten pesan ekstensi. Panjang maksimum adalah 4 KB.

repeatCount

int

Jumlah pengulangan pesan. Ini menetapkan redundansi pesan untuk mencegah kehilangan pesan akibat kehilangan paket. Nilai -1 menunjukkan bahwa pesan dikirim ulang tanpa henti hingga `sendMediaExtensionMsg` dipanggil lagi.

delay

int

Penundaan dalam milidetik sebelum pesan dikirim. Karena pesan SEI dilampirkan ke aliran H.264/H.265 terenkripsi, penundaan aktual mungkin sedikit lebih lama daripada nilai yang ditetapkan.

isKeyFrame

bool

Menentukan apakah pesan SEI hanya dilampirkan ke keyframe. Jika diatur ke `true`, pesan hanya dilampirkan ke keyframe.

Nilai kembalian

0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

sendMediaExtensionMsgEx

Mengirimkan pesan ekstensi media menggunakan Supplemental Enhancement Information (SEI).

- (int)sendMediaExtensionMsgEx:(NSData *_Nonnull)data repeatCount:(int)repeatCount delay:(int)delay isKeyFrame:(bool)isKeyFrame payloadType:(int)payloadType;

Kit pengembangan perangkat lunak (SDK) memungkinkan Anda mengirim dan menerima pesan ekstensi media. Metode ini mengirimkan pesan menggunakan protokol ekstensi SEI. Penerima dapat mengambil pesan tersebut dengan mendengarkan callback onMediaExtensionMsgReceived. Jika Anda mengatur `payloadType` ke 5, metode ini berperilaku sama seperti metode `sendMediaExtensionMsg`.

Skenario umum meliputi hal-hal berikut:

  • Mengirimkan timestamp untuk menghitung latensi jaringan end-to-end atau untuk menyinkronkan data dengan layanan lain.

  • Mengirimkan informasi deskriptif. Anda dapat mengirimkan hingga 4 KB data, yang berguna untuk transfer data kecil. Gunakan JSON atau string biasa sebagai format data.

Kapan harus dipanggil

Panggil metode ini setelah pengambilan aliran dimulai.

Batasan

Pesan ekstensi media menggunakan kembali saluran data audio dan video. Oleh karena itu, Anda harus mengontrol frekuensi pengiriman dan panjang data pesan kustom. Batasan-batasannya adalah sebagai berikut:

  • Laju pesan maksimum adalah `fps` pesan per detik, sebagaimana ditentukan dalam profil. Hal ini karena pesan dikirimkan sebagai Supplemental Enhancement Information (SEI) dalam aliran H.264/H.265, dan informasi ekstensi ini hanya dapat disambungkan saat frame video dikodekan.

  • Untuk menghindari dampak pada kualitas transmisi media, ukuran isi pesan kustom dibatasi hingga 4 KB. Hal ini menjadikan pesan kustom cocok untuk mengirimkan jumlah informasi yang kecil.

  • Parameter `repeatCount` dalam fungsi `sendMediaExtensionMsg` mengontrol redundansi pesan. Nilai lebih besar dari 1 menyebabkan pesan dikirimkan beberapa kali.

  • Untuk memastikan pengiriman pesan meskipun terjadi loss paket jaringan, pengguna lain dalam saluran mungkin menerima pesan yang sama beberapa kali. Anda harus menghapus duplikat tersebut.

  • Pelanggan dalam saluran juga menerima pesan kustom selama live streaming bypass.

  • Hanya satu pesan ekstensi media yang dapat sedang dalam perjalanan pada satu waktu. Jika Anda memanggil metode ini beberapa kali, data dari pemanggilan terbaru akan menimpa data dari pemanggilan sebelumnya.

Parameter

Nama

Tipe

Deskripsi

data

NSData *

Isi pesan ekstensi. Ukuran maksimum adalah 4 KB.

repeatCount

int

Jumlah pengulangan. Ini menentukan redundansi pesan untuk mencegah kehilangan pesan akibat loss paket jaringan. Nilai -1 berarti pesan dikirim ulang tanpa batas hingga metode ini dipanggil lagi.

delay

int

Penundaan dalam milidetik sebelum pesan dikirim. Karena SEI disambungkan ke aliran H.264/H.265 yang telah dikodekan, penundaan aktual mungkin sedikit lebih lama dari nilai yang ditentukan.

isKeyFrame

bool

Menentukan apakah pesan SEI hanya ditambahkan ke keyframe. Jika Anda mengatur parameter ini ke `true`, pesan hanya ditambahkan ke keyframe.

payloadType

int

Tipe muatan. Gunakan 5 untuk muatan dengan UUID. Nilainya harus 5 atau berada dalam rentang 100 hingga 254.

Nilai yang Dikembalikan

  • 0: Pemanggilan berhasil.

  • <0: Pemanggilan gagal. Kode kesalahan dikembalikan.

    • ERR_INNER(-1): Terjadi kesalahan internal SDK. Hal ini dapat terjadi jika SDK belum diinisialisasi atau jika metode dipanggil setelah SDK dihapus.

onConnectionStatusChange

Callback ini dipanggil ketika status koneksi jaringan berubah.

- (void)onConnectionStatusChange:(AliRtcConnectionStatus)status reason:(AliRtcConnectionStatusChangeReason)reason;

Parameters

Parameter

Type

Description

status

AliRtcConnectionStatus

Nilai status saat ini.

reason

AliRtcConnectionStatusChangeReason

Alasan spesifik perubahan status.

onLocalDeviceException

Panggilan balik ini dipicu ketika terjadi pengecualian pada perangkat lokal. Anda harus menangani panggilan balik ini.

- (void)onLocalDeviceException:(AliRtcLocalDeviceType)deviceType exceptionType:(AliRtcLocalDeviceExceptionType)exceptionType message:(NSString *_Nullable)msg;

Parameter

Parameter

Tipe

Deskripsi

deviceType

AliRtcLocalDeviceType

Jenis perangkat

exceptionType

AliRtcLocalDeviceExceptionType

Jenis pengecualian perangkat

msg

NSString

Informasi mengenai pengecualian

onAuthInfoWillExpire

Callback ini memberi tahu Anda bahwa informasi autentikasi pengguna akan segera kedaluwarsa. Anda harus mengimplementasikan callback ini.

- (void)onAuthInfoWillExpire;

Callback ini menunjukkan bahwa informasi autentikasi pengguna akan kedaluwarsa dalam 30 detik. Dapatkan token baru, lalu perbarui informasi autentikasi dengan salah satu cara berikut:

  • Panggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6a4495191bmd" id="918ba91977wi6">refreshAuthInfo</a> untuk memperbarui informasi autentikasi.

  • Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="ad8235d30dprb">leaveChannel</a> untuk meninggalkan saluran saat ini, lalu memanggil joinChannel untuk bergabung kembali ke saluran tersebut.

Saat dipicu

SDK memicu callback ini 30 detik sebelum informasi autentikasi pengguna kedaluwarsa. Saat menerima callback ini, Anda harus segera memperbarui informasi autentikasi.

onAuthInfoExpired

Dipicu ketika pengguna memanggil API yang memerlukan autentikasi dan server melaporkan bahwa informasi autentikasi telah kedaluwarsa.

- (void)onAuthInfoExpired;

Callback ini menunjukkan bahwa informasi autentikasi pengguna telah kedaluwarsa. Untuk tetap berada dalam sesi, hasilkan token baru di server Anda dan perbarui informasi autentikasi sebagai berikut:

  • Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="21390e77a1307">leaveChannel</a> untuk meninggalkan saluran saat ini, lalu panggil joinChannel untuk bergabung kembali ke saluran tersebut.

Pemicu

Callback ini dipicu ketika informasi autentikasi pengguna kedaluwarsa.

onJoinChannelResult

Panggilan balik ini melaporkan hasil dari proses bergabung ke saluran dan merupakan alternatif dari blok penyelesaian metode joinChannel. Anda hanya perlu mengimplementasikan salah satu dari keduanya untuk menangani hasil tersebut.

- (void)onJoinChannelResult:(int)result channel:(NSString *_Nonnull)channel elapsed:(int) elapsed;

Pemicu

Panggilan balik ini dipicu setelah Anda memanggil metode joinChannel. Panggilan balik ini menunjukkan apakah Anda berhasil bergabung ke saluran dan mengembalikan informasi mengenai operasi bergabung, termasuk waktu yang berlalu.

Parameter

Parameter

Tipe

Deskripsi

result

int

Hasil dari proses bergabung ke saluran. Nilai 0 menunjukkan keberhasilan. Nilai bukan nol merupakan kode kesalahan.

channel

NSString *_Nonnull

ID saluran.

elapsed

int

Waktu yang berlalu untuk bergabung ke saluran.

onLeaveChannelResult

Panggilan balik ini melaporkan hasil dari keluar dari saluran. Panggilan balik ini dipicu setelah Anda memanggil metode leaveChannel. Anda tidak akan menerima panggilan balik ini jika Anda memanggil `destroy` segera setelah memanggil `leaveChannel`.

- (void)onLeaveChannelResult:(int)result stats:(AliRtcStats)stats;

Parameter

Parameter

Tipe

Deskripsi

result

int

Hasil dari keluar dari saluran. Nilai 0 menunjukkan keberhasilan. Nilai lainnya merupakan kode kesalahan.

stats

AliRtcStats

Rangkuman statistik data untuk sesi di dalam saluran.

onRemoteUserOffLineNotify

Terjadi ketika pengguna jarak jauh offline.

- (void)onRemoteUserOffLineNotify:(NSString *_Nonnull)uid offlineReason:(AliRtcUserOfflineReason)reason;

SDK memicu callback ini untuk memberi tahu pengguna lokal bahwa pengguna jarak jauh telah offline.

Pemicu

  • Pengguna jarak jauh meninggalkan saluran.

  • Callback ini dipicu ketika streamer jarak jauh memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#892915dd4edcy" id="78b1952ad5lwp">setClientRole</a> untuk beralih ke peran penonton (AliRtcClientRolelive).

  • Streamer jarak jauh dianggap offline jika tidak ada data yang diterima darinya dalam periode waktu yang lama.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna unik yang ditetapkan oleh server aplikasi.

reason

AliRtcUserOfflineReason

Alasan pengguna offline.

onRemoteUserOnLineNotify

Pemicu balik yang dipicu ketika pengguna jarak jauh online.

- (void)onRemoteUserOnLineNotify:(NSString *_Nonnull)uid elapsed:(int)elapsed;

Pemicu balik ini memberi tahu klien lokal ketika pengguna jarak jauh bergabung ke saluran.

Pemicu

  • Pengguna jarak jauh berhasil bergabung ke saluran.

  • Ketika Anda bergabung ke saluran, pemicu balik ini juga dipicu untuk setiap pengguna yang sudah berada di saluran. Hal ini memungkinkan Anda mengidentifikasi pengguna yang sudah ada.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna unik yang ditetapkan oleh server aplikasi Anda.

elapsed

int

Waktu yang berlalu sejak pengguna lokal memanggil untuk bergabung ke saluran hingga pemicu balik ini dipicu.

onRemoteTrackAvailableNotify

Pemicu balik ini dipicu ketika ketersediaan aliran pengguna jarak jauh berubah.

- (void)onRemoteTrackAvailableNotify:(NSString *_Nonnull)uid audioTrack:(AliRtcAudioTrack)audioTrack videoTrack:(AliRtcVideoTrack)videoTrack;

Pemicu balik ini dipicu ketika status penerbitan aliran pengguna jarak jauh berubah. Anda dapat menggunakan pemicu balik ini untuk menerima notifikasi secara real time jika pengguna jarak jauh sedang menerbitkan aliran audio atau video. Anda kemudian dapat menampilkan atau menyembunyikan audio dan video pengguna jarak jauh tersebut di antarmuka.

Catatan

Pemicu balik ini mengembalikan status penerbitan aliran pengguna jarak jauh. Untuk mengidentifikasi aliran mana yang tidak lagi diterbitkan, Anda dapat mencatat status aliran sebelum dan sesudah pemicu balik ini dipicu.

Pemicu

Pemicu balik ini dipicu dalam skenario berikut:

  • Pengguna jarak jauh mulai menerbitkan aliran (audio atau video).

  • Pengguna jarak jauh menghentikan penerbitan semua aliran (audio dan video).

  • Dalam mode interaktif, pengguna jarak jauh memanggil setClientRole untuk mengganti perannya dari penonton menjadi Streamer dan mulai menerbitkan aliran.

Sebagai contoh, ketika pengguna jarak jauh menonaktifkan pengambilan aliran video, pemicu balik ini tidak dipicu.

  • Jika pengguna jarak jauh mulai menerbitkan aliran Kamera (perubahan status: tidak ada video → hanya Kamera), pemicu balik mengembalikan AliRtcVideoTrackCamera.

  • Jika pengguna tersebut kemudian juga menerbitkan aliran berbagi layar (perubahan status: hanya Kamera → keduanya), pemicu balik mengembalikan AliRtcVideoTrackBoth.

  • Jika pengguna menghentikan penerbitan aliran Kamera (perubahan status: keduanya → hanya layar), pemicu balik mengembalikan AliRtcVideoTrackScreen.

  • Jika pengguna kemudian menghentikan penerbitan aliran berbagi layar (perubahan status: hanya layar → tidak ada video), pemicu balik mengembalikan AliRtcVideoTrackNo.

Deskripsi parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna. Ini adalah pengenal unik yang ditetapkan oleh server aplikasi Anda.

audioTrack

AliRtcAudioTrack

Aliran audio pengguna jarak jauh setelah perubahan.

videoTrack

AliRtcVideoTrack

Aliran video pengguna jarak jauh setelah perubahan.

onBye

Panggilan balik ini dipanggil ketika pengguna dipaksa meninggalkan saluran.

- (void)onBye:(int)code;

Panggilan balik ini dipicu ketika pengguna terputus karena alasan apa pun atau ketika rapat berakhir. Anda dapat menggunakan parameter panggilan balik code untuk menentukan alasan pemutusan koneksi dan menanganinya sesuai kebutuhan.

Trigger Conditions

  • Server memutuskan koneksi pengguna.

  • Rapat berakhir dan server menghapus saluran.

  • Terjadi pemutusan pasif. Klien harus mencoba melanjutkan sesi atau menyambung ulang.

Parameters

Parameter

Type

Description

code

int

Jenis paket. Nilai yang valid:

  • 1: Server menghapus Anda.

  • 2: Saluran ditutup.

  • 3: Server menghapus Anda karena Anda masuk dari klien lain dengan ID pengguna yang sama.

onAudioPublishStateChanged

Callback untuk perubahan pengambilan aliran audio.

- (void)onAudioPublishStateChanged:(AliRtcPublishState)oldState newState:(AliRtcPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;

Callback ini memantau perubahan status pengambilan aliran audio pengguna lokal.

Kondisi Pemicu

Misalnya, ketika status pengambilan aliran audio pengguna berubah:

  • Hentikan pengambilan aliran.

  • Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#892915dd4edcy" id="81771ef0798we">setClientRole</a> untuk beralih ke peran penonton.

Deskripsi parameter

Parameter

Tipe

Deskripsi

oldState

AliRtcPublishState

Status pengambilan aliran sebelumnya.

newStat

AliRtcPublishState

Status pengambilan aliran saat ini.

elapseSinceLastState

NSInteger

Interval waktu sejak perubahan status terakhir, dalam milidetik.

channel

NSString *_Nonnull

ID saluran saat ini.

onAudioSubscribeStateChanged

Panggilan balik ini dipicu ketika status langganan aliran audio pengguna jarak jauh berubah.

- (void)onAudioSubscribeStateChanged:(NSString *_Nonnull)uid oldState:(AliRtcSubscribeState)oldState newState:(AliRtcSubscribeState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;

Panggilan balik ini menyediakan status langganan baru dan waktu yang berlalu sejak status sebelumnya hingga status saat ini.

Parameters

Parameter

Type

Description

uid

NSString *_Nonnull

ID pengguna yang status langgannya berubah.

oldState

AliRtcSubscribeState

Status langganan sebelumnya.

newState

AliRtcSubscribeState

Status langganan saat ini.

elapseSinceLastState

NSInteger

Waktu yang berlalu sejak perubahan status terakhir. Satuan: ms.

channel

NSString *_Nonnull

ID saluran saat ini.

onUserAudioMuted

Terjadi ketika pengguna membisukan atau mengaktifkan kembali audio mereka.

- (void)onUserAudioMuted:(NSString *_Nonnull)uid audioMuted:(BOOL)isMute;

Parameters

Parameter

Type

Description

uid

NSString *_Nonnull

ID pengguna yang membisukan atau mengaktifkan kembali audionya.

isMute

BOOL

YES menunjukkan bahwa audio dibisukan. NO menunjukkan bahwa audio diaktifkan kembali.

onUserAudioInterruptedBegin

Panggilan balik ini dipicu ketika audio pengguna terganggu. Hal ini biasanya terjadi ketika sesi audio didahului oleh proses lain, seperti panggilan telepon.

- (void)onUserAudioInterruptedBegin:(NSString *_Nonnull)uid;

Parameters

Parameter

Type

Description

uid

NSString *_Nonnull

ID pengguna yang audionya terganggu.

onUserAudioInterruptedEnded

Pemicu balik ini dipicu ketika gangguan audio pengguna berakhir. Pemicu balik ini berkorespondensi dengan onUserAudioInterruptedBegin.

- (void)onUserAudioInterruptedEnded:(NSString *_Nonnull)uid;

Parameters

Parameter

Type

Description

uid

NSString *_Nonnull

ID pengguna yang gangguan audionya telah berakhir.

onVideoPublishStateChanged

Terjadi ketika status pengambilan aliran video berubah.

- (void)onVideoPublishStateChanged:(AliRtcPublishState)oldState newState:(AliRtcPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;

Panggilan balik ini dipicu ketika status pengambilan aliran video pengguna lokal berubah.

Parameter

Parameter

Tipe

Deskripsi

oldState

AliRtcPublishState

Status pengambilan aliran sebelumnya.

newState

AliRtcPublishState

Status pengambilan aliran saat ini.

elapseSinceLastState

NSInteger

Waktu yang berlalu sejak perubahan status terakhir, dalam milidetik.

channel

NSString *_Nonnull

ID saluran saat ini.

onVideoSubscribeStateChanged

Memberikan laporan perubahan pada status langganan aliran video Kamera.

- (void)onVideoSubscribeStateChanged:(NSString *_Nonnull)uid oldState:(AliRtcSubscribeState)oldState newState:(AliRtcSubscribeState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;

Callback ini memberi tahu pengguna lokal ketika status langganan aliran video Kamera pengguna jarak jauh berubah. Callback ini menyediakan status langganan baru dan waktu yang telah berlalu sejak perubahan status terakhir.

Callback terkait

Aliran video dapat berupa aliran Kamera atau aliran berbagi layar. Callback ini hanya melaporkan perubahan status langganan untuk aliran Kamera. Untuk perubahan yang terkait dengan aliran berbagi layar, gunakan callback onScreenShareSubscribeStateChanged.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna yang status langgannya berubah.

oldState

AliRtcSubscribeState

Status langganan sebelumnya.

newState

AliRtcSubscribeState

Status langganan saat ini.

elapseSinceLastState

NSInteger

Waktu yang telah berlalu sejak perubahan status terakhir, dalam milidetik.

channel

NSString *_Nonnull

ID saluran saat ini.

onUserVideoMuted

Terjadi ketika pengguna membisukan atau membatalkan pembisuan aliran video mereka.

- (void)onUserVideoMuted:(NSString *_Nonnull)uid videoMuted:(BOOL)isMute;

Parameters

Parameter

Type

Description

uid

NSString *_Nonnull

ID pengguna yang membisukan atau membatalkan pembisuan aliran video mereka.

isMute

BOOL

Nilai YES menunjukkan bahwa frame hitam dikirim. Nilai NO menunjukkan bahwa video normal dikirim.

onUserVideoEnabled

Notifikasi dikirimkan ketika pengambilan video lokal dinonaktifkan atau diaktifkan kembali.

- (void)onUserVideoEnabled:(NSString *_Nullable)uid videoEnabled:(BOOL)isEnable;

Parameters

Parameter

Type

Description

uid

NSString *_Nonnull

ID pengguna yang memanggil metode EnableLocalVideo.

isMute

BOOL

YES menunjukkan bahwa pengambilan aliran kamera diaktifkan. NO menunjukkan bahwa pengambilan aliran kamera dinonaktifkan.

onUserWillResignActive

Event ini terjadi ketika aplikasi pengguna jarak jauh masuk ke latar belakang.

- (void)onUserWillResignActive:(NSString *_Nonnull)uid;

Parameters

Parameter

Type

Description

uid

NSString *_Nonnull

ID pengguna yang aplikasinya masuk ke latar belakang.

onUserWillBecomeActive

Pemicu balik ini diaktifkan ketika aplikasi pengguna jarak jauh kembali ke latar depan.

- (void)onUserWillBecomeActive:(NSString *_Nonnull)uid;

Parameters

Parameter

Type

Description

uid

NSString *_Nonnull

ID pengguna yang aplikasinya kembali ke latar depan.

onRtcStats

Panggilan balik ini melaporkan data waktu nyata. Pemicu dijalankan setiap 2 detik.

- (void)onRtcStats:(AliRtcStats)stats;

Parameters

Parameter

Type

Description

stats

AliRtcStats

Data panggilan balik.

onRtcLocalVideoStats

Memberikan statistik video lokal setiap 2 detik.

- (void)onRtcLocalVideoStats:(AliRtcLocalVideoStats *_Nonnull)localVideoStats;

Parameters

Parameter

Type

Description

localVideoStats

AliRtcLocalVideoStats

Statistik untuk video lokal.

onRtcRemoteVideoStats

Pemicu balik ini dipanggil setiap 2 detik untuk melaporkan statistik kinerja video jarak jauh.

- (void)onRtcRemoteVideoStats:(AliRtcRemoteVideoStats *_Nonnull)remoteVideoStats;

Parameters

Parameter

Type

Description

remoteVideoStats

AliRtcRemoteVideoStats

Statistik kinerja video jarak jauh.

onRtcLocalAudioStats

Panggilan balik ini melaporkan statistik kinerja audio lokal dan dipicu setiap 2 detik.

- (void)onRtcLocalAudioStats:(AliRtcLocalAudioStats *_Nonnull)localAudioStats;

Parameters

Parameter

Type

Description

localAudioStats

AliRtcLocalAudioStats

Statistik kinerja audio lokal.

onRtcRemoteAudioStats

Callback ini melaporkan statistik audio jarak jauh setiap 2 detik.

- (void)onRtcRemoteAudioStats:(AliRtcRemoteAudioStats *_Nonnull)remoteAudioStats;

Parameters

Parameter

Type

Description

remoteAudioStats

AliRtcRemoteAudioStats

Statistik untuk audio jarak jauh.

onMediaExtensionMsgReceived

Terjadi ketika pesan ekstensi media diterima.

- (void)onMediaExtensionMsgReceived:(NSString *_Nonnull)uid payloadType:(int)payloadType message:(NSData *_Nonnull)data;

Ketika klien mengirim pesan dengan memanggil sendMediaExtensionMsg, klien lain menerima pesan tersebut melalui callback ini.

Parameters

Parameter

Type

Description

uid

NSString

ID pengguna.

payloadType

int

Jenis muatan.

message

NSData *

Pesan ekstensi media.

onAudioRouteChanged

Panggilan balik ini dipicu ketika rute audio berubah. Panggilan balik ini hanya tersedia di Android dan iOS.

- (void)onAudioRouteChanged:(AliRtcAudioRouteType)routing;

Parameters

Parameter

Type

Description

routing

AliRtcAudioRouteType

Jenis routing.

onSnapshotComplete

Panggilan balik snapshot

- (void)onSnapshotComplete:(NSString*_Nullable)uid videoTrack:(AliRtcVideoTrack)videoTrack image:(UIImage* _Nullable)image success:(BOOL)success;

Parameters

Parameter

Type

Description

image

UIImage *

Jenis citra

success

BOOL

Menunjukkan apakah pengambilan Snapshot berhasil.

onLocalAudioStateChanged

Memberikan laporan perubahan status perangkat pengambilan audio lokal.

- (void)onLocalAudioStateChanged:(AliRtcLocalAudioStateType)state message:(NSString *_Nullable)msg;
Catatan

Pemicu callback ini dipanggil melalui panggilan ke startAudioCapture dan stopAudioCapture.

Parameters

Parameter

Type

Description

state

AliRtcLocalAudioStateType

Status perangkat.

msg

NSString *

Deskripsi perubahan status perangkat.

onLocalVideoStateChanged

Callback ini melaporkan perubahan status perangkat pengambilan video lokal.

- (void)onLocalVideoStateChanged:(AliRtcLocalVideoStateType)state message:(NSString *_Nullable)msg;

Parameters

Parameter

Type

Description

state

AliRtcLocalVideoStateType

Status perangkat. Jenisnya adalah AliRtcLocalVideoStateType.

msg

NSString *

Pesan yang menjelaskan perubahan status perangkat.

onRemoteUserSubscribedDataChannel

Panggilan balik ini menunjukkan bahwa Anda dapat mulai mengirimkan pesan saluran data.

- (void)onRemoteUserSubscribedDataChannel:(NSString *_Nonnull)uid;

Panggilan balik ini dipicu ketika pengguna jarak jauh berlangganan ke saluran data. Panggilan balik ini memberi tahu Anda bahwa pengguna jarak jauh yang ditentukan siap menerima pesan kustom. Pada titik ini, Anda dapat dengan aman memanggil sendDataChannelMessage. Panggilan balik ini merupakan mekanisme kunci untuk memastikan pengiriman pesan yang andal karena mencegah kehilangan paket atau kegagalan pengiriman yang dapat terjadi jika Anda mengirim pesan sebelum penerima siap.

Catatan

Panggilan balik ini hanya dipicu dalam skenario AI.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *

ID pengguna.

onDataChannelMessage

Callback untuk pesan saluran data.

- (void)onDataChannelMessage:(NSString *_Nonnull)uid controlMsg:(AliRtcDataChannelMsg*_Nonnull)controlMsg;

ApsaraVideo Real-time Communication (ARTC) software development kit (SDK) memungkinkan Anda mengirim dan menerima pesan kustom selama mentransmisikan data audio dan video. Gunakan callback ini untuk menerima pesan kustom dari saluran data. Untuk informasi selengkapnya, lihat Kirim dan terima pesan kustom.

Catatan
  • Dalam skenario interaktif, Streamer dapat mengirim dan menerima pesan, sedangkan penonton hanya dapat menerima pesan.

  • Fitur ini dinonaktifkan secara default. Untuk mengaktifkan fitur ini, panggil setParameter setelah membuat Mesin DPI dan atur parameter menjadi {\"data\":{\"enablePubDataChannel\":true" + ",\"enableSubDataChannel\":true}}.

Kapan ini dipicu

Callback ini dipicu di sisi penerima setelah pengirim memanggil sendDataChannelMessage untuk mengirim pesan kustom. Penerima harus telah mengaktifkan fitur saluran data.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *

ID pengguna.

controlMsg

AliRtcDataChannelMsg

Pesan saluran data.

onScreenSharePublishStateChanged

Terjadi ketika status pengambilan aliran berbagi layar berubah.

- (void)onScreenSharePublishStateChanged:(AliRtcPublishState)oldState newState:(AliRtcPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;

Parameters

Parameter

Type

Description

oldState

AliRtcPublishState

Hasil probe. 0: berhasil. -1: gagal karena kondisi jaringan yang buruk.

newState

AliRtcPublishState

Status pengambilan aliran sebelumnya.

newState

AliRtcPublishState

Status pengambilan aliran yang baru.

elapseSinceLastState

NSInteger

Interval perubahan status, dalam milidetik.

Channel

NSString *

ID saluran saat ini.

onCapturedAudioFrame

Callback ini menyediakan data audio mentah yang ditangkap dari perangkat lokal.

- (BOOL)onCapturedAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;

Callback ini dinonaktifkan secara default. Untuk menerima data dari callback ini:

Catatan
  • Anda dapat mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.

  • Jangan melakukan operasi yang memakan waktu dalam fungsi callback ini karena dapat menyebabkan masalah audio.

  • Anda dapat mengatur laju sampel dan jumlah saluran suara.

  • Antarmuka ini mendukung operasi baca dan tulis.

Batasan

Jangan melakukan operasi yang memakan waktu dalam fungsi callback ini karena hal tersebut dapat menyebabkan masalah audio.

Parameter

Parameter

Tipe

Deskripsi

frame

AliRtcAudioFrame

Frame video

Nilai kembalian

Mengembalikan true jika berhasil.

onProcessCapturedAudioFrame

Callback ini menyediakan data audio yang telah ditangkap setelah melalui pemrosesan 3A.

- (BOOL)onProcessCapturedAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;

Callback ini dinonaktifkan secara default. Untuk menerima data audio ini:

  • Aktifkan callback ini menggunakan parameter audioSource dalam enableAudioFrameObserver(true, audioSource, config). Anda dapat menggunakan parameter config untuk mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.

  • Panggil registerAudioFrameObserver untuk mendaftarkan objek pengamat frame audio.

Catatan
  • Anda dapat menggunakan API ini untuk mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.

  • Untuk menghindari masalah audio, jangan melakukan operasi yang memakan waktu lama di dalam fungsi callback ini.

  • Anda dapat menggunakan API ini untuk mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.

  • Antarmuka ini mendukung operasi baca dan tulis.

Batasan penggunaan

Jangan melakukan operasi yang memakan waktu lama di dalam callback ini karena hal tersebut dapat menyebabkan masalah audio.

Parameter

Parameter

Tipe

Deskripsi

frame

AliRtcAudioFrame

Frame video

Nilai kembalian

true: Operasi berhasil.

onPublishAudioFrame

Fungsi callback ini menyediakan data audio untuk pengambilan aliran.

- (BOOL)onPublishAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;

Anda dapat menggunakan fungsi callback ini untuk memperoleh data audio untuk pengambilan aliran. Callback ini dinonaktifkan secara default. Untuk mengaktifkan callback ini dan memperoleh data audio, lakukan salah satu operasi berikut:

  • Panggil enableAudioFrameObserver(true, audioSource, config). Parameter config memungkinkan Anda mengatur properti untuk data audio, seperti laju sampel, jumlah saluran suara, dan mode baca/tulis.

  • Panggil registerAudioFrameObserver untuk mendaftarkan observer frame audio.

Catatan
  • Antarmuka ini memungkinkan Anda mengatur laju sampel dan jumlah saluran suara, tetapi mode hanya dapat diatur ke read-only.

  • Jangan melakukan operasi yang memakan waktu dalam fungsi callback ini. Hal ini dapat menyebabkan masalah audio.

  • Anda dapat mengatur laju sampel dan jumlah saluran suara.

  • API ini mendukung mode baca/tulis.

Batasan

Jangan melakukan operasi yang memakan waktu dalam fungsi callback ini. Jika tidak, masalah audio dapat terjadi.

Parameter

Parameter

Tipe

Deskripsi

frame

AliRtcAudioFrame

Frame video.

Nilai kembalian

Nilai true menunjukkan keberhasilan.

onPlaybackAudioFrame

Callback ini mengambil data audio pemutaran.

- (BOOL)onPlaybackAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;

Callback ini dinonaktifkan secara default. Untuk mengambil data audio, Anda harus:

  • Memanggil enableAudioFrameObserver(true, audioSource, config) untuk mengaktifkan callback ini. Parameter config memungkinkan Anda mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.

  • Memanggil registerAudioFrameObserver untuk mendaftarkan objek pengamat frame audio.

Catatan
  • Anda dapat menggunakan antarmuka ini untuk mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.

  • Menjalankan operasi yang memakan waktu lama dalam fungsi callback ini dapat menyebabkan audio menjadi tidak normal.

  • Antarmuka ini memungkinkan Anda mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.

  • Antarmuka ini mendukung operasi baca dan tulis.

Batasan

Untuk mencegah masalah audio, hindari menjalankan operasi yang memakan waktu lama dalam fungsi callback ini.

Parameter

Parameter

Tipe

Deskripsi

frame

AliRtcAudioFrame

Sebuah frame video.

Nilai kembalian

true: Operasi berhasil.

onRemoteUserAudioFrame

Callback data untuk penarikan aliran jarak jauh.

- (BOOL)onRemoteUserAudioFrame:(NSString *_Nullable)uid frame:(AliRtcAudioFrame* _Nonnull)frame;

Callback ini dinonaktifkan secara default. Untuk menerima frame audio ini:

  • Panggil enableAudioFrameObserver(true, audioSource, config). Gunakan parameter config untuk mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis untuk data audio.

  • Panggil registerAudioFrameObserver untuk mendaftarkan objek pengamat frame audio.

Catatan
  • Callback ini memungkinkan Anda mengatur mode baca/tulis, tetapi tidak laju sampel atau jumlah saluran suara.

  • Jangan melakukan operasi yang memakan waktu lama dalam fungsi callback ini karena dapat menyebabkan masalah audio.

  • Callback ini does not support pengaturan laju sampel atau jumlah saluran suara.

  • Callback ini mendukung mode baca/tulis.

Batasan

Hindari melakukan operasi yang memakan waktu lama dalam fungsi callback ini untuk mencegah terjadinya masalah audio.

Parameter

Parameter

Tipe

Deskripsi

frame

AliRtcAudioFrame

Frame video

Nilai kembalian

true: Operasi berhasil.

onDestroyCompletion

Callback yang dipanggil ketika engine telah sepenuhnya dihancurkan.

- (void)onDestroyCompletion;

Callback ini menunjukkan bahwa instans engine SDK telah dihapus. Anda kemudian dapat membuat instans baru.

Catatan

Untuk menghindari pemblokiran thread utama, tunggu hingga callback onDestroyCompletion selesai sebelum memanggil metode lainnya.

Pemicu

Callback ini dipicu setelah metode destroy dipanggil dan engine telah sepenuhnya dihancurkan.

onTextureCreate

Callback untuk pembuatan konteks OpenGL.

- (void)onTextureCreate:(void *_Nullable)context;
Catatan

Callback ini berlaku untuk konteks OpenGL internal SDK.

Kondisi pemicu

Callback ini dipicu ketika SDK membuat konteks. Anda dapat menggunakan callback ini untuk menginisialisasi sumber daya terkait.

Parameter

Parameter

Tipe

Deskripsi

context

void *

Konteks OpenGL.

onTextureUpdate

Pemicu balik untuk pembaruan tekstur OpenGL.

- (int)onTextureUpdate:(int)textureId width:(int)width height:(int)height videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;
Catatan
  • Pemicu balik ini dipicu setelah setiap bingkai video diunggah ke tekstur OpenGL. Jika Anda telah mendaftarkan pengamat eksternal untuk data tekstur OpenGL, Anda dapat menggunakan pemicu balik ini untuk memproses tekstur tersebut dan mengembalikan ID tekstur yang telah diproses.

  • Pemicu balik ini harus mengembalikan ID tekstur yang valid. Jika tidak ada pemrosesan yang dilakukan, kembalikan parameter textureId asli.

Pemicu

Pemicu balik ini dipicu setelah setiap bingkai video diunggah ke tekstur OpenGL.

Parameter

Parameter

Tipe

Deskripsi

textureId

int

Konteks OpenGL.

width

int

Lebar video.

height

int

Tinggi video.

videoSample

AliRtcVideoDataSample

Data bingkai video.

Nilai kembali

ID tekstur baru atau ID tekstur asli. Nilai kembali kurang dari 0 menunjukkan bahwa ID tekstur tidak diperbarui.

onTextureDestory

Callback yang dipicu saat konteks OpenGL dihancurkan.

- (void)onTextureDestory;
Catatan

Callback ini dipicu saat konteks OpenGL internal SDK dihancurkan.

Kondisi pemicu

SDK memicu callback ini saat konteks OpenGL internalnya dihancurkan. Anda dapat mengimplementasikan callback ini untuk melepas sumber daya terkait.

onCaptureVideoSample

Callback untuk frame video yang ditangkap.

- (BOOL)onCaptureVideoSample:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;

Callback ini menyediakan frame video mentah, seperti data YUV, yang ditangkap oleh kamera lokal. Anda dapat menggunakan callback ini untuk mengimplementasikan logika pemrosesan video kustom, seperti menambahkan filter, Watermark, atau Transkoding. Setelah diproses, Anda dapat mengembalikan data video yang telah dimodifikasi ke SDK untuk proses encoding dan rendering selanjutnya. Untuk mengirim video yang telah diproses ke SDK, kembalikan nilai YES.

Kapan dipicu

Setelah pemanggilan sukses ke <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#9a3437ab16j1w" id="6c93b9cf8e771">registerVideoSampleObserver</a>, SDK memicu observer setiap kali menangkap sebuah frame video.

Parameter

Parameter

Tipe

Deskripsi

videoSource

AliRtcVideoSource

Jenis aliran video.

videoSample

AliRtcVideoDataSample

Data video mentah.

Nilai kembalian

Ya, data ditulis kembali ke SDK, yang hanya berlaku untuk I420 dan CVPixelBuffer pada iOS dan macOS.

Data tidak ditulis kembali ke SDK.

onPreEncodeVideoSample

Callback yang menyediakan data video lokal sebelum pengkodean.

- (BOOL)onPreEncodeVideoSample:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;

Callback ini dipicu sebelum SDK mengkodekan frame video lokal. Callback ini menyediakan data video mentah, seperti data dalam format YUV. Anda dapat menggunakan callback ini untuk menerapkan logika pemrosesan khusus, seperti menambahkan Watermark, menyesuaikan warna, atau Transkoding. Setelah pemrosesan, Anda dapat memutuskan apakah akan mengembalikan data yang telah dimodifikasi ke SDK untuk dikodekan.

Parameter

Parameter

Tipe

Deskripsi

videoSource

AliRtcVideoSource

Jenis aliran video.

videoSample

AliRtcVideoDataSample

Data video mentah.

Nilai kembalian

YES: Data yang telah diproses dikembalikan ke SDK. Opsi ini hanya berlaku untuk data dalam format I420 atau CVPixelBuffer (iOS/macOS).

NO: Data yang telah diproses tidak dikembalikan ke SDK.

onRemoteVideoSample

Callback untuk data video dari pengguna jarak jauh yang telah berlangganan.

- (BOOL)onRemoteVideoSample:(NSString *_Nonnull)uid videoSource:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;

Callback ini menyediakan data frame video mentah, seperti data dalam format YUV. Anda dapat menggunakan callback ini untuk menerapkan logika kustom, seperti menambahkan filter, watermark, atau transkoding, lalu memutuskan apakah akan mengembalikan data yang telah diproses ke SDK untuk rendering.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *

ID pengguna.

videoSource

AliRtcVideoSource

Jenis aliran video.

videoSample

AliRtcVideoDataSample

Data video mentah.

Nilai kembalian

YES: Data dikembalikan ke SDK. Ini hanya berlaku untuk data dalam format I420 dan CVPixelBuffer di iOS dan macOS.

NO: Data tidak dikembalikan ke SDK.

onGetVideoFormatPreference

Format keluaran untuk data video.

- (AliRtcVideoFormat)onGetVideoFormatPreference;
Catatan

Format default adalah AliRtcYUV420.

Nilai kembalian

Format keluaran video yang disukai.

onGetVideoObservedFramePosition

Mengambil posisi keluaran data video.

- (NSInteger)onGetVideoObservedFramePosition;

Nilai kembalian

Posisi keluaran video yang diinginkan. Untuk informasi selengkapnya, lihat {@link AliRtcVideoObserPosition}.

onAudioEffectFinished

Panggilan balik ini dipicu ketika pemutaran efek suara lokal selesai.

- (void)onAudioEffectFinished:(int)soundId;

Parameters

Parameter

Type

Description

soundId

int

ID dari efek suara yang telah selesai diputar.

onAudioVolumeCallback

Callback ini melaporkan volume audio, status suara, dan UID pengguna yang berlangganan.

- (void)onAudioVolumeCallback:(NSArray <AliRtcUserVolumeInfo *> *_Nullable)array totalVolume:(int)totalVolume;

Anda dapat menggunakan callback ini untuk memperoleh data frame video mentah (seperti data dalam format YUV) dari pengguna jarak jauh, menerapkan logika pemrosesan kustom seperti menambahkan filter, Watermark, dan Transkoding, serta menentukan apakah akan mengembalikan data yang telah diproses ke SDK untuk rendering selanjutnya.

Parameters

Parameter

Type

Description

array

NSArray <AliRtcUserVolumeInfo

*> *_Nullable

Array yang berisi informasi volume pengguna, termasuk UID pengguna, status suara, dan volume.

  • UID bernilai 0 menunjukkan speaker lokal.

  • UID bernilai 1 menunjukkan volume gabungan semua pengguna jarak jauh.

  • Nilai lainnya menunjukkan informasi volume untuk pengguna jarak jauh tertentu.

totalVolume

int

Volume total setelah pencampuran. Nilainya berkisar antara 0 hingga 255. Pada callback untuk pengguna lokal, totalVolume adalah volume pengguna lokal setelah pencampuran. Pada callback untuk pengguna jarak jauh, totalVolume adalah volume total semua pembicara setelah pencampuran.

onActiveSpeaker

Callback yang melaporkan UID dari pembicara paling aktif.

- (void)onActiveSpeaker:(NSString *_Nonnull)uid;

Setelah pemanggilan sukses ke <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#85b41ef251dg0" id="a41de41e279og">enableAudioVolumeIndication</a>, SDK terus-menerus mengidentifikasi pengguna jarak jauh mana yang berbicara paling keras dan menghitung jumlah kali setiap pengguna diidentifikasi demikian. Pengguna jarak jauh dengan jumlah kumulatif tertinggi dalam periode waktu tertentu dianggap sebagai pengguna paling aktif.

Pemicu

Ketika dua atau lebih pengguna berada dalam saluran, SDK memicu callback ini untuk melaporkan UID pembicara jarak jauh paling aktif.

  • Jika pengguna jarak jauh paling aktif tetap sama, SDK tidak memicu callback onActiveSpeaker lagi.

  • Jika pengguna jarak jauh paling aktif berubah, SDK memicu callback ini lagi untuk melaporkan UID pengguna baru tersebut.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pembicara saat ini.

onPublishLiveStreamStateChanged

Panggilan balik ini dipicu ketika status pengambilan aliran bypass berubah.

- (void)onPublishLiveStreamStateChanged:(NSString *_Nonnull)streamURL state:(AliRtcLiveTranscodingState)state errCode:(AliRtcTrascodingLiveStreamErrorCode)errCode;

Parameters

Parameter

Type

Description

streamURL

NSString *

URL aliran.

state

AliRtcLiveTranscodingState

Status aliran.

errCode

AliRtcTrascodingLiveStreamErrorCode

Kode kesalahan.

onPublishTaskStateChanged

Callback untuk perubahan status Tugas bypass.

- (void)onPublishTaskStateChanged:(NSString *_Nonnull)streamURL state:(AliRtcTrascodingLiveTaskStatus)state;

Parameters

Parameter

Type

Description

streamURL

NSString *

URL aliran.

state

AliRtcTrascodingLiveTaskStatus

Status.

onNetworkQualityChanged

Panggilan balik ini dipicu ketika kualitas jaringan berubah.

- (void)onNetworkQualityChanged:(NSString *_Nonnull)uid
               upNetworkQuality:(AliRtcNetworkQuality)upQuality
             downNetworkQuality:(AliRtcNetworkQuality)downQuality;

Parameters

Parameter

Type

Description

uid

NSString*

ID pengguna. Jika parameter ini kosong, panggilan balik melaporkan kualitas jaringan uplink dan downlink pengguna lokal.

upQuality

AliRtcNetworkQuality

Kualitas jaringan uplink.

downQuality

AliRtcNetworkQuality

Kualitas jaringan downlink.

onLastmileDetectResultWithQuality

Callback pengujian kualitas jaringan last-mile.

- (void)onLastmileDetectResultWithQuality:(AliRtcNetworkQuality)networkQuality;

Parameters

Parameter

Type

Description

networkQuality

AliRtcNetworkQuality

Kualitas jaringan.

onLastmileDetectResultWithBandWidth

Callback ini melaporkan hasil pengujian kualitas jaringan.

- (void)onLastmileDetectResultWithBandWidth:(int)code result:(AliRtcNetworkQualityProbeResult* _Nonnull)result;

Parameters

Parameter

Type

Description

code

int

Hasil pengujian. Nilai 0 menunjukkan keberhasilan. Nilai -1 menunjukkan kegagalan karena kondisi jaringan yang buruk.

result

AliRtcNetworkQualityProbeResult

Kualitas jaringan.

onOccurError

Callback ini dipanggil ketika terjadi kesalahan di dalam engine.

- (void)onOccurError:(int)error  message:(NSString *_Nonnull)message;

Parameters

Parameter

Type

Description

error

int

Jenis kesalahan. Untuk informasi selengkapnya, lihat {@link AliRtcErrorCode}.

message

NSString *

Deskripsi kesalahan.

onFirstAudioPacketSentWithTimecost

Pemicu balik ini diaktifkan ketika paket audio pertama dikirim.

- (void)onFirstAudioPacketSentWithTimecost:(AliRtcAudioTrack)track timeCost:(int)timeCost;

Parameters

Parameter

Type

Description

track

AliRtcAudioTrack

Track audio.

timeCost

int

Waktu yang dibutuhkan untuk mengirim paket tersebut.

onFirstVideoFrameReceivedWithUid

Terjadi ketika aliran video frame pertama diterima.

- (void)onFirstVideoFrameReceivedWithUid:(NSString *_Nonnull)uid
                      videoTrack:(AliRtcVideoTrack)videoTrack
                        timeCost:(int)timeCost;

Parameters

Parameter

Type

Description

uid

NSString *

ID pengguna.

videoTrack

AliRtcVideoTrack

Tag aliran video.

timeCost

int

Waktu yang berlalu, dalam milidetik.

onFirstVideoPacketSentWithVideoTrack

Terjadi ketika paket video pertama dikirim.

- (void)onFirstVideoPacketSentWithVideoTrack:(AliRtcVideoTrack)videoTrack
                                    timeCost:(int)timeCost;

Parameters

Parameter

Type

Description

videoTrack

AliRtcVideoTrack

Tag aliran video.

timeCost

int

Biaya waktu dalam milidetik.

onFirstAudioPacketReceivedWithUid

Terjadi ketika paket audio pertama diterima.

- (void)onFirstAudioPacketReceivedWithUid:(NSString *_Nonnull)uid
                                 track:(AliRtcAudioTrack)track
                                 timeCost:(int)timeCost;

Parameters

Parameter

Type

Description

uid

NSString *

ID pengguna.

videoTrack

AliRtcAudioTrack

Tag aliran audio.

timeCost

int

Waktu yang berlalu, dalam milidetik.

onFirstRemoteAudioDecodedWithUid

Terjadi ketika frame pertama dari aliran audio jarak jauh didekodekan.

- (void)onFirstRemoteAudioDecodedWithUid:(NSString *_Nonnull)uid track:(AliRtcAudioTrack)track elapsed:(int)elapsed;

Parameters

Parameter

Type

Description

uid

NSString *

ID pengguna.

track

AliRtcAudioTrack

Tag aliran audio.

elapsed

int

Waktu yang berlalu, dalam milidetik.

onFirstRemoteVideoFrameDrawn

Panggilan balik ini dipicu ketika bingkai video pertama dari pengguna jarak jauh dirender.

- (void)onFirstRemoteVideoFrameDrawn:(NSString *_Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack width:(int)width height:(int)height elapsed:(int)elapsed;

Parameters

Parameter

Type

Description

uid

NSString *

ID pengguna jarak jauh.

videoTrack

AliRtcVideoTrack

Label aliran audio

width

int

Lebar bingkai video.

height

int

Tinggi.

elapsed

int

Waktu yang berlalu, dalam milidetik, sejak pengguna lokal bergabung ke saluran hingga panggilan balik ini dipicu.

onFirstLocalVideoFrameDrawn

Terjadi ketika frame video lokal pertama ditampilkan dalam pratinjau lokal.

- (void)onFirstLocalVideoFrameDrawn:(int)width height:(int)height elapsed:(int)elapsed;

Parameters

Parameter

Type

Description

width

int

Lebar video pratinjau lokal.

height

int

Tinggi video pratinjau lokal.

elapsed

int

Waktu yang berlalu, dalam milidetik, sejak pengguna lokal bergabung ke saluran hingga callback ini dipicu.

onTestAudioVolumeCallback

Memberikan laporan volume audio selama pengujian perekaman audio sebelum panggilan.

- (void)onTestAudioVolumeCallback:(int)volume;

Parameters

Parameter

Type

Description

volume

int

Volume tersebut. Rentang nilai: 0 hingga 100.

onAudioAccompanyStateChanged

Callback ini melaporkan perubahan pada status pemutaran iringan audio lokal.

- (void)onAudioAccompanyStateChanged:(AliRtcAudioAccompanyStateCode)playState
                           errorCode:(AliRtcAudioAccompanyErrorCode)errorCode;

Parameter

Parameter

Tipe

Deskripsi

playState

AliRtcAudioAccompanyStateCode

Status pemutaran iringan audio.

errorCode

AliRtcAudioAccompanyErrorCode

Kode kesalahan.

onRemoteAudioAccompanyStarted

Pemicu balik ini dipanggil ketika pengguna jarak jauh mulai memutar iringan audio.

- (void)onRemoteAudioAccompanyStarted:(NSString *_Nonnull)uid;

Parameters

Parameter

Type

Description

uid

NSString *

ID pengguna.

onRemoteAudioAccompanyFinished

Panggilan balik ini dipicu ketika pemutaran audio iringan pengguna jarak jauh selesai.

- (void)onRemoteAudioAccompanyFinished:(NSString *_Nonnull)uid;

Parameters

Parameter

Type

Description

uid

NSString *

ID pengguna.

setParameter

Menetapkan parameter kustom.

- (int)setParameter:(NSString * _Nonnull)param;

Parameters

Parameter

Type

Description

param

String

Parameter kustom tersebut.

getParameter

Mengambil parameter kustom.

- (NSString * _Nonnull)getParameter:(NSString * _Nonnull)param;

Parameters

Parameter

Type

Description

param

String

Parameter kustom.

enableAudioFrameObserver

Mengatur parameter untuk callback audio.

- (int)enableAudioFrameObserver:(bool)enable audioSource: (AliRtcAudioSource)audioSource config:(AliRtcAudioFrameObserverConfig*_Nullable)config;

Anda dapat memanggil metode ini untuk mengaktifkan atau menonaktifkan callback untuk jenis data audio tertentu. Hal ini memungkinkan Anda memperoleh berbagai jenis data audio mentah dan terenkripsi. Secara default, callback ini dinonaktifkan.

Catatan

Jika Anda mengaktifkan callback data audio untuk AliRtcAudioSource tertentu, Anda juga harus memanggil metode registerAudioFrameObserver untuk meneruskan objek yang menerima data audio tersebut.

Kapan dipanggil

Panggil metode ini saat Anda perlu memperoleh data audio.

Parameter

Parameter

Tipe

Deskripsi

enable

bool

Menentukan apakah akan mengaktifkan callback data.

audioSource

AliRtcAudioSource

Jenis sumber data untuk callback.

config

AliRtcAudioFrameObserverConfig

Pengaturan parameter callback.

registerAudioFrameObserver

Mendaftarkan pengamat untuk data audio mentah.

- (int)registerAudioFrameObserver:(id<AliRtcAudioFrameDelegate> _Nullable)observer;

Gunakan metode ini untuk mendaftarkan objek pengamat yang menerima callback data audio.

Kapan dipanggil

Panggil metode ini untuk mendaftarkan pengamat yang menerima data audio ketika Anda ingin SDK memicu callback untuk berbagai jenis data audio. Callback tersebut mencakup onCapturedAudioFrame, onProcessCapturedAudioFrame, onPublishAudioFrame, onPlaybackAudioFrame, dan onRemoteUserAudioFrame. Untuk membatalkan pendaftaran pengamat, panggil kembali metode ini dan berikan nil.

Batasan

Anda harus memanggil enableAudioFrameObserver untuk mengaktifkan callback untuk AliRtcAudioSource tertentu. Jika tidak, pengamat yang terdaftar tidak dapat menerima data.

Parameter

Parameter

Tipe

Deskripsi

observer

AliRtcAudioFrameDelegate

Objek callback untuk data audio.

registerVideoSampleObserver

Mendaftarkan observer untuk data video mentah.

- (void)registerVideoSampleObserver;

unRegisterVideoSampleObserver

Anda dapat membatalkan pendaftaran keluaran data video.

- (void)unregisterVideoSampleObserver;

setLogDirPath

Mengatur jalur penyimpanan untuk file log SDK.

Penting

Panggil metode ini sebelum memanggil metode SDK lainnya untuk mencegah kehilangan log. Pastikan folder yang ditentukan ada dan dapat ditulis.

+ (int)setLogDirPath:(NSString *_Nullable)logDirPath;

Parameters

Name

Type

Description

logDirPath

NSString *_Nullable

Jalur mutlak untuk menyimpan file log.

  • Jalur log default untuk iOS adalah Library/Caches/Ali_RTC_Log.

  • Jalur log default untuk macOS adalah /Users/xxx/Documents/Ali_RTC_Log.

Return value

Nilai 0 menunjukkan bahwa pemanggilan berhasil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.

setLogLevel

Mengatur tingkat log.

- (void)setLogLevel:(AliRtcLogLevel)logLevel;

Parameters

Name

Type

Description

logLevel

AliRtcLogLevel

Tingkat log. Nilai default adalah AliRtcLogLevelInfo.

setAudioSessionOperationRestriction

Menetapkan izin bagi kit pengembangan perangkat lunak (SDK) untuk mengoperasikan AVAudioSession.

- (int)setAudioSessionOperationRestriction:(AliRtcAudioSessionOperationRestriction)restriction;

Parameters

Name

Type

Description

restriction

AliRtcAudioSessionOperationRestriction

Izin kontrol untuk SDK. Nilai default-nya adalah AliRtcAudioSessionOperationRestrictionNone.

setDeviceOrientationMode

Mengatur orientasi perangkat.

- (int)setDeviceOrientationMode:(AliRtcOrientationMode)mode;

Parameters

Name

Type

Description

mode

AliRtcOrientationMode

Orientasi perangkat.

Return value

Mengembalikan nilai 0 jika berhasil. Nilai bukan nol menunjukkan kegagalan.

getNetworkTime

Mengambil waktu dari timeline.

-(long long)getNetworkTime;

Nilai kembalian

Timestamp.

sendDataChannelMessage

-(int) sendDataChannelMessage:(AliRtcDataChannelMsg* _Nonnull)controlMsg;

Kit pengembangan perangkat lunak (SDK) Alibaba Real-Time Communication (ARTC) memungkinkan Anda mengirim dan menerima pesan kustom. Anda dapat mengirim data real-time kustom, seperti instruksi kontrol atau data sinkronisasi status, selama transmisi audio dan video. Panggil operasi ini untuk mengirim pesan kustom. Untuk informasi selengkapnya, lihat Kirim dan terima pesan kustom.

Catatan
  • Saluran pesan kustom dinonaktifkan secara default. Untuk menggunakan fitur ini, panggil API setParameter dan atur parameter menjadi `"{\"data\":{\"enablePubDataChannel\":true" + ",\"enableSubDataChannel\":true}}"`. Anda dapat melakukan hal ini baik sebelum maupun setelah bergabung ke saluran.

  • Pesan dapat berupa data jenis apa pun, seperti teks atau citra.

Callback terkait

  • Callback `onRemoteUserSubscribedDataChannel` dipicu ketika pengguna jarak jauh berlangganan ke saluran data. Setelah Anda menerima callback ini, Anda dapat mengirim pesan saluran data kepada pengguna tersebut.

  • Setelah pengirim mengaktifkan saluran pesan kustom, mereka dapat memanggil operasi ini untuk mengirim pesan kustom. Penerima menerima pesan tersebut melalui callback onDataChannelMessage.

Kapan harus dipanggil

Panggil operasi ini setelah Anda menerima callback `onRemoteUserSubscribedDataChannel`. Callback ini menunjukkan bahwa pengguna jarak jauh telah memanggil `setParameter` dan mengaktifkan `enableSubDataChannel` untuk menerima pesan saluran data.

Batasan penggunaan

Pengguna dengan peran streamer dapat mengirim dan menerima pesan. Pengguna dengan peran viewer hanya dapat menerima pesan.

Anda harus memanggil `setParameter` untuk mengaktifkan saluran pesan kustom.

Parameter

Nama

Tipe

Deskripsi

controlMsg

AliRtcDataChannelMsg *

Pesan kontrol yang menyertainya.

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

startScreenShare

Memulai berbagi layar dan aliran audio.

- (int)startScreenShare:(NSString * _Nonnull)appGroup
mode:(AliRtcScreenShareMode)mode;

Parameters

Name

Description

appGroup

Nama paket aplikasi, seperti @"group.com.aliyun.rtc.demo".

mode

Jenis berbagi layar. Untuk informasi selengkapnya, lihat AliRtcScreenShareMode.

Return value

Nilai 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.

startScreenShare

Memulai berbagi aliran video layar.

Penting

Metode ini sudah tidak digunakan lagi. Gunakan metode startScreenShare yang baru.

- (int)startScreenShare;

Returns

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan kegagalan.

stopScreenShare

Menghentikan aliran berbagi layar dan aliran audio yang terkait.

- (int)stopScreenShare;

Nilai kembalian

0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.

isScreenSharePublished

Memeriksa apakah aliran berbagi layar telah dipublikasikan.

- (BOOL)isScreenSharePublished;

Nilai kembalian

true: Aliran berbagi layar telah dipublikasikan. false: Aliran berbagi layar belum dipublikasikan.

setScreenShareEncoderConfiguration

Mengatur konfigurasi penyandi untuk berbagi layar.

- (void)setScreenShareEncoderConfiguration:(AliRtcScreenShareEncoderConfiguration* _Nonnull)config;
Catatan

Metode ini mengatur parameter video untuk aliran berbagi layar, seperti resolusi, laju frame, bitrate, dan orientasi video. Semua parameter memiliki rentang nilai yang valid, dan SDK secara otomatis menyesuaikan parameter apa pun yang diatur di luar rentang validnya. Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran. Jika Anda hanya perlu mengatur parameter-parameter ini sekali per sesi, panggil metode ini sebelum bergabung ke saluran.

Parameters

Name

Type

Description

config

AliRtcScreenShareEncoderConfiguration

Parameter pengkodean video untuk berbagi layar, seperti resolusi, laju frame, bitrate, dan orientasi video.

setAudioShareAppVolume

Mengatur volume aliran audio yang dibagikan.

- (int)setAudioShareAppVolume:(int)volume;

Parameters

Name

Description

volume

Tingkat volume. Nilainya berkisar dari 0 hingga 100. Nilai default adalah 50.

Return value

Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.