All Products
Search
Document Center

ApsaraVideo Live:Antarmuka AliRtcEngine

Last Updated:Feb 08, 2026

Topik ini menjelaskan antarmuka yang disediakan oleh ApsaraVideo Real-time Communication iOS SDK.

Direktori

Metode Dasar

API

Deskripsi

sharedInstance

Membuat instans AliRtcEngine. Ini adalah metode singleton.

destroy[1/2]

Menghancurkan instans AliRtcEngine secara sinkron.

destroy[2/2]

Menghancurkan instans AliRtcEngine secara asinkron.

setH5CompatibleMode

Menentukan apakah akan mengaktifkan mode kompatibilitas HTML5.

getH5CompatibleMode

Memeriksa apakah lingkungan saat ini kompatibel dengan HTML5.

getSdkVersion

Mendapatkan nomor versi SDK.

Metode terkait Channel

API

Deskripsi

setChannelProfile

Menetapkan mode channel.

setAudioProfile

Menetapkan profil audio.

isAudioOnly

Memeriksa apakah mode hanya audio diaktifkan.

setAudioOnlyMode

Mengaktifkan mode hanya audio atau mode audio-video.

joinChannel[1/3]

Bergabung ke channel.

joinChannel[2/3]

Bergabung ke channel.

joinChannel[3/3]

Bergabung ke channel.

leaveChannel

Meninggalkan saluran.

isInCall

Memeriksa apakah pengguna berada di dalam channel.

setClientRole

Menentukan peran pengguna.

getCurrentClientRole

Memeriksa peran pengguna.

refreshAuthInfo

Memperbarui informasi autentikasi.

refreshAuthInfoWithToken

Memperbarui informasi autentikasi.

Metode terkait Penerbitan dan Langganan

API

Deskripsi

publishLocalAudioStream

Menentukan apakah akan menerbitkan track audio. Secara default, track audio diterbitkan.

isLocalAudioStreamPublished

Memeriksa apakah track audio diterbitkan.

setDefaultSubscribeAllRemoteAudioStreams

Menentukan apakah akan berlangganan ke track audio pengguna remote. Secara default, semua track audio remote berlangganan.

Kami menyarankan Anda memanggil metode ini sebelum pengguna bergabung ke channel.

subscribeRemoteAudioStream

Berlangganan atau berhenti berlangganan track audio pengguna remote tertentu.

subscribeAllRemoteAudioStreams

Berlangganan atau berhenti berlangganan track audio semua pengguna remote.

publishLocalVideoStream

Menentukan apakah akan menerbitkan track video.

isLocalVideoStreamPublished

Memeriksa apakah track video diterbitkan.

setDefaultSubscribeAllRemoteVideoStreams

Menentukan apakah akan berlangganan ke track video pengguna remote. Secara default, semua track video remote berlangganan.

Kami menyarankan Anda memanggil metode ini sebelum pengguna bergabung ke channel.

subscribeRemoteVideoStream

Berlangganan atau berhenti berlangganan track video pengguna remote.

subscribeAllRemoteVideoStreams

Berlangganan atau berhenti berlangganan track video semua pengguna remote.

subscribeRemoteMediaStream[1/2]

Anda dapat menghentikan atau melanjutkan stream media pengguna remote tertentu.

Kami menyarankan Anda memanggil metode ini ketika track audio dan video tersedia dan perlu dikelola.

subscribeRemoteMediaStream[2/2]

Anda dapat menghentikan atau melanjutkan stream media untuk pengguna remote tertentu.

Kami menyarankan Anda memanggil metode ini ketika track audio dan video tersedia dan perlu dikelola.

subscribeRemoteDestChannelStream

Anda dapat menghentikan atau melanjutkan stream media pengguna remote tertentu lintas channel.

subscribeRemoteDestChannelAllStream

Berlangganan ke stream semua pengguna di channel target.

setRemoteAudioVolume

Menetapkan volume audio pengguna remote.

Metode terkait manajemen perangkat audio

API

Deskripsi

muteLocalMic

Menentukan apakah akan membisukan audio lokal.

muteRemoteAudioPlaying

Menentukan apakah akan menghentikan pemutaran track audio pengguna remote tertentu.

muteAllRemoteAudioPlaying

Menentukan apakah akan menghentikan pemutaran track audio semua pengguna remote.

startAudioCapture[1/2]

Memulai pengumpulan audio.

startAudioCapture[2/2]

Memulai pengumpulan audio.

stopAudioCapture

Menghentikan pengumpulan audio.

enableSpeakerphone

Menetapkan headset atau speaker sebagai perangkat output audio.

isEnableSpeakerphone

Memeriksa apakah perangkat output audio saat ini adalah headset atau speaker.

enableAudioVolumeIndication

Mengaktifkan deteksi volume.

enableEarBack

Mengaktifkan pemantauan in-ear.

setEarBackVolume

Menetapkan volume untuk pemantauan in-ear. Metode ini hanya berlaku untuk iOS.

startAudioPlayer

Memulai pemutaran audio.

stopAudioPlayer

Menghentikan pemutaran audio.

setPlayoutVolume

Menetapkan volume pemutaran.

setRecordingVolume

Menetapkan volume pengambilan.

playAudioFileTest

Memulai pengujian perangkat pemutaran audio.

stopAudioFileTest

Menghentikan pengujian perangkat pemutaran audio.

startAudioCaptureTest

Memulai pengujian perangkat pengambilan audio.

stopAudioCaptureTest

Menghentikan pengujian perangkat pengambilan audio.

setDefaultAudioRoutetoSpeakerphone

Menetapkan perangkat output audio default.

Metode terkait perubahan suara dan gema

API

Deskripsi

setAudioEffectVoiceChangerMode

Menetapkan mode perubahan suara.

setAudioEffectPitchValue

Anda dapat menetapkan parameter penyesuaian pitch.

setAudioEffectReverbMode

Menetapkan mode gema.

setAudioEffectReverbParamType

Menetapkan parameter mode gema.

setAudioEffectBeautifyMode

Menetapkan mode efek pemercantik suara yang telah ditentukan sebelumnya.

setAudioEffectEqualizationParam

Menetapkan parameter equalizer audio (EQ) untuk menyesuaikan gain pada pita frekuensi tertentu.

Input Audio Kustom

API

Deskripsi

addExternalAudioStream

Menambahkan track audio eksternal.

pushExternalAudioStream

Mengimpor data audio eksternal.

setExternalAudioStream:publishVolume

Menetapkan volume audio eksternal untuk ingest stream.

getExternalAudioStreamPublishVolume

Memeriksa volume audio eksternal untuk ingest stream.

setExternalAudioStream:playoutVolume

Menetapkan volume pemutaran audio eksternal.

getExternalAudioStreamPlayoutVolume

Memeriksa volume pemutaran audio eksternal.

removeExternalAudioStream

Hapus pengambilan aliran eksternal.

Akompanimen Audio

API

Deskripsi

getAudioFileInfo

Mendapatkan informasi file akompanimen audio.

startAudioAccompanyWithFile

Memulai pemutaran file akompanimen.

stopAudioAccompany

Menghentikan pemutaran file akompanimen.

setAudioAccompanyVolume

Menetapkan volume akompanimen.

setAudioAccompanyPublishVolume

Menetapkan volume untuk menerbitkan file akompanimen.

getAudioAccompanyPublishVolume

Mendapatkan volume untuk menerbitkan file akompanimen.

setAudioAccompanyPlayoutVolume

Menetapkan volume pemutaran file akompanimen.

getAudioAccompanyPlayoutVolume

Mendapatkan volume pemutaran file akompanimen.

pauseAudioAccompany

Menjeda pemutaran akompanimen.

resumeAudioAccompany

Melanjutkan pemutaran akompanimen.

getAudioAccompanyDuration

Mendapatkan durasi file akompanimen.

getAudioAccompanyCurrentPosition

Mendapatkan posisi pemutaran saat ini dari file akompanimen.

setAudioAccompanyPosition

Menetapkan posisi pemutaran file akompanimen.

File Efek Suara

API

Deskripsi

preloadAudioEffectWithSoundId

Memuat awal efek suara.

unloadAudioEffectWithSoundId

Menghapus efek suara yang telah dimuat sebelumnya.

playAudioEffectWithSoundId

Memulai pemutaran efek suara.

stopAudioEffectWithSoundId

Menghentikan pemutaran efek suara.

stopAllAudioEffects

Menghentikan pemutaran semua efek suara.

pauseAudioEffectWithSoundId

Menjeda pemutaran efek suara.

pauseAllAudioEffects

Menjeda pemutaran semua efek suara.

resumeAudioEffectWithSoundId

Melanjutkan pemutaran efek suara.

resumeAllAudioEffects

Anda dapat memulihkan semua file efek suara.

setAudioEffectPublishVolumeWithSoundId

Menetapkan volume efek suara untuk ingest stream.

getAudioEffectPublishVolumeWithSoundId

Memeriksa volume efek suara untuk ingest stream.

setAllAudioEffectsPublishVolume

Menetapkan volume semua efek suara untuk ingest stream.

setAudioEffectPlayoutVolumeWithSoundId

Menetapkan volume efek suara untuk pemutaran lokal.

getAudioEffectPlayoutVolumeWithSoundId

Memeriksa volume efek suara untuk pemutaran lokal.

setAllAudioEffectsPlayoutVolume

Menetapkan volume semua efek suara untuk pemutaran lokal.

Rekam file audio dan video

API

Deskripsi

startRecord

Merekam file audio dan video dalam format AAC, WAV, atau MP4.

stopRecord

Menghentikan perekaman file audio dan video.

Metode terkait manajemen perangkat video

API

Deskripsi

setLocalViewConfig

Menetapkan tampilan rendering dan parameter gambar untuk pratinjau lokal.

setCameraCapturerConfiguration

Menetapkan preferensi pengumpulan kamera.

enableLocalVideo

Menonaktifkan atau mengaktifkan kembali pengumpulan video lokal.

muteLocalCamera

Menentukan apakah akan menghentikan penerbitan track video lokal.

setRemoteViewConfig

Menetapkan tampilan rendering dan parameter gambar untuk track video pengguna remote.

isCameraOn

Memeriksa apakah kamera menyala.

setVideoEncoderConfiguration

Menetapkan properti pengkodean video.

setVideoDecoderConfiguration

Menetapkan properti decoding video.

switchCamera

Beralih antara kamera depan dan belakang. Secara default, kamera depan digunakan.

getCurrentCameraDirection

Anda dapat memperoleh arah kamera saat ini.

startPreview

Memulai pratinjau lokal.

stopPreview

Menghentikan pratinjau lokal.

setCameraZoom

Menetapkan zoom kamera.

GetCameraMaxZoomFactor

Mendapatkan faktor zoom maksimum kamera.

GetCurrentZoom

Mengambil rasio penskalaan maksimum kamera.

SetExposure

Menetapkan eksposur kamera.

GetCurrentExposure

Mendapatkan eksposur kamera.

GetMinExposure

Mendapatkan tingkat eksposur kamera minimum.

GetMaxExposure

Mendapatkan tingkat eksposur kamera maksimum.

setCameraFlash

Menetapkan mode flash kamera.

isCameraFocusPointSupported

Memeriksa apakah fokus manual didukung.

isCameraExposurePointSupported

Memeriksa apakah pengaturan titik eksposur didukung.

setCameraFocusPoint

Menetapkan titik fokus manual untuk kamera.

setCameraExposurePoint

Menetapkan titik eksposur kamera.

isCameraAutoFocusFaceModeSupported

Memeriksa apakah fokus otomatis wajah didukung.

setCameraAutoFocusFaceModeEnabled

Mengaktifkan atau menonaktifkan fokus otomatis wajah.

setVideoMirrorMode

Mengatur pencerminan untuk pratinjau lokal dan pengambilan aliran.

SetCapturePipelineScaleMode

Menetapkan kapan penskalaan terjadi dalam pipeline pengambilan video—baik selama pengambilan atau selama pengkodean.

Konfigurasikan callback data video

API

Deskripsi

registerVideoFrameWithObserver

Mendaftarkan callback data video.

unregisterVideoSampleWithObserver

Membatalkan pendaftaran callback data video.

registerLocalVideoTextureObserver

Mendaftarkan callback tekstur video.

unregisterLocalVideoTextureObserver

Membatalkan pendaftaran callback tekstur video.

snapshotVideo

Mengambil snapshot dari feed kamera.

registerVideoSampleObserver

Mendaftarkan callback untuk mengekspor data video.

unRegisterVideoSampleObserver

Membatalkan pendaftaran callback untuk mengekspor data video.

Konfigurasikan callback data audio

API

Deskripsi

enableAudioFrameObserver

Mengonfigurasi pengaturan callback audio.

registerAudioFrameObserver

Mendaftarkan callback audio.

Input Video Kustom

API

Deskripsi

setExternalVideoSource

Menentukan apakah akan mengaktifkan sumber video eksternal.

pushExternalVideoFrame

Memasukkan data video.

Antarmuka Berbagi Layar Desktop

API

Deskripsi

startScreenShare

Memulai ingest stream berbagi layar.

startScreenShare

Memulai ingest stream berbagi layar.

Catatan

Metode ini akan dihentikan.

stopScreenShare

Menghentikan ingest stream untuk berbagi layar.

setAudioShareAppVolume

Menetapkan volume stream audio bersama.

isScreenSharePublished

Memeriksa apakah stream berbagi layar sedang diterbitkan.

setScreenShareEncoderConfiguration

Mengonfigurasi parameter pengkodean berbagi layar.

Antarmuka Bypass Streaming Langsung

API

Deskripsi

startPublishLiveStreamWithURL

Memulai streaming langsung yang direlay.

updatePublishLiveStreamWithURL

Memperbarui parameter untuk streaming langsung yang direlay.

stopPublishLiveStreamWithURL

Menghentikan streaming langsung yang direlay.

GetPublishLiveStreamStateWithURL

Memeriksa status streaming langsung yang direlay.

Antarmuka Probe Kualitas Jaringan

API

Deskripsi

startLastmileDetect

Memulai pengujian kualitas jaringan.

stopLastmileDetect

Menghentikan pengujian kualitas jaringan.

SEI

API

Deskripsi

sendMediaExtensionMsg

Mengirim pesan SEI.

sendMediaExtensionMsgEx

Mengirim pesan SEI (extended).

API Lainnya

API

Deskripsi

setParameter

Menetapkan parameter kustom.

getParameter

Memeriksa parameter kustom.

setLogDirPath

Menetapkan jalur untuk menyimpan file log SDK.

setLogLevel

Menetapkan tingkat log.

setAudioSessionOperationRestriction

Menentukan apakah SDK memiliki izin untuk mengontrol AVAudioSession.

setDeviceOrientationMode

Menetapkan orientasi perangkat.

getNetworkTime

Mendapatkan timestamp jaringan.

sendDataChannelMessage

Mengirim pesan saluran data.

Metode AliveEnv

API

Deskripsi

setGlobalEnvironment

Menetapkan lingkungan global.

Callbacks

AliRtcEngineDelegate

API

Deskripsi

onConnectionStatusChange

Callback yang dipanggil ketika status koneksi jaringan berubah. Perhatikan callback ini.

onLocalDeviceException

Callback yang dipanggil ketika terjadi pengecualian perangkat lokal. Perhatikan callback ini.

onAuthInfoWillExpire

Callback yang dipanggil ketika autentikasi pengguna akan segera kedaluwarsa. Autentikasi kedaluwarsa 30 detik setelah Anda menerima callback ini. Perhatikan callback ini.

onAuthInfoExpired

Ketika Anda memanggil API yang memerlukan autentikasi, server mengembalikan pesan yang menunjukkan bahwa autentikasi telah kedaluwarsa.

onJoinChannelResult

Callback yang dipanggil untuk mengembalikan hasil bergabung ke channel.

onLeaveChannelResult

Callback yang dipanggil untuk mengembalikan hasil keluar dari channel.

onRemoteUserOffLineNotify

Notifikasi offline untuk pengguna remote.

onRemoteUserOnLineNotify

Notifikasi bahwa pengguna remote sedang online.

onRemoteTrackAvailableNotify

Notifikasi untuk ingest stream remote.

onBye

Pesan yang dikirim ketika Anda diputuskan oleh server atau channel berakhir setelah pertemuan selesai.

onAudioPublishStateChanged

Notifikasi status ingest stream audio.

onAudioSubscribeStateChanged

Notifikasi status pulling stream audio.

onUserAudioMuted

Notifikasi untuk pembisuan pengguna remote.

onUserAudioInterruptedBegin

Notifikasi dimulainya gangguan perangkat audio.

onUserAudioInterruptedEnded

Callback yang dipanggil ketika gangguan perangkat audio berakhir.

onVideoPublishStateChanged

Callback yang dipanggil ketika status ingest stream untuk track video berubah.

onVideoSubscribeStateChanged

Callback yang dipanggil ketika status langganan ke track video berubah.

onUserVideoMuted

Callback yang dipanggil ketika pengguna remote mengirim frame hitam untuk track video.

onUserVideoEnabled

Pengguna remote menghentikan pengiriman stream kamera dan mengirim notifikasi.

onUserWillResignActive

Aplikasi pengguna remote berpindah ke latar belakang.

onUserWillBecomeActive

Aplikasi pengguna remote kembali ke latar depan.

onAudioEffectFinished

Callback yang dipanggil ketika pemutaran lokal efek suara berakhir.

onAudioVolumeCallback

Volume audio yang berlangganan, status suara, dan UID.

onActiveSpeaker

Callback yang dipanggil ketika pengguna aktif terdeteksi berbicara.

onPublishLiveStreamStateChanged

Callback yang dipanggil ketika status streaming langsung yang direlay berubah.

onPublishTaskStateChanged

Callback yang dipanggil ketika status tugas streaming langsung yang direlay berubah.

onNetworkQualityChanged

Callback yang dipanggil ketika kualitas jaringan berubah.

onLastmileDetectResultWithQuality

Callback untuk hasil probing kualitas jaringan.

onLastmileDetectResultWithBandWidth

Callback yang dipanggil untuk mengembalikan hasil probing kualitas jaringan.

onOccurError

Callback yang dipanggil ketika terjadi kesalahan di engine. Gunakan callback ini untuk memberi tahu aplikasi Anda.

onFirstAudioPacketSentWithTimecost

Callback yang dipanggil ketika paket audio pertama dikirim.

onFirstVideoFrameReceivedWithUid

Callback yang dipanggil ketika frame video pertama diterima.

onFirstVideoPacketSentWithVideoTrack

Callback yang dipanggil ketika paket video pertama dikirim.

onFirstAudioPacketReceivedWithUid

Callback yang dipanggil ketika paket audio pertama diterima.

onFirstRemoteAudioDecodedWithUid

Callback yang dipanggil ketika frame audio remote pertama didekodekan.

onFirstRemoteVideoFrameDrawn

Callback yang dipanggil ketika frame video pertama dari pengguna remote dirender.

onFirstLocalVideoFrameDrawn

Callback yang dipanggil ketika frame video lokal pertama dirender selama pratinjau.

onTestAudioVolumeCallback

Callback volume untuk pengujian pengambilan audio sebelum panggilan.

onAudioAccompanyStateChanged

Callback yang dipanggil ketika status pemutaran akompanimen lokal berubah.

onRemoteAudioAccompanyStarted

Callback yang dipanggil ketika pengguna remote mulai memutar akompanimen.

onRemoteAudioAccompanyFinished

Callback yang dipanggil ketika pengguna remote selesai memutar akompanimen.

onRtcStats

Callback statistik real-time, dipicu setiap dua detik.

onRtcLocalVideoStats

Statistik performa video lokal (dipicu setiap 2 detik).

onRtcRemoteVideoStats

Statistik performa video remote (dipicu setiap 2 detik).

onRtcLocalAudioStats

Callback statistik audio lokal, dipicu setiap dua detik.

onRtcRemoteAudioStats

Menyediakan statistik audio remote. Event ini dipicu setiap 2 detik.

onMediaExtensionMsgReceived

Callback yang dipanggil ketika pesan ekstensi media diterima.

onAudioRouteChanged

Callback yang dipanggil ketika rute audio berubah.

onSnapshotComplete

Callback penyelesaian snapshot.

onLocalAudioStateChanged

Callback yang dipanggil ketika status perangkat pengambilan audio lokal berubah.

onLocalVideoStateChanged

Callback yang dipanggil ketika status perangkat pengambilan video lokal berubah.

onRemoteUserSubscribedDataChannel

Callback yang dipanggil ketika Anda dapat mulai mengirim pesan saluran data.

onDataChannelMessage

Callback pesan saluran data.

onScreenSharePublishStateChanged

Callback yang dipanggil ketika status ingest stream berbagi layar berubah.

AliRtcAudioFrameDelegate

API

Deskripsi

onCapturedAudioFrame

Callback untuk data audio mentah yang diambil.

onProcessCapturedAudioFrame

Callback untuk data audio setelah pemrosesan 3A.

onPublishAudioFrame

Callback data ingest stream.

onPlaybackAudioFrame

Callback untuk data pemutaran audio.

onRemoteUserAudioFrame

Callback untuk data stream audio pengguna remote.

AliRtcEngineDestroyDelegate

API

Deskripsi

onDestroyCompletion

Callback yang dipanggil ketika engine dihancurkan. Engine sepenuhnya dilepas hanya setelah callback ini selesai.

AliRtcTextureDelegate

API

Deskripsi

onTextureCreate

Callback pembuatan konteks OpenGL.

onTextureUpdate

Callback pembaruan tekstur OpenGL.

onTextureDestory

Callback penghancuran konteks OpenGL.

AliRtcVideoFrameDelegate

API

Deskripsi

onCaptureVideoSample

Callback untuk frame video yang diambil.

onPreEncodeVideoSample

Callback untuk data video lokal sebelum pengkodean.

onRemoteVideoSample

Callback untuk data video remote.

onGetVideoFormatPreference

Format output data video.

onGetVideoObservedFramePosition

Posisi output data video.

Rincian

sharedInstance

Membuat instans AliRtcEngine menggunakan pola singleton.

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

Kapan Harus Menghubungi

Panggil metode ini sebelum memanggil API SDK ARTC lainnya untuk membuat instans AliRtcEngine.

Batasan

  • Metode ini bersifat sinkron dan harus dipanggil pada thread utama.

  • SDK hanya mendukung satu instans AliRtcEngine per aplikasi.

Callback terkait

Implementasikan callback di AliRtcEngineDelegate sesuai kasus penggunaan Anda saat membuat instans engine. Jika SDK mengalami pengecualian selama operasi, SDK terlebih dahulu mencoba pemulihan internal secara otomatis. Untuk kesalahan yang tidak dapat diselesaikan secara internal, SDK memberi tahu aplikasi Anda melalui callback yang telah ditentukan. Berikut adalah callback utama yang memerlukan penanganan tingkat aplikasi:

Akar penyebab

Callback dan parameter

Solusi

Catatan

Autentikasi gagal

Callback onJoinChannelResult mengembalikan AliRtcErrJoinBadToken.

Periksa apakah token valid ketika kesalahan ini terjadi.

Ketika pengguna secara eksplisit memanggil API dan autentikasi gagal, kesalahan dikembalikan dalam callback API.

Koneksi jaringan gagal

Callback onConnectionStatusChange mengembalikan AliRtcConnectionStatusFailed.

Bergabung kembali ke channel ketika kesalahan ini terjadi.

SDK memiliki kemampuan pemulihan jaringan bawaan. Namun, jika pemutusan koneksi melebihi ambang batas timeout yang telah ditentukan, SDK memicu timeout dan memutuskan koneksi. Dalam hal ini, periksa status jaringan dan pandu pengguna untuk bergabung kembali ke channel.

Pengecualian perangkat lokal

onLocalDeviceException

Periksa izin dan status perangkat keras ketika kesalahan ini terjadi.

ARTC mendukung deteksi dan diagnostik perangkat. Ketika terjadi pengecualian perangkat lokal, ARTC memberi tahu aplikasi Anda melalui callback. Jika SDK tidak dapat menyelesaikan masalah tersebut, aplikasi Anda harus turun tangan untuk memverifikasi kesehatan perangkat.

Dikeluarkan dari channel

onBye

  • AliRtcOnByeUserReplaced: Periksa apakah ID pengguna diduplikasi ketika kesalahan ini terjadi.

  • AliRtcOnByeBeKickedOut: Menunjukkan bahwa pengguna dikeluarkan oleh logika bisnis. Bergabung kembali ke channel.

  • AliRtcOnByeChannelTerminated: Menunjukkan bahwa channel dihentikan. Bergabung kembali ke channel.

ARTC memberikan administrator kemampuan untuk secara aktif menghapus peserta.

Autentikasi akan segera kedaluwarsa

onWillAuthInfoExpire

Ketika pengecualian ini terjadi, aplikasi harus terlebih dahulu mendapatkan kembali informasi autentikasi terbaru dan kemudian memanggil refreshAuthInfo.

Kedaluwarsa autentikasi terjadi dalam dua kasus: ketika pengguna memanggil API atau selama eksekusi program. Oleh karena itu, kesalahan dilaporkan baik dalam callback API maupun melalui callback kesalahan khusus.

Autentikasi kedaluwarsa

onAuthInfoExpired

Bergabung kembali ke channel ketika kesalahan ini terjadi.

Kedaluwarsa autentikasi terjadi dalam dua kasus: ketika pengguna memanggil API atau selama eksekusi program. Oleh karena itu, kesalahan dilaporkan baik dalam callback API maupun melalui callback kesalahan khusus.

Parameter

Nama

Tipe

Deskripsi

delegate

id<AliRtcEngineDelegate>_Nullable

Delegate yang mendengarkan event callback.

extras

NSString *_Nullable

Gunakan untuk menerima parameter rilis skala abu-abu dari pelanggan. Mengonfigurasi fitur SDK khusus menggunakan string JSON. Dapat berupa string kosong.

destroy[1/2]

Menghancurkan instans AliRtcEngine.

+ (void)destroy;

Menghancurkan objek singleton AliRtcEngine. Setelah Anda memanggil metode ini, semua resource yang digunakan secara internal dilepas. Anda tidak dapat menggunakan metode atau callback AliRtcEngine lainnya. Untuk menggunakan AliRtcEngine 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 instans baru.

Metode ini dan destroy[2/2] sama-sama menghancurkan instans engine, tetapi perbedaannya adalah destroy[2/2] memungkinkan Anda meneruskan objek monitor untuk penyelesaian penghancuran.

Catatan
  • Jika Anda berencana membuat kembali instans AliRtcEngine, pastikan metode ini selesai sebelum melakukannya.

  • Setelah memanggil metode ini, atur objek engine ke nil.

Waktu Menghubungi

Panggil metode ini untuk melepas instans setelah komunikasi real-time berakhir (yaitu, ketika Anda tidak lagi memerlukan fungsi AliRtcEngine). Hal ini mengurangi penggunaan resource yang tidak perlu.

Batasan

Untuk menghindari deadlock, jangan panggil metode ini dari dalam callback SDK apa pun.

destroy[2/2]

Menghancurkan instans AliRtcEngine.

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

Menghancurkan objek singleton AliRtcEngine. Setelah Anda memanggil metode ini, semua resource yang digunakan secara internal oleh objek dilepas. Anda tidak dapat menggunakan metode atau callback AliRtcEngine lainnya. Untuk menggunakan AliRtcEngine lagi, Anda harus 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 instans baru.

Catatan

Baik destroy[1/2] maupun metode ini melepas instans AliRtcEngine. Namun, metode ini bersifat asinkron dan menerima observer untuk memantau penyelesaiannya. Anda hanya dapat membuat instans baru dengan aman setelah onDestroyCompletion dipanggil.

Kapan harus memanggil

Kami menyarankan memanggil metode ini untuk melepas instans setelah menyelesaikan komunikasi real-time.

Batasan

Untuk menghindari deadlock, jangan panggil metode ini dari dalam callback SDK apa pun.

Parameter

Nama

Tipe

Deskripsi

delegate

AliRtcEngineDestroyDelegate

Observer yang menerima callback penyelesaian.

setH5CompatibleMode

Menentukan apakah akan mengaktifkan mode kompatibilitas HTML5.

Penting

Anda tidak dapat memodifikasi pengaturan kompatibilitas HTML5 untuk versi saat ini setelah membuat instans AliRtcEngine. Anda harus memanggil metode ini sebelum membuat instans AliRtcEngine.

+ (void)setH5CompatibleMode:(BOOL)comp;

Parameter

Nama

Tipe

Deskripsi

comp

BOOL

Nilai YES mengaktifkan mode kompatibilitas HTML5. Nilai NO menonaktifkan mode kompatibilitas HTML5. Nilai default: NO.

getH5CompatibleMode

Memeriksa apakah mode kompatibilitas HTML5 diaktifkan.

+ (BOOL)getH5CompatibleMode;

Deskripsi Pengembalian

Nilai YES menunjukkan bahwa mode kompatibilitas HTML5 diaktifkan. Nilai NO menunjukkan bahwa mode kompatibilitas HTML5 dinonaktifkan.

getSdkVersion

Mengambil nomor versi SDK.

+ (NSString *_Nonnull)getSdkVersion;

Nilai kembali

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

Catatan

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

setChannelProfile

Menetapkan mode channel.

- (int)setChannelProfile:(AliRtcChannelProfile)profile;

Metode ini menetapkan profil channel. Tersedia dua profil utama:

  • Profil komunikasi: Semua pengguna bertindak sebagai streamer dan dapat menerbitkan serta berlangganan stream.

  • Profil streaming langsung 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 klien. Tetapkan peran pengguna yang mengingest stream di channel sebagai streamer (AliRTCSdkInteractive). Jika pengguna hanya perlu menarik stream dan tidak mengingest stream, tetapkan perannya sebagai viewer (AliRTCSdkLive). Profil ini direkomendasikan untuk skenario RTC.

Catatan
  • Kami merekomendasikan profil streaming langsung interaktif untuk semua skenario RTC. Tetapkan profil ke AliRTCSdkInteractiveLive.

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

Kapan dipanggil

Anda hanya dapat memanggil metode ini sebelum bergabung ke channel. Anda tidak dapat mengubah profil saat berada di channel. Anda dapat mengubahnya setelah meninggalkan channel.

Parameter

Nama

Tipe

Deskripsi

profile

AliRtcChannelProfile

Tipe channel. Untuk skenario RTC, kami merekomendasikan menyetelnya ke AliRtcChannelProfileInteractiveLive, yaitu mode streaming langsung interaktif.

Deskripsi pengembalian

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

setAudioProfile

Menetapkan profil audio.

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

Metode ini mengonfigurasi mode pengkodean audio 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, panggil metode ini untuk mengonfigurasinya.

Kapan Harus Menelepon

Anda hanya dapat memanggil metode ini sebelum bergabung ke channel. Anda tidak dapat mengubahnya setelah bergabung. Anda dapat mengubahnya setelah meninggalkan channel.

Parameter

Nama

Type

Deskripsi

audio_profile

AliRtcAudioProfile

Parameter mode pengambilan atau pengkodean audio. Kami merekomendasikan mode berkualitas tinggi (AliRtcEngineHighQualityMode).

Catatan

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

  • AliRtcEngineLowQualityMode: Mode audio berkualitas rendah. Laju sampel default: 8 kHz. Mono. Bitrate maks: 12 kbps.

  • AliRtcEngineBasicQualityMode: Mode audio berkualitas standar. Laju sampel default: 16 kHz. Mono. Bitrate maks: 24 kbps.

  • AliRtcEngineHighQualityMode: Laju sampel default: 48 kHz. Mono. Bitrate maks: 64 kbps.

  • AliRtcEngineStereoHighQualityMode: Mode berkualitas tinggi stereo. Laju sampel default: 48 kHz. Stereo. Bitrate maks: 80 kbps.

  • AliRtcEngineSuperHighQualityMode: Mode berkualitas sangat tinggi. Laju sampel default: 48 kHz. Mono. Bitrate maks: 96 kbps.

  • AliRtcEngineStereoSuperHighQualityMode: Mode berkualitas sangat tinggi stereo. Laju sampel default: 48 kHz. Stereo. Bitrate maks: 128 kbps.

audio_scene

AliRtcAudioScenario

Parameter mode skenario audio. Opsi meliputi:

  • AliRtcSceneMusicMode (direkomendasikan): Skenario musik. Menggunakan pemrosesan 3A berbasis perangkat lunak. Mengambil dari mikrofon ponsel untuk kualitas audio yang lebih tinggi.

  • AliRtcSceneDefaultMode: Menggunakan pemrosesan 3A berbasis perangkat keras. Mendukung perangkat Bluetooth.

Catatan

Jangan atur ini ke mode chatroom (AliRtcSceneChatroomMode) untuk SDK ARTC v6.21 dan yang lebih baru.

Deskripsi Pengembalian

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

isAudioOnly

Memeriksa apakah mode hanya audio diaktifkan.

- (BOOL)isAudioOnly;

Deskripsi pengembalian

Nilai YES menunjukkan bahwa mode hanya audio diaktifkan. Nilai NO menunjukkan bahwa mode audio-video diaktifkan.

setAudioOnlyMode

Mengaktifkan mode hanya audio atau mode audio-video.

- (int)setAudioOnlyMode:(BOOL)audioOnly;

Parameter

Nama

Jenis

Deskripsi

audioOnly

BOOL

  • Nilai YES mengaktifkan mode hanya audio.

  • NO menunjukkan bahwa audio dan video didukung. Ini adalah nilai default.

Instruksi pengembalian

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

joinChannel[1/3]

Bergabung ke channel (yaitu, bergabung ke rapat).

- (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 bergabung ke channel. ARTC mengorganisasi pengguna ke dalam channel. Pengguna harus bergabung ke channel untuk menerbitkan atau berlangganan stream audio dan video. Metode ini, bersama dengan joinChannel[2/3] dan joinChannel[3/3], dapat digunakan untuk bergabung ke channel. Perbedaannya terletak pada metode autentikasi dan informasi pengguna yang diteruskan:

  • Ini adalah metode bergabung parameter tunggal. Teruskan token yang dihasilkan menggunakan Autentikasi Token. Kami merekomendasikan metode ini untuk skenario RTC.

  • joinChannel[2/3] adalah metode bergabung parameter ganda. Teruskan token yang dihasilkan menggunakan Autentikasi Token, dan juga teruskan informasi pengguna yang digunakan untuk menghasilkan token.

  • joinChannel[3/3] ditujukan untuk skenario interaksi real-time AI. Teruskan token parameter tunggal dan atur properti pengguna capabilityProfile sesuai skenario.

Catatan

Secara default, ketika Anda bergabung ke channel, Anda berlangganan ke stream audio dan video semua pengguna lain di channel tersebut dan mendorong stream audio dan video Anda ke pengguna remote. Jika Anda ingin membatalkan langganan default, 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 memanggil API ini untuk menonaktifkan langganan ke stream audio atau video.

Kapan Harus Menghubungi

Panggil metode ini setelah membuat instans engine.

Batasan

  • Setelah berhasil bergabung ke channel, untuk bergabung ke channel lain di tengah sesi, 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 channel saat ini dan memastikan bahwa 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> sebelum bergabung ke channel lagi.

  • Metode ini hanya mendukung bergabung ke satu channel sekaligus.

  • Aplikasi dengan App ID berbeda tidak dapat berinteroperasi.

  • Tidak perlu memanggil metode ini ketika mencoba ulang setelah kegagalan bergabung.

Callback terkait

Setelah berhasil memanggil metode ini, callback berikut dipicu:

  • Hasil klien lokal bergabung ke channel dilaporkan melalui callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6d2a213d7sl2" id="903005c54be4d">onJoinChannelResult</a>.

  • Setelah Anda berhasil bergabung ke channel, sisi remote memicu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#634626babfq9x" id="4b11b846b1f4t">onRemoteUserOnLineNotify</a>.

Parameter

Parameter

Tipe

Deskripsi

token

String

Informasi autentikasi untuk input parameter tunggal.

channelId

String

ID channel yang akan digabung. Nilainya harus sama dengan ID channel yang digunakan untuk menghasilkan token.

userId

String

ID pengguna yang ingin bergabung ke channel. Nilainya harus sama dengan ID pengguna 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 antarmuka selesai dieksekusi.

Deskripsi Pengembalian

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

joinChannel[2/3]

Bergabung ke channel, yaitu sesi multipartisipan.

- (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 bergabung ke channel. ARTC mengorganisasi pengguna ke dalam channel. Pengguna harus bergabung ke channel untuk menerbitkan atau berlangganan stream audio dan video. Metode ini, bersama dengan joinChannel[1/3] dan joinChannel[3/3], dapat digunakan untuk bergabung ke channel. Perbedaannya terletak pada metode autentikasi dan informasi pengguna yang diteruskan:

  • joinChannel[1/3] adalah metode bergabung parameter tunggal. Teruskan token yang dihasilkan menggunakan Autentikasi Token. Kami merekomendasikan metode ini untuk skenario RTC.

  • Ini adalah metode bergabung parameter ganda. Teruskan token yang dihasilkan menggunakan Autentikasi Token, dan juga teruskan informasi pengguna yang digunakan untuk menghasilkan token.

  • joinChannel[3/3] ditujukan untuk skenario interaksi real-time AI. Teruskan token parameter tunggal dan atur properti pengguna capabilityProfile.

Catatan
  • Secara default, ketika Anda bergabung ke channel, Anda berlangganan ke stream audio dan video semua pengguna lain di channel tersebut dan mendorong stream audio dan video Anda ke pengguna remote. Untuk menonaktifkan langganan default, panggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="fb54669796mxq">setDefaultSubscribeAllRemoteAudioStreams</a> dan <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="abb190b699jg7">setDefaultSubscribeAllRemoteVideoStreams</a> sebelum memanggil antarmuka ini untuk menonaktifkan langganan ke stream audio atau video.

  • Sebelum memanggil metode ini, lihat Autentikasi Token untuk menghasilkan token parameter ganda.

Batasan

  • Untuk beralih channel setelah bergabung ke satu, 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> untuk meninggalkan channel saat ini. Anda hanya dapat bergabung ke channel baru setelah menerima callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="9e6478b2f0hen">onLeaveChannelResult</a>.

  • Metode ini hanya mendukung bergabung ke satu channel sekaligus.

  • Aplikasi dengan App ID berbeda tidak dapat berinteroperasi.

Callback terkait

Setelah berhasil memanggil metode ini, callback berikut dipicu:

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

  • Setelah Anda berhasil bergabung ke channel, pengguna remote memicu 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

Jenis

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 ketika antarmuka selesai dieksekusi.

joinChannel[3/3]

Bergabung ke channel.

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

Metode ini bergabung ke channel. ARTC mengorganisasi pengguna ke dalam channel. Pengguna harus bergabung ke channel untuk menerbitkan atau berlangganan stream audio dan video. Metode ini, bersama dengan joinChannel[1/3] dan joinChannel[2/3], dapat digunakan untuk bergabung ke channel. Perbedaannya terletak pada metode autentikasi dan informasi pengguna yang diteruskan:

  • joinChannel[1/3] adalah metode bergabung parameter tunggal untuk skenario RTC. Teruskan token yang dihasilkan menggunakan Autentikasi Token. Kami merekomendasikan metode ini untuk skenario RTC.

  • joinChannel[2/3] adalah metode bergabung parameter ganda. Teruskan token yang dihasilkan menggunakan Autentikasi Token, dan juga teruskan informasi pengguna yang digunakan untuk menghasilkan token.

  • Metode ini ditujukan untuk skenario interaksi real-time AI. Teruskan token parameter tunggal dan atur properti pengguna capabilityProfile. Saat berkomunikasi dengan agen AI, atur ini ke AliRtcCapabilityProfileAiHuman.

Catatan

Jika tidak ada konfigurasi khusus yang diterapkan, ketika Anda bergabung ke channel, Anda berlangganan ke stream audio dan video semua pengguna lain di channel tersebut secara default, dan Anda mendorong stream audio dan video Anda ke pengguna remote secara default. Untuk menonaktifkan langganan default, panggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="ce6cfa82f9xzc">setDefaultSubscribeAllRemoteAudioStreams</a> dan <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="e65b420fd5kj6">setDefaultSubscribeAllRemoteVideoStreams</a> sebelum memanggil antarmuka ini untuk menonaktifkan langganan ke stream audio atau video.

Batasan

  • Setelah Anda berhasil bergabung ke channel, untuk bergabung ke channel 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="923190466431o">leaveChannel</a> untuk meninggalkan channel saat ini dan memastikan bahwa 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> sebelum Anda dapat bergabung ke channel lain.

  • Metode ini hanya mendukung bergabung ke satu channel sekaligus.

  • Aplikasi dengan App ID berbeda tidak dapat berinteroperasi.

  • Tidak perlu memanggil metode ini ketika mencoba ulang setelah kegagalan bergabung.

Callback terkait

Setelah berhasil memanggil metode ini, callback berikut dipicu:

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

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

Parameter

Nama

Tipe

Deskripsi

token

NSString*

Informasi autentikasi yang diperoleh dari AppServer.

channelParam

AliRtcChannelParam

Parameter untuk bergabung ke channel.

onResultWithUserId

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

Callback ini dipanggil setelah antarmuka ini dieksekusi.

leaveChannel

Meninggalkan channel.

- (int)leaveChannel;

Setelah memanggil metode ini, SDK menghentikan komunikasi real-time dan meninggalkan channel saat ini.

Catatan
  • Metode ini merupakan operasi asinkron. Ketika berhasil dipanggil, metode ini tidak langsung meninggalkan channel. Anda harus menunggu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="e7c0222bacrpa">onLeaveChannelResult</a> sebelum channel benar-benar ditinggalkan.

  • Setelah memanggil leaveChannel, hancurkan engine dan atur referensi engine ke nil.

Kapan Harus Menghubungi

  • Panggil metode ini ketika Anda perlu meninggalkan channel setelah bergabung.

  • Jika Anda telah bergabung ke channel dan perlu bergabung ke channel lain, panggil metode ini terlebih dahulu.

Callback terkait

  • Pengguna lokal: Setelah metode ini dipanggil, callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="ea2e36a41csu0">onLeaveChannelResult</a> dipicu untuk melaporkan hasil meninggalkan channel.

  • Sisi remote: Setelah Anda berhasil memanggil operasi ini, pengguna remote memicu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#34876c27d7zv7" id="a50f534f21mew">onRemoteUserOffLineNotify</a>.

Deskripsi pengembalian

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

isInCall

Memeriksa apakah Anda berada di channel.

- (BOOL)isInCall;

Deskripsi pengembalian

Nilai YES menunjukkan bahwa Anda berada di channel. Nilai NO menunjukkan bahwa Anda tidak berada di channel.

setClientRole

Menentukan peran pengguna.

- (int)setClientRole:(AliRtcClientRole)role;

Metode ini menetapkan peran pengguna sebagai streamer atau viewer.

Dalam mode interaktif, sebelum bergabung ke channel:

  • Tetapkan peran pengguna sebagai streamer: SDK secara otomatis menerbitkan stream audio dan video lokal serta berlangganan ke stream pengguna streamer lainnya.

  • Tetapkan peran pengguna sebagai viewer: SDK tidak menerbitkan stream audio atau video lokal, tetapi berlangganan ke stream pengguna streamer lainnya.

Kapan dipanggil

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel. Anda dapat menetapkan peran sebelum bergabung atau mengganti peran setelah bergabung.

Batasan

Metode ini hanya berlaku dalam mode interaktif, yaitu ketika Anda memanggil metode <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#fc9626a99f5kj" id="cd8138c77fv4r">setChannelProfile</a> dan menetapkan profil channel ke AliRtcInteractivelive.

Kami merekomendasikan menetapkan peran pengguna secara eksplisit sebelum bergabung dalam mode interaktif.

Parameter

Nama

Tipe

Deskripsi

role

AliRtcClientRole

Peran pengguna. Nilai default adalah AliEngineClientRoleLive, yang menunjukkan viewer. Parameter ini hanya berlaku dalam mode non-komunikasi.

Deskripsi Pengembalian

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

getCurrentClientRole

Memeriksa peran pengguna. Metode ini hanya berlaku untuk iOS.

- (AliRtcClientRole)getCurrentClientRole;

Nilai Kembali

Peran pengguna dikembalikan.

refreshAuthInfo

Memperbarui informasi autentikasi.

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

Metode ini memperbarui informasi autentikasi. Token kedaluwarsa setelah periode tertentu, dan SDK akan gagal terhubung ke server setelah kedaluwarsa.

Catatan

Metode ini dan refreshAuthInfoWithToken sama-sama memperbarui informasi autentikasi. Metode ini memperbarui token parameter ganda, sedangkan refreshAuthInfoWithToken memperbarui token parameter tunggal. Untuk pembuatan token, lihat Autentikasi Token.

Kapan harus memanggil

Dalam kasus 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 menunjukkan bahwa informasi autentikasi Anda akan segera kedaluwarsa, kami merekomendasikan agar Anda membuat ulang token di sisi server dan kemudian memanggil metode ini untuk meneruskan 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 untuk menunjukkan bahwa autentikasi telah kedaluwarsa. Pada titik ini, Anda harus membuat ulang token dan kemudian memanggil joinChannel untuk bergabung kembali ke channel.

Parameter

Nama

Tipe

Deskripsi

authInfo

AliRtcAuthInfo *_Nonnull

Informasi autentikasi.

Deskripsi pengembalian

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

refreshAuthInfoWithToken

Memperbarui informasi autentikasi.

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

Metode ini memperbarui token. Token kedaluwarsa setelah periode tertentu, dan SDK akan gagal terhubung ke server setelah kedaluwarsa.

Catatan
  • Baik API ini maupun <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6a4495191bmd" id="eb171f6dc0n9p">refreshAuthInfo</a> digunakan untuk memperbarui informasi autentikasi. API ini memperbarui token untuk bergabung ke channel dengan parameter tunggal, sedangkan refreshAuthInfo memperbarui token untuk bergabung ke channel dengan parameter ganda. Untuk informasi lebih lanjut tentang pembuatan token, lihat Autentikasi Token.

  • Jika token tidak diperbarui tepat waktu, ini memicu <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#b04cd67880ptu" id="3fd3c64767aq8">onAuthInfoExpired</a> untuk memberi tahu bahwa autentikasi telah kedaluwarsa, pada titik mana Anda perlu memanggil joinChannel untuk bergabung kembali ke channel.

Kapan Harus Menghubungi

Kami merekomendasikan membuat ulang token di server Anda dan memanggil metode ini dengan token baru dalam kasus berikut:

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

Parameter

Nama

Tipe

Deskripsi

token

NSString *_Nonnull

Informasi autentikasi untuk input parameter tunggal.

Deskripsi pengembalian

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

publishLocalAudioStream

Menentukan apakah akan menerbitkan track audio.

- (int)publishLocalAudioStream:(BOOL)enable;

Metode ini mengontrol apakah akan menerbitkan audio yang diambil secara lokal. Secara default, SDK menerbitkan audio. Jika Anda tidak ingin menerbitkan audio secara default, panggil publishLocalAudioStream(false) sebelum bergabung ke channel.

Kapan Harus Menelepon

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel. Memanggilnya sebelum bergabung memodifikasi konfigurasi default dan berlaku saat bergabung.

Callback terkait

Ketika status ingest stream audio lokal berubah, klien lokal memicu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#86b2d8735bm71" id="e5ef180ba6e2i">onAudioPublishStateChanged</a> untuk melaporkan status ingest terbaru, dan klien remote memicu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6da9cf330aoer" id="299ef35806ttb">onRemoteTrackAvailableNotify</a> untuk melaporkan perubahan pada stream audio dan video pengguna remote.

Parameter

Nama

Tipe

Deskripsi

enable

boolean

  • Nilai YES menentukan bahwa track audio lokal diterbitkan. Ini adalah nilai default.

  • NO menghentikan ingest stream, dan YES adalah nilai default.

Deskripsi Pengembalian

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

isLocalAudioStreamPublished

Memeriksa apakah track audio diterbitkan.

- (BOOL)isLocalAudioStreamPublished;

Deskripsi Pengembalian

YES menunjukkan bahwa push diizinkan. NO menunjukkan bahwa push tidak diizinkan.

setDefaultSubscribeAllRemoteAudioStreams

Menetapkan perilaku default untuk menerima stream audio.

- (int)setDefaultSubscribeAllRemoteAudioStreams:(BOOL)sub;

Metode ini mengonfigurasi apakah sistem berlangganan ke track audio pengguna remote secara default. Pengaturan ini memengaruhi perilaku langganan untuk pengguna yang bergabung ke channel nanti. Kecuali Anda memiliki persyaratan khusus, atur ini ke true.

Kapan Harus Menghubungi

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

  • Sebelum bergabung:

    • SDK berlangganan ke track audio pengguna remote secara default ketika bergabung ke channel. Untuk mengubah perilaku ini, panggil metode ini sebelum bergabung.

  • Setelah bergabung:

    • Jika Anda ingin 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). Sistem tidak akan berlangganan ke stream audio dari pengguna yang bergabung ke channel nanti.

    • Setelah Anda menghentikan langganan default, jika Anda ingin melanjutkan berlangganan ke stream audio pengguna tertentu, panggil API <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#c8249fb568gms" id="9806dd9a750pf">subscribeRemoteAudioStream</a>. Jika Anda ingin melanjutkan berlangganan untuk beberapa pengguna, panggil 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) hanya melanjutkan stream audio pengguna yang bergabung ke channel setelahnya, dan tidak berlangganan ke stream audio pengguna remote yang telah bergabung saat langganan dihentikan.

Parameter

Nama

Tipe

Deskripsi

sub

BOOL

  • YES menunjukkan penerimaan stream audio pengguna.

  • Nilai NO menunjukkan bahwa stream audio pengguna tidak lagi diterima. Nilai default adalah YES.

Deskripsi Pengembalian

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

subscribeRemoteAudioStream

Berlangganan atau berhenti berlangganan track audio pengguna remote tertentu.

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

Gunakan antarmuka ini untuk menghentikan atau melanjutkan stream audio dari pengguna remote tertentu. Untuk sebagian besar skenario, atur parameter ini ke true.

Catatan

SDK berlangganan secara default ke stream audio dari semua pengguna remote ketika Anda bergabung ke sesi. Untuk memodifikasi perilaku 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 Anda bergabung ke sesi untuk membatalkan konfigurasi default ini.

Parameter

Nama

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna remote.

sub

BOOL

  • YES menunjukkan bahwa Anda menerima stream audio dari pengguna yang ditentukan.

  • Nilai NO menentukan bahwa track audio pengguna yang ditentukan tidak berlangganan.

Deskripsi Pengembalian

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

subscribeAllRemoteAudioStreams

Berlangganan atau berhenti berlangganan track audio semua pengguna remote.

- (int)subscribeAllRemoteAudioStreams:(BOOL)sub;

Metode ini adalah sakelar utama untuk berlangganan ke track audio remote. Kami merekomendasikan menyetelnya ke YES. Menyetelnya ke NO menyebabkan hal berikut:

  • Track audio remote di sesi saat ini tidak lagi berlangganan.

  • Pengguna baru yang bergabung nanti tidak 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 secara individual stream audio pengguna tertentu.

Untuk melanjutkan langganan, panggil metode ini lagi dengan parameter sub diatur ke YES.

Catatan

Secara default, SDK berlangganan ke stream audio dari semua pengguna remote ketika Anda bergabung ke sesi. Untuk memodifikasi perilaku 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 Anda bergabung ke sesi untuk menonaktifkan konfigurasi default ini.

Parameter

Nama

Tipe

Deskripsi

sub

BOOL

  • Nilai YES menentukan bahwa track audio semua pengguna remote berlangganan. Ini adalah nilai default.

  • Nilai NO menentukan bahwa track audio semua pengguna remote tidak berlangganan.

Deskripsi Pengembalian

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

publishLocalVideoStream

Menentukan apakah akan menerbitkan track video.

- (int)publishLocalVideoStream:(BOOL)enable;

Metode ini mengontrol penerbitan video yang diambil secara lokal.

Catatan

Secara default, SDK menerbitkan stream video lokal. Untuk menonaktifkan fitur ini, panggil publishLocalVideoStream(false) sebelum Anda bergabung ke channel.

Kapan Harus Menelepon

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

Jika Anda memanggil metode ini sebelum bergabung ke channel, metode ini memodifikasi konfigurasi default, dan pengaturan tersebut berlaku ketika Anda bergabung ke channel.

Callback terkait

Ketika status pengambilan 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 terbaru pengambilan aliran audio. Sementara itu, 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

Jenis

Deskripsi

enable

boolean

  • YES menunjukkan bahwa video sedang dikirim.

  • NO menonaktifkan pengiriman. Pengaturan default adalah YES.

isLocalVideoStreamPublished

Memeriksa apakah track video diterbitkan.

- (BOOL)isLocalVideoStreamPublished;

Deskripsi pengembalian

Nilai YES menunjukkan bahwa track video diterbitkan. Nilai NO menunjukkan bahwa track video tidak diterbitkan.

setDefaultSubscribeAllRemoteVideoStreams

Anda dapat menetapkan apakah menerima stream video secara default.

- (int)setDefaultSubscribeAllRemoteVideoStreams:(BOOL)sub;

Secara default, SDK berlangganan ke track video pengguna remote. Gunakan metode ini untuk mengubah perilaku tersebut.

Catatan

SDK berlangganan ke track audio dan video pengguna remote secara default ketika bergabung ke channel. Untuk mengubah perilaku ini, panggil metode ini sebelum bergabung ke channel.

Kapan Harus Menghubungi

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

  • Sebelum bergabung:

    • Anda dapat menggunakan metode ini untuk menonaktifkan langganan default.

  • Setelah bergabung:

    • Untuk menonaktifkan langganan bawaan, panggil setDefaultSubscribeAllRemoteVideoStreams(false). Setelah itu, Anda tidak akan lagi secara otomatis berlangganan aliran audio pengguna yang bergabung ke saluran.

    • Setelah menghentikan langganan default, Anda dapat memanggil antarmuka subscribeRemoteVideoStream untuk melanjutkan langganan aliran audio pengguna tertentu. Untuk melanjutkan langganan beberapa pengguna, panggil antarmuka ini satu kali untuk setiap pengguna.

    • Setelah Anda menghentikan langganan default, pemanggilan setDefaultSubscribeAllRemoteVideoStreams(false) hanya akan memulihkan aliran audio untuk pengguna yang bergabung ke saluran setelahnya.

Parameter

Nama

Tipe

Deskripsi

sub

boolean

  • YES menunjukkan stream video pengguna diterima.

  • Nilai NO menentukan bahwa track video pengguna remote tidak berlangganan.

Deskripsi Pengembalian

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

subscribeRemoteVideoStream

Hentikan atau lanjutkan berlangganan ke stream video dari pengguna remote.

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

Anda dapat berlangganan atau berhenti berlangganan stream video pengguna tertentu.

Catatan

Secara default, SDK berlangganan ke stream video dari semua pengguna remote ketika Anda bergabung ke rapat. Untuk menonaktifkan konfigurasi 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 rapat.

Kapan Harus Memanggil

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

Deskripsi

Nama

Tipe

Deskripsi

uid

NSString *

ID pengguna, ditetapkan secara unik oleh AppServer.

track

AliRtcVideoTrack

Jenis stream video.

sub

BOOL

Apakah berlangganan.

subscribeAllRemoteVideoStreams

Berlangganan atau berhenti berlangganan track video semua pengguna remote.

Catatan

Metode ini bertindak sebagai sakelar utama untuk langganan ke stream video remote. Jika diatur ke NO, metode ini menghentikan langganan ke semua stream video remote di sesi saat ini dan mencegah pengguna baru yang bergabung nanti untuk berlangganan—bahkan jika setDefaultSubscribeAllRemoteVideoStreams:YES diatur.

- (int)subscribeAllRemoteVideoStreams:(BOOL)sub;

Metode ini berfungsi sebagai sakelar utama untuk berlangganan ke stream video remote. Menyetel sub ke false menyebabkan:

  • Semua stream video remote di sesi saat ini berhenti berlangganan.

  • Pengguna baru yang bergabung nanti tidak akan berlangganan juga (bahkan jika pengaturan langganan default <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="0464849a17dks">setDefaultSubscribeAllRemoteVideoStreams</a> diaktifkan).

  • 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 aliran audio secara individual untuk pengguna tertentu.

Untuk melanjutkan langganan, panggil metode ini lagi dengan sub diatur ke true.

Catatan

Secara default, SDK berlangganan ke stream video semua pengguna remote ketika Anda bergabung ke 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 Anda bergabung ke rapat untuk menonaktifkan konfigurasi default ini.

Parameter

Nama

Tipe

Deskripsi

sub

BOOL

  • Nilai YES menentukan bahwa track video semua pengguna remote berlangganan. Ini adalah nilai default.

  • NO menunjukkan bahwa tidak ada stream video yang akan diterima. Nilai default adalah YES.

Deskripsi pengembalian

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

subscribeRemoteMediaStream[1/2]

Hentikan atau lanjutkan stream media dari pengguna remote tertentu.

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

Antarmuka ini menggabungkan stream audio dan video remote yang berlangganan.

Related API operations

Tidak seperti subscribeRemoteMediaStream[2/2], antarmuka ini menggunakan dua parameter Boolean—subVideo dan subAudio—untuk mengontrol apakah berlangganan ke stream video dan audio remote, dan parameter videoTrack menentukan stream video mana yang akan ditarik.

Catatan: Dalam API ini, AliRtcVideoTrackNo dari AliRtcVideoTrack tidak valid, dan menyetelnya tidak berpengaruh.

Parameter

Parameter

Tipe

Deskripsi

uid

String

ID pengguna remote.

videoTrack

AliRtcVideoTrack

Jenis stream video.

subVideo

boolean

Menentukan apakah berlangganan ke track video pengguna remote. Nilai valid:

  • true (default): lanjutkan

  • false: Operasi dihentikan.

subAudio

boolean

Menentukan apakah berlangganan ke track audio pengguna remote. Nilai valid:

  • true (default): lanjutkan

  • false: Menghentikan operasi.

Deskripsi respons

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

subscribeRemoteMediaStream[2/2]

Anda dapat menghentikan atau melanjutkan stream media dari pengguna remote tertentu.

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

Antarmuka ini menggabungkan stream audio dan video remote yang berlangganan.

Catatan

Operasi ini menggunakan videoTrack dan audioTrack untuk mengomunikasikan status yang diinginkan ke kit pengembangan perangkat lunak.

API Terkait

Tidak seperti subscribeRemoteMediaStream[1/2], antarmuka ini menggunakan parameter videoTrack dan audioTrack untuk menentukan status langganan yang diinginkan ke SDK dalam satu panggilan. Misalnya:

  • Untuk berlangganan ke stream kamera dan mikrofon, atur videoTrack ke AliRtcVideoTrackCamera dan audioTrack ke AliRtcAudioTrackMic saat Anda memanggil metode tersebut.

  • Jika Anda ingin berhenti berlangganan dari stream kamera tetapi tetap menggunakan mikrofon, atur AliRtcVideoTrackNo dan AliRtcAudioTrackMic ke parameter videoTrack dan audioTrack masing-masing saat Anda memanggil metode tersebut lagi.

  • Jika Anda ingin membatalkan semua track, atur videoTrack dan audioTrack ke AliRtcVideoTrackNo dan AliRtcAudioTrackNo masing-masing saat Anda memanggilnya lagi.

  • Untuk berlangganan ke stream kamera dan berbagi layar, atur videoTrack ke AliRtcVideoTrackBoth. Audio bekerja dengan cara yang sama.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *

ID pengguna remote.

videoTrack

AliRtcVideoTrack

Jenis stream video.

audioTrack

AliRtcAudioTrack

Jenis stream audio.

Deskripsi pengembalian

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

subscribeRemoteDestChannelStream

Berlangganan atau berhenti berlangganan stream media pengguna remote tertentu lintas channel.

- (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 channel remote.

uid

String

ID pengguna remote.

track

AliRtcVideoTrack

Track video yang ingin Anda berlangganan.

sub_audio

boolean

Menentukan apakah berlangganan ke track audio pengguna remote. Nilai valid:

  • true (default): pulihkan.

  • false: Operasi dihentikan.

sub

boolean

Menghentikan atau melanjutkan langganan lintas channel ke stream pengguna tertentu.

Deskripsi Pengembalian

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

subscribeRemoteDestChannelAllStream

Berlangganan ke semua stream pengguna di channel target.

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

Parameter

Nama

Tipe

Deskripsi

channelId

NSString *

Channel target.

videotrack

AliRtcVideoTrack

Jenis stream video.

audioTrack

AliRtcAudioTrack

Jenis stream audio.

subAudio

BOOL

Apakah berlangganan ke stream audio.

sub

BOOL

Apakah berlangganan ke stream video pengguna di channel remote.

Nilai kembali

0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

setRemoteAudioVolume

Anda dapat mengatur volume audio remote.

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

UID harus diatur setelah pengguna bergabung ke channel. Jika tidak, operasi akan gagal.

Parameter

Nama

Tipe

Deskripsi

uid

NSString *

ID pengguna, ditetapkan secara unik oleh AppServer.

volume

NSInteger

Volume pemutaran. Rentang valid: [0..100]. 0 berarti dibisukan. 100 berarti volume asli.

Nilai kembali

Nilai 0 menunjukkan keberhasilan. Nilai non-nol menunjukkan kegagalan.

muteLocalMic

Hentikan atau lanjutkan transmisi data audio lokal.

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

Membisukan mengirimkan frame audio kosong. Pengambilan dan pengkodean audio tetap berjalan.

Kapan harus memanggil

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

Callback terkait

Setelah panggilan berhasil, pengguna remote memicu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3189c59d9fipb" id="1579c3523779c">onUserAudioMuted</a> untuk menunjukkan apakah pengguna dibisukan.

Parameter

Nama

Tipe

Deskripsi

mute

BOOL

  • YES menunjukkan bahwa audio lokal mengirimkan frame kosong.

  • NO menunjukkan bahwa operasi normal dilanjutkan. Nilai default adalah NO.

mode

AliRtcMuteLocalAudioMode

Mode membisukan. Default: membisukan semua.

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

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

  • AliRtcMuteOnlyMicAudioMode: hanya membisukan mikrofon.

Nilai kembali

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

muteRemoteAudioPlaying

Anda dapat menghentikan atau melanjutkan pemutaran audio remote.

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

API ini menghentikan atau melanjutkan pemutaran audio dari pengguna remote tertentu tetapi tidak memengaruhi penarikan atau decoding stream audio remote. Untuk berhenti berlangganan dari stream 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 Menghubungi

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

Parameter

Nama

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna remote.

mute

BOOL

  • Nilai YES menentukan bahwa pemutaran dihentikan.

  • NO menunjukkan bahwa pemutaran tidak dilanjutkan. Nilai default adalah NO.

Deskripsi Pengembalian

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

muteAllRemoteAudioPlaying

Anda dapat menghentikan atau melanjutkan semua pemutaran audio remote.

- (int)muteAllRemoteAudioPlaying:(BOOL)mute;

API ini menghentikan atau melanjutkan pemutaran semua audio remote.

Catatan

Metode ini hanya menghentikan pemutaran. Penarikan dan decoding stream tidak terpengaruh.

Kapan dipanggil

Anda dapat mengonfigurasi pengaturan ini sebelum atau setelah bergabung ke channel.

Parameter

Nama

Tipe

Deskripsi

mute

BOOL

  • Nilai YES menentukan bahwa pemutaran dihentikan.

  • Nilai NO menentukan bahwa pemutaran dilanjutkan. Ini adalah nilai default.

Deskripsi Pengembalian

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

startAudioCapture[1/2]

Memulai pengumpulan audio.

- (void)startAudioCapture;

Metode ini memulai pengambilan audio. Anda dapat memanggil metode ini sebelum bergabung ke channel untuk memulai pengambilan audio lebih awal. Jika Anda tidak memanggil metode ini, SDK secara otomatis mengelola perangkat pengambilan audio. Setelah Anda memanggil stopAudioCapture untuk menghentikan pengambilan audio, Anda dapat memanggil metode ini lagi untuk memulainya kembali.

Kapan Harus Menghubungi

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

Metode terkait

API startAudioCapture[2/2] mengontrol apakah perangkat pengambilan audio tetap aktif setelah Anda meninggalkan rapat, berdasarkan parameter yang ditentukan.

Callback terkait

Setelah Anda memanggil metode ini, SDK memicu callback onLocalAudioStateChanged untuk melaporkan perubahan status pengambilan audio lokal.

Deskripsi pengembalian

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

startAudioCapture[2/2]

Memulai pengumpulan audio.

- (void)startAudioCapture:(BOOL)keepAlive;

Menonaktifkan pengambilan mikrofon setelah dibisukan.

Metode ini memulai pengambilan audio. Anda dapat memanggilnya sebelum bergabung ke channel untuk memulai pengambilan audio lebih awal. Jika Anda tidak memanggil metode ini, SDK secara otomatis mengelola perangkat pengambilan audio.

Kapan harus memanggil

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

Metode terkait

Dibandingkan dengan startAudioCapture[1/2], metode ini memungkinkan Anda mengontrol apakah perangkat pengambilan tetap aktif setelah meninggalkan channel menggunakan parameter keepAlive.

Callback terkait

Setelah memanggil metode ini untuk mengubah status pengambilan audio lokal, Anda dapat memperoleh pembaruan status melalui callback onLocalAudioStateChanged.

Parameter

Parameter

Tipe

Deskripsi

keepAlive

boolean

Status perangkat pengumpulan audio setelah Anda meninggalkan channel. Nilai valid:

  • true: Perangkat pengumpulan audio tetap menyala setelah Anda meninggalkan channel.

  • false (default): Perangkat pengumpulan audio dimatikan setelah Anda meninggalkan channel.

Deskripsi pengembalian

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

stopAudioCapture

Menghentikan pengumpulan audio.

- (void)stopAudioCapture;

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

Callback terkait

Setelah memanggil metode ini untuk memodifikasi status pengambilan audio lokal, Anda dapat mengambil perubahan status melalui callback onLocalAudioStateChanged.

Deskripsi pengembalian

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

enableSpeakerphone

Menetapkan headset atau speaker sebagai perangkat output audio. Metode ini hanya berlaku untuk iOS.

- (int)enableSpeakerphone:(BOOL)enable;

Metode ini menetapkan perangkat pemutaran audio menjadi speaker atau headset setelah Anda bergabung ke channel. Jika Anda tidak memanggil metode ini, SDK menggunakan rute audio default.

SDK mendefinisikan urutan prioritas internal untuk routing audio dan beralih secara otomatis berdasarkan periferal yang terhubung: Wired headset > Bluetooth headset > User setting > Default setting. Oleh karena itu, metode ini tidak berpengaruh ketika periferal terhubung. Untuk informasi lebih lanjut, lihat Pengaturan routing audio.

Kapan Harus Menghubungi

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

Metode terkait

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

Parameter

Nama

Tipe

Deskripsi

enable

BOOL

  • YES menunjukkan mode speaker.

  • NO menunjukkan mode earpiece. Nilai default adalah YES.

Deskripsi Pengembalian

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

isEnableSpeakerphone

Memeriksa apakah perangkat output audio saat ini adalah headset atau speaker. Metode ini hanya berlaku untuk iOS.

- (BOOL)isEnableSpeakerphone;

Deskripsi Pengembalian

Nilai YES menunjukkan bahwa perangkat output audio saat ini adalah speaker. Nilai NO menunjukkan bahwa perangkat output audio saat ini adalah headset.

enableAudioVolumeIndication

Tetapkan interval callback volume dan faktor penghalusan.

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

Metode ini mengaktifkan SDK untuk secara berkala melaporkan informasi volume untuk pengguna lokal yang menerbitkan dan pengguna remote dengan volume instan tertinggi.

Kapan Harus Menghubungi

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

Callback terkait

Setelah Anda berhasil memanggil metode ini, jika ada pengguna yang menerbitkan di channel, SDK memicu callback berikut pada interval yang dikonfigurasi:

  • SDK melaporkan volume untuk pengguna yang berbicara melalui callback onAudioVolumeCallback. Frekuensi callback bergantung pada parameter interval.

  • Untuk deteksi aktivitas suara, ketika pembicara aktif terdeteksi, SDK melaporkan UID mereka melalui callback onActiveSpeaker.

Parameter

Nama

Tipe

Deskripsi

interval

NSInteger

Interval deteksi volume. Satuan: milidetik. Nilai harus lebih besar atau sama dengan 10. Kami merekomendasikan mengatur parameter ini ke nilai antara 300 hingga 500. Jika nilainya kurang dari atau sama dengan 0, indikator untuk menunjukkan volume dan pembicara dinonaktifkan.

smooth

NSInteger

Faktor penghalusan. Nilai valid: 0 hingga 9. Nilai yang lebih besar menunjukkan tingkat penghalusan yang lebih tinggi. Nilai yang lebih kecil menunjukkan tingkat penghalusan yang lebih rendah tetapi performa real-time yang lebih baik. Kami merekomendasikan mengatur nilai ke 3.

reportVad

NSInteger

Sakelar yang digunakan untuk mendeteksi pembicara. Nilai valid:

  • 1: mengaktifkan sakelar. Anda dapat memanggil callback onAudioVolumeCallback untuk memperoleh status setiap pembicara.

  • 0: menonaktifkan sakelar.

Nilai kembali

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

enableEarBack

Anda dapat mengaktifkan pemantauan in-ear.

- (int)enableEarBack:(BOOL)enable;

Metode ini mengaktifkan atau menonaktifkan pemantauan in-ear. Untuk hasil optimal, kami merekomendasikan mengaktifkan pemantauan in-ear ketika menggunakan headphone kabel atau Bluetooth.

Kapan dipanggil

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

Deskripsi Parameter

Nama

Jenis

Deskripsi

enable

BOOL

  • Nilai YES mengaktifkan pemantauan in-ear.

  • Nilai NO menonaktifkan pemantauan in-ear. Ini adalah nilai default.

Deskripsi pengembalian

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

setEarBackVolume

Mengatur volume pemantauan in-ear.

- (int)setEarBackVolume:(NSInteger)volume;

Antarmuka ini mengatur volume pemantauan in-ear. Antarmuka ini baru 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 dipanggil

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

Parameter

Nama

Tipe

Deskripsi

volume

NSInteger

Nilainya harus berada dalam rentang 0 hingga 100. Nilai default adalah 100.

Deskripsi pengembalian

Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan 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 secara otomatis mulai memutar setelah Anda berlangganan ke stream audio.

stopAudioPlayer

Menghentikan pemutaran audio.

- (void)stopAudioPlayer;
Catatan

Panggil metode ini untuk menghentikan pemutaran audio.

setPlayoutVolume

Menetapkan volume pemutaran.

- (int)setPlayoutVolume:(NSInteger)volume;

Parameter

Nama

Tipe

Deskripsi

volume

Volume

Rentang: [0..400]. [0..100] adalah rentang volume asli. [100..400] memperbesar volume.

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan, sedangkan nilai lainnya menunjukkan kegagalan.

setRecordingVolume

Menetapkan volume rekaman.

- (int)setRecordingVolume:(NSInteger)volume;

Parameter

Nama

Tipe

Deskripsi

volume

NSInteger

Rentang: [0..400]. [0..100] adalah rentang volume asli. [100..400] memperbesar volume.

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

playAudioFileTest

Memutar file audio.

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

Anda dapat memanggil metode ini sebelum bergabung ke channel.

Parameter

Parameter

Tipe

Deskripsi

filePath

NSString *_Nonnull

Jalur file audio yang akan diputar.

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

stopAudioFileTest

Menghentikan pemutaran file audio.

- (int)stopAudioFileTest;
Catatan

Anda harus memanggil metode ini sebelum memanggil joinChannel.

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

startAudioCaptureTest

Aktifkan deteksi perangkat pengambilan audio sebelum panggilan.

- (void)startAudioCaptureTest;
Catatan

Anda hanya dapat memanggil metode ini sebelum joinChannel. Setiap upaya memanggilnya setelah itu akan gagal.

stopAudioCaptureTest

Deteksi perangkat pengumpulan audio sebelum mengakhiri panggilan.

- (void)stopAudioCaptureTest;
Catatan

Anda harus memanggil metode ini sebelum memanggil joinChannel. Jika tidak, panggilan metode gagal.

setDefaultAudioRoutetoSpeakerphone

Menetapkan rute audio default ke speaker. Secara default, audio diputar melalui speaker.

- (int)setDefaultAudioRouteToSpeakerphone:(BOOL)defaultToSpeakerphone;

Metode ini mengonfigurasi perangkat rute audio default sebelum Anda bergabung ke channel. Anda dapat mengarahkan audio ke headset atau speaker. SDK menggunakan speaker secara default. Untuk mengubah perilaku ini, panggil metode ini sebelum bergabung ke channel.

SDK mendefinisikan urutan prioritas tetap untuk routing audio dan melakukan alih otomatis berdasarkan status koneksi periferal saat ini. Urutan prioritas adalah sebagai berikut: wired headset > Bluetooth headset > user settings > default settings. Oleh karena itu, jika tidak ada periferal yang terhubung dan Anda belum mengonfigurasi routing audio melalui <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#f7d0d8b64fzkz" id="30798b686b5qk">enableSpeakerphone</a>, SDK menerapkan pengaturan default.

Untuk informasi lebih lanjut tentang routing audio, lihat Pengaturan routing audio.

Perangkat seluler biasanya mendukung dua rute audio: headset dan speaker:

  • Ketika menggunakan headset, suara lebih pelan dan memerlukan pegangan ponsel dekat telinga Anda. Ini memberikan privasi yang lebih baik dan cocok untuk panggilan telepon.

  • Ketika menggunakan speaker, suara lebih keras dan dapat didengar tanpa memegang ponsel ke telinga Anda. Ini memungkinkan operasi hands-free.

Metode terkait

API ini memodifikasi pengaturan routing audio default. API <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#f7d0d8b64fzkz" id="6001aa98ebapw">enableSpeakerphone</a> menetapkan perangkat routing audio saat ini.

Kapan dipanggil

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

Parameter

Nama

Jenis

Deskripsi

defaultToSpeakerphone

BOOL

Apakah akan mengarahkan audio ke speaker. YES untuk speaker. NO untuk headset.

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

setAudioEffectVoiceChangerMode

Menetapkan mode perubahan suara.

- (int)setAudioEffectVoiceChangerMode:(AliRtcAudioEffectVoiceChangerMode)mode;

Parameter

Nama

Tipe

Deskripsi

mode

AliRtcAudioEffectVoiceChangerMode

Mode perubahan suara. Nilai default: AliRtcSdk_AudioEffect_Voice_Changer_OFF.

Deskripsi Pengembalian

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

setAudioEffectPitchValue

Menetapkan pitch audio.

- (int)setAudioEffectPitchValue:(double)value;

Parameter

Nama

Jenis

Deskripsi

value

double

Nilai pitch. Nilai valid: 0,5 hingga 2,0. Nilai default adalah 1,0, yang menunjukkan bahwa pitch tetap sama.

Deskripsi Pengembalian

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

setAudioEffectReverbMode

Menetapkan mode gema.

- (int)setAudioEffectReverbMode:(AliRtcAudioEffectReverbMode)mode;

Parameter

Nama

Type

Deskripsi

mode

AliRtcAudioEffectReverbMode

Mode gema. Nilai default: AliRtcAudioEffectReverb_Off.

Deskripsi respons

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

setAudioEffectReverbParamType

Anda dapat menetapkan jenis efek gema dan parameter spesifik.

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

Parameter

Nama

Jenis

Deskripsi

type

AliRtcAudioEffectReverbParamType

Pola gema untuk efek suara.

value

float

Menentukan nilai parameter.

Deskripsi pengembalian

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

setAudioEffectBeautifyMode

Menetapkan mode efek pemercantik suara yang telah ditentukan sebelumnya.

- (int)setAudioEffectBeautifyMode:(AliRtcAudioEffectBeautifyMode)mode;

Metode ini mengonfigurasi mode pemercantik suara bawaan di SDK. Cocok untuk skenario seperti streaming langsung suara, karaoke, dan aplikasi sosial berbasis suara di mana peningkatan kualitas suara diperlukan. Memilih mode pemercantik yang berbeda mengubah karakteristik vokal yang dirasakan—misalnya, meningkatkan kekayaan atau kejernihan—untuk meningkatkan pengalaman mendengar bagi pengguna remote.

Kapan Harus Menghubungi

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

Parameter

Parameter

Tipe

Deskripsi

mode

AliRtcAudioEffectBeatifyMode

Mode efek pemercantik suara. Lihat definisi enumerasi untuk detailnya.

Deskripsi Pengembalian

  • 0: Berhasil.

  • Bukan nol: Gagal.

setAudioEffectEqualizationParam

Menetapkan parameter equalizer audio (EQ) untuk menyesuaikan gain pada pita frekuensi yang ditentukan.

- (int)setAudioEffectEqualizationParam:(AliRtcAudioEffectEqualizationBandFrequency)bandIndex gain:(float)gain;

Metode ini menerapkan penyesuaian equalizer grafis ke sinyal suara atau audio yang diambil secara lokal. Anda dapat menyesuaikan gain dalam desibel (dB) untuk sepuluh pita frekuensi tetap guna menyesuaikan kualitas nada. Metode ini cocok untuk mengoptimalkan kejernihan ucapan, meningkatkan kualitas suara, dan mengurangi noise.

Equalizer mendukung penyesuaian spektrum penuh dari 31 Hz hingga 16 kHz di sepuluh pita frekuensi standar. Gain untuk setiap pita dapat disesuaikan secara independen dari -15 dB hingga 15 dB. Gain default adalah 0 dB, yang menunjukkan tidak ada penguatan atau redaman.

Batasan

  • Anda harus mengaktifkan pemercantik suara dengan memanggil setAudioEffectBeautifyMode sebelum menggunakan equalizer.

Parameter

Parameter

Tipe

Deskripsi

bandIndex

AliRtcAudioEffectEqualizationBandFrequency

Indeks pita frekuensi, sesuai dengan frekuensi tengah (31 Hz hingga 16 kHz).

gain

float

Nilai gain dalam dB. Rentang valid: [-15, 15].

Deskripsi pengembalian

0: Berhasil.

Bukan nol: Gagal.

addExternalAudioStream

Menambahkan track audio eksternal.

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

Untuk menambahkan stream audio eksternal, ikuti langkah-langkah berikut:

  1. Panggil antarmuka <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#d71bbfd2f242b" id="c310321e9eu35">addExternalAudioStream</a> untuk menambahkan stream audio eksternal dan mengambil ID-nya.

  2. Panggil pushExternalAudioStream untuk memasukkan data audio ke dalam stream.

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

Untuk menerbitkan audio yang diambil secara kustom di channel, lihat Pengambilan audio kustom.

Parameter

Nama

Jenis

Deskripsi

config

AliRtcExternalAudioStreamConfig

Konfigurasi track audio eksternal.

Deskripsi pengembalian

Nilai lebih besar dari 0 menunjukkan bahwa panggilan berhasil dan merupakan ID track audio eksternal. Nilai kurang dari atau sama dengan 0 menunjukkan bahwa panggilan gagal.

pushExternalAudioStream

Mengimpor data audio eksternal.

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

Metode ini memasukkan data audio ke stream yang ditentukan. 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="0a353f7272shu">addExternalAudioStream</a> untuk menambahkan stream audio eksternal dan mendapatkan ID stream audio eksternal.

  2. Panggil metode ini untuk memasukkan data audio ke dalam stream yang dibuat.

  3. Ketika panggilan berakhir, Anda perlu memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#282d70095duaw" id="a9ebc8d599dz4">removeExternalAudioStream</a> untuk menghapus stream audio eksternal.

Untuk menerbitkan audio yang diambil secara kustom di channel, lihat Pengambilan audio kustom.

Parameter

Nama

Tipe

Deskripsi

streamId

int

ID track audio eksternal.

audioFrame

AliRtcAudioFrame

Data audio.

Deskripsi Pengembalian

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

setExternalAudioStream:publishVolume

Atur volume untuk ingest stream audio eksternal.

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

Parameter

Nama

Tipe

Deskripsi

streamId

int

ID track audio eksternal.

publishVolume

int

Volume audio eksternal untuk ingest stream.

Deskripsi Pengembalian

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

getExternalAudioStreamPublishVolume

Memeriksa volume audio eksternal untuk ingest stream.

- (int)getExternalAudioStreamPublishVolume:(int)streamId;

Parameter

Nama

Tipe

Deskripsi

streamId

int

ID track audio eksternal.

Deskripsi Pengembalian

Nilai volume yang valid berkisar dari 0 hingga 100. Nilai kurang dari 0 menunjukkan bahwa panggilan gagal.

setExternalAudioStream:playoutVolume

Menetapkan volume pemutaran audio eksternal.

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

Parameter

Nama

Tipe

Deskripsi

streamId

int

ID track audio eksternal.

playoutVolume

int

Volume pemutaran.

Deskripsi pengembalian

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

getExternalAudioStreamPlayoutVolume

Memeriksa volume pemutaran audio eksternal.

- (int)getExternalAudioStreamPlayoutVolume:(int)streamId;

Parameter

Nama

Tipe

Deskripsi

streamId

int

ID track audio eksternal.

Deskripsi respons

Nilai volume yang valid berkisar dari 0 hingga 100. Nilai kurang dari 0 menunjukkan bahwa panggilan gagal.

removeExternalAudioStream

Hapus stream eksternal (audio).

- (int)removeExternalAudioStream:(int)streamId;

Metode ini menghapus stream audio eksternal untuk streamId yang ditentukan dan merupakan pasangan dari metode addExternalAudioStream.

Kapan Harus Menghubungi

Untuk menggunakan fitur input audio kustom, panggil metode addExternalAudioStream untuk menambahkan stream audio dan mendapatkan ID stream audio eksternal, lalu panggil antarmuka pushExternalAudioStream untuk mendorong data audio Anda ke SDK. Ketika Anda ingin menghentikan input audio kustom, panggil metode yang sesuai untuk menghapus stream audio eksternal dan melepaskan resource.

Parameter

Nama

Tipe

Deskripsi

streamId

int

ID stream audio eksternal.

Nilai kembali

0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

getAudioFileInfo

Mengambil informasi file audio.

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

Antarmuka asinkron. Anda dapat mengambil informasi file audio menggunakan {@link onAudioFileInfo:errorCode:}.

Parameter

Nama

Tipe

Deskripsi

filePath

NSString *

Jalur file.

startAudioAccompanyWithFile

Anda dapat memulai pencampuran akompanimen.

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

Metode ini bersifat asinkron. Untuk memantau status pemutar, gunakan callback onAudioAccompanyStateChanged.

Parameter

Nama

Tipe

Deskripsi

filePath

NSString *

Jalur file.

config

AliRtcAudioAccompanyConfig *

Konfigurasi akompanimen.

Nilai kembali

0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

stopAudioAccompany

Menghentikan pencampuran akompanimen audio.

- (int)stopAudioAccompany;

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

setAudioAccompanyVolume

Atur volume akompanimen.

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

Anda dapat mengatur volume pemutaran lokal dan volume ingest stream untuk akompanimen.

Parameter

Nama

Type

Deskripsi

volume

NSInteger

Volume akompanimen. Rentang valid: [0, 100].

Nilai kembali

0 berhasil; sisanya gagal.

setAudioAccompanyPublishVolume

Menetapkan volume penerbitan akompanimen audio.

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

Metode ini menetapkan volume stream yang diterbitkan.

Parameter

Nama

Tipe

Deskripsi

volume

NSInteger

Volume akompanimen. Rentang valid: [0, 100].

Nilai kembali

Mengembalikan 0 pada keberhasilan. Kode kesalahan dikembalikan pada kegagalan.

getAudioAccompanyPublishVolume

Anda dapat mengambil tingkat volume untuk menerbitkan akompanimen audio.

- (int)getAudioAccompanyPublishVolume;

Nilai kembali

Nilai dalam rentang [0, 100] menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

setAudioAccompanyPlayoutVolume

Menetapkan volume pemutaran lokal untuk akompanimen.

- (int)setAudioAccompanyPlayoutVolume:(NSInteger)volume;

Parameter

Nama

Tipe

Deskripsi

volume

NSInteger

Volume akompanimen. Rentang valid: [0, 100].

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

getAudioAccompanyPlayoutVolume

Anda dapat mengambil volume pemutaran lokal akompanimen.

- (int)getAudioAccompanyPlayoutVolume;

Nilai kembali

Nilai dalam rentang 0 hingga 100 menunjukkan keberhasilan, sedangkan nilai lainnya menunjukkan kegagalan.

pauseAudioAccompany

Jeda pencampuran akompanimen audio.

- (int)pauseAudioAccompany;

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

resumeAudioAccompany

Lanjutkan pencampuran akompanimen audio.

- (int)resumeAudioAccompany;

Nilai kembali

0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

getAudioAccompanyDuration

Mengambil durasi file akompanimen dalam milidetik.

- (int)getAudioAccompanyDuration;

Nilai kembali

Mengembalikan durasi file akompanimen dalam milidetik jika berhasil (>= 0). Mengembalikan nilai kurang dari 0 jika operasi gagal.

getAudioAccompanyCurrentPosition

Ambil kemajuan pemutaran file akompanimen dalam milidetik.

- (int)getAudioAccompanyCurrentPosition;

Nilai kembali

Nilai 0 atau lebih besar menunjukkan posisi pemutaran saat ini dalam milidetik. Nilai negatif menunjukkan kegagalan.

setAudioAccompanyPosition

Menetapkan posisi pemutaran file akompanimen.

- (int)setAudioAccompanyPosition:(int)pos;

Parameter

Nama

Tipe

Deskripsi

pos

int

Posisi bilah kemajuan dalam milidetik.

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

preloadAudioEffectWithSoundId

Memuat awal efek suara.

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

Parameter

Nama

Tipe

Deskripsi

soundId

NSInteger

ID yang ditetapkan oleh pengguna untuk efek suara.

filePath

NSString *_Nonnull

Jalur efek suara.

Deskripsi Pengembalian

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

unloadAudioEffectWithSoundId

Menghapus efek suara yang telah dimuat sebelumnya.

- (int)unloadAudioEffectWithSoundId:(NSInteger)soundId;

Parameter

Nama

Tipe

Deskripsi

soundId

NSInteger

ID yang ditetapkan oleh pengguna untuk efek suara.

Deskripsi Pengembalian

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

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 ditetapkan oleh pengguna untuk efek suara.

filePath

NSString *_Nonnull

Jalur efek suara.

cycles

NSInteger

Jumlah loop pemutaran. Anda dapat mengatur parameter ini ke -1 atau bilangan bulat positif.

publish

BOOL

Publikasikan?

Deskripsi pengembalian

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

stopAudioEffectWithSoundId

Menghentikan pemutaran efek suara.

- (int)stopAudioEffectWithSoundId:(NSInteger)soundId;

Parameter

Nama

Tipe

Deskripsi

soundId

NSInteger

ID yang ditetapkan oleh pengguna untuk efek suara.

Deskripsi pengembalian

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

stopAllAudioEffects

Menghentikan pemutaran semua efek suara.

- (int)stopAllAudioEffects;

Deskripsi pengembalian

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

pauseAudioEffectWithSoundId

Jeda pemutaran efek suara.

- (int)pauseAudioEffectWithSoundId:(NSInteger)soundId;

Parameter

Nama

Tipe

Deskripsi

soundId

NSInteger

ID yang ditetapkan oleh pengguna untuk efek suara.

Deskripsi Pengembalian

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

pauseAllAudioEffects

Jeda pemutaran semua efek suara.

- (int)pauseAllAudioEffects;

Deskripsi respons

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

resumeAudioEffectWithSoundId

Melanjutkan pemutaran efek suara.

- (int)resumeAudioEffectWithSoundId:(NSInteger)soundId;

Parameter

Nama

Type

Deskripsi

soundId

NSInteger

ID yang ditetapkan oleh pengguna untuk efek suara.

Deskripsi pengembalian

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

resumeAllAudioEffects

Melanjutkan pemutaran semua efek suara.

- (int)resumeAllAudioEffects;

Deskripsi Pengembalian

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

setAudioEffectPublishVolumeWithSoundId

Menetapkan volume efek suara untuk ingest stream.

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

Parameter

Nama

Tipe

Deskripsi

soundId

NSInteger

ID yang ditetapkan oleh pengguna untuk efek suara.

volume

NSInteger

Volume audio campuran. Nilai valid: 0 hingga 100. Nilai default: 50.

Deskripsi pengembalian

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

getAudioEffectPublishVolumeWithSoundId

Memeriksa volume efek suara untuk ingest stream.

- (int)getAudioEffectPublishVolumeWithSoundId:(NSInteger)soundId;

Parameter

Nama

Jenis

Deskripsi

soundId

NSInteger

ID yang ditetapkan oleh pengguna untuk efek suara.

Deskripsi Pengembalian

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

setAllAudioEffectsPublishVolume

Menetapkan volume untuk mencampur semua efek suara ke dalam ingest stream.

- (int)setAllAudioEffectsPublishVolume:(NSInteger)volume;

Parameter

Nama

Tipe

Deskripsi

volume

NSInteger

Volume audio campuran. Nilai valid: 0 hingga 100. Nilai default: 50.

Deskripsi respons

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

setAudioEffectPlayoutVolumeWithSoundId

Menetapkan volume efek suara untuk pemutaran lokal.

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

Parameter

Nama

Tipe

Deskripsi

soundId

NSInteger

ID yang ditetapkan oleh pengguna untuk efek suara.

volume

NSInteger

Volume audio campuran. Nilai valid: 0 hingga 100. Nilai default: 50.

Deskripsi pengembalian

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

getAudioEffectPlayoutVolumeWithSoundId

Memeriksa volume efek suara untuk pemutaran lokal.

- (int)getAudioEffectPlayoutVolumeWithSoundId:(NSInteger)soundId;

Parameter

Nama

Tipe

Description

soundId

NSInteger

ID yang ditetapkan oleh pengguna untuk efek suara.

Deskripsi Pengembalian

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

setAllAudioEffectsPlayoutVolume

Anda dapat mengatur volume pemutaran lokal semua efek suara.

- (int)setAllAudioEffectsPlayoutVolume:(NSInteger)volume;

Parameter

Nama

Tipe

Deskripsi

volume

NSInteger

Volume audio campuran. Nilai valid: 0 hingga 100. Nilai default: 50.

Deskripsi Pengembalian

Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan 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

Jenis perekaman.

recordFormat

AliRtcRecordFormat

Format perekaman.

filePath

NSString *

Nama file dan jalur untuk perekaman.

audioConfig

AliRtcRecordAudioConfig *

Konfigurasi audio.

videoConfig

AliRtcRecordVideoConfig *

Konfigurasi video.

Deskripsi pengembalian

Nilai TRUE menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

Catatan
  • Saat merekam stream video, panggil metode ini hanya setelah ingest stream berhasil (onVideoPublishStateChanged). Metode ini merekam stream video yang dikodekan secara lokal dan menyimpannya ke perangkat.

  • Saat merekam stream audio, metode ini merekam campuran audio lokal dan remote.

stopRecord

Menghentikan perekaman file media.

- (void)stopRecord 

Parameter

Tidak ada.

setLocalViewConfig

Menetapkan tampilan rendering dan parameter gambar untuk pratinjau lokal.

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

Metode ini menetapkan tampilan pratinjau lokal. Ketika Anda memanggilnya, stream video lokal diikat ke tampilan tampilan dan mode rendering, mode cermin, serta sudut rotasi untuk tampilan pengguna lokal dikonfigurasi. Ini hanya memengaruhi pratinjau lokal—bukan ingest stream. Untuk mengonfigurasi tampilan pengguna remote, panggil setRemoteViewConfig.

Catatan
  • Jika parameter view dalam AliVideoCanvas: rendering canvas kosong, rendering berhenti.

  • Untuk mengatur ulang parameter renderMode dari AliVideoCanvas: rendering canvas selama pemutaran, ubah hanya parameter renderMode dan pertahankan semua parameter lainnya tidak berubah.

  • Untuk mengatur ulang parameter mirrorMode dari AliVideoCanvas: rendering canvas selama pemutaran, ubah hanya parameter mirrorMode dan pertahankan semua parameter lainnya tidak berubah.

  • Kami merekomendasikan memanggil startPreview() secara eksplisit untuk memulai pratinjau lokal.

Kapan Menghubungi

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

Deskripsi Parameter

Nama

Tipe

Deskripsi

viewConfig

AliVideoCanvas

*_Nullable

Konfigurasi rendering, termasuk tampilan rendering dan mode rendering.

track

AliRtcVideoTrack

Jenis track video.

Deskripsi Pengembalian

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

setCameraCapturerConfiguration

Mengatur preferensi pengumpulan Kamera.

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

Metode ini mengonfigurasi preferensi pengambilan kamera, seperti arah kamera dan laju frame.

Kapan harus memanggil

Anda harus mengatur ini sebelum mengaktifkan kamera. Misalnya, sebelum:

  • startPreview

  • joinChannel (Bergabung ke Channel)

Parameter

Nama

Tipe

Deskripsi

config

AliRtcCameraCapturerConfiguration

* _Nonnull

Preferensi pengumpulan kamera. Nilai default properti terkait:

  • preference: 0

  • cameraDirection: 0

  • fps: 0

  • cameraCaptureProfile: 0

  • disableVideoCaptureReverse: -1

  • enableCameraMacroFocus: -1

  • captureObserverOriginal: -1

  • nativeBufferObserver: -1

  • captureCallbackCvpixelbufferToRaw: -1

"-1" menunjukkan menggunakan pengaturan default SDK.

Deskripsi pengembalian

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

enableLocalVideo

Menonaktifkan atau mengaktifkan kembali pengumpulan video lokal.

- (int)enableLocalVideo:(BOOL)enable;

Metode ini mengaktifkan atau menonaktifkan pengambilan video lokal. Ketika dinonaktifkan, pratinjau lokal dan ingest stream tidak menampilkan video. Namun, menerima video remote tetap tidak terpengaruh. Jika Anda menonaktifkan pengambilan kamera lokal, pratinjau lokal dan ingest stream membeku pada frame terakhir.

Catatan

Pengambilan video lokal diaktifkan secara default di SDK.

Kapan Memanggil

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

Callback terkait

  • Setelah Anda berhasil memanggil metode ini, callback onUserVideoEnabled memberi tahu pengguna remote.

Parameter

Nama

Tipe

Deskripsi

enable

BOOL

Nilai YES mengaktifkan kembali pengumpulan video lokal. Nilai NO menonaktifkan pengumpulan video lokal. Nilai default: YES.

Deskripsi Pengembalian

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

muteLocalCamera

Hentikan atau lanjutkan transmisi data video lokal.

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

Panggil metode ini untuk mengirim frame hitam saat menerbitkan. Pratinjau lokal tetap menampilkan secara normal. Modul pengambilan, pengkodean, dan transmisi tetap aktif, hanya mengirim frame hitam.

Catatan

Metode ini hanya mengontrol apakah frame hitam dikirim pada track video tertentu. Metode ini tidak menghentikan pengambilan video atau transmisi data. Untuk menonaktifkan pengambilan, gunakan metode enableLocalVideo. Untuk menghentikan transmisi data video, gunakan metode publishLocalVideoStream.

Deskripsi Parameter

Nama

Tipe

Deskripsi

mute

BOOL

YES mengirim frame hitam untuk data video. NO, nilai default, melanjutkan operasi normal.

track

AliRtcVideoTrack

Jenis track video yang ingin Anda ubah status penerbitannya.

Deskripsi pengembalian

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

setRemoteViewConfig

Menetapkan tampilan rendering dan parameter gambar untuk track video pengguna remote.

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

Metode ini menempelkan tampilan tampilan untuk stream video pengguna remote tertentu dan menetapkan properti untuk tampilan lokalnya, seperti mode rendering, mode cermin, dan sudut rotasi. Ini hanya memengaruhi gambar video yang dilihat oleh pengguna lokal. Untuk menetapkan tampilan pratinjau lokal, Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#fea843803078q" id="b6f22fe87a2es">setLocalViewConfig</a>.

Kapan Harus Menghubungi

Kami merekomendasikan memanggil metode ini ketika Anda menerima callback onRemoteTrackAvailableNotify, yang dipicu ketika video pengguna remote tersedia.

Parameter

Nama

Tipe

Deskripsi

canvas

AliVideoCanvas

*_Nullable

Konfigurasi rendering, termasuk tampilan rendering dan mode rendering.

uid

NSString *_Nonnull

ID pengguna.

track

AliRtcVideoTrack

Jenis track video yang akan dikonfigurasi.

Deskripsi respons

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

isCameraOn

Memeriksa apakah kamera menyala.

- (BOOL)isCameraOn;

Deskripsi respons

Nilai YES menunjukkan bahwa kamera menyala. Nilai NO menunjukkan bahwa kamera dimatikan.

setVideoEncoderConfiguration

Menetapkan properti pengkodean video.

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

Metode ini menetapkan parameter pengkodean stream video, seperti resolusi, laju frame, bitrate, dan orientasi. Kami merekomendasikan memanggil metode ini untuk semua skenario video.

Catatan

Semua parameter yang dikonfigurasi memiliki rentang valid. Jika Anda menentukan nilai yang tidak valid, SDK secara otomatis menyesuaikannya.

Kapan dipanggil

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel. Untuk menetapkan properti pengkodean stream kamera sekali per sesi, kami merekomendasikan memanggilnya sebelum bergabung.

Batasan

Baik metode ini maupun setVideoMirrorMode mengontrol pencerminan stream video. Kami merekomendasikan hanya menggunakan salah satunya. Menggunakan keduanya dapat menyebabkan efek cermin tumpang tindih, yang mengakibatkan perilaku yang tidak benar.

Parameter

Nama

Tipe

Deskripsi

config

AliRtcVideoEncoderConfiguration

* _Nonnull

Properti pengkodean yang telah ditentukan sebelumnya. Nilai default:

  • dimensions: [640, 480]

  • frameRate: 15

  • bitrate: 0

  • mirrorMode: 0

  • keyFrameInterval: Interval keyframe dalam milidetik. Nilai default: 0, artinya SDK mengontrolnya secara internal.

  • forceStrictKeyFrameInterval: Apakah memaksa encoder mengikuti interval keyframe yang dikonfigurasi secara ketat. Nilai default: false.

  • orientationMode: 0

  • rotation: 0

  • codecType: AliRtcVideoCodecTypeDefault

  • encoderType: AliRtcVideoEncodeCodecTypeDefault

  • seiForceFrontIFrame: -1

  • enableDynamicEncode: -1

  • disableDipenseResolutionChange: -1

  • enableDowngrade: -1

  • enableH264BFrame: -1

  • enableHevcBFrame: -1

  • backgroundHardwareToSoftware: -1

-1 berarti menggunakan default internal SDK.

setVideoDecoderConfiguration

Menetapkan properti decoding video.

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

Metode ini menetapkan parameter decoding video untuk stream kamera.

Kapan Harus Menghubungi

Anda dapat memanggil metode ini sebelum rapat dimulai.

Parameter

Nama

Jenis

Deskripsi

config

AliRtcVideoDecoderConfiguration

* _Nonnull

Properti decoding yang telah ditentukan sebelumnya. Nilai default:

  • codecType: AliRtcVideoCodecTypeDefault

  • enableDecoderBframe: -1

  • backgroundHardwareToSoftware: -1

"-1" menunjukkan menggunakan pengaturan default SDK.

switchCamera

Beralih antara kamera depan dan belakang. Secara default, kamera depan digunakan. Metode ini hanya berlaku untuk iOS.

- (int)switchCamera;

Metode ini mengontrol apakah kamera depan atau belakang digunakan. Anda dapat beralih kamera secara dinamis selama runtime aplikasi berdasarkan perangkat keras yang tersedia tanpa me-restart stream video atau mengonfigurasi ulang sumber video.

Kapan harus memanggil

Anda hanya dapat memanggil metode ini setelah kamera berhasil dihidupkan.

Batasan

Metode ini hanya didukung pada platform iOS dan Android.

Deskripsi pengembalian

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

getCurrentCameraDirection

Memeriksa jenis kamera saat ini. Secara default, kamera depan digunakan. Metode ini hanya berlaku untuk iOS.

- (AliRtcCameraDirection)getCurrentCameraDirection;

Deskripsi pengembalian

Mengembalikan enumerasi arah kamera.

startPreview

Memulai pratinjau lokal. Kamera secara otomatis dihidupkan.

- (int)startPreview;

API ini mengaktifkan pratinjau video lokal dan secara otomatis membuka kamera. Untuk menghentikan pratinjau lokal, panggil API `stopPreview`.

Catatan

leaveChannel meninggalkan channel dan secara otomatis menghentikan pratinjau lokal. Jika Anda tidak mendorong stream kamera, kamera secara otomatis dimatikan.

Kapan Harus Menghubungi

  • Sebelum memanggil metode ini, Anda dapat mengatur tampilan pratinjau menggunakan setLocalViewConfig. Jika tidak, pratinjau gagal—tetapi ingest stream tetap tidak terpengaruh.

  • Anda dapat memanggil metode ini sebelum joinChannel untuk memulai pratinjau lebih awal. Kamera mulai secara otomatis.

Deskripsi Pengembalian

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

stopPreview

Menghentikan pratinjau lokal.

- (int)stopPreview;

Metode ini menghentikan pratinjau video lokal dan menonaktifkan kamera. Setelah dihentikan, pratinjau lokal membeku pada frame terakhir. Ingest stream tidak terpengaruh.

Catatan

leaveChannel secara otomatis menghentikan pratinjau lokal. Jika Anda tidak menerbitkan stream kamera, kamera juga secara otomatis dimatikan.

Kapan Harus Menghubungi

Anda dapat memanggil metode ini untuk menghentikan pratinjau.

Deskripsi pengembalian

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

setCameraZoom

Mengatur zoom kamera.

 - (int)setCameraZoom:(float)zoom;

Parameter

Nama

Type

Deskripsi

zoom

float

Tingkat zoom. Rentang: dari 1 hingga faktor zoom maksimum yang didukung kamera.

Nilai kembali

Mengembalikan 0 pada keberhasilan. Nilai lainnya menunjukkan kegagalan.

GetCameraMaxZoomFactor

Mengambil faktor zoom kamera maksimum.

 - (float)GetCameraMaxZoomFactor;

Nilai kembali

Faktor zoom kamera maksimum.

GetCurrentZoom

Memperoleh tingkat zoom kamera saat ini.

- (float)GetCurrentZoom;

Nilai kembali

Tingkat zoom kamera saat ini.

SetExposure

Anda dapat mengatur tingkat eksposur kamera.

- (int)SetExposure:(float)exposure;

Parameter

Nama

Tipe

Deskripsi

exposure

float

Tingkat eksposur.

Nilai kembali

0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

GetCurrentExposure

Anda dapat memperoleh eksposur kamera.

- (float)GetCurrentExposure;

Nilai kembali

Tingkat eksposur kamera.

GetMinExposure

Peroleh eksposur kamera minimum

- (float)GetMinExposure;

nilai kembali

Tingkat eksposur minimum untuk kamera.

GetMaxExposure

Mengambil tingkat eksposur kamera maksimum.

- (float)GetMaxExposure;

Nilai kembali

Tingkat eksposur kamera maksimum.

setCameraFlash

Anda dapat mengatur sakelar flash kamera.

- (int)setCameraFlash:(BOOL)flash;

Parameter

Nama

Tipe

Deskripsi

flash

BOOL

Apakah akan mengaktifkan flash.

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

isCameraFocusPointSupported

Memeriksa apakah fokus manual didukung.

- (BOOL)isCameraFocusPointSupported;

Nilai kembali

Mengembalikan TRUE jika fokus manual didukung, dan FALSE sebaliknya.

isCameraExposurePointSupported

Apakah kamera mendukung pengaturan titik eksposur?

- (BOOL)isCameraExposurePointSupported;

Nilai kembali

TRUE menunjukkan bahwa pengaturan titik eksposur didukung. FALSE menunjukkan bahwa itu tidak didukung.

setCameraFocusPoint

Mengatur titik fokus manual untuk kamera.

- (int)setCameraFocusPoint:(CGPoint)point;

Parameter

Nama

Tipe

Deskripsi

point

CGPoint

Koordinat titik fokus. Tetap aktif sampai diubah.

Nilai kembali

Mengembalikan 0 pada keberhasilan. Nilai lainnya menunjukkan kegagalan.

setCameraExposurePoint

Atur nilai eksposur pada titik yang ditentukan.

- (int)setCameraExposurePoint:(CGPoint)point;

Parameter

Nama

Tipe

Deskripsi

point

CGPoint

Koordinat titik fokus. Tetap aktif sampai diubah.

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

isCameraAutoFocusFaceModeSupported

Apakah kamera mendukung fokus wajah?

- (BOOL)isCameraAutoFocusFaceModeSupported;

Nilai kembali

Nilai TRUE menunjukkan bahwa fokus otomatis wajah didukung, dan nilai FALSE menunjukkan bahwa tidak didukung.

setCameraAutoFocusFaceModeEnabled

Anda dapat mengaktifkan atau menonaktifkan fokus otomatis wajah.

- (BOOL)setCameraAutoFocusFaceModeEnabled:(BOOL)enable;

Parameter

Nama

Tipe

Deskripsi

point

CGPoint

Koordinat titik fokus. Tetap aktif sampai diubah.

Nilai kembali

Nilai kembali TRUE menunjukkan keberhasilan. Nilai kembali FALSE menunjukkan kegagalan.

setVideoMirrorMode

Atur mode pencerminan video.

- (int)setVideoMirrorMode:(AliRtcVideoPipelineMirrorMode)mirrorMode;

Menetapkan apakah akan menerapkan pencerminan ke pratinjau lokal dan stream video yang diterbitkan.

Catatan

Metode ini memiliki prioritas lebih tinggi daripada setLocalViewConfig dan setVideoEncoderConfiguration, dan kami merekomendasikan menggunakannya untuk mengonfigurasi pencerminan.

Kapan dipanggil

Anda dapat memanggil metode ini secara dinamis sebelum atau setelah bergabung ke channel. SDK menyimpan status dan menerapkan pencerminan selama pratinjau atau pengkodean (ingest stream).

Batasan

Metode ini tumpang tindih dengan setLocalViewConfig dan setVideoEncoderConfiguration, keduanya mendukung parameter mirrorMode. Kami merekomendasikan hanya menggunakan metode ini.

Parameter

Nama

Tipe

Deskripsi

mirrorMode

AliRtcVideoPipelineMirrorMode

Jenis pencerminan.

SetCapturePipelineScaleMode

Anda dapat mengatur mode penskalaan untuk tautan video.

-(void)setCapturePipelineScaleMode:(AliRtcCapturePipelineScaleMode)mode;

Menentukan apakah data video diskalakan selama pengambilan atau selama pengkodean. Misalnya, jika resolusi pengambilan berbeda dari resolusi pengkodean, pengaturan ini menentukan apakah data pratinjau cocok dengan data ingest stream.

Catatan

Mode penskalaan default adalah penskalaan langsung selama pengambilan. Anda harus mengatur API ini sebelum aktivasi kamera—sebelum startPreview atau joinChannel.

Kapan Dipanggil

Anda harus mengatur metode ini sebelum memulai kamera—misalnya, sebelum memanggil startPreview atau joinChannel.

Parameter

Nama

Tipe

Deskripsi

mode

AliRtcCapturePipelineScaleMode

Jenis penskalaan.

Nilai kembali

Nilai 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

registerVideoFrameWithObserver

Mendaftarkan observer output data video.

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

Anda dapat menggunakan metode ini untuk mendaftarkan objek yang mengekspor data video. Untuk membatalkan pendaftaran, panggil unregisterVideoSampleWithObserver.

Kapan Harus Menghubungi

Untuk memperoleh data video mentah (seperti format YUV atau RGBA) pada berbagai tahap, Anda dapat memanggil antarmuka ini untuk mendaftarkan monitor data video.

Callback terkait

Setelah Anda berhasil mendaftarkan observer output data video, SDK memicu callback yang Anda implementasikan ketika menangkap setiap frame video. Terapkan callback berikut sesuai kebutuhan:

Parameter

Nama

Tipe

Deskripsi

observer

AliRtcVideoFrameDelegate

Observer output data video.

unregisterVideoSampleWithObserver

Anda dapat membatalkan objek output data video.

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

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

Parameter

Nama

Tipe

Deskripsi

observer

AliRtcVideoFrameDelegate

Objek output untuk data video.

registerLocalVideoTextureObserver

Mendaftarkan observer tekstur OpenGL untuk video kamera lokal.

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

Untuk mengambil data video mentah, panggil registerVideoSampleObserver. Untuk mengambil data tekstur internal, panggil metode ini. Untuk membatalkan pendaftaran observer, panggil unRegisterLocalVideoTextureObserver.

Catatan

Callback terkait

Setelah Anda berhasil mendaftarkan observer tekstur OpenGL untuk video kamera lokal, SDK memicu callback yang Anda implementasikan di AliRtcTextureObserver setiap kali frame video diambil. Anda dapat menerapkan callback berikut sesuai kebutuhan:

  • onTextureCreate: Callback ini dipicu ketika SDK membuat konteks OpenGL internalnya.

  • onTextureUpdate: Callback ini dipicu setelah setiap frame video diunggah ke tekstur OpenGL. Ketika observer tekstur eksternal terdaftar, Anda dapat memproses tekstur dan mengembalikan ID tekstur yang telah diproses. Nilai kembali harus merupakan ID tekstur yang valid. Jika tidak ada pemrosesan yang dilakukan, kembalikan textureId input.

  • onTextureDestroy: Callback ini dipicu ketika SDK menghancurkan konteks OpenGL internalnya.

Parameter

Nama

Tipe

Deskripsi

observer

AliRtcTextureDelegate

Observer tekstur OpenGL.

unregisterLocalVideoTextureObserver

Membatalkan pendaftaran observer tekstur OpenGL untuk video kamera lokal.

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

Metode ini berkorelasi dengan registerLocalVideoTextureObserver dan menangani pembatalan pendaftarannya.

Parameter

Nama

Tipe

Deskripsi

observer

AliRtcTextureDelegate

Observer tekstur OpenGL.

snapshotVideo

Mengambil snapshot dari video.

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

Parameter

Nama

Tipe

Deskripsi

userId

NSString *

ID pengguna. Nilai nil atau "" mewakili pengguna lokal.

type

AliRtcVideoTrack

Jenis stream video hanya mendukung {@link AliRtcVideoTrack::AliRtcVideoTrackCamera} dan {@link AliRtcVideoTrack::AliRtcVideoTrackScreen}.

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

setExternalVideoSource

Menentukan apakah akan mengaktifkan sumber video eksternal.

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

Parameter

Nama

Tipe

Deskripsi

enable

BOOL

YES menunjukkan bahwa fitur diaktifkan. NO menunjukkan bahwa fitur dinonaktifkan.

type

AliRtcVideoSource

Jenis stream

renderMode

AliRtcRenderMode

Mode rendering.

pushExternalVideoFrame

Mengimpor data video eksternal.

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

Parameter

Nama

Tipe

Deskripsi

frame

AliRtcVideoDataSample

*_Nonnull

Frame data

type

AliRtcVideoSource

Jenis stream

Deskripsi pengembalian

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

startPublishLiveStreamWithURL

Memulai streaming langsung yang direlay.

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

Parameter

Nama

Tipe

Deskripsi

streamUrl

NSString *

Jalur ingest.

transcoding

AliRtcLiveTranscodingParam

*

Parameter untuk streaming langsung yang direlay.

Deskripsi Pengembalian

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

updatePublishLiveStreamWithURL

Memperbarui parameter untuk streaming langsung yang direlay.

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

Parameter

Nama

Type

Deskripsi

streamUrl

NSString *

Jalur ingest.

transcoding

AliRtcLiveTranscodingParam

*

Parameter untuk streaming langsung yang direlay.

Nilai Pengembalian

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

stopPublishLiveStreamWithURL

Hentikan streaming langsung bypass.

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

Parameter

Nama

Tipe

Deskripsi

streamUrl

NSString *_Nonnull

Jalur ingest.

Deskripsi Pengembalian

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

GetPublishLiveStreamStateWithURL

Memeriksa status streaming langsung yang direlay.

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

Parameter

Parameter

Tipe

Deskripsi

streamURL

NSString *

Jalur ingest.

Deskripsi pengembalian

Status streaming langsung yang direlay dikembalikan.

startLastmileDetect

Memulai pengujian kualitas jaringan.

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

Parameter

Parameter

Tipe

Deskripsi

config

AliRtcNetworkQualityProbeConfig

Parameter Konfigurasi Probe

Deskripsi Pengembalian

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

stopLastmileDetect

Menghentikan pengujian kualitas jaringan.

- (int)stopLastmileDetect;

Deskripsi pengembalian

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

sendMediaExtensionMsg

Menetapkan parameter mode gema.

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

SDK mendukung pengiriman dan penerimaan pesan ekstensi media. SDK mengirimkan pesan menggunakan protokol Supplemental Enhancement Information (SEI). Penerima dapat memperoleh pesan dengan mendengarkan callback onMediaExtensionMsgReceived.

Contoh kasus penggunaan umum meliputi:

  • Anda dapat menggunakan pesan ekstensi media untuk mengirim timestamp guna menghitung latensi jaringan end-to-end atau untuk sinkronisasi dengan logika bisnis lainnya.

  • Anda dapat menggunakan pesan ekstensi media untuk mengirim informasi deskriptif, dengan muatan hingga 4 KB. Untuk muatan kecil, gunakan JSON atau string biasa.

Kapan dipanggil

Panggil metode ini setelah ingest stream dimulai.

Batasan

Pesan ekstensi media menggunakan kembali saluran data audio-video. Oleh karena itu, Anda harus mengontrol frekuensi dan ukuran pesan. Batasan berikut berlaku:

  • Jumlah maksimum pesan per detik sama dengan pengaturan frames per second (FPS) dalam profil. Karena pesan SEI disematkan dalam stream H.264 atau H.265, pengkodean frame video diperlukan untuk melampirkan data ekstensi.

  • Untuk menghindari memengaruhi kualitas transmisi media, ukuran badan pesan dibatasi hingga 4 KB. Batasan ini cocok untuk muatan kecil.

  • Anda dapat menggunakan fungsi sendMediaExtensionMsg. Parameter repeatCount menentukan redundansi pesan kustom. Jika parameter ini lebih besar dari 1, pesan dikirim beberapa kali.

  • Untuk mencegah kehilangan paket menyebabkan kehilangan pesan, pengguna lain di channel juga menerima pesan duplikat. Anda harus menghapus duplikatnya.

  • Pelanggan dalam sesi streaming langsung yang direlay juga menerima pesan kustom.

  • Hanya satu MediaExtensionMsg yang dapat dikirimkan sekaligus. Beberapa panggilan ke sendMediaExtensionMsg menyebabkan data dari panggilan baru menimpa data dari panggilan sebelumnya.

Callback terkait

Ketika penerbit mengirim pesan ekstensi media, pelanggan menerima pesan tersebut melalui callback onMediaExtensionMsgReceived.

Deskripsi Parameter

Nama

Jenis

Deskripsi

data

NSData *

Konten pesan ekstensi. Panjang maksimum: 4 KB.

repeatCount

int

Jumlah pengulangan. Digunakan untuk redundansi guna mencegah kehilangan message akibat packet loss. Nilai -1 berarti percobaan ulang tanpa batas kecuali jika sendMediaExtensionMsg lain dipanggil.

delay

int

Delay dalam milidetik sebelum pengiriman. Delay aktual mungkin sedikit lebih lama karena SEI dilampirkan ke aliran H.264/H.265 yang telah dikodekan.

isKeyFrame

bool

Apakah SEI hanya akan disambungkan ke keyframe. Atur ke true untuk menyambungkan SEI hanya ke keyframe.

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

sendMediaExtensionMsgEx

Informasi ekstensi media dikirimkan dan diimplementasikan di lapisan bawah menggunakan SEI.

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

SDK mendukung pengiriman dan penerimaan pesan ekstensi media. Metode ini mengirimkan pesan menggunakan protokol Supplemental Enhancement Information (SEI). Penerima dapat memperoleh pesan dengan mendengarkan callback onMediaExtensionMsgReceived. Jika payloadType adalah 5, metode ini berfungsi identik dengan sendMediaExtensionMsg.

Contoh kasus penggunaan umum meliputi:

  • Anda dapat menggunakan pesan ekstensi media untuk mengirim timestamp guna menghitung latensi jaringan end-to-end atau untuk sinkronisasi dengan logika bisnis lainnya.

  • Anda dapat menggunakan pesan ekstensi media untuk mengirim informasi deskriptif. Data hingga 4 KB dapat dikirim. Untuk muatan kecil, gunakan JSON atau string biasa.

Kapan Harus Menghubungi

Anda dapat memanggil setelah memulai ingest stream.

Batasan Panggilan

Pesan ekstensi media menggunakan kembali saluran data audio-video. Oleh karena itu, Anda harus mengontrol frekuensi dan ukuran pesan-pesan ini. Batasannya adalah:

  • Jumlah maksimum pesan per detik sama dengan pengaturan frames per second (FPS) dalam profil. Karena pesan SEI disematkan dalam stream H.264 atau H.265, pengkodean frame video diperlukan untuk melampirkan data ekstensi.

  • Untuk menghindari memengaruhi kualitas transmisi media, ukuran badan pesan dibatasi hingga 4 KB. Batasan ini cocok untuk muatan kecil.

  • Parameter repeatCount dari fungsi sendMediaExtensionMsg menentukan redundansi pesan. Nilai lebih besar dari 1 memicu beberapa transmisi.

  • Untuk mencegah kehilangan pesan akibat kehilangan paket, pengguna lain di channel juga menerima pesan duplikat. Anda harus menghapus duplikatnya.

  • Pelanggan dalam sesi streaming langsung yang direlay juga menerima pesan kustom.

  • Hanya satu MediaExtensionMsg yang dapat dikirimkan sekaligus. Beberapa panggilan ke sendMediaExtensionMsg menimpa data sebelumnya.

Parameter

Nama

Tipe

Deskripsi

data

NSData *

Konten pesan ekstensi. Panjang maksimum: 4 KB.

repeatCount

int

Jumlah pengulangan. Digunakan untuk redundansi guna mencegah kehilangan pesan akibat kehilangan paket. -1 berarti percobaan tak terbatas kecuali sendMediaExtensionMsg lain dipanggil.

delay

int

Keterlambatan dalam milidetik sebelum mengirim. Keterlambatan aktual mungkin sedikit lebih lama karena SEI dilampirkan ke stream H.264/H.265 yang dikodekan.

isKeyFrame

bool

Apakah SEI hanya akan disambungkan ke keyframe. Atur ke true untuk menyambungkan SEI hanya ke keyframe.

payloadType

int

Tipe. Gunakan 5 untuk muatan berbasis UUID. Rentang valid: [5, 100..254].

Deskripsi Pengembalian

  • 0: Berhasil.

  • < 0: Gagal. Mengembalikan kode kesalahan.

    • ERR_INNER (-1): Kesalahan internal SDK. Kemungkinan penyebab: SDK belum diinisialisasi atau dihancurkan sebelum panggilan.

onConnectionStatusChange

Callback yang dipanggil ketika status koneksi jaringan berubah.

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

Parameter

Parameter

Tipe

Deskripsi

status

AliRtcConnectionStatus

Status saat ini.

reason

AliRtcConnectionStatusChangeReason

Alasan spesifik untuk perubahan status.

onLocalDeviceException

Callback yang dipanggil ketika terjadi pengecualian perangkat lokal. Perhatikan callback 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 yang dibawa dalam pengecualian.

onAuthInfoWillExpire

Callback yang dipanggil ketika autentikasi pengguna akan segera kedaluwarsa. Autentikasi kedaluwarsa 30 detik setelah Anda menerima callback ini. Perhatikan callback ini.

- (void)onAuthInfoWillExpire;

Callback ini menunjukkan bahwa autentikasi pengguna akan segera kedaluwarsa. Setelah menerimanya, autentikasi kedaluwarsa dalam 30 detik. Anda harus menghasilkan token baru dan memperbarui autentikasi menggunakan salah satu metode berikut:

  • Panggil API <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.

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

Kondisi Pemicu

SDK memicu callback ini 30 detik sebelum autentikasi kedaluwarsa. Setelah Anda menerimanya, perbarui autentikasi segera.

onAuthInfoExpired

Pengguna memanggil API yang memerlukan autentikasi, dan server mengembalikan tanggapan yang telah kedaluwarsa.

- (void)onAuthInfoExpired;

Callback ini menunjukkan bahwa autentikasi pengguna telah kedaluwarsa. Untuk melanjutkan sesi, hasilkan token baru di server Anda dan perbarui autentikasi menggunakan salah satu metode berikut:

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

Ketika dipicu

Callback ini dipicu ketika autentikasi pengguna kedaluwarsa.

onJoinChannelResult

Callback ini melaporkan hasil bergabung ke channel. Fungsionalitasnya setara dengan operasi blocking metode joinChannel. Anda dapat menggunakan pendekatan mana pun untuk menangani event yang terjadi setelah bergabung ke channel.

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

Kondisi pemicu

Callback ini dipicu ketika aplikasi Anda memanggil metode joinChannel. Callback ini melaporkan apakah operasi berhasil atau gagal dan mengembalikan informasi terkait, termasuk latensi bergabung.

Parameter

Parameter

Tipe

Deskripsi

result

int

Hasil permintaan untuk bergabung ke channel. Nilai 0 menunjukkan bahwa permintaan berhasil. Nilai selain 0 menunjukkan permintaan gagal dan kode kesalahan dikembalikan.

channel

NSString *_Nonnull

ID channel.

elapsed

int

Jumlah waktu yang dikonsumsi untuk bergabung ke channel.

onLeaveChannelResult

Callback ini dipanggil setelah Anda memanggil leaveChannel. Jika Anda memanggil destroy segera setelah leaveChannel, callback ini tidak dipicu.

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

Parameter

Parameter

Tipe

Deskripsi

result

int

Hasil permintaan untuk meninggalkan channel. Nilai 0 menunjukkan bahwa permintaan berhasil. Nilai selain 0 menunjukkan permintaan gagal dan kode kesalahan dikembalikan.

stats

AliRtcStats

Statistik sesi di dalam channel.

onRemoteUserOffLineNotify

Callback yang dipanggil ketika pengguna remote offline.

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

Callback ini memberi tahu pengguna lokal ketika pengguna remote keluar dari channel karena alasan apa pun. Callback ini dipicu ketika pengguna remote menjadi offline.

Kondisi pemicu

  • Callback ini dipicu ketika pengguna remote keluar dari channel.

  • Streamer remote 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 viewer (AliRtcClientRoleLive), dan callback dipicu.

  • Sistem mendeteksi bahwa tidak ada data yang diterima dari streamer remote dalam periode waktu yang lama dan menganggap mereka offline.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID unik pengguna yang ditetapkan oleh AppServer.

reason

AliRtcUserOfflineReason

Alasan mengapa pengguna remote menjadi offline.

onRemoteUserOnLineNotify

Callback yang dipanggil ketika pengguna remote online.

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

Metode ini dipicu ketika pengguna remote bergabung ke channel.

Kondisi pemicu

  • Pengguna remote berhasil bergabung ke channel.

  • Setelah pengguna lokal bergabung ke channel, mereka menerima callback bergabung untuk pengguna yang sudah berada di channel untuk menampilkan pengguna yang telah bergabung sebelumnya.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID unik pengguna yang ditetapkan oleh AppServer.

elapsed

int

Jumlah waktu yang dikonsumsi bagi pengguna remote untuk bergabung ke channel.

onRemoteTrackAvailableNotify

Callback yang dipanggil ketika stream pengguna remote berubah.

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

Callback ini dipicu ketika status penerbitan pengguna remote berubah. Anda dapat menggunakannya untuk memantau apakah pengguna remote menerbitkan stream audio dan video serta memperbarui UI sesuai dengan menampilkan atau menyembunyikan media mereka.

Catatan

Callback ini melaporkan status penerbitan pengguna remote. Untuk mengidentifikasi stream mana yang berhenti, bandingkan status sebelum dan sesudah callback dipicu.

Kondisi pemicu

Callback ini dipicu dalam kasus berikut:

  • Pengguna remote berpindah dari tidak menerbitkan ke menerbitkan audio dan/atau video.

  • Pengguna remote berpindah dari menerbitkan ke tidak menerbitkan audio dan/atau video.

  • Dalam mode interaktif, pengguna remote memanggil setClientRole untuk beralih dari viewer ke streamer saat menerbitkan stream.

Misalnya, callback ini tidak dipicu jika pengguna remote menonaktifkan ingest stream video:

  • Jika pengguna remote mulai menerbitkan video kamera (status penerbitan: tanpa video → hanya kamera), callback ini mengembalikan AliRtcVideoTrackCamera, menunjukkan bahwa stream kamera pengguna remote tersedia.

  • Jika pengguna yang sama kemudian juga menerbitkan berbagi layar (status penerbitan: hanya kamera → kamera + berbagi layar), callback ini mengembalikan AliRtcVideoTrackBoth, menunjukkan bahwa stream kamera dan berbagi layar tersedia.

  • Jika pengguna berhenti menerbitkan video kamera tetapi terus berbagi layar (status penerbitan: kamera + berbagi layar → hanya berbagi layar), callback ini mengembalikan AliRtcVideoTrackScreen, menunjukkan bahwa hanya stream berbagi layar yang tersedia.

  • Jika pengguna berhenti menerbitkan berbagi layar (status penerbitan: hanya berbagi layar → tanpa video), callback ini mengembalikan AliRtcVideoTrackNo, menunjukkan bahwa tidak ada stream video yang tersedia.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID unik pengguna yang ditetapkan oleh AppServer.

audioTrack

AliRtcAudioTrack

Stream audio diperbarui mengikuti perubahan pengguna remote.

videoTrack

AliRtcVideoTrack

Stream video diperbarui setelah pengguna remote melakukan perubahan.

onBye

Callback yang dipanggil ketika pengguna dipaksa keluar dari channel.

- (void)onBye:(int)code;

Callback ini dipicu ketika pengguna terputus atau sesi berakhir. Pengembang dapat menggunakan parameter code untuk mengidentifikasi penyebab dan menanganinya secara tepat.

Kondisi Pemicu

  • Pengguna diputus oleh server.

  • Sesi berakhir (server menghentikan channel).

  • Pengguna terputus secara pasif. Klien harus mencoba pemulihan atau koneksi ulang sesi.

Parameter

Parameter

Tipe

Deskripsi

code

int

Jenis pesan. Nilai valid:

  • 1: Pengguna dikeluarkan dari channel oleh server.

  • 2: Channel ditutup.

  • 3: Pengguna dikeluarkan dari channel oleh server karena ID pengguna yang sama digunakan untuk bergabung ke channel dari perangkat lain.

onAudioPublishStateChanged

Callback yang dipanggil ketika status ingest stream untuk track audio berubah.

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

Callback ini memantau perubahan status penerbitan audio pengguna lokal.

Kondisi pemicu

Callback ini dipicu ketika status penerbitan audio pengguna berubah—misalnya:

  • Hentikan ingest stream.

  • 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 viewer.

Parameter

Parameter

Jenis

Deskripsi

oldState

AliRtcPublishState

Status ingest stream sebelumnya.

newStat

AliRtcPublishState

Status ingest stream saat ini.

elapseSinceLastState

NSInteger

Waktu yang berlalu untuk perubahan tersebut. Satuan: milidetik.

channel

NSString *_Nonnull

ID channel.

onAudioSubscribeStateChanged

Callback yang dipanggil ketika status langganan ke track audio berubah.

- (void)onAudioSubscribeStateChanged:(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 ke stream audio pengguna remote berubah. Anda dapat menggunakannya untuk melacak perubahan status langganan untuk stream kamera pengguna remote tertentu dan interval waktu antar status.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna yang status langganannya berubah.

oldState

AliRtcSubscribeState

Status langganan sebelumnya.

newState

AliRtcSubscribeState

Status langganan saat ini.

elapseSinceLastState

NSInteger

Waktu yang berlalu untuk perubahan tersebut. Satuan: milidetik.

channel

NSString *_Nonnull

ID channel.

onUserAudioMuted

Callback yang dipanggil ketika pengguna membisukan track audio.

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

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna yang membisukan track audio.

isMute

BOOL

Nilai YES menunjukkan bahwa track audio dibisukan. Nilai NO menunjukkan bahwa track audio tidak dibisukan.

onUserAudioInterruptedBegin

Callback yang dipanggil ketika track audio pengguna terganggu. Misalnya, track audio dapat diambil alih ketika pengguna melakukan panggilan telepon.

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

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna yang track audionya terganggu.

onUserAudioInterruptedEnded

Callback yang dipanggil ketika gangguan track audio pengguna berakhir. Callback ini berpasangan dengan callback onUserAudioInterruptedBegin.

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

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna yang track audionya terganggu.

onVideoPublishStateChanged

Callback yang dipanggil ketika status ingest stream untuk track video berubah.

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

Callback ini memantau perubahan status penerbitan video pengguna lokal.

Parameter

Parameter

Tipe

Deskripsi

oldState

AliRtcPublishState

Status ingest stream sebelumnya.

newState

AliRtcPublishState

Status ingest stream saat ini.

elapseSinceLastState

NSInteger

Waktu yang berlalu untuk perubahan tersebut. Satuan: milidetik.

channel

NSString *_Nonnull

ID channel.

onVideoSubscribeStateChanged

Callback yang dipanggil ketika status langganan ke track video berubah.

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

Callback ini memberi tahu pengguna lokal tentang perubahan status langganan ke stream kamera pengguna remote. Callback ini menyediakan status langganan baru dan waktu yang berlalu antara perubahan status.

Callback terkait

Stream video mencakup stream kamera dan stream berbagi layar. Callback ini dipicu oleh perubahan langganan ke stream kamera. Perubahan langganan ke stream berbagi layar memicu callback onScreenShareSubscribeStateChanged.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna yang status langganannya berubah.

oldState

AliRtcSubscribeState

Status langganan sebelumnya.

newState

AliRtcSubscribeState

Status langganan saat ini.

elapseSinceLastState

NSInteger

Waktu yang berlalu untuk perubahan tersebut. Satuan: milidetik.

channel

NSString *_Nonnull

ID channel.

onUserVideoMuted

Notifikasi pembisuan video pengguna.

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

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna yang menjalankan muteVideo.

isMute

BOOL

Nilai YES menunjukkan bahwa frame hitam dikirimkan untuk track video. Nilai NO menunjukkan bahwa track video diterbitkan secara normal.

onUserVideoEnabled

Notifikasi dikirim ketika pengambilan video lokal dinonaktifkan atau diaktifkan kembali.

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

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna yang menjalankan operasi.

isMute

BOOL

Nilai YES menunjukkan bahwa pengambilan track kamera diaktifkan. Nilai NO menunjukkan bahwa pengambilan track kamera dinonaktifkan.

onUserWillResignActive

Callback yang dipanggil ketika pengguna remote beralih aplikasi ke latar belakang.

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

Parameter

Parameter

Type

Deskripsi

uid

NSString *_Nonnull

ID pengguna yang beralih aplikasi ke latar belakang.

onUserWillBecomeActive

Callback yang dipanggil ketika pengguna remote beralih aplikasi kembali ke latar depan.

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

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna yang beralih aplikasi kembali ke latar depan.

onRtcStats

Callback untuk statistik real-time. Callback ini dipicu setiap dua detik.

- (void)onRtcStats:(AliRtcStats)stats;

Parameter

Parameter

Type

Deskripsi

stats

AliRtcStats

Callback data

onRtcLocalVideoStats

Statistik performa video lokal (pembaruan dipicu setiap 2 detik).

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

Parameter

Parameter

Tipe

Deskripsi

localVideoStats

AliRtcLocalVideoStats

Statistik video lokal.

onRtcRemoteVideoStats

Statistik performa video remote, yang dipicu setiap 2 s.

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

Parameter

Parameter

Type

Deskripsi

remoteVideoStats

AliRtcRemoteVideoStats

Statistik video remote.

onRtcLocalAudioStats

Statistik audio lokal (dipicu setiap 2 detik).

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

Parameter

Parameter

Type

Deskripsi

localAudioStats

AliRtcLocalAudioStats

Statistik audio lokal.

onRtcRemoteAudioStats

Callback ini menyediakan statistik audio remote dan dipicu setiap dua detik.

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

Parameter

Parameter

Tipe

Deskripsi

remoteAudioStats

AliRtcRemoteAudioStats

Statistik audio remote.

onMediaExtensionMsgReceived

Anda telah menerima callback yang berisi informasi ekstensi media.

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

Setelah satu peserta mengirim pesan ekstensi media menggunakan metode sendMediaExtensionMsg, peserta lain menerima data melalui callback ini.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString

ID pengguna.

payloadType

int

Jenis muatan.

message

NSData *

Pesan ekstensi media.

onAudioRouteChanged

Callback ini dipanggil ketika rute audio berubah dan hanya berlaku untuk Android dan iOS.

- (void)onAudioRouteChanged:(AliRtcAudioRouteType)routing;

Parameter

Parameter

Tipe

Deskripsi

routing

AliRtcAudioRouteType

Jenis rute.

onSnapshotComplete

Callback yang dipanggil ketika operasi snapshot selesai.

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

Parameter

Parameter

Tipe

Deskripsi

image

UIImage *

Jenis gambar.

success

BOOL

Apakah operasi berhasil.

onLocalAudioStateChanged

Terjadi ketika status perangkat pengambilan audio lokal berubah.

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

Callback ini melaporkan hasil memanggil startAudioCapture dan stopAudioCapture.

Parameter

Parameter

Tipe

Deskripsi

state

AliRtcLocalAudioStateType

Status perangkat, bertipe AliRtcLocalAudioStateType.

msg

NSString *

Deskripsi perubahan status perangkat.

onLocalVideoStateChanged

Callback untuk status perangkat pengambilan video lokal.

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

Parameter

Parameter

Tipe

Deskripsi

state

AliRtcLocalVideoStateType

Status perangkat, bertipe AliRtcLocalVideoStateType.

msg

NSString *

Deskripsi perubahan status perangkat.

onRemoteUserSubscribedDataChannel

Callback yang dipanggil ketika Anda dapat mulai mengirim pesan Saluran Data.

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

Callback ini dipicu ketika pengguna remote berlangganan ke Saluran Data. Callback ini memberi tahu pengguna lokal bahwa pengguna remote yang ditentukan siap menerima pesan kustom. Anda dapat dengan aman memanggil sendDataChannelMessage untuk mengirim data pada titik ini. Callback ini sangat penting untuk pengiriman pesan yang andal karena mencegah kehilangan paket atau kegagalan yang terjadi ketika pesan dikirim sebelum target pengguna berlangganan ke Saluran Data.

Catatan

Callback ini dipicu hanya dalam skenario AI.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *

ID pengguna.

onDataChannelMessage

Callback ini menangani pesan saluran data.

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

SDK ARTC mendukung pengiriman dan penerimaan pesan kustom bersama dengan data audio dan video. Callback ini menerima pesan kustom tersebut. Untuk detail penggunaan, lihat Pengiriman dan penerimaan pesan kustom.

Catatan
  • Dalam skenario interaktif, streamer dapat mengirim dan menerima pesan, sedangkan viewer hanya dapat menerima pesan.

  • Fitur ini dinonaktifkan secara default. Untuk mengaktifkannya, panggil setParameter setelah membuat engine untuk mengatur {"data":{"enablePubDataChannel":true,"enableSubDataChannel":true}}.

Ketika dipicu

Callback ini dipicu setelah pengirim memanggil sendDataChannelMessage untuk mengirim pesan kustom dan penerima telah mengaktifkan saluran data.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *

ID pengguna.

controlMsg

AliRtcDataChannelMsg

Pesan saluran data.

onScreenSharePublishStateChanged

Callback ini dipanggil ketika status ingest stream untuk berbagi layar berubah.

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

Parameter

Parameter

Tipe

Deskripsi

oldState

AliRtcPublishState

Hasil probing. 0 berarti berhasil. -1 berarti gagal karena kualitas jaringan buruk.

newState

AliRtcPublishState

Status penerbitan sebelumnya.

newState

AliRtcPublishState

Status penerbitan baru.

elapseSinceLastState

NSInteger

Interval waktu antar perubahan status, dalam milidetik.

channel

NSString *

ID channel saat ini.

onCapturedAudioFrame

Callback untuk pengumpulan data mentah.

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

Callback ini mengambil data audio mentah yang diambil oleh perangkat saat ini. Callback ini dinonaktifkan secara default. Untuk menerima data ini:

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

  • Anda dapat memanggil registerAudioFrameObserver untuk mendaftarkan penerima data audio.

Catatan
  • Antarmuka ini mendukung pengaturan laju sampel, jumlah saluran suara, dan mode baca/tulis.

  • Anda dapat menghindari anomali audio dengan tidak melakukan operasi yang memakan waktu di dalam callback ini.

  • Antarmuka ini mendukung pengaturan laju sampel dan jumlah saluran suara.

  • Antarmuka ini mendukung mode baca/tulis.

Batasan

Jangan lakukan operasi yang memakan waktu di dalam callback ini. Melakukannya dapat menyebabkan anomali audio.

Parameter

Parameter

Tipe

Deskripsi

frame

AliRtcAudioFrame

Frame video.

Nilai kembali

true: Operasi berhasil.

onProcessCapturedAudioFrame

Callback ini mengirimkan data audio setelah pemrosesan 3A.

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

Anda dapat mengambil data audio setelah pemrosesan 3A menggunakan callback ini. Ini dinonaktifkan secara default. Untuk mengaktifkannya:

Catatan
  • Antarmuka ini mendukung pengaturan laju sampel, jumlah saluran suara, dan mode baca/tulis.

  • Jangan lakukan operasi yang memakan waktu di dalam callback ini karena hal itu dapat menyebabkan anomali audio.

  • Antarmuka ini mendukung pengaturan laju sampel dan jumlah saluran suara.

  • Antarmuka ini mendukung mode baca/tulis.

Batasan

Jangan lakukan operasi yang memakan waktu di dalam callback ini karena hal itu dapat menyebabkan anomali audio.

Parameter

Parameter

Tipe

Deskripsi

frame

AliRtcAudioFrame

Frame video.

Nilai kembali

true: Berhasil.

onPublishAudioFrame

Callback data ingest stream.

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

Callback ini mengambil data audio yang sedang diterbitkan. Ini dinonaktifkan secara default. Untuk mengambil data ini:

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

  • Anda dapat memanggil registerAudioFrameObserver untuk mendaftarkan penerima data audio.

Catatan
  • Antarmuka ini mendukung konfigurasi laju sampel dan jumlah saluran suara, tetapi hanya dalam mode read-only.

  • Anda sebaiknya tidak melakukan operasi yang memakan waktu di dalam callback ini karena hal itu dapat menyebabkan anomali audio.

  • Antarmuka ini mendukung konfigurasi laju sampel dan jumlah saluran suara.

  • Antarmuka ini mendukung mode baca/tulis.

Batasan

Hindari melakukan operasi yang memakan waktu di dalam callback ini. Hal ini dapat menyebabkan anomali audio.

Parameter

Parameter

Tipe

Deskripsi

frame

AliRtcAudioFrame

Frame video.

Nilai kembali

true: Operasi berhasil.

onPlaybackAudioFrame

Callback untuk data pemutaran audio.

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

Callback ini mengambil data pemutaran audio. Ini dinonaktifkan secara default. Untuk memperoleh data ini:

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

  • Panggil registerAudioFrameObserver untuk mendaftarkan penerima data audio.

Catatan
  • Antarmuka ini mendukung pengaturan laju sampel, jumlah saluran suara, dan mode baca/tulis.

  • Jangan lakukan operasi yang memakan waktu di dalam callback ini. Melakukannya dapat menyebabkan anomali audio.

  • Antarmuka ini mendukung pengaturan laju sampel dan jumlah saluran suara.

  • Antarmuka ini mendukung mode baca/tulis.

Batasan

Jangan lakukan operasi yang memakan waktu di dalam callback ini. Melakukannya dapat menyebabkan anomali audio.

Parameter

Parameter

Jenis

Deskripsi

frame

AliRtcAudioFrame

Frame video.

Nilai kembali

true: Berhasil.

onRemoteUserAudioFrame

Callback ini mengirimkan data audio dari stream audio pengguna remote.

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

Callback ini dinonaktifkan secara default. Untuk mengambil data audio pengguna remote:

  • Aktifkan callback dengan memanggil enableAudioFrameObserver(true, audioSource, config). Parameter config memungkinkan Anda menentukan laju sampel, jumlah saluran suara, dan mode baca/tulis.

  • Panggil registerAudioFrameObserver untuk mendaftarkan penerima data audio.

Catatan
  • Antarmuka ini tidak mendukung pengaturan laju sampel atau jumlah saluran suara, tetapi mendukung konfigurasi mode baca/tulis.

  • Hindari melakukan operasi yang memakan waktu di dalam callback ini karena hal itu dapat menyebabkan anomali audio.

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

  • Antarmuka ini mendukung konfigurasi mode baca/tulis.

Batasan

Hindari melakukan operasi yang memakan waktu di dalam callback ini karena hal itu dapat menyebabkan anomali audio.

Parameter

Parameter

Jenis

Deskripsi

frame

AliRtcAudioFrame

Frame video.

Nilai kembali

true: Operasi berhasil.

onDestroyCompletion

Callback yang melepaskan engine DPI. Engine dilepaskan sepenuhnya hanya setelah callback ini dieksekusi.

- (void)onDestroyCompletion;

Callback ini menunjukkan bahwa instans SDK engine telah dihancurkan, dan Anda dapat membuat instans baru.

Catatan

Tunggu callback onDestroyCompletion sebelum memanggil metode lainnya. Ini mencegah thread utama terblokir.

Kondisi Pemicu

Ketika pengguna memanggil destroy[2/2], callback ini dipicu setelah penghancuran engine selesai.

onTextureCreate

Callback untuk pembuatan konteks OpenGL.

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

SDK memicu callback ini saat membuat konteks OpenGL internalnya.

Kondisi pemicu

Callback ini dipicu ketika SDK membuat konteks OpenGL internalnya. Anda dapat menginisialisasi resource terkait di dalam callback ini.

Parameter

Parameter

Tipe

Deskripsi

context

void *

Konteks OpenGL.

onTextureUpdate

Callback pembaruan tekstur OpenGL.

- (int)onTextureUpdate:(int)textureId width:(int)width height:(int)height videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;
Catatan
  • Callback ini dipicu setelah setiap frame video diunggah ke tekstur OpenGL. Ketika observer tekstur OpenGL eksternal terdaftar, Anda dapat memproses tekstur dan mengembalikan ID tekstur yang telah diproses.

  • Callback harus mengembalikan ID tekstur yang valid. Jika tidak ada pemrosesan, kembalikan textureId input.

Kondisi pemicu

Callback ini dipicu setelah setiap frame video diunggah ke tekstur OpenGL. Ketika observer tekstur OpenGL eksternal terdaftar, Anda dapat memproses tekstur dan mengembalikan ID tekstur yang telah diproses.

Parameter

Parameter

Tipe

Deskripsi

textureId

int

Konteks OpenGL.

width

int

Lebar video.

height

int

Tinggi video.

videoSample

AliRtcVideoDataSample

Data frame video.

Nilai kembali

Mengembalikan ID tekstur baru atau ID tekstur asli. Mengembalikan nilai negatif menunjukkan tidak ada pembaruan ID tekstur.

onTextureDestory

Callback penghancuran untuk konteks OpenGL.

- (void)onTextureDestory;
Catatan

Callback ini dipicu ketika SDK menghancurkan konteks OpenGL internalnya.

Kondisi Pemicu

Callback ini dipicu ketika SDK menghancurkan konteks OpenGL internalnya. Anda dapat membersihkan resource terkait di sini.

onCaptureVideoSample

Callback ini melaporkan frame video yang diambil.

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

Callback ini mengambil frame video mentah, seperti data YUV, dari kamera lokal. Anda dapat menggunakan callback ini untuk menerapkan logika pemrosesan video khusus, seperti menambahkan filter, watermark, atau transkode. Anda kemudian dapat memutuskan apakah akan mengirimkan kembali data yang telah diproses ke SDK untuk pengkodean dan rendering. Kembalikan true untuk menulis kembali data video yang telah diproses ke SDK.

Ketika dipicu

Setelah Anda memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#9a3437ab16j1w" id="6c93b9cf8e771">registerVideoSampleObserver</a> untuk mendaftarkan observer data video, SDK menangkap frame video yang sesuai.

Parameter

Parameter

Tipe

Deskripsi

videoSource

AliRtcVideoSource

Jenis stream video.

videoSample

AliRtcVideoDataSample

Data video mentah.

Nilai kembali

Ya, Anda dapat menulis kembali data video yang telah diproses ke SDK, tetapi ini hanya didukung untuk format I420 dan CVPixelBuffer pada iOS dan macOS.

Tidak: Jangan tulis balik ke SDK.

onPreEncodeVideoSample

Callback ini dipicu sebelum data video lokal dikodekan.

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

Callback ini memungkinkan Anda mengambil data video mentah, seperti data dalam format YUV, sebelum SDK mengkodekan frame video. Anda dapat menggunakan data ini untuk menerapkan logika pemrosesan khusus, seperti menambahkan watermark, menyesuaikan warna, atau transkode. Anda kemudian dapat memutuskan apakah akan mengembalikan data yang telah diproses ke SDK untuk pengkodean selanjutnya.

Parameter

Parameter

Type

Deskripsi

videoSource

AliRtcVideoSource

Jenis stream video.

videoSample

AliRtcVideoDataSample

Data video mentah.

Nilai kembali

YES: Data video yang telah diproses dikembalikan ke SDK. Ini efektif hanya untuk data dalam format I420 dan CVPixelBuffer pada iOS dan macOS.

Tidak, Anda tidak perlu menulis balik ke SDK.

onRemoteVideoSample

Callback untuk data video remote.

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

Callback ini mengambil data frame video mentah (seperti format YUV) dari pengguna remote. Anda dapat menggunakannya untuk menerapkan logika pemrosesan khusus—misalnya, menambahkan filter, watermark, atau transkode—dan memutuskan apakah akan mengembalikan data yang telah diproses ke SDK untuk rendering.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *

ID pengguna.

videoSource

AliRtcVideoSource

Jenis stream video.

videoSample

AliRtcVideoDataSample

Data video mentah.

Nilai kembali

YES: Tulis kembali data video yang telah diproses ke SDK (hanya efektif untuk I420 dan CVPixelBuffer pada iOS/macOS).

NO: Jangan tulis balik ke SDK.

onGetVideoFormatPreference

Format output data video.

- (AliRtcVideoFormat)onGetVideoFormatPreference;
Catatan

Aplikasi dapat mengembalikan format data video yang disukai. Nilai default adalah AliRtcYUV420.

Nilai kembali

Format output video yang disukai.

onGetVideoObservedFramePosition

Posisi tempat data video dioutputkan.

- (NSInteger)onGetVideoObservedFramePosition;

Nilai kembali

Posisi output video yang disukai. Untuk informasi lebih lanjut, lihat AliRtcVideoObserPosition.

onAudioEffectFinished

Callback yang dipanggil ketika pemutaran lokal efek suara berakhir.

- (void)onAudioEffectFinished:(int)soundId;

Parameter

Parameter

Jenis

Deskripsi

soundId

int

ID efek suara.

onAudioVolumeCallback

Melaporkan volume audio, status suara, dan UID pengguna yang berlangganan.

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

Callback ini mengambil data frame video pengguna remote. Anda dapat menggunakan callback ini untuk menerapkan logika pemrosesan kustom—misalnya, menambahkan filter atau watermark—dan memutuskan apakah akan mengembalikan data yang telah diproses ke SDK untuk rendering.

Parameter

Parameter

Tipe

Deskripsi

array

NSArray <AliRtcUserVolumeInfo

*> *_Nullable

Array berisi informasi volume untuk setiap pengguna, termasuk UID, status pembicaraan, dan volume:

  • Nilai UID 0 menunjukkan pembicara lokal.

  • Nilai UID 1 menunjukkan volume campuran semua pengguna remote.

  • Nilai lainnya menunjukkan informasi volume untuk pengguna remote tertentu berdasarkan UID.

totalVolume

int

Volume setelah audio dicampur. Nilai valid: 0 hingga 255. Jika callback ini dikembalikan ke pengguna lokal, nilai parameter ini menunjukkan volume setelah audio pengguna lokal dicampur. Jika callback ini dikembalikan ke pengguna remote, nilai parameter ini menunjukkan volume setelah audio dari semua pembicara dicampur.

onActiveSpeaker

Callback yang dipanggil ketika pengguna berbicara.

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

Setelah Anda berhasil memanggil <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 memantau pengguna remote dengan volume audio tertinggi, melacak jumlah kali pengguna tersebut diidentifikasi sebagai memiliki volume audio tertinggi. Selama periode waktu saat ini, pengguna remote dengan hitungan tertinggi dianggap sebagai pengguna paling aktif.

Kondisi Pemicu

Callback ini dipicu ketika channel berisi dua pengguna atau lebih dan setidaknya satu pengguna remote sedang berbicara secara aktif.

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

  • Jika pembicara remote paling aktif berubah, SDK memicu callback ini lagi dan melaporkan UID pembicara aktif baru.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna yang sedang berbicara.

onPublishLiveStreamStateChanged

Callback yang dipanggil ketika status streaming langsung yang direlay berubah.

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

Parameter

Parameter

Tipe

Deskripsi

streamURL

NSString *

Jalur ingest.

state

AliRtcLiveTranscodingState

Status.

errCode

AliRtcTrascodingLiveStreamErrorCode

Kode kesalahan.

onPublishTaskStateChanged

Callback yang dipanggil ketika status tugas streaming langsung yang direlay berubah.

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

Parameter

Parameter

Tipe

Deskripsi

streamURL

NSString *

Jalur ingest.

state

AliRtcTrascodingLiveTaskStatus

Status.

onNetworkQualityChanged

Callback yang dipanggil ketika kualitas jaringan berubah.

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

Parameter

Parameter

Tipe

Deskripsi

uid

NSString*

ID pengguna. Nilai kosong untuk parameter ini menunjukkan pengguna lokal.

upQuality

AliRtcNetworkQuality

Status jaringan upstream.

downQuality

AliRtcNetworkQuality

Status jaringan downstream.

onLastmileDetectResultWithQuality

Callback untuk hasil pengujian kualitas jaringan.

- (void)onLastmileDetectResultWithQuality:(AliRtcNetworkQuality)networkQuality;

Parameter

Parameter

Type

Deskripsi

networkQuality

AliRtcNetworkQuality

Kualitas jaringan.

onLastmileDetectResultWithBandWidth

Callback yang dipanggil untuk mengembalikan hasil pengujian kualitas jaringan.

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

Parameter

Parameter

Tipe

Deskripsi

code

int

Nilai 0 menunjukkan bahwa uji berhasil. Nilai -1 menunjukkan bahwa uji gagal dan jaringan buruk.

result

AliRtcNetworkQualityProbeResult

Kualitas jaringan.

onOccurError

Jika terjadi kesalahan di engine, aplikasi diberi tahu melalui callback ini.

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

Parameter

Parameter

Tipe

Deskripsi

error

int

Jenis kesalahan. Lihat AliRtcErrorCode.

message

NSString *

Deskripsi kesalahan.

onFirstAudioPacketSentWithTimecost

Dipicu ketika paket audio pertama dikirim.

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

Parameter

Parameter

Tipe

Deskripsi

track

AliRtcAudioTrack

Track tersebut.

timeCost

int

Waktu yang dibutuhkan untuk mengirim paket.

onFirstVideoFrameReceivedWithUid

Callback ini dipanggil ketika frame video pertama diterima.

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

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *

ID pengguna.

videoTrack

AliRtcVideoTrack

Label stream video.

timeCost

int

Biaya waktu dalam milidetik.

onFirstVideoPacketSentWithVideoTrack

Callback untuk paket video pertama yang dikirim.

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

Parameter

Parameter

Tipe

Deskripsi

videoTrack

AliRtcVideoTrack

Label stream video.

timeCost

int

Biaya waktu dalam milidetik.

onFirstAudioPacketReceivedWithUid

Callback ini dipanggil ketika paket audio pertama diterima.

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

Parameter

Parameter

Jenis

Deskripsi

uid

NSString *

ID pengguna.

videoTrack

AliRtcAudioTrack

Label stream audio.

timeCost

int

Biaya waktu dalam milidetik.

onFirstRemoteAudioDecodedWithUid

Terjadi ketika frame audio remote pertama didekodekan.

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

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *

ID pengguna.

track

AliRtcAudioTrack

Label stream audio.

elapsed

int

Waktu yang dibutuhkan dalam satuan milidetik.

onFirstRemoteVideoFrameDrawn

Callback ini dipanggil ketika frame video pertama dari pengguna remote dirender.

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

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *

ID pengguna.

videoTrack

AliRtcVideoTrack

Label stream audio.

width

int

Lebar.

height

int

Tinggi.

elapsed

int

Latensi total dalam milidetik antara pengguna lokal bergabung ke channel dan callback ini dipicu.

onFirstLocalVideoFrameDrawn

Pesan ini dipicu ketika pratinjau mulai menampilkan frame video pertama.

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

Parameter

Parameter

Tipe

Deskripsi

width

int

Lebar video pratinjau lokal.

height

int

Tinggi video pratinjau lokal.

elapsed

int

Latensi total dalam milidetik antara pengguna lokal bergabung ke channel dan callback ini dipicu.

onTestAudioVolumeCallback

Callback ini melaporkan volume audio selama pengujian pengambilan sebelum panggilan.

- (void)onTestAudioVolumeCallback:(int)volume;

Parameter

Parameter

Tipe

Deskripsi

volume

int

Volume. Rentang: [0..100].

onAudioAccompanyStateChanged

Callback yang dipanggil ketika status pemutaran akompanimen lokal berubah.

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

Parameter

Parameter

Tipe

Deskripsi

playState

AliRtcAudioAccompanyStateCode

Status pemutaran akompanimen.

errorCode

AliRtcAudioAccompanyErrorCode

Kode kesalahan.

onRemoteAudioAccompanyStarted

Callback ini dipicu ketika pengguna remote mulai memutar akompanimen musik.

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

Parameter

Parameter

Jenis

Deskripsi

uid

NSString *

ID pengguna.

onRemoteAudioAccompanyFinished

Callback ini dipanggil ketika pengguna remote selesai memutar akompanimen audio.

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

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *

ID pengguna.

setParameter

Mengatur parameter kustom.

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

Parameter

Parameter

Type

Deskripsi

param

String

Parameter kustom.

getParameter

Memeriksa parameter kustom.

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

Parameter

Parameter

Tipe

Deskripsi

param

String

Parameter kustom.

enableAudioFrameObserver

Mengonfigurasi pengaturan callback audio.

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

Metode ini mengaktifkan atau menonaktifkan callback untuk jenis data audio tertentu, memungkinkan pengembang mengambil frame audio mentah dan terkodekan. Secara default, callback ini dinonaktifkan. Untuk mengaktifkannya, panggil metode ini.

Catatan

Untuk mengaktifkan callback data audio untuk AliRtcAudioSource tertentu, Anda juga harus memanggil registerAudioFrameObserver untuk menentukan penerima data audio.

Kapan harus memanggil

Anda dapat memanggil metode ini untuk mengaktifkan pengambilan frame audio.

Parameter

Parameter

Tipe

Deskripsi

enable

bool

Menentukan apakah akan mengizinkan callback.

audioSource

AliRtcAudioSource

Jenis sumber data callback.

config

AliRtcAudioFrameObserverConfig

Pengaturan parameter callback.

registerAudioFrameObserver

Mendaftarkan callback audio.

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

Metode ini mendaftarkan objek yang menerima data callback audio.

Kapan harus memanggil

Anda dapat memanggil metode ini ketika aplikasi Anda memerlukan SDK untuk memicu callback onCapturedAudioFrame, onProcessCapturedAudioFrame, onPublishAudioFrame, onPlaybackAudioFrame, atau onRemoteUserAudioFrame guna mengambil data audio. Untuk membatalkan pendaftaran, panggil metode ini lagi dengan nil.

Batasan

Anda harus memanggil enableAudioFrameObserver untuk mengaktifkan callback untuk AliRtcAudioSource tertentu. Jika tidak, observer yang disediakan tidak akan menerima data.

Parameter

Parameter

Tipe

Deskripsi

observer

AliRtcAudioFrameDelegate

Callback audio.

registerVideoSampleObserver

Mendaftarkan objek yang digunakan untuk mengekspor data video.

- (void)registerVideoSampleObserver;

unRegisterVideoSampleObserver

Anda dapat membatalkan pendaftaran output data video.

- (void)unregisterVideoSampleObserver;

setLogDirPath

Mengatur jalur untuk menyimpan file log SDK.

Penting

Kami merekomendasikan agar Anda memanggil metode ini sebelum memanggil semua metode lainnya untuk menghindari kehilangan log. Sebelum memanggil metode ini, pastikan jalur yang ditentukan oleh parameter logDirPath ada dan file log dapat ditulis ke jalur tersebut.

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

Parameter

Nama

Jenis

Deskripsi

logDirPath

NSString *_Nullable

Jalur mutlak untuk menyimpan file log SDK.

  • Secara default, file log ARTC SDK untuk iOS disimpan di jalur Library/Caches/Ali_RTC_Log,

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

Deskripsi Pengembalian

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

setLogLevel

Mengatur tingkat log.

- (void)setLogLevel:(AliRtcLogLevel)logLevel;

Parameter

Nama

Tipe

Deskripsi

logLevel

AliRtcLogLevel

Tingkat log. Nilai default: AliRtcLogLevelInfo.

setAudioSessionOperationRestriction

Menentukan apakah SDK memiliki izin untuk mengontrol AVAudioSession.

- (int)setAudioSessionOperationRestriction:(AliRtcAudioSessionOperationRestriction)restriction;

Parameter

Nama

Type

Deskripsi

restriction

AliRtcAudioSessionOperationRestriction

Izin kontrol SDK. Nilai default: AliRtcAudioSessionOperationRestrictionNone.

setDeviceOrientationMode

Anda dapat mengatur orientasi perangkat.

- (int)setDeviceOrientationMode:(AliRtcOrientationMode)mode;

Parameter

Nama

Tipe

Deskripsi

mode

AliRtcOrientationMode

Orientasi perangkat.

Nilai kembali

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

getNetworkTime

Mengambil timestamp timeline.

-(long long)getNetworkTime;

Nilai kembali

Timestamp.

sendDataChannelMessage

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

SDK ARTC mendukung pengiriman dan penerimaan pesan kustom bersama dengan data audio dan video. Antarmuka ini memungkinkan Anda mengirim pesan real-time—seperti instruksi kontrol, data sinkronisasi, atau pesan bisnis—selama transmisi audio dan video. Untuk informasi lebih lanjut, lihat Pengiriman dan penerimaan pesan kustom.

Catatan
  • Saluran pesan kustom dinonaktifkan secara default. Untuk menggunakan fitur ini, Anda dapat memanggil API setParameter untuk mengaktifkan saluran pesan kustom dengan mengatur {"data":{"enablePubDataChannel":true,"enableSubDataChannel":true}}. Anda dapat mengaktifkannya sebelum atau setelah bergabung ke channel.

  • Pesan dapat berupa data apa saja—seperti teks.

Callback terkait

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

Batasan

  • Streamer dapat mengirim dan menerima pesan. Viewer hanya dapat menerima pesan.

  • Anda harus memanggil setParameter untuk mengaktifkan saluran pesan kustom.

  • Batasan transmisi data adalah:

    • Bitrate maksimum: 30 KB/s.

    • Maksimum 60 paket per detik. Setiap paket dibatasi hingga 1 KB.

Parameter

Nama

Tipe

Deskripsi

controlMsg

AliRtcDataChannelMsg *

Pesan kontrol akompanimen.

Nilai kembali

0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

startScreenShare

Anda dapat memulai berbagi layar dan stream audio.

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

Parameter

Nama

Deskripsi

appGroup

Nama paket aplikasi. Contoh: @"group.com.aliyun.rtc.demo"

mode

Jenis berbagi layar. Untuk informasi lebih lanjut, lihat AliRtcScreenShareMode.

Deskripsi Pengembalian

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

startScreenShare

Anda dapat memulai berbagi layar stream video.

Penting

Metode ini akan dihentikan. Kami merekomendasikan menggunakan startScreenShare (baru).

- (int)startScreenShare;

Deskripsi pengembalian

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

stopScreenShare

Menghentikan stream berbagi layar dan stream audio terkait.

- (int)stopScreenShare;

Deskripsi Pengembalian

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

isScreenSharePublished

Memeriksa apakah stream berbagi layar sedang diingest.

- (BOOL)isScreenSharePublished;

Deskripsi Pengembalian

true: Stream berbagi layar sedang diingest. false: Tidak ada stream berbagi layar yang sedang diingest.

setScreenShareEncoderConfiguration

Mengatur konfigurasi encoder berbagi layar.

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

Metode ini mengonfigurasi properti pengkodean video untuk berbagi layar, seperti resolusi, laju frame, bitrate, dan orientasi. Semua parameter memiliki rentang valid. Jika Anda menentukan nilai yang tidak valid, SDK secara otomatis menyesuaikannya menjadi nilai yang valid. Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel. Untuk mengonfigurasi pengkodean berbagi layar sekali per sesi, Anda dapat memanggilnya sebelum bergabung.

Parameter

Nama

Tipe

Deskripsi

config

AliRtcScreenShareEncoderConfiguration

Parameter pengkodean video berbagi layar, seperti resolusi, laju frame, bitrate, dan orientasi. Semua parameter memiliki rentang valid. Jika Anda menentukan nilai yang tidak valid, SDK secara otomatis menyesuaikannya.

setAudioShareAppVolume

Mengatur volume stream audio bersama.

- (int)setAudioShareAppVolume:(int)volume;

Parameter

Nama

Deskripsi

volume

Volume. Nilai valid: 0 hingga 100. Nilai default: 50.

Deskripsi Pengembalian

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

setGlobalEnvironment

Anda dapat mengatur lingkungan global.

- (BOOL) setGlobalEnvironment:(AlivcGlobalEnv)env;

Metode ini menentukan lingkungan runtime global SDK dan terutama menentukan ke mana log dan data instrumentasi dikirim.

  • Jika diatur ke daratan Tiongkok, log dan instrumentasi dikirim ke pusat data daratan Tiongkok.

  • Jika diatur ke luar Tiongkok, data diarahkan ke pusat data luar negeri (seperti Singapura).

Kapan Harus Menghubungi

Kami merekomendasikan memanggil ini pada awal inisialisasi aplikasi.

Batasan

  • Pengaturan ini berlaku secara global dan hanya memerlukan satu kali panggilan.

  • Panggilan berulang akan menimpa pengaturan lingkungan sebelumnya. Mengubah lingkungan secara dinamis dapat memengaruhi koneksi atau sesi yang sudah ada, sehingga jangan ubah saat proses berjalan.

Contoh Panggilan

var sdkEnv: AlivcGlobalEnv = .DEFAULT
let sdkEnvResult = AlivcBase.environmentManager.setGlobalEnvironment(self.sdkEnv)
"Set RTC environment to: \(sdkEnv) result: \(sdkEnvResult)".printLog()
AlivcGlobalEnv env = AlivcGlobalEnv_DEFAULT;
AlivcBase.EnvironmentManager.globalEnvironment = env;

Parameter

Parameter

Tipe

Deskripsi

env

AlivcGlobalEnv

Menentukan lingkungan global. Mendukung nilai enumerasi berikut:
ENV_DEFAULT: lingkungan di dalam Tiongkok.
ENV_SEA: lingkungan di luar Tiongkok, seperti Singapura.

Nilai kembali
Mengembalikan kode hasil int.

  • 0: Operasi berhasil.

  • Nilai selain 0 menunjukkan kegagalan.