全部产品
Search
文档中心

ApsaraVideo Live:Antarmuka AliRtcEngine

更新时间:Nov 18, 2025

Topik ini menjelaskan antarmuka SDK Windows ApsaraVideo Real-time Communication.

Daftar isi

API Dasar

API

Deskripsi

Create

Membuat instance singleton AliRtcEngine.

Destroy

Menghapus instans AliRtcEngine.

QueryInterface

Mendapatkan instans antarmuka fitur.

SetH5CompatibleMode

Menetapkan mode kompatibilitas H5.

GetH5CompatibleMode

Memeriksa apakah mode kompatibilitas H5 diaktifkan.

SetEngineEventListener

Menetapkan callback listener event.

GetSDKVersion

Mendapatkan nomor versi SDK saat ini.

API Saluran

API

Deskripsi

SetChannelProfile

Menetapkan profil saluran.

SetAudioProfile

Menetapkan profil audio.

IsAudioOnlyMode

Memeriksa apakah mode saat ini hanya audio.

SetAudioOnlyMode

Menetapkan mode ke hanya audio atau audio dan video.

JoinChannel[1/3]

Bergabung dengan saluran.

JoinChannel[2/3]

Bergabung dengan saluran.

JoinChannel[3/3]

Bergabung dengan saluran.

LeaveChannel

Keluar dari saluran.

IsInCall

Memeriksa apakah pengguna berada di saluran.

SetClientRole

Menetapkan peran pengguna.

GetClientRole

Mendapatkan peran pengguna.

RefreshAuthInfo[1/2]

Memperbarui informasi autentikasi.

RefreshAuthInfo[2/2]

Memperbarui informasi autentikasi.

API Publikasi dan Berlangganan

API

Deskripsi

PublishLocalAudioStream

Menetapkan apakah akan mempublikasikan aliran audio lokal. Secara default, aliran audio dipublikasikan.

IsLocalAudioStreamPublished

Memeriksa apakah aliran audio lokal dipublikasikan.

SetDefaultSubscribeAllRemoteAudioStreams

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

Panggil API ini sebelum Anda bergabung ke saluran.

SubscribeRemoteAudioStream

Menghentikan atau melanjutkan menarik aliran audio dari pengguna jarak jauh tertentu.

SubscribeAllRemoteAudioStreams

Menghentikan atau melanjutkan menerima semua aliran audio jarak jauh.

PublishLocalVideoStream[1/2]

Menetapkan apakah akan mempublikasikan aliran video lokal.

PublishLocalVideoStream[2/2]

IsLocalVideoStreamPublished

Memeriksa apakah aliran video lokal dipublikasikan.

SetDefaultSubscribeAllRemoteVideoStreams

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

Panggil API ini sebelum Anda bergabung ke saluran.

SubscribeRemoteVideoStream

Menghentikan atau melanjutkan berlangganan aliran video dari pengguna jarak jauh.

SubscribeAllRemoteVideoStreams

Menghentikan atau melanjutkan menerima semua aliran video jarak jauh.

SubscribeRemoteMediaStream[1/2]

Menghentikan atau melanjutkan berlangganan aliran media dari pengguna jarak jauh tertentu.

Gunakan API ini ketika Anda perlu mengontrol aliran audio dan video pengguna tersebut.

SubscribeRemoteMediaStream[2/2]

Menghentikan atau melanjutkan berlangganan aliran media dari pengguna jarak jauh tertentu.

Gunakan API ini ketika Anda perlu mengontrol aliran audio dan video pengguna tersebut.

SubscribeRemoteDestChannelStream

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

SetRemoteAudioVolume

Menyesuaikan volume pemutaran lokal pengguna jarak jauh tertentu.

API Manajemen Perangkat Audio

API

Deskripsi

MuteLocalMic

Mematikan atau mengaktifkan kembali aliran audio lokal.

MuteRemoteAudio

Menghentikan atau melanjutkan memutar aliran audio jarak jauh.

MuteAllRemoteAudio

Menghentikan atau melanjutkan memutar semua aliran audio jarak jauh.

StartAudioCapture[1/2]

Memulai penangkapan audio.

StartAudioCapture[2/2]

Memulai penangkapan audio.

StopAudioCapture

Menghentikan penangkapan audio.

EnableAudioVolumeIndication

Mengaktifkan fitur deteksi volume.

StartAudioPlayer

Memulai perangkat pemutaran audio.

StopAudioPlayer

Menghentikan pemutaran audio.

SetPlayoutVolume

Menetapkan volume pemutaran.

SetRecordingVolume

Menetapkan volume perekaman.

PlayAudioFileTest

Memainkan file audio.

StopAudioFileTest

Menghentikan pemutaran file audio.

StartAudioCaptureTest

Memulai tes penangkapan audio sebelum panggilan.

StopAudioCaptureTest

Menghentikan tes penangkapan audio.

EnableSystemAudioRecording

Mengaktifkan atau menonaktifkan publikasi audio sistem.

IsSystemAudioRecording

Memeriksa apakah audio sistem sedang dipublikasikan.

SetSystemAudioRecordingVolume

Menetapkan volume audio sistem yang dipublikasikan.

GetSystemAudioRecordingVolume

Mendapatkan volume audio sistem yang dipublikasikan.

SetSystemAudioPlayoutVolume

Menetapkan volume pemutaran audio sistem.

GetSystemAudioPlayoutVolume

Mendapatkan volume pemutaran audio sistem saat ini.

GetAudioCaptureList

Mendapatkan daftar perangkat penangkapan audio.

GetCurrentAudioCaptureName

Mendapatkan nama perangkat penangkapan audio saat ini.

GetCurrentAudioCaptureID

Mendapatkan ID perangkat penangkapan audio saat ini.

SetCurrentAudioCaptureName

Menetapkan perangkat penangkapan audio saat ini berdasarkan namanya.

SetCurrentAudioCaptureID

Menetapkan perangkat penangkapan audio saat ini berdasarkan ID-nya.

GetAudioPlayerList

Mendapatkan daftar perangkat pemutaran audio.

GetSystemRecordAudioPlayerList

Mendapatkan daftar perangkat pemutaran audio sistem.

GetCurrentAudioPlayerName

Mendapatkan nama perangkat pemutaran audio saat ini.

GetCurrentAudioPlayerID

Mendapatkan ID perangkat pemutaran audio saat ini.

SetCurrentAudioPlayerName

Menetapkan perangkat pemutaran saat ini berdasarkan namanya.

SetCurrentAudioPlayerID

Menetapkan perangkat pemutaran saat ini berdasarkan ID-nya.

SetRecordingDeviceVolume

Menetapkan volume perangkat penangkapan audio.

GetRecordingDeviceVolume

Mendapatkan volume perangkat penangkapan audio.

SetPlaybackDeviceVolume

Menetapkan volume perangkat pemutaran audio.

GetPlaybackDeviceVolume

Mendapatkan volume perangkat pemutaran audio.

SetRecordingDeviceMute

Menetapkan status bisu perangkat penangkapan audio.

GetRecordingDeviceMute

Mendapatkan status bisu perangkat penangkapan audio.

SetPlaybackDeviceMute

Menetapkan status bisu perangkat pemutaran audio.

GetPlaybackDeviceMute

Mendapatkan status bisu perangkat pemutaran audio.

Pengubahan Suara dan Gema Audio

API

Deskripsi

SetAudioEffectVoiceChangerMode

Menetapkan mode pengubah suara.

SetAudioEffectPitchValue

Menetapkan parameter pitch.

SetAudioEffectReverbMode

Menetapkan mode efek gema.

SetAudioEffectReverbParamType

Menetapkan jenis dan parameter efek gema.

Input audio kustom

API

Deskripsi

AddExternalAudioStream

Menambahkan aliran audio eksternal.

PushExternalAudioStreamRawData

Memasukkan data aliran audio eksternal.

SetExternalAudioStreamPublishVolume

Menetapkan volume ingest aliran.

GetExternalAudioStreamPublishVolume

Mendapatkan volume ingest aliran.

SetExternalAudioStreamPlayoutVolume

Menetapkan volume pemutaran aliran audio eksternal.

GetExternalAudioStreamPlayoutVolume

Mendapatkan volume pemutaran aliran audio eksternal.

RemoveExternalAudioStream

Menghapus aliran audio eksternal.

Pendampingan audio

API

Deskripsi

GetAudioFileInfo

Mendapatkan informasi file audio.

StartAudioAccompany

Memulai pencampuran akompanimen audio.

StopAudioAccompany

Menghentikan pencampuran akompanimen audio.

SetAudioAccompanyVolume

Menetapkan volume akompanimen audio.

SetAudioAccompanyPublishVolume

Menetapkan volume ingest aliran akompanimen audio.

GetAudioAccompanyPublishVolume

Mendapatkan volume ingest aliran akompanimen audio.

SetAudioAccompanyPlayoutVolume

Menetapkan volume pemutaran lokal akompanimen audio.

GetAudioAccompanyPlayoutVolume

Mendapatkan volume pemutaran lokal akompanimen audio.

PauseAudioAccompany

Menjeda pencampuran akompanimen audio.

ResumeAudioAccompany

Melanjutkan pencampuran akompanimen audio.

GetAudioAccompanyDuration

Mendapatkan durasi file akompanimen audio dalam milidetik.

GetAudioAccompanyCurrentPosition

Mendapatkan progres pemutaran file akompanimen audio dalam milidetik.

SetAudioAccompanyPosition

Menetapkan posisi pemutaran file akompanimen audio.

File efek suara

API

Deskripsi

PreloadAudioEffect

Memuat terlebih dahulu file efek suara.

UnloadAudioEffect

Membongkar file efek suara yang telah dimuat sebelumnya.

PlayAudioEffect

Memutar efek suara.

StopAudioEffect

Menghentikan pemutaran efek suara.

StopAllAudioEffects

Menghentikan pemutaran semua efek suara.

PauseAudioEffect

Membekukan efek suara.

PauseAllAudioEffects

Membekukan semua efek suara.

ResumeAudioEffect

Melanjutkan efek suara tertentu.

ResumeAllAudioEffects

Melanjutkan semua efek suara.

SetAudioEffectPublishVolume

Menetapkan volume publikasi efek suara.

GetAudioEffectPublishVolume

Mendapatkan volume publikasi efek suara.

SetAllAudioEffectsPublishVolume

Menetapkan volume publikasi semua efek suara.

SetAudioEffectPlayoutVolume

Menetapkan volume pemutaran efek suara.

GetAudioEffectPlayoutVolume

Mendapatkan volume pemutaran efek suara.

SetAllAudioEffectsPlayoutVolume

Menetapkan volume pemutaran semua efek suara.

API untuk manajemen perangkat video

API

Deskripsi

SetLocalViewConfig

Menetapkan jendela rendering dan parameter gambar untuk pratinjau lokal.

SetCameraCapturerConfiguration

Menetapkan preferensi penangkapan kamera.

EnableLocalVideo

Menonaktifkan atau mengaktifkan kembali penangkapan video lokal.

MuteLocalCamera

Menetapkan apakah akan berhenti mempublikasikan aliran video lokal.

SetRemoteViewConfig

Menetapkan jendela rendering dan parameter gambar untuk video jarak jauh.

IsCameraOn

Memeriksa apakah kamera menyala.

SetVideoEncoderConfiguration

Menetapkan properti pengkodean video.

SetVideoDecoderConfiguration

Menetapkan properti dekoding video.

StartPreview

Memulai pratinjau lokal.

StopPreview

Menghentikan pratinjau lokal.

setVideoMirrorMode

Menetapkan mode pencerminan untuk pratinjau dan ingest aliran.

SetCapturePipelineScaleMode

Menetapkan mode penskalaan penangkapan untuk menentukan apakah video diskalakan saat penangkapan atau selama pengkodean.

GetCameraList

Mendapatkan daftar kamera yang tersedia.

GetCurrentCameraName

Mendapatkan nama kamera saat ini.

GetCurrentCameraID

Mendapatkan ID kamera saat ini.

SetCurrentCameraName

Menetapkan kamera dengan nama tertentu sebagai kamera saat ini.

SetCurrentCameraID

Menetapkan kamera dengan ID tertentu sebagai kamera saat ini.

GetCurrentCameraSupportedResolutionList

Mendapatkan daftar resolusi yang didukung oleh kamera saat ini.

Konfigurasi callback data video

API

Deskripsi

RegisterVideoSampleObserver

Mendaftarkan objek callback data video.

UnRegisterVideoSampleObserver

Membatalkan pendaftaran objek callback data video.

SnapshotVideo

Mengambil tangkapan layar video.

Konfigurasi callback data audio

API

Deskripsi

RegisterAudioFrameObserver

Mendaftarkan callback data audio.

UnRegisterAudioFrameObserver

Membatalkan pendaftaran callback data audio.

EnableAudioFrameObserver

Menetapkan parameter callback audio.

Masukan video kustom

API

Deskripsi

SetExternalVideoSource

Mengaktifkan sumber masukan video eksternal.

PushExternalVideoFrame

Memasukkan data video.

Antarmuka Dasar

API

Deskripsi fitur

StartScreenShareByDesktopId

Memulai berbagi aliran layar untuk ID desktop tertentu.

StartScreenShareByScreenRegion

Memulai berbagi aliran video dari wilayah layar tertentu.

StartScreenShareByWindowId

Berbagi dan mendorong aliran video, menggunakan jendela yang ditentukan oleh ID-nya sebagai sumber video.

StopScreenShare

Menghentikan berbagi layar.

ResumeScreenShare

Melanjutkan berbagi layar.

PauseScreenShare

Menghentikan sementara berbagi layar.

IsScreenSharePublished

Memeriksa apakah berbagi layar dipublikasikan.

UpdateScreenShareConfig

Memperbarui konfigurasi berbagi layar.

CheckWindowSourceValid

Memeriksa apakah jendela untuk ID jendela berbagi valid.

GetScreenShareConfig

Mengembalikan konfigurasi berbagi layar saat ini.

GetScreenShareSourceInfo

Mengambil daftar objek dari sumber tertentu.

GetCurrentScreenShareSourceId

Mendapatkan ID sumber berbagi layar saat ini.

GetCurrentScreenShareSourceType

Mengambil daftar objek dari sumber tertentu.

GetDesktopRegion

Mendapatkan cakupan berbagi layar untuk ID sumber dan judul sumber tertentu.

SetScreenShareEncoderConfiguration

Menetapkan properti pengkodean video untuk aliran layar.

Antarmuka terkait saluran

API

Deskripsi fitur

StartPublishLiveStream

Memulai aliran langsung bypass.

UpdatePublishLiveStream

Memperbarui parameter aliran langsung bypass.

StopPublishLiveStream

Menghentikan aliran langsung bypass.

GetPublishLiveStreamState

Mendapatkan status aliran langsung bypass.

StartLastmileDetect

Menyelidiki kualitas jaringan sebelum panggilan dimulai.

StopLastmileDetect

Menghentikan penyelidikan kualitas jaringan sebelum panggilan.

API penyelidikan kualitas jaringan

API

Deskripsi

StartLastmileDetect

Memulai penyelidikan kualitas jaringan sebelum panggilan.

StopLastmileDetect

Menghentikan probe kualitas jaringan pra-panggilan.

SEI

API

Deskripsi

SendMediaExtensionMsg

Mengirim pesan ekstensi media. Fitur ini diimplementasikan secara internal menggunakan Supplemental Enhancement Information (SEI).

SendMediaExtensionMsgEx

Mengirim pesan ekstensi media yang diperluas. Fitur ini diimplementasikan secara internal menggunakan SEI.

API Lainnya

API

Deskripsi

SetParameter

Menetapkan parameter kustom.

GetParameter

Mendapatkan parameter kustom.

SetLogDirPath

Menetapkan jalur untuk file log SDK.

SetLogLevel

Menetapkan tingkat log.

GetNetworkTime

Mendapatkan waktu linimasa.

SendDataChannelMessage

Mengirim pesan saluran data.

Antarmuka Publikasi dan Berlangganan

AliEngineEventListener

API

Deskripsi

OnConnectionStatusChange

Callback untuk status koneksi jaringan. Anda harus menangani callback ini.

OnLocalDeviceException

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

OnAuthInfoWillExpire

Callback untuk memberi tahu bahwa informasi autentikasi pengguna akan kedaluwarsa dalam 30 detik. Anda harus menangani callback ini.

OnAuthInfoExpired

Callback untuk saat server melaporkan bahwa informasi autentikasi telah kedaluwarsa selama pemanggilan API.

OnJoinChannelResult

Callback untuk hasil bergabung dengan saluran.

OnLeaveChannelResult

Callback untuk hasil meninggalkan saluran.

OnRemoteUserOffLineNotify

Notifikasi bahwa pengguna jarak jauh telah offline.

OnRemoteUserOnLineNotify

Notifikasi bahwa pengguna jarak jauh telah online.

OnRemoteTrackAvailableNotify

Pemberitahuan bahwa track jarak jauh tersedia untuk berlangganan.

OnBye

Pesan bahwa Anda telah dihapus dari saluran oleh server atau saluran telah berakhir.

OnAudioPublishStateChanged

Pemberitahuan perubahan status publikasi audio.

OnAudioSubscribeStateChanged

Pemberitahuan perubahan status berlangganan audio.

OnUserAudioMuted

Pemberitahuan bahwa pengguna jarak jauh telah membisukan audio mereka.

OnUserAudioInterruptedBegin

Notifikasi bahwa gangguan perangkat audio telah dimulai.

OnUserAudioInterruptedEnded

Notifikasi bahwa gangguan perangkat audio telah berakhir.

OnVideoPublishStateChanged

Callback untuk perubahan status publikasi video.

OnVideoSubscribeStateChanged

Callback untuk perubahan status berlangganan aliran kamera.

OnUserVideoMuted

Pemberitahuan bahwa pengguna jarak jauh mengirim frame video hitam.

OnUserVideoEnabled

Pemberitahuan bahwa pengguna jarak jauh telah berhenti menangkap aliran kamera mereka.

OnUserWillResignActive

Callback untuk saat aplikasi pengguna jarak jauh berpindah ke latar belakang.

OnUserWillBecomeActive

Callback untuk saat aplikasi pengguna jarak jauh kembali ke latar depan.

OnAudioEffectFinished

Callback untuk saat pemutaran efek suara lokal selesai.

OnAudioVolumeCallback

Callback yang menyediakan volume, status aktivitas suara, dan UID dari aliran audio yang berlangganan.

OnActiveSpeaker

Callback untuk deteksi aktivitas suara. Ini dipicu saat pembicara aktif terdeteksi.

OnPublishLiveStreamStateChanged

Callback untuk perubahan status streaming langsung CDN.

OnPublishTaskStateChanged

Callback untuk perubahan status tugas streaming langsung CDN.

OnNetworkQualityChanged

Callback untuk perubahan kualitas jaringan.

OnLastmileDetectResultWithQuality

Callback untuk penyelidikan kualitas jaringan sebelum panggilan. Callback ini dipicu sekitar 3 detik setelah penyelidikan dimulai.

OnLastmileDetectResultWithBandWidth

Callback untuk hasil penyelidikan kualitas jaringan sebelum panggilan. Callback ini dipicu sekitar 30 detik setelah penyelidikan dimulai.

OnOccurError

Callback untuk memberi tahu aplikasi saat terjadi kesalahan di mesin.

OnFirstAudioPacketSend

Callback untuk saat paket audio pertama dikirim.

OnFirstAudioPacketReceived

Callback untuk saat paket audio pertama diterima.

OnFirstVideoPacketSend

Callback untuk saat paket video pertama dikirim.

OnFirstVideoPacketReceived

Callback untuk saat paket video pertama diterima.

OnFirstRemoteAudioDecoded

Callback untuk saat frame audio jarak jauh pertama didekodekan.

OnFirstRemoteVideoFrameDrawn

Callback untuk saat frame video pertama dari pengguna jarak jauh dirender.

OnFirstLocalVideoFrameDrawn

Callback untuk saat frame pertama pratinjau video lokal dirender.

OnTestAudioVolumeCallback

Callback yang menyediakan volume audio selama uji penangkapan audio sebelum panggilan.

OnAudioAccompanyStateChanged

Callback untuk perubahan status pemutaran akompanimen audio lokal.

OnAudioFileInfo

Callback yang menyediakan informasi file audio.

OnRemoteAudioAccompanyStarted

Callback untuk saat pengguna jarak jauh memulai pemutaran akompanimen audio.

OnRemoteAudioAccompanyFinished

Callback untuk saat pengguna jarak jauh menyelesaikan pemutaran akompanimen audio.

OnStats

Callback yang menyediakan statistik real-time. Ini dipicu setiap 2 detik.

OnLocalVideoStats

Callback yang menyediakan statistik video lokal. Ini dipicu setiap 2 detik.

OnRemoteVideoStats

Callback yang menyediakan statistik video jarak jauh. Ini dipicu setiap 2 detik.

OnLocalAudioStats

Callback yang menyediakan statistik audio lokal. Ini dipicu setiap 2 detik.

OnRemoteAudioStats

Callback yang menyediakan statistik audio jarak jauh. Ini dipicu setiap 2 detik.

OnMediaExtensionMsgReceived

Callback untuk saat pesan ekstensi media diterima.

OnSnapshotComplete

Callback untuk hasil Snapshot.

OnLocalAudioStateChange

Callback untuk perubahan status perangkat audio lokal.

onLocalVideoStateChanged

Callback untuk perubahan status perangkat video lokal.

OnRemoteUserSubscribedDataChannel

Callback untuk memberi tahu bahwa Anda dapat mulai mengirim pesan saluran data.

OnDataChannelMessage

Callback untuk saat pesan saluran data diterima.

IAudioFrameObserver

API

Deskripsi

OnCapturedAudioFrame

Callback untuk data mentah yang ditangkap.

OnProcessCapturedAudioFrame

Callback untuk data setelah pemrosesan 3A.

OnPublishAudioFrame

Callback untuk data ingest aliran.

OnPlaybackAudioFrame

Callback untuk data pemutaran.

OnRemoteUserAudioFrame

Callback untuk data penarikan aliran jarak jauh.

IVideoFrameObserver

API

Deskripsi

OnCaptureVideoSample

Callback untuk data video yang ditangkap secara lokal.

OnPreEncodeVideoSample

Callback untuk data video lokal sebelum pengkodean.

OnRemoteVideoSample

Callback untuk data video jarak jauh.

GetVideoAlignment

Penyelarasan lebar video keluaran.

GetObservedFramePosition

Isi data video keluaran.

AliEngineDestroyCompletionCallback

API

Deskripsi

onDestroyCompletion

Callback yang dijalankan saat operasi penghancuran selesai.

Detail API

Create

Membuat instans AliRtcEngine.

static AliEngine *Create(const char *extras);

Kapan harus memanggil

Panggil metode ini untuk membuat instance AliRtcEngine sebelum memanggil API lain dari kit pengembangan perangkat lunak (SDK) Alibaba Real-Time Communication (ARTC).

Batasan

SDK hanya mendukung pembuatan satu instance AliRtcEngine per aplikasi.

Parameter

Nama

Tipe

Deskripsi

extras

const char *

Menerima parameter untuk rilis grayscale. Anda dapat menggunakan Konfigurasi JSON untuk mengonfigurasi fitur khusus SDK. Ini bisa berupa string kosong.

Nilai kembali

Mengembalikan instance singleton dari kelas AliEngine.

Hancurkan

Menghapus instans AliRtcEngine.

static void Destroy(AliEngineDestroyCompletionCallback *callback = nullptr);

Menghancurkan objek singleton AliRtcEngine. Setelah memanggil metode ini, semua sumber daya internal dilepaskan. Anda tidak dapat lagi menggunakan metode atau callback lain dari AliRtcEngine. Untuk menggunakannya kembali, Anda harus memanggil Create untuk membuat instance baru.

Catatan

Metode ini merupakan pemanggilan asinkron yang menyediakan callback agar Anda dapat memantau kapan operasi penghancuran selesai. Anda hanya dapat membuat instance baru setelah menerima callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#TUn2z" id="14c93d2e8bamj">onDestroyCompletion</a>, karena operasi penghancuran belum selesai hingga callback tersebut diterima.

Kapan harus memanggil

Panggil metode ini untuk melepaskan instance setelah menyelesaikan sesi Komunikasi Real-Time.

Batasan

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

Parameter

Parameter

Tipe

Deskripsi

callback

AliEngineDestroyCompletionCallback

Callback untuk saat operasi penghancuran selesai.

QueryInterface

Mendapatkan instance antarmuka fitur.

virtual int QueryInterface(AliEngineInterfaceIdType iid, void** pInterface) = 0;

Metode ini mendapatkan instance antarmuka fitur tertentu. Saat mengembangkan aplikasi audio dan video di Windows, banyak fitur lanjutan disediakan melalui kelas antarmuka yang sesuai, seperti manajemen perangkat audio (AliEngineInterfaceAudioDeviceManager), manajemen perangkat video (AliEngineInterfaceVideoDeviceManager), dan mesin media (AliEngineInterfaceMediaEngine). Sebelum memanggil metode terkait, Anda harus menggunakan metode QueryInterface untuk mendapatkan instance antarmuka ini.

Catatan

Setelah menggunakan instance antarmuka, panggil metode Release dari antarmuka yang sesuai untuk melepaskan sumber daya dan mencegah kebocoran memori.

Parameter

Nama

Tipe

Deskripsi

iid

AliEngineInterfaceIdType

Jenis antarmuka fitur. Ini memberi tahu SDK jenis instance antarmuka yang akan didapatkan.

  • AliEngineInterfaceAudioDeviceManager: Jika panggilan berhasil, pInterface mengembalikan objek IAliEngineAudioDeviceManager.

  • AliEngineInterfaceVideoDeviceManager: Jika panggilan berhasil, pInterface mengembalikan objek IAliEngineVideoDeviceManager.

  • AliEngineInterfaceMediaEngine: Jika panggilan berhasil, pInterface mengembalikan objek IAliEngineMediaEngine.

pInterface

void**

Mengembalikan instance jenis antarmuka yang ditentukan. Contoh: AliEngineInterfaceMediaEngine* mediaEngine = nullptr;

Berikan (void**)&mediaEngine.

Nilai pengembalian

  • 0: Panggilan berhasil.

  • <0: Panggilan gagal.

SetH5CompatibleMode

Menetapkan apakah akan mengaktifkan mode kompatibilitas H5.

static void SetH5CompatibleMode(bool comp);

Parameter

Nama

Tipe

Deskripsi

comp

bool

  • true: Mengaktifkan kompatibilitas H5.

  • false: Menonaktifkan kompatibilitas H5. Nilai default adalah false.

Catatan

Versi saat ini tidak mendukung perubahan mode kompatibilitas H5 setelah instans AliRtcEngine dibuat. Anda harus memanggil metode ini sebelum membuat instans.

GetH5CompatibleMode

Memeriksa apakah mode kompatibilitas H5 diaktifkan.

static bool GetH5CompatibleMode();

Nilai kembali

Mengembalikan true jika kompatibilitas H5 diaktifkan; false jika tidak diaktifkan.

SetEngineEventListener

Menetapkan listener event.

virtual int SetEngineEventListener(AliEngineEventListener *listener) = 0;

Metode ini menetapkan listener callback untuk SDK. Dengan menetapkan listener ini, Anda dapat menerima berbagai notifikasi event dari mesin, seperti pengguna yang bergabung atau meninggalkan saluran, perubahan status jaringan, dan status aliran audio/video.

Anda perlu mengimplementasikan kelas AliEngineEventListener untuk menyesuaikan metode event yang ingin Anda dengarkan. Secara default, semua antarmuka memiliki implementasi kosong. Anda tidak perlu mengimplementasikan semua metode, cukup sesuai kebutuhan bisnis Anda.

Catatan
  • Semua metode callback dijalankan di thread internal SDK. Jangan melakukan operasi antarmuka pengguna (UI) di thread ini. Jika diperlukan operasi UI, kirimkan ke thread utama. Jangan memanggil metode ini di dalam metode callback.

  • Jangan melakukan operasi yang memakan waktu di metode callback, seperti memanggil metode Destroy dari AliEngine. Hal ini dapat menyebabkan pemblokiran yang tidak perlu dan memengaruhi kinerja SDK.

Panggilan balik terkait

Jika terjadi pengecualian selama runtime, SDK pertama-tama mencoba memulihkan secara otomatis. Untuk kesalahan yang tidak dapat diselesaikan secara internal, SDK memberi tahu aplikasi Anda melalui antarmuka callback yang telah ditentukan. Berikut adalah callback utama untuk masalah yang tidak dapat ditangani SDK dan memerlukan pendengaran serta respons dari lapisan aplikasi:

Penyebab pengecualian

Panggilan balik dan parameter

Solusi

Deskripsi

Otentikasi gagal

Hasil dalam callback OnJoinChannelResult mengembalikan AliRtcErrJoinBadToken.

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

Saat pengguna memanggil API, jika autentikasi gagal, sistem mengembalikan pesan kesalahan autentikasi di callback API.

Konektivitas jaringan abnormal

Callback OnConnectionStatusChange mengembalikan AliRtcConnectionStatusFailed.

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

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

Perangkat lokal abnormal

OnLocalDeviceException

Jika pengecualian ini terjadi, aplikasi perlu memeriksa apakah izin dan perangkat keras normal.

Layanan Komunikasi Real-Time (RTC) mendukung deteksi perangkat dan diagnosis pengecualian. Saat perangkat lokal menjadi abnormal, layanan RTC memberi tahu klien melalui callback. Jika SDK tidak dapat menyelesaikan masalah sendiri, aplikasi perlu campur tangan untuk memeriksa apakah perangkat normal.

Dikeluarkan dari saluran

OnBye

  • AliRtcOnByeUserReplaced: Jika pengecualian ini terjadi, periksa apakah UID pengguna sama.

  • AliRtcOnByeBeKickedOut: Jika pengecualian ini terjadi, berarti pengguna dikeluarkan oleh layanan. Pengguna perlu bergabung kembali ke saluran.

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

Layanan RTC menyediakan fitur bagi administrator untuk secara aktif menghapus peserta.

Autentikasi akan segera kedaluwarsa

OnWillAuthInfoExpire

Jika penyimpangan ini terjadi, aplikasi perlu mendapatkan informasi otentikasi terbaru dan kemudian memanggil refreshAuthInfo untuk menyegarkannya.

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

Otentikasi kedaluwarsa

OnAuthInfoExpired

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

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

Parameter

Nama

Tipe

Deskripsi

listener

AliEngineEventListener*

Listener event mesin. Anda perlu mengimplementasikan kelas AliEngineEventListener dan menimpa callback event yang ingin Anda dengarkan. Jika Anda menetapkannya ke nullptr, semua listener event dibatalkan.

Nilai kembali

  • 0: Sukses.

  • Nilai bukan nol: Gagal. Kegagalan mungkin karena parameter listener tidak valid atau SDK tidak diinisialisasi dengan benar.

GetSDKVersion

Menanyakan versi SDK saat ini.

static const char *GetSDKVersion();

Nilai kembali

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

SetChannelProfile

Menetapkan mode saluran.

virtual int SetChannelProfile(const AliEngineChannelProfile channelProfile) = 0;

Metode ini menetapkan mode saluran. Saat ini tersedia dua skenario: panggilan video dan streaming interaktif:

  • Mode panggilan video: Semua pengguna memiliki peran streamer dan dapat melakukan ingest aliran dan penarikan aliran.

  • Mode streaming interaktif: Anda perlu memanggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#c99c2b257dd8o" id="4e50f781a01e1">SetClientRole</a> untuk menetapkan peran pengguna. Untuk pengguna yang melakukan ingest aliran di saluran, tetapkan peran mereka ke streamer (AliRTCSdkInteractive). Jika pengguna hanya melakukan penarikan aliran, tetapkan peran mereka ke viewer (AliRTCSdkLive). Mode ini direkomendasikan untuk skenario RTC.

Catatan
  • Kami merekomendasikan menggunakan mode streaming interaktif untuk semua skenario RTC, yaitu memanggil metode ini dan menetapkan mode ke AliEngineInteractiveLive.

  • Pengguna dalam saluran yang sama harus menggunakan skenario saluran yang sama.

Kapan harus memanggil

Anda hanya dapat memanggil metode ini sebelum bergabung ke saluran. Metode ini tidak dapat diatur ulang saat berada di saluran. Anda dapat mengaturnya ulang setelah meninggalkan saluran.

Parameter

Nama

Tipe

Deskripsi

profile

AliEngineChannelProfile

Jenis saluran. Untuk skenario RTC, kami merekomendasikan menetapkannya ke AliEngineInteractiveLive, yaitu mode streaming interaktif.

Nilai kembali

  • 0: Pemanggilan metode berhasil.

  • Nilai lainnya: Pemanggilan metode gagal.

    • -1: SDK belum diinisialisasi atau telah dihapus.

SetAudioProfile

Menetapkan profil audio.

virtual int SetAudioProfile(int audioProfile, int audioScene) = 0;

Metode ini menetapkan mode pengkodean audio dan mode skenario audio. Untuk informasi lebih lanjut, lihat Operasi dan konfigurasi audio umum. SDK ARTC menggunakan mode berkualitas tinggi (AliEngineHighQualityMode) dan mode skenario musik (AliEngineSceneMusicMode) secara default. Jika pengaturan default tidak memenuhi kebutuhan Anda, panggil metode ini untuk mengonfigurasinya.

Kapan harus memanggil

Anda hanya dapat memanggil metode ini sebelum bergabung ke saluran. Metode ini tidak dapat diatur ulang setelah bergabung ke saluran. Anda dapat mengaturnya ulang setelah meninggalkan saluran.

Parameter

Nama

Tipe

Deskripsi

audio_profile

AliEngineAudioProfile

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

Catatan

Untuk interoperabilitas dengan klien web, tetapkan laju sampel ke 48k.

  • AliEngineLowQualityMode: Mode audio berkualitas rendah. Laju sampel default adalah 8000 Hz, saluran suara tunggal, dan bitrate pengkodean maksimum adalah 12 kbps.

  • AliEngineBasicQualityMode: Mode audio berkualitas standar. Laju sampel default adalah 16000 Hz, saluran suara tunggal, dan bitrate pengkodean maksimum adalah 24 kbps.

  • AliEngineHighQualityMode: Laju sampel default adalah 48000 Hz, saluran suara tunggal, dan bitrate pengkodean maksimum adalah 64 kbps.

  • AliEngineStereoHighQualityMode: Mode audio berkualitas tinggi stereo. Laju sampel default adalah 48000 Hz, saluran suara ganda, dan bitrate pengkodean maksimum adalah 80 kbps.

  • AliEngineSuperHighQualityMode: Mode audio berkualitas super tinggi. Laju sampel default adalah 48000 Hz, saluran suara tunggal, dan bitrate pengkodean maksimum adalah 96 kbps.

  • AliEngineStereoSuperHighQualityMode: Mode audio berkualitas super tinggi stereo. Laju sampel default adalah 48000 Hz, saluran suara ganda, dan bitrate pengkodean maksimum adalah 128 kbps.

audio_scene

AliEngineAudioScenario

Parameter mode skenario audio. Terutama mencakup:

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

  • AliEngineSceneDefaultMode: Menggunakan 3A perangkat keras dan dapat menangkap dari perangkat Bluetooth.

Nilai kembali

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

IsAudioOnlyMode

Memeriksa apakah mode saat ini hanya audio.

virtual bool IsAudioOnlyMode() = 0;

Nilai kembali

true menunjukkan mode hanya audio; false menunjukkan mode audio dan video.

SetAudioOnlyMode

Menetapkan mode ke hanya audio atau audio dan video.

virtual int SetAudioOnlyMode(bool audioOnly) = 0;

Parameter

Nama

Tipe

Deskripsi

audioOnly

bool

  • true: Hanya audio yang diingest dan ditarik.

  • false: Audio dan video didukung. Nilai default adalah false.

Nilai kembali

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

JoinChannel[1/3]

Masuk ke saluran.

virtual int JoinChannel(const char *token, const char *channelId, const char *userId, const char *userName) = 0;

Metode ini bergabung ke saluran. ARTC mengatur pengguna berdasarkan saluran. Pengguna harus bergabung ke saluran untuk mempublikasikan atau berlangganan aliran audio dan video. Metode ini, JoinChannel[2/3], dan JoinChannel[3/3] semuanya dapat digunakan untuk bergabung ke saluran. Mereka berbeda dalam metode autentikasi dan informasi pengguna yang dilewatkan, seperti dijelaskan di bawah ini:

  • Metode ini untuk bergabung dengan parameter tunggal. Lewatkan token yang dihasilkan untuk bergabung dengan parameter tunggal menggunakan Autentikasi Token untuk bergabung ke saluran. Kami merekomendasikan menggunakan metode ini untuk bergabung ke saluran dalam skenario RTC.

  • JoinChannel[2/3] untuk bergabung dengan parameter ganda. Anda perlu melewati token yang dihasilkan untuk bergabung dengan parameter ganda menggunakan Autentikasi Token, dan juga melewati informasi pengguna yang digunakan untuk menghasilkan token.

  • JoinChannel[3/3] untuk skenario interaksi real-time AI. Lewatkan token bergabung dengan parameter tunggal dan tetapkan properti pengguna capabilityProfile berdasarkan skenario.

Catatan

Secara default, saat Anda bergabung ke saluran, Anda berlangganan ke aliran audio dan video semua pengguna lain di saluran dan mendorong aliran audio dan video Anda ke pengguna jarak jauh. Jika Anda ingin menonaktifkan langganan default, panggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="00e50070ba5ck">SetDefaultSubscribeAllRemoteAudioStreams</a> dan <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="0b0bcff091gtk">SetDefaultSubscribeAllRemoteVideoStreams</a> sebelum memanggil API ini untuk menonaktifkan langganan ke aliran audio atau video.

Kapan harus dipanggil

Panggil metode ini setelah membuat mesin.

Batasan

  • Setelah berhasil bergabung ke saluran, jika Anda ingin beralih ke saluran yang berbeda, Anda harus terlebih dahulu memanggil LeaveChannel untuk meninggalkan saluran saat ini. Anda hanya dapat bergabung ke saluran baru setelah menerima callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#b70203f9ea0mz" id="b2522e57e4vom">OnLeaveChannelResult</a>.

  • Metode ini hanya mendukung bergabung ke satu saluran sekaligus.

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

  • Jangan panggil metode ini untuk mencoba kembali jika gagal masuk ke saluran.

Callback terkait

Pemanggilan sukses metode ini memicu callback berikut:

  • Hasil klien lokal bergabung ke saluran dikembalikan oleh callback AliRtcEngineEventListener's <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#7cbf47a35bcel" id="cad6eb9b1bwx7">OnJoinChannelResult</a>.

  • Setelah berhasil bergabung ke saluran, pengguna jarak jauh memicu callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#3333f6e9d344q" id="fab4a94264m28">OnRemoteUserOnLineNotify</a>.

Parameter

Parameter

Tipe

Deskripsi

token

const char *

Informasi autentikasi untuk bergabung dengan parameter tunggal.

channelId

const char *

Saluran untuk bergabung. Ini harus sama dengan nilai yang digunakan untuk menghasilkan token.

userId

const char *

UID untuk bergabung ke saluran. Ini harus sama dengan nilai yang digunakan untuk menghasilkan token.

userName

const char *

Nama tampilan pengguna (bukan UID).

Nilai kembali

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

JoinChannel[2/3]

Masuk ke sebuah saluran.

virtual int JoinChannel(const AliEngineAuthInfo &authInfo,
                                 const char *userName) = 0;

Metode ini bergabung ke saluran. ARTC mengatur pengguna berdasarkan saluran. Pengguna harus bergabung ke saluran untuk mempublikasikan atau berlangganan aliran audio dan video. Metode ini, JoinChannel[1/3], dan JoinChannel[3/3] semuanya dapat digunakan untuk bergabung ke saluran. Mereka berbeda dalam metode autentikasi dan informasi pengguna yang dilewatkan, seperti dijelaskan di bawah ini:

  • JoinChannel[1/3] untuk bergabung dengan parameter tunggal. Lewatkan token yang dihasilkan untuk bergabung dengan parameter tunggal menggunakan Autentikasi Token untuk bergabung ke saluran. Kami merekomendasikan menggunakan metode ini untuk bergabung ke saluran dalam skenario RTC.

  • Metode ini untuk bergabung dengan parameter ganda. Anda perlu melewati token yang dihasilkan untuk bergabung dengan parameter ganda menggunakan Autentikasi Token, dan juga melewati informasi pengguna yang digunakan untuk menghasilkan token.

  • JoinChannel[3/3] untuk skenario interaksi real-time AI. Lewatkan token bergabung dengan parameter tunggal dan tetapkan properti pengguna capabilityProfile berdasarkan skenario.

Catatan
  • Secara default, saat Anda bergabung ke saluran, Anda berlangganan ke aliran audio dan video semua pengguna lain di saluran dan mendorong aliran audio dan video Anda ke pengguna jarak jauh. Jika Anda ingin membatalkan langganan default, Anda dapat memanggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="d4639ae922klp">SetDefaultSubscribeAllRemoteAudioStreams</a> dan <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="6d0a63e70bpiz">SetDefaultSubscribeAllRemoteVideoStreams</a> sebelum memanggil operasi ini untuk menonaktifkan langganan ke aliran audio atau video.

  • Metode ini untuk bergabung dengan parameter ganda. Sebelum memanggilnya, hasilkan token untuk bergabung dengan parameter ganda. Untuk informasi lebih lanjut, lihat Autentikasi Token.

Batasan

  • Setelah berhasil bergabung ke saluran, jika Anda perlu beralih ke saluran lain, Anda harus terlebih dahulu memanggil LeaveChannel untuk meninggalkan yang saat ini. Anda hanya dapat bergabung ke yang baru setelah menerima callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#b70203f9ea0mz" id="fcd2fac6abf0y">OnLeaveChannelResult</a>.

  • Metode ini hanya mendukung bergabung ke satu saluran sekaligus.

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

Callback terkait

Pemanggilan sukses metode ini memicu callback berikut:

  • Hasil klien lokal bergabung ke saluran dikembalikan dalam callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#7cbf47a35bcel" id="b3db8c610ewua">OnJoinChannelResult</a>.

  • Setelah berhasil bergabung ke saluran, ujung jarak jauh memicu callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#3333f6e9d344q" id="a1297d33bcd92">OnRemoteUserOnLineNotify</a>.

Parameter

Nama

Tipe

Deskripsi

authInfo

AliEngineAuthInfo

Informasi autentikasi.

userName

const char *

Nama tampilan pengguna (bukan UID).

JoinChannel[3/3]

Masuk ke sebuah saluran.

virtual int JoinChannel(const char *token, const char *channelId, const char *userId, const AliEngineChannelParam &userParam) = 0;

Metode ini bergabung ke saluran. ARTC mengatur pengguna berdasarkan saluran. Pengguna harus bergabung ke saluran untuk mempublikasikan atau berlangganan aliran audio dan video. Metode ini, JoinChannel[1/3], dan JoinChannel[2/3] semuanya dapat digunakan untuk bergabung ke saluran. Mereka berbeda dalam metode autentikasi dan informasi pengguna yang dilewatkan, seperti dijelaskan di bawah ini:

  • JoinChannel[1/3] untuk bergabung dengan parameter tunggal dalam skenario RTC. Lewatkan token yang dihasilkan untuk bergabung dengan parameter tunggal menggunakan Autentikasi Token untuk bergabung ke saluran. Kami merekomendasikan menggunakan metode ini untuk bergabung ke saluran dalam skenario RTC.

  • JoinChannel[2/3] untuk bergabung dengan parameter ganda. Anda perlu melewati token yang dihasilkan untuk bergabung dengan parameter ganda menggunakan Autentikasi Token, dan juga melewati informasi pengguna yang digunakan untuk menghasilkan token.

  • Metode ini untuk skenario interaksi real-time AI. Lewatkan token bergabung dengan parameter tunggal dan tetapkan properti pengguna capabilityProfile berdasarkan skenario. Jika Anda ingin berkomunikasi dengan agen AI, tetapkan ke AliCapabilityProfileHuman.

Catatan

Secara default, saat Anda bergabung ke saluran, Anda berlangganan ke aliran audio dan video semua pengguna lain di saluran dan mendorong aliran audio dan video Anda ke pengguna jarak jauh. Untuk membatalkan langganan default ini, Anda dapat memanggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="952a402dc4v73">SetDefaultSubscribeAllRemoteAudioStreams</a> dan <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="4e977610713wy">SetDefaultSubscribeAllRemoteVideoStreams</a> sebelum memanggil metode ini untuk menonaktifkan langganan ke aliran audio atau video.

Batasan

  • Setelah berhasil bergabung ke saluran, jika Anda perlu bergabung ke saluran lain, Anda harus terlebih dahulu memanggil leaveChannel untuk meninggalkan saluran saat ini dan memastikan bahwa Anda menerima callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#b70203f9ea0mz" id="15ec544e3985m">OnLeaveChannelResult</a> sebelum Anda dapat bergabung ke saluran lain.

  • Metode ini hanya mendukung bergabung ke satu saluran sekaligus.

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

  • Jangan panggil metode ini untuk mencoba ulang jika bergabung ke saluran gagal.

Callback terkait

Pemanggilan sukses metode ini memicu callback berikut:

  • Hasil klien lokal bergabung ke saluran diberi tahu melalui callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#7cbf47a35bcel" id="5d109191c950l">OnJoinChannelResult</a>.

  • Setelah berhasil bergabung ke saluran, ujung jarak jauh memicu callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#3333f6e9d344q" id="fa6f8d9357glx">OnRemoteUserOnLineNotify</a>.

Parameter

Parameter

Tipe

Deskripsi

token

const char *

Informasi autentikasi untuk bergabung dengan parameter tunggal.

channelId

const char *

Saluran untuk bergabung. Ini harus sama dengan nilai yang digunakan untuk menghasilkan token. Anda dapat membiarkannya kosong. Jika kosong, channelId yang digunakan untuk menghasilkan token digunakan secara default.

userId

const char *

UID untuk bergabung ke saluran. Ini harus sama dengan nilai yang digunakan untuk menghasilkan token. Anda dapat membiarkannya kosong. Jika kosong, userId yang digunakan untuk menghasilkan token digunakan secara default.

userParam

AliEngineChannelParam

Properti pengguna, seperti nama panggilan, jenis, dan ID kustom.

Nilai kembali

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

LeaveChannel

Meninggalkan saluran.

virtual int LeaveChannel() = 0;

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

Catatan
  • Metode ini merupakan operasi asinkron. Pemanggilan metode ini yang berhasil tidak berarti bahwa Anda benar-benar telah meninggalkan saluran. Anda benar-benar akan meninggalkan saluran hanya setelah menerima callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#b70203f9ea0mz" id="2741d56c6eqau">OnLeaveChannelResult</a>.

  • Setelah `leaveChannel` selesai, hancurkan mesin dan atur ke null.

    mAliRtcEngine->LeaveChannel();
    AliEngine::Destroy();
    mAliRtcEngine = nullptr;

Kapan harus memanggil

  • Panggil metode ini saat Anda perlu meninggalkan saluran yang telah Anda gabung.

  • Jika Anda telah bergabung ke saluran dan perlu bergabung ke saluran lain, panggil metode ini untuk meninggalkan saluran saat ini terlebih dahulu.

Callback terkait

  • Pengguna lokal: Memanggil metode ini memicu callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#b70203f9ea0mz" id="9626ae24d89ue">OnLeaveChannelResult</a> untuk memberi tahu Anda mengenai hasil keluar dari saluran.

  • Sisi jarak jauh: Pemanggilan API ini yang berhasil memicu callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#44ce12a0ecj52" id="0dfcab6a6fylt">OnRemoteUserOffLineNotify</a> untuk pengguna jarak jauh.

Nilai kembali

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

IsInCall

Memeriksa apakah pengguna saat ini berada di saluran.

virtual bool IsInCall() = 0;

Nilai kembali

true menunjukkan pengguna berada di saluran; false menunjukkan pengguna tidak berada di saluran.

SetClientRole

Menetapkan peran pengguna.

virtual int SetClientRole(const AliEngineClientRole clientRole) = 0;

Metode ini menetapkan peran pengguna sebagai streamer atau viewer.

Dalam mode streaming interaktif, sebelum bergabung ke saluran:

  • Tetapkan peran pengguna ke streamer: SDK secara otomatis mempublikasikan aliran audio dan video lokal dan menerima aliran audio dan video streamer lain secara default.

  • Tetapkan peran pengguna ke viewer: SDK tidak mempublikasikan aliran audio dan video lokal, tetapi menerima aliran audio dan video streamer lain.

Kapan harus memanggil

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

Batasan

Metode ini hanya efektif dalam mode interaktif, yaitu saat Anda memanggil API <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#901e748242y3g" id="322c3da902jpt">SetChannelProfile</a> untuk menetapkan profil saluran ke AliEngineInteractiveLive.

Dalam mode streaming interaktif, kami merekomendasikan secara eksplisit memanggil metode ini untuk menetapkan peran pengguna sebelum bergabung ke saluran.

Parameter

Nama

Tipe

Deskripsi

role

AliEngineClientRole

Jenis peran pengguna. Nilai default adalah AliEngineClientRolelive (viewer). Jenis peran hanya efektif dalam mode non-komunikasi.

Nilai kembali

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

GetClientRole

Mendapatkan jenis peran pengguna saat ini (streamer/viewer).

virtual AliEngineClientRole GetClientRole() = 0;

Nilai kembali

Jika pemanggilan metode berhasil, metode ini mengembalikan objek AliEngineClientRole. Ini adalah enumerasi yang menunjukkan jenis peran adalah streamer (0) atau viewer (1).

RefreshAuthInfo[1/2]

Memperbarui informasi autentikasi.

virtual int RefreshAuthInfo(const AliEngineAuthInfo &authInfo) = 0;

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

Catatan

Baik metode ini maupun RefreshAuthInfo[2/2] memperbarui informasi autentikasi. Metode ini untuk memperbarui token bergabung dengan parameter ganda, sedangkan RefreshAuthInfo[2/2] untuk memperbarui token bergabung dengan parameter tunggal. Untuk informasi lebih lanjut tentang pembuatan token, lihat Autentikasi Token.

Kapan harus memanggil

Dalam situasi berikut:

  • Saat Anda menerima callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#9f8ebe177degw" id="f52a19bb78yoi">OnAuthInfoWillExpire</a> yang melaporkan bahwa informasi autentikasi akan segera kedaluwarsa, kami merekomendasikan agar Anda membuat ulang Token di server Anda, lalu memanggil metode ini dan melewatkan Token baru.

  • Jika Anda tidak memperbarui Token tepat waktu, callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#09c4ec9160eom" id="440c501877fxr">OnAuthInfoExpired</a> dipicu, yang menunjukkan bahwa autentikasi telah kedaluwarsa. Anda kemudian harus membuat ulang Token dan memanggil JoinChannel untuk bergabung kembali ke saluran.

Parameter

Nama

Tipe

Deskripsi

authInfo

AliEngineAuthInfo

Informasi autentikasi.

Nilai pengembalian

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

RefreshAuthInfo[2/2]

Memperbarui informasi autentikasi.

virtual int RefreshAuthInfo(const char *token) = 0;

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

Catatan

Baik metode ini maupun RefreshAuthInfo[1/2] memperbarui informasi autentikasi. Metode ini untuk memperbarui token bergabung dengan parameter tunggal, sedangkan RefreshAuthInfo[1/2] untuk memperbarui token bergabung dengan parameter ganda. Untuk informasi lebih lanjut tentang pembuatan token, lihat Autentikasi Token.

Kapan harus memanggil

Dalam situasi berikut, kami merekomendasikan agar Anda membuat ulang token di server Anda dan kemudian memanggil metode ini untuk melewatkan token baru:

  • Saat Anda menerima callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#9f8ebe177degw" id="b21949148djrc">OnAuthInfoWillExpire</a>, yang menunjukkan bahwa informasi autentikasi akan segera kedaluwarsa.

  • Jika Anda tidak memperbarui token tepat waktu, callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#09c4ec9160eom" id="62df9bf63786v">OnAuthInfoExpired</a> dipicu untuk memberi tahu Anda bahwa autentikasi telah kedaluwarsa. Pada titik ini, Anda harus memanggil JoinChannel untuk bergabung kembali ke saluran.

Parameter

Nama

Tipe

Deskripsi

token

const char *token

Informasi autentikasi untuk bergabung dengan parameter tunggal.

Nilai pengembalian

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

PublishLocalAudioStream

Menetapkan apakah akan mempublikasikan aliran audio lokal.

virtual int PublishLocalAudioStream(bool enabled) = 0;

Metode ini mengontrol apakah akan mempublikasikan aliran audio yang ditangkap secara lokal. SDK mempublikasikan aliran audio secara default. Jika Anda tidak ingin mempublikasikan aliran audio secara default, Anda dapat memanggil PublishLocalAudioStream(false) sebelum bergabung ke saluran untuk menonaktifkan publikasi aliran audio.

Kapan harus memanggil

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran. Memanggilnya sebelum bergabung ke saluran memodifikasi konfigurasi default, yang berlaku saat Anda bergabung.

Callback terkait

Saat status ingest aliran audio lokal berubah, klien lokal memicu callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#eb8fab7f5ak7v" id="c584949653jn5">OnAudioPublishStateChanged</a> untuk memberi tahu status terbaru ingest aliran audio, dan klien jarak jauh memicu callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#ff1f7c8581r3r" id="75f2096b1efxy">OnRemoteTrackAvailableNotify</a> untuk memberi tahu perubahan pada aliran audio dan video pengguna jarak jauh.

Parameter

Nama

Tipe

Deskripsi

enable

bool

  • true: Mengirim aliran audio lokal.

  • false: Menghentikan ingest aliran. Nilai default adalah false.

Nilai kembali

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

IsLocalAudioStreamPublished

Menanyakan apakah publikasi aliran audio saat ini diizinkan.

virtual bool IsLocalAudioStreamPublished() = 0;

Nilai kembali

true menunjukkan publikasi diizinkan; false menunjukkan publikasi tidak diizinkan.

SetDefaultSubscribeAllRemoteAudioStreams

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

virtual int SetDefaultSubscribeAllRemoteAudioStreams(bool sub) = 0;

Metode ini mengonfigurasi apakah sistem berlangganan ke aliran audio pengguna jarak jauh secara default. Pengaturan ini memengaruhi perilaku berlangganan aliran audio untuk pengguna baru yang bergabung ke saluran. Kami merekomendasikan menetapkannya ke true kecuali Anda memiliki persyaratan khusus.

Kapan harus memanggil

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

  • Sebelum bergabung dengan saluran:

    • SDK berlangganan ke aliran audio pengguna jarak jauh secara default saat bergabung ke saluran. Jika Anda ingin mengubah perilaku ini, panggil metode ini sebelum bergabung ke saluran.

  • Setelah bergabung dengan saluran:

    • Jika Anda ingin menghentikan langganan default, panggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="e95a7e2d6fjwt">SetDefaultSubscribeAllRemoteAudioStreams</a>(false) sehingga Anda tidak akan berlangganan ke aliran audio pengguna yang kemudian bergabung ke saluran.

    • Setelah Anda menghentikan langganan default, jika Anda ingin melanjutkan berlangganan ke aliran audio pengguna tertentu, panggil antarmuka <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#957e547813q56" id="1a391bcabc66e">SubscribeRemoteAudioStream</a>. Jika Anda ingin melanjutkan berlangganan ke aliran audio beberapa pengguna, panggil antarmuka beberapa kali.

    • Setelah Anda menghentikan langganan default, memanggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="e79b5ad58awcw">SetDefaultSubscribeAllRemoteAudioStreams</a>(true) hanya melanjutkan aliran audio pengguna yang kemudian bergabung ke saluran. Aliran audio pengguna jarak jauh yang bergabung saat langganan dihentikan tidak berlangganan.

Parameter

Nama

Tipe

Deskripsi

sub

bool

  • true: Menerima aliran audio pengguna.

  • false: Menghentikan penerimaan aliran audio pengguna. Nilai default adalah true.

Nilai kembali

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

SubscribeRemoteAudioStream

Menghentikan atau melanjutkan berlangganan aliran audio dari pengguna remote tertentu.

virtual int SubscribeRemoteAudioStream(const char* uid, bool sub) = 0;

Metode ini menghentikan atau melanjutkan berlangganan ke aliran audio pengguna jarak jauh tertentu. Kami merekomendasikan menetapkannya ke true kecuali Anda memiliki persyaratan khusus.

Catatan

Secara default, SDK berlangganan ke aliran audio semua pengguna jarak jauh saat Anda bergabung ke pertemuan. Untuk mengubah perilaku ini, Anda dapat memanggil <a baseurl="t2713962_v4_1_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="bf2d59f02d9tq">SetDefaultSubscribeAllRemoteAudioStreams</a>(false) sebelum Anda bergabung ke pertemuan untuk membatalkan konfigurasi default ini.

Parameter

Nama

Tipe

Deskripsi

uid

const char*

UID pengguna jarak jauh.

sub

bool

  • true: Menerima aliran audio pengguna tertentu.

  • false: Menghentikan penerimaan aliran audio pengguna tertentu. Nilai default adalah true.

Nilai kembali

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

SubscribeAllRemoteAudioStreams

Menghentikan atau melanjutkan penerimaan semua aliran audio remote.

virtual int SubscribeAllRemoteAudioStreams(bool sub) = 0;

Metode ini adalah sakelar utama untuk berlangganan ke aliran audio jarak jauh. Kami merekomendasikan menetapkannya ke true. Jika Anda menetapkannya ke false, hal berikut terjadi:

  • Langganan ke semua aliran audio jarak jauh di saluran saat ini berhenti.

  • Pengguna baru yang bergabung ke saluran tidak berlangganan.

  • Anda tidak dapat menggunakan <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#957e547813q56" id="aface4ad3920l">SubscribeRemoteAudioStream</a> untuk mengontrol secara individual aliran audio pengguna tertentu.

Untuk berlangganan kembali, panggil metode ini lagi dan atur ke true untuk melanjutkan langganan.

Catatan

Secara default, SDK berlangganan ke aliran audio semua pengguna jarak jauh saat Anda bergabung dalam rapat. Jika Anda ingin mengubah perilaku ini, Anda dapat memanggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e51a461de2k9t" id="3927721185m08">SetDefaultSubscribeAllRemoteAudioStreams</a>(false) sebelum bergabung dalam rapat untuk membatalkan konfigurasi default ini.

Parameter

Nama

Tipe

Deskripsi

sub

bool

  • true: Menerima semua aliran audio pengguna.

  • false: Menghentikan penerimaan semua aliran audio pengguna. Nilai default-nya adalah true.

Nilai kembali

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

PublishLocalVideoStream[1/2]

Memublikasikan atau menghentikan publikasi aliran kamera.

virtual int PublishLocalVideoStream(bool enabled) = 0;

Metode ini mengontrol apakah akan memublikasikan aliran video yang ditangkap secara lokal.

Catatan

SDK melakukan pengambilan aliran video secara default. Untuk menonaktifkan pengambilan aliran video, panggil PublishLocalVideoStream(false) sebelum bergabung ke saluran.

Kapan harus dipanggil

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

Memanggilnya sebelum bergabung ke saluran akan mengubah konfigurasi default, yang akan berlaku saat Anda bergabung.

Callback terkait

Ketika status pengambilan aliran audio lokal berubah, callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#6bf4efbd1cadl" id="d37709b09147d">OnVideoPublishStateChanged</a> akan dipicu pada klien lokal untuk memberi tahu status pengambilan terbaru, sedangkan callback <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#ff1f7c8581r3r" id="f16e4b51bchqb">OnRemoteTrackAvailableNotify</a> akan dipicu pada klien jarak jauh untuk memberi tahu bahwa aliran audio dan video pengguna jarak jauh telah berubah.

Parameter

Nama

Tipe

Deskripsi

enable

bool

  • true: Mengirim video.

  • false: Menghentikan pengiriman. Nilai default adalah true.

Nilai kembalian

  • 0: Pemanggilan metode berhasil.

  • <0: Pemanggilan metode gagal.

PublishLocalVideoStream[2/2]

Mengatur izin pengiriman aliran video.

virtual int PublishLocalVideoStream(bool enabled, AliEngineVideoTrack track) = 0;

Metode ini mengontrol apakah akan mempublikasikan aliran video yang ditangkap secara lokal.

Catatan

SDK mengambil aliran video secara default. Untuk menonaktifkan pengambilan aliran video, panggil PublishLocalVideoStream(false) sebelum bergabung dengan saluran.

Kapan harus memanggil

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

Memanggilnya sebelum bergabung dengan saluran akan mengubah konfigurasi default, yang berlaku saat Anda bergabung.

Callback terkait

Ketika status pengambilan aliran audio lokal berubah, callback <a baseurl="t2713962_v5_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#6bf4efbd1cadl" id="18a9d4b47ezcc">OnVideoPublishStateChanged</a> dipicu pada klien lokal untuk melaporkan status terbaru pengambilan aliran audio, sedangkan callback <a baseurl="t2713962_v5_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#ff1f7c8581r3r" id="d01e7a574f92o">OnRemoteTrackAvailableNotify</a> dipicu pada klien jarak jauh untuk menunjukkan bahwa aliran audio dan video dari pengguna jarak jauh telah berubah.

Parameter

Nama

Tipe

Deskripsi

enable

bool

  • true: Mengirimkan video.

  • false: Menghentikan pengiriman. Nilai default adalah true.

track

AliEngineVideoTrack

Jenis aliran video, seperti aliran kamera atau aliran berbagi layar.

Nilai kembali

  • 0: Pemanggilan metode berhasil.

  • <0: Pemanggilan metode gagal.

IsLocalVideoStreamPublished

Menanyakan apakah penerbitan aliran video saat ini diizinkan.

virtual bool IsLocalVideoStreamPublished() = 0;

Nilai kembali

true menunjukkan aliran kamera telah diterbitkan; false menunjukkan aliran kamera belum diterbitkan.

SetDefaultSubscribeAllRemoteVideoStreams

Mengatur apakah akan berlangganan aliran video jarak jauh secara default.

virtual int SetDefaultSubscribeAllRemoteVideoStreams(bool sub) = 0;

Metode ini mengatur apakah akan berlangganan aliran video secara default. SDK melakukan langganan secara default.

Catatan

SDK berlangganan aliran video pengguna jarak jauh secara default saat bergabung ke saluran. Jika Anda ingin mengubah perilaku ini, panggil metode ini sebelum bergabung ke saluran.

Kapan harus memanggil

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

  • Sebelum bergabung dengan saluran:

    • Anda dapat menggunakan metode ini untuk membatalkan pengaturan langganan default.

  • Setelah bergabung dengan saluran:

    • Untuk menghentikan langganan default, panggil SetDefaultSubscribeAllRemoteVideoStreams(false). Hal ini akan mencegah berlangganan aliran video pengguna yang selanjutnya bergabung ke saluran.

    • Setelah menghentikan langganan default, jika Anda ingin melanjutkan berlangganan aliran video pengguna tertentu, panggil metode SubscribeRemoteVideoStream. Untuk melanjutkan berlangganan beberapa pengguna, panggil metode tersebut beberapa kali.

    • Setelah menghentikan langganan default, pemanggilan SetDefaultSubscribeAllRemoteVideoStreams(false) hanya akan melanjutkan berlangganan ke aliran video dari pengguna yang bergabung setelahnya.

Parameter

Nama

Tipe

Deskripsi

sub

bool

  • true: Menerima aliran video pengguna.

  • false: Tidak menerima aliran video pengguna. Nilai default adalah true.

Nilai kembali

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

SubscribeRemoteVideoStream

Menghentikan atau melanjutkan berlangganan aliran video pengguna jarak jauh.

virtual int SubscribeRemoteVideoStream(const char* uid, AliEngineVideoTrack track, bool sub) = 0;

Berlangganan atau membatalkan langganan aliran video pengguna tertentu.

Catatan

Secara default, SDK berlangganan aliran video semua pengguna jarak jauh saat Anda bergabung ke dalam rapat. Untuk mengubah perilaku ini, Anda dapat memanggil <a baseurl="t2713962_v4_1_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="f71e02d13ap2b">SetDefaultSubscribeAllRemoteVideoStreams</a>(false) sebelum bergabung ke rapat untuk membatalkan konfigurasi default ini.

Kapan harus memanggil

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

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

UID pengguna jarak jauh.

track

AliEngineVideoTrack

Jenis aliran video.

sub

bool

Apakah akan berlangganan aliran video pengguna jarak jauh. Ini mengontrol langganan atau pembatalan langganan.

Nilai kembalian

  • true: Pengaturan berhasil.

  • false: Pengaturan gagal.

SubscribeAllRemoteVideoStreams

Menghentikan atau melanjutkan menerima semua aliran video remote.

virtual int SubscribeAllRemoteVideoStreams(bool sub) = 0;

Metode ini adalah sakelar utama untuk berlangganan aliran video remote. Jika Anda menyetelnya ke false, berikut yang terjadi:

  • Berlangganan ke semua aliran video jarak jauh di saluran saat ini berhenti.

  • Pengguna baru yang bergabung ke rapat nanti juga tidak akan berlangganan (meskipun Anda telah mengatur <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="b7b0080f3cnoq">SetDefaultSubscribeAllRemoteVideoStreams</a>(true) untuk berlangganan secara default).

  • Anda tidak dapat menggunakan <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#jyGTp" id="0e2edf97aa1g6">SubscribeRemoteVideoStream</a> untuk mengontrol secara individual aliran video pengguna tertentu.

Untuk berlangganan kembali, panggil metode ini lagi dan atur ke true untuk melanjutkan langganan.

Catatan

Secara default, SDK berlangganan aliran video dari semua pengguna remote saat Anda bergabung dalam rapat. Untuk mengubah perilaku ini, Anda dapat memanggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#2cbc54790brn3" id="629f58d5304mf">SetDefaultSubscribeAllRemoteVideoStreams</a>(false) sebelum Anda bergabung dalam rapat untuk membatalkan konfigurasi default ini.

Parameter

Nama

Tipe

Deskripsi

sub

bool

  • true: Menerima semua aliran video pengguna.

  • false: Menghentikan penerimaan semua aliran video pengguna. Nilai default-nya adalah true.

Nilai kembali

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

SubscribeRemoteMediaStream[1/2]

Menghentikan atau melanjutkan aliran media pengguna jarak jauh tertentu.

virtual int SubscribeRemoteMediaStream(const char* uid, AliEngineVideoTrack videoTrack, bool subVideo,  bool subAudio) = 0;

Metode ini berlangganan aliran audio dan video jarak jauh secara bersamaan.

Catatan

Pada metode ini, AliRtcVideoTrackNo dari AliRtcVideoTrack tidak valid. Mengaturnya tidak memiliki efek apa pun.

Metode terkait

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

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

UID pengguna jarak jauh.

videoTrack

AliEngineVideoTrack

Tipe aliran video.

subVideo

boo

Menghentikan atau melanjutkan penarikan aliran video pengguna jarak jauh tertentu. Nilai:

  • true (default): Melanjutkan.

  • false: Menghentikan.

subAudio

boo

Menghentikan atau melanjutkan penarikan aliran audio pengguna jarak jauh tertentu. Nilai:

  • true (default): Melanjutkan.

  • false: Menghentikan.

Nilai kembali

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

SubscribeRemoteMediaStream[2/2]

Menghentikan atau melanjutkan aliran media pengguna jarak jauh tertentu.

virtual int SubscribeRemoteMediaStream(const char* uid, AliEngineVideoTrack videoTrack, AliEngineAudioTrack audioTrack) = 0;

Metode ini berlangganan aliran audio dan video jarak jauh secara bersamaan.

Metode terkait

Dibandingkan dengan SubscribeRemoteMediaStream[1/2], metode ini menggunakan parameter videoTrack dan audioTrack untuk memberi tahu SDK mengenai status langganan yang diinginkan dalam satu panggilan. Contohnya:

  • Untuk berlangganan aliran kamera dan aliran mikrofon, atur videoTrack dan audioTrack masing-masing ke AliRtcVideoTrackCamera dan AliRtcAudioTrackMic saat memanggil.

  • Untuk membatalkan langganan aliran kamera tetapi tetap mempertahankan mikrofon, panggil kembali dan atur videoTrack dan audioTrack masing-masing ke AliRtcVideoTrackNo dan AliRtcAudioTrackMic.

  • Untuk membatalkan keduanya, panggil kembali dan atur videoTrack dan audioTrack masing-masing ke AliRtcVideoTrackNo dan AliRtcAudioTrackNo.

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

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

UID pengguna jarak jauh.

videoTrack

AliEngineVideoTrack

Tipe aliran video.

audioTrack

AliEngineAudioTrack

Tipe aliran audio.

Nilai kembali

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

SubscribeRemoteDestChannelStream

Berlangganan ke aliran pengguna tertentu di berbagai saluran.

virtual int SubscribeRemoteDestChannelStream(const char* channelId, const char* uid, AliEngineVideoTrack track, bool sub_audio, bool sub) = 0;

Parameter

Parameter

Tipe

Deskripsi

channelId

const char*

ID saluran jarak jauh.

uid

const char*

UID pengguna jarak jauh.

track

AliEngineVideoTrack

Aliran video untuk berlangganan.

sub_audio

bool

Menghentikan atau melanjutkan menarik aliran audio pengguna jarak jauh tertentu. Nilai:

  • true (default): Melanjutkan.

  • false: Menghentikan.

sub

bool

Menghentikan atau melanjutkan berlangganan ke aliran pengguna tertentu di berbagai saluran.

Nilai kembalian

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

SetRemoteAudioVolume

Menyesuaikan volume pemutaran pengguna remote tertentu.

virtual int SetRemoteAudioVolume(const char *uid, int volume) = 0;

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

UID pengguna jarak jauh.

volume

int

Volume pemutaran. Rentangnya adalah [0,100].

0: Bisukan.

100: Volume asli.

Nilai kembali

  • 0: Sukses.

  • Nilai bukan nol: Gagal.

MuteLocalMic

Menghentikan atau melanjutkan pengiriman data audio lokal.

virtual int MuteLocalMic(bool mute, AliEngineMuteLocalAudioMode mode = AliEngineMuteLocalAudioModeDefault) = 0;
Catatan

Menonaktifkan suara berarti aliran audio mengirimkan frame diam. Modul perekaman dan pengkodean tetap bekerja.

Kapan harus memanggil

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

Callback terkait

Setelah pemanggilan berhasil, pengguna jarak jauh memicu notifikasi <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#a15f0a6cf6id7" id="f4ae88f094vqy">OnUserAudioMuted</a>, yang menunjukkan apakah pengguna tersebut dalam keadaan diredam (muted).

Parameter

Nama

Tipe

Deskripsi

mute

bool

  • true: Audio lokal mengirimkan frame kosong.

  • false: Melanjutkan pengiriman normal. Nilai default-nya adalah false.

mode

AliEngineMuteLocalAudioMode

Mode redam. Nilai default-nya adalah meredam semua.

  • AliEngineMuteLocalAudioModeDefault: Meredam semua, termasuk mikrofon dan input audio eksternal.

  • AliEngineMuteLocalAudioModeMuteAll: Meredam semua, termasuk mikrofon dan input audio eksternal.

  • AliEngineMuteLocalAudioModeMuteOnlyMic: Hanya membisukan mikrofon.

Nilai kembali

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

MuteRemoteAudio

Menghentikan atau melanjutkan pemutaran audio jarak jauh.

virtual int MuteRemoteAudio(const char *uid,
                                    bool mute) = 0;

API ini hanya menghentikan atau melanjutkan pemutaran audio pengguna jarak jauh tertentu, tetapi tidak memengaruhi penarikan aliran atau dekoding audio jarak jauh. Untuk berhenti berlangganan dari aliran audio pengguna, panggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#957e547813q56" id="89841a0989t7y">SubscribeRemoteAudioStream</a>.

Kapan harus memanggil

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

Parameter

Nama

Tipe

Deskripsi

uid

const char *

UID pengguna.

mute

bool

  • true: Menghentikan pemutaran.

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

Nilai kembali

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

MuteAllRemoteAudio

Menentukan apakah pemutaran Track audio dari semua pengguna jarak jauh akan dihentikan.

virtual int MuteAllRemoteAudio(bool mute) = 0;

API ini menghentikan atau melanjutkan semua pemutaran audio jarak jauh.

Catatan
  • Panggilan API ini hanya menghentikan pemutaran. Penarikan dan dekoding stream tidak terpengaruh.

  • Ini dapat diatur sebelum atau setelah memanggil JoinChannel.

Kapan harus memanggil

Anda dapat mengatur ini sebelum atau setelah bergabung dengan saluran.

Deskripsi metrik

Nama

Tipe

Deskripsi

mute

bool

  • true: Menghentikan pemutaran.

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

Nilai kembali

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

StartAudioCapture[1/2]

Memulai penangkapan audio.

virtual int StartAudioCapture() = 0;

Metode ini mengontrol awal perekaman audio. Anda juga dapat memanggilnya sebelum bergabung ke saluran untuk memulai perekaman audio lebih awal. Jika tidak diatur, SDK secara otomatis mengontrol perangkat perekaman audio. Untuk memulai kembali perekaman audio setelah dihentikan dengan memanggil stopAudioCapture, panggil metode ini.

Kapan harus memanggil

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

Metode terkait

  • Metode StartAudioCapture[2/2] dapat mengontrol apakah perangkat perekaman audio tetap aktif setelah meninggalkan saluran.

Callback terkait

Setelah memanggil metode ini untuk mengubah status perekaman audio lokal, Anda dapat memperoleh perubahan status tersebut melalui callback OnLocalAudioStateChange.

Nilai kembali

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

StartAudioCapture[2/2]

Memulai penangkapan audio.

virtual int StartAudioCapture(bool keepAlive) = 0;

Menghentikan penangkapan mikrofon setelah membisukan suara.

Metode ini mengontrol awal penangkapan audio. Anda juga dapat memanggilnya sebelum bergabung ke saluran untuk memulai penangkapan audio lebih awal. Jika tidak diatur, SDK secara otomatis mengontrol perangkat penangkapan audio.

Kapan harus memanggil

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

Metode terkait

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

Callback terkait

Setelah memanggil metode ini untuk mengubah status penangkapan audio lokal, Anda dapat memperoleh perubahan status melalui callback OnLocalAudioStateChange.

Parameter

Parameter

Tipe

Deskripsi

keepAlive

bool

Status perangkat penangkapan setelah meninggalkan saluran. Nilai:

  • true: Perangkat penangkapan tetap menyala setelah meninggalkan saluran.

  • false (default): Perangkat penangkapan dimatikan setelah meninggalkan saluran.

Nilai kembalian

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

StopAudioCapture

Menghentikan penangkapan audio.

virtual int StopAudioCapture() = 0;

Setelah memulai pengambilan perangkat audio dengan StartAudioCapture, Anda dapat memanggil metode ini untuk menghentikan pengambilan tersebut.

Callback terkait

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

Nilai kembalian

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

EnableAudioVolumeIndication

Mengatur frekuensi callback volume dan koefisien penghalusan.

virtual int EnableAudioVolumeIndication(int interval, int smooth, int reportVad) = 0;

Metode ini memungkinkan SDK melaporkan secara berkala informasi terkait volume dari pengguna penerbit lokal dan pengguna jarak jauh dengan volume instan tertinggi ke aplikasi.

Kapan harus memanggil

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

Callback terkait

Setelah pemanggilan metode ini berhasil, jika terdapat pengguna yang menerbitkan aliran di saluran, SDK akan memicu dua callback berikut pada interval waktu yang ditetapkan:

  • Volume audio pembicara diberitahukan melalui callback OnAudioVolumeCallback. Frekuensi callback ditentukan oleh interval.

  • Deteksi aktivitas suara. Ketika pengguna aktif terdeteksi, UID pembicara diberitahukan melalui callback OnActiveSpeaker.

Kapan harus memanggil

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

Parameter

Nama

Tipe

Deskripsi

interval

int

Interval waktu dalam milidetik. Nilai minimum tidak boleh kurang dari 10 ms. Kami menyarankan mengaturnya menjadi 300–500 ms. Nilai kurang dari atau sama dengan 0 akan menonaktifkan fitur indikasi volume dan pembicara.

smooth

int

Koefisien penghalusan. Rentangnya adalah [0,9]. Nilai yang lebih besar berarti tingkat penghalusan lebih tinggi, sedangkan nilai yang lebih rendah memberikan kinerja real-time yang lebih baik. Kami menyarankan mengaturnya ke 3.

reportVad

int

Sakelar deteksi pembicara. Nilai-nilai:

  • 1: Aktif. Metode onAudioVolumeCallback dipanggil balik untuk status setiap pembicara.

  • 0: Nonaktif.

Nilai kembalian

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

StartAudioPlayer

Memulai perangkat pemutaran audio.

virtual int StartAudioPlayer() = 0;

Metode ini dapat mengontrol awal pemutaran audio secara lebih awal. Jika tidak diatur, SDK akan secara otomatis memulai pemutaran audio setelah berlangganan ke aliran audio.

Nilai kembali

  • 0: Sukses.

  • Nilai bukan nol: Gagal. Kode kesalahan dikembalikan.

StopAudioPlayer

Menghentikan pemutaran audio.

virtual int StopAudioPlayer() = 0;

Metode ini dapat mengontrol penghentian pemutaran audio. Metode ini berkorespondensi dengan AliEngine::StartAudioPlayer.

Parameter

Tidak ada.

Nilai kembali

  • 0: Sukses.

  • Nilai bukan nol: Gagal. Kode kesalahan dikembalikan.

SetPlayoutVolume

Menetapkan volume pemutaran.

virtual int SetPlayoutVolume(int volume) = 0;

Parameter

Nama

Tipe

Deskripsi

volume

int

Volume pemutaran. Rentangnya adalah [0,400]. 0: Senyap. >100: Memperkuat volume. <100: Mengurangi volume.

Return value

  • 0: Sukses.

  • Nilai bukan nol: Gagal. Kode kesalahan dikembalikan.

Mengatur Volume Perekaman

virtual int SetRecordingVolume(int volume) = 0;

Parameter

Nama

Tipe

Deskripsi

volume

int

Volume pemutaran dengan rentang [0, 400]. Nilai 0 berarti bisu; nilai di atas 100 memperkuat volume, sedangkan nilai di bawah 100 mengurangi volume.

Return value

  • 0: Sukses.

  • Nilai bukan nol: Gagal. Kode kesalahan dikembalikan.

PlayAudioFileTest

Memainkan file audio.

virtual int PlayAudioFileTest(const char* filePath) = 0;

Parameter

Nama

Tipe

Deskripsi

filePath

const char*

Jalur file audio yang akan diputar.

Nilai kembali

  • 0: Sukses.

  • <0: Gagal.

StopAudioFileTest

Menghentikan pemutaran file audio.

virtual int StopAudioFileTest() = 0;

Nilai kembali

  • 0: Sukses.

  • <0: Gagal.

StartAudioCaptureTest

Memulai pengujian penangkapan audio sebelum panggilan.

virtual int StartAudioCaptureTest() = 0;

Metode ini dapat mengontrol dimulainya pengujian perekaman audio. Hasil dari callback AliEngineEventListener::OnTestAudioVolumeCallback digunakan untuk menentukan apakah perekaman audio berjalan normal.

Catatan

Anda hanya dapat memanggil metode ini sebelum bergabung ke saluran (JoinChannel).

Nilai kembali

  • 0: Berhasil.

  • <0: Gagal.

StopAudioCaptureTest

Menghentikan tes perekaman audio.

virtual int StopAudioCaptureTest() = 0;
Catatan

Anda hanya dapat memanggil metode ini sebelum bergabung ke saluran (JoinChannel).

Nilai kembali

  • 0: Sukses.

  • <0: Gagal.

EnableSystemAudioRecording

Mengaktifkan atau menonaktifkan penangkapan dan publikasi audio sistem.

virtual int EnableSystemAudioRecording(bool enable, const char *path = nullptr, const char *device_id = nullptr) = 0;

Metode ini mengaktifkan atau menonaktifkan penangkapan audio sistem, seperti suara dari browser dan aplikasi.

Catatan

Metode ini hanya didukung di Windows dan macOS.

Parameter

Nama

Tipe

Deskripsi

enable

bool

Mengaktifkan atau menonaktifkan pengambilan dan penerbitan audio sistem.

  • true: Aktifkan.

  • false: Nonaktifkan.

path

const char*

Jika path kosong, suara seluruh sistem akan diambil. Jika path merupakan jalur program .exe, program tersebut akan dijalankan dan suaranya diambil.

device_id

const char*

Jika path kosong, suara dari perangkat kartu suara default akan diambil. Jika tidak, suara yang diputar oleh perangkat dengan device_id ini akan diambil. Gunakan ID yang dikembalikan oleh GetSystemRecordAudioPlayerList.

Nilai pengembalian

  • 0: Panggilan metode berhasil.

  • <0: Panggilan metode gagal.

IsSystemAudioRecording

Memeriksa apakah perekaman dan publikasi audio sistem saat ini diaktifkan.

virtual bool IsSystemAudioRecording() = 0;
Catatan

Untuk mengaktifkan atau menonaktifkan perekaman audio sistem, panggil EnableSystemAudioRecording. Metode ini hanya berlaku pada platform Windows dan macOS.

Nilai kembalian

  • true: Diaktifkan.

  • false: Dinonaktifkan.

SetSystemAudioRecordingVolume

Mengatur volume pengambilan dan penerbitan audio sistem.

virtual int SetSystemAudioRecordingVolume(int volume) = 0;

Metode ini hanya berlaku pada platform Windows dan macOS.

Metode ini hanya dapat diatur setelah pengambilan dan penerbitan audio sistem diaktifkan. Jika tidak, pengaturan tersebut tidak valid.

Parameter

Nama

Tipe

Deskripsi

volume

int

Volume ingest dari pengambilan sistem. Rentangnya adalah [0-400].

Nilai kembali

  • 0: Sukses.

  • <0: Gagal.

GetSystemAudioRecordingVolume

Mendapatkan volume perekaman dan publikasi audio sistem saat ini.

virtual int GetSystemAudioRecordingVolume() = 0;

Metode ini hanya berlaku pada platform Windows dan macOS.

Nilai kembali

Volume ingest perekaman sistem.

SetSystemAudioPlayoutVolume

Mengatur volume pemutaran audio sistem.

virtual int SetSystemAudioPlayoutVolume(int volume) = 0;

Metode ini hanya berlaku pada platform Windows dan macOS.

Metode ini hanya dapat diatur setelah pengambilan dan penerbitan audio sistem diaktifkan. Jika tidak, pengaturan tersebut tidak valid.

Parameter

Nama

Tipe

Deskripsi

volume

int

Volume pemutaran dari pengambilan sistem. Rentang nilainya adalah [0-400].

Return value

  • 0: Berhasil.

  • <0: Gagal.

GetSystemAudioPlayoutVolume

Mengembalikan volume playout audio sistem saat ini.

virtual int GetSystemAudioPlayoutVolume() = 0;

Fungsi ini hanya didukung pada platform Windows dan macOS.

Return value

Volume pemutaran audio sistem.

GetAudioCaptureList

Mendapatkan daftar perangkat perekaman dalam sistem.

virtual AliEngineDeviceInfoList* GetAudioCaptureList() = 0;

Nilai kembali

Sebuah pointer ke daftar perangkat perekaman, AliEngineDeviceInfoList *.

GetCurrentAudioCaptureName

Mendapatkan nama perangkat tangkapan audio yang sedang digunakan.

virtual String GetCurrentAudioCaptureName() = 0;

Nilai kembali

Sebuah string yang merepresentasikan nama perangkat tangkapan audio saat ini.

GetCurrentAudioCaptureID

Mendapatkan ID perangkat perekaman yang sedang digunakan.

virtual String GetCurrentAudioCaptureID() = 0;

Nilai kembali

ID perangkat perekaman yang saat ini sedang digunakan.

SetCurrentAudioCaptureName

Memilih perangkat perekaman berdasarkan nama.

virtual int SetCurrentAudioCaptureName(const char* captureName) = 0;

Parameter

Nama

Tipe

Deskripsi

captureName

const char *

Nama perangkat perekaman.

Nilai kembali

0 untuk keberhasilan, nilai lain untuk kegagalan.

SetCurrentAudioCaptureID

Memilih perangkat perekaman berdasarkan ID.

virtual int SetCurrentAudioCaptureID(const char* captureID) = 0;

Parameter

Nama

Tipe

Deskripsi

captureID

const char *

ID perangkat perekaman.

Nilai kembali

0 untuk keberhasilan, nilai lain untuk kegagalan.

GetAudioPlayerList

Mendapatkan daftar speaker dalam sistem.

virtual AliEngineDeviceInfoList* GetAudioPlayerList() = 0;

Nilai kembalian

Sebuah pointer ke daftar speaker dalam sistem, AliEngineDeviceInfoList *.

GetSystemRecordAudioPlayerList

Mendapatkan daftar speaker yang dapat direkam dalam sistem (untuk perekaman internal sistem).

virtual AliEngineDeviceInfoList* GetSystemRecordAudioPlayerList() = 0;

Nilai kembali

Daftar perangkat pemutaran audio terutama disediakan untuk EnableSystemAudioRecording sebagai parameter terakhir untuk menangkap audio pemutaran sistem.

GetCurrentAudioPlayerName

Mendapatkan nama speaker yang sedang digunakan.

virtual String GetCurrentAudioPlayerName() = 0;

Nilai kembali

Nama perangkat pemutaran audio saat ini.

GetCurrentAudioPlayerID

Mendapatkan ID speaker yang sedang digunakan.

virtual String GetCurrentAudioPlayerID() = 0;

Nilai kembali

ID perangkat pemutaran audio saat ini.

SetCurrentAudioPlayerName

Pilih nama speaker.

virtual int SetCurrentAudioPlayerName(const char* playerName) = 0;

Nilai kembali

Nama perangkat pemutaran audio.

SetCurrentAudioPlayerID

Memilih speaker berdasarkan ID.

virtual int SetCurrentAudioPlayerID(const char* playerID) = 0;

Parameter

Nama

Tipe

Deskripsi

playerID

const char *

ID perangkat pemutaran.

Nilai kembali

0 untuk keberhasilan, nilai lainnya untuk kegagalan.

SetRecordingDeviceVolume

Mengatur volume perangkat perekaman audio. Rentang volume adalah [0, 100].

virtual int SetRecordingDeviceVolume(int volume) = 0;

Daftar parameter

Nama

Tipe

Deskripsi

volume

int

Volume [0..100].

Nilai kembali

0 untuk keberhasilan, nilai lainnya untuk kegagalan.

GetRecordingDeviceVolume

Mendapatkan volume perangkat perekam audio.

virtual int GetRecordingDeviceVolume() = 0;

Nilai kembali

>=0 mengembalikan volume. Nilai lain menunjukkan kegagalan.

SetPlaybackDeviceVolume

Mengatur volume perangkat pemutaran audio. Rentang volume adalah [0, 100].

virtual int SetPlaybackDeviceVolume(int volume) = 0;

Parameter

Nama

Tipe

Deskripsi

volume

int

Volume [0..100]

Nilai kembali

0 untuk keberhasilan, nilai lain untuk kegagalan.

GetPlaybackDeviceVolume

Mendapatkan volume perangkat pemutaran audio.

virtual int GetPlaybackDeviceVolume() = 0;

Nilai kembali

>=0 adalah volume sistem. Nilai lain menunjukkan kegagalan.

SetRecordingDeviceMute

Meredam perangkat perekaman audio.

virtual int SetRecordingDeviceMute(bool mute) = 0;

Parameter

Nama

Tipe

Deskripsi

mute

bool

Apakah perekaman akan diredam atau tidak.

Nilai kembali

0 untuk keberhasilan, nilai lainnya untuk kegagalan.

GetRecordingDeviceMute

Mendapatkan status bisu perangkat perekaman audio.

virtual bool GetRecordingDeviceMute() = 0;

Nilai kembali

Apakah perekaman dalam keadaan dibisukan atau tidak.

SetPlaybackDeviceMute

Membisukan perangkat pemutaran audio.

virtual int SetPlaybackDeviceMute(bool mute) = 0;

Parameter

Nama

Tipe

Deskripsi

mute

bool

Menentukan apakah perekaman akan diredam atau tidak.

Nilai kembali

0 untuk keberhasilan, nilai lainnya untuk kegagalan.

GetPlaybackDeviceMute

Mendapatkan status bisu perangkat pemutaran audio.

virtual bool GetPlaybackDeviceMute() = 0;

Return value

Apakah perangkat pemutaran dalam keadaan dibisukan atau tidak.

SetAudioEffectVoiceChangerMode

Mengatur mode efek pengubah suara.

virtual int SetAudioEffectVoiceChangerMode(const AliEngineAudioEffectVoiceChangerMode &mode) = 0;

Parameter

Nama

Tipe

Deskripsi

mode

AliEngineAudioEffectVoiceChangerMode

Nilai mode. Nilai default adalah AliEngineAudioEffectVoiceChangerOff.

Return value

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

SetAudioEffectPitchValue

Mengatur parameter perubahan pitch.

virtual int SetAudioEffectPitchValue(double value) = 0;

Parameter

Nama

Tipe

Deskripsi

value

double

Rentangnya adalah [0,5, 2,0]. Nilai default-nya adalah 1,0, yang berarti pitch tidak berubah.

Return value

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

SetAudioEffectReverbMode

Mengatur mode efek gema (reverberation).

virtual int SetAudioEffectReverbMode(const AliEngineAudioEffectReverbMode& mode) = 0;

Parameter

Nama

Tipe

Deskripsi

mode

AliEngineAudioEffectReverbMode

Mode efek suara. Nilai default adalah AliEngineAudioEffectReverbOff.

Nilai kembali

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

SetAudioEffectReverbParamType

Mengatur jenis efek reverberasi dan parameter spesifiknya.

virtual int SetAudioEffectReverbParamType(const AliEngineAudioEffectReverbParamType& type,
                                                  float value) = 0;

Parameter

Nama

Tipe

Deskripsi

type

AliEngineAudioEffectReverbParamType

Mode reverberasi efek suara.

value

float

Nilai parameter spesifik.

Nilai kembali

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

AddExternalAudioStream

Menambahkan aliran audio eksternal.

virtual int AddExternalAudioStream(const AliEngineExternalAudioStreamConfig& config) = 0;

Metode ini menambahkan aliran audio eksternal baru. Langkah-langkahnya adalah sebagai berikut:

  1. Panggil API <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#991b862eb353w" id="08ee3d1ed35jj">AddExternalAudioStream</a> untuk menambahkan aliran audio eksternal dan mendapatkan ID aliran audio eksternal tersebut.

  2. Panggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e6cf3f7cef0g6" id="fae817d0f00p3">PushExternalAudioStreamRawData</a> untuk mendorong data audio ke aliran audio yang telah dibuat.

  3. Saat panggilan berakhir, Anda perlu memanggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#u27oe" id="3b9a3eb119umh">RemoveExternalAudioStream</a> untuk menghapus aliran audio eksternal tersebut.

Untuk memublikasikan audio hasil tangkapan kustom dalam saluran, lihat dokumen Custom audio capture.

Parameter

Nama

Tipe

Deskripsi

config

AliEngineExternalAudioStreamConfig

Konfigurasi aliran audio eksternal.

Nilai pengembalian

Nilai lebih besar dari 0 menunjukkan pemanggilan metode berhasil, dan nilai kembali tersebut merupakan ID aliran audio eksternal. Nilai lainnya menunjukkan pemanggilan metode gagal.

PushExternalAudioStreamRawData

Memasukkan data aliran audio eksternal.

virtual int PushExternalAudioStreamRawData(int streamId, AliEngineAudioRawData& data) = 0;

Metode ini meneruskan data ke aliran audio yang ditentukan. Langkah-langkahnya adalah sebagai berikut:

  1. Panggil operasi <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#991b862eb353w" id="3836ac109732c">AddExternalAudioStream</a> untuk menambahkan aliran audio eksternal dan memperoleh ID aliran audio eksternal.

  2. Panggil PushExternalAudioStreamRawData untuk mendorong data audio ke aliran audio yang dibuat.

  3. Saat panggilan berakhir, Anda harus memanggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#u27oe" id="398ea88d61fn0">RemoveExternalAudioStream</a> untuk menghapus aliran audio eksternal tersebut.

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

Deskripsi metrik

Nama

Tipe

Deskripsi

streamId

int

ID dari aliran audio eksternal.

data

AliEngineAudioRawData

Data audio.

Nilai pengembalian

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

SetExternalAudioStreamPublishVolume

Menetapkan volume publikasi aliran audio eksternal.

virtual int SetExternalAudioStreamPublishVolume(int streamId, int vol) = 0;

Parameter

Nama

Tipe

Deskripsi

streamId

int

ID aliran audio eksternal.

vol

int

Volume publikasi.

Returns

Mengembalikan 0 jika metode dipanggil berhasil. Mengembalikan nilai bukan nol jika pemanggilan metode gagal.

SetExternalAudioStreamPlayoutVolume

Mengatur volume pemutaran untuk aliran audio eksternal.

virtual int SetExternalAudioStreamPlayoutVolume(int streamId, int vol) = 0;

Parameter

Nama

Tipe

Deskripsi

streamId

int

ID dari aliran audio eksternal.

vol

int

Volume pemutaran.

Nilai kembali

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

GetExternalAudioStreamPublishVolume

Mendapatkan volume publikasi dari aliran audio eksternal.

virtual int GetExternalAudioStreamPublishVolume(int streamId) = 0;

Parameter

Nama

Tipe

Deskripsi

streamId

int

ID dari aliran audio eksternal.

Returns

Volume publikasi, dari 0 hingga 100. Nilai kurang dari 0 menunjukkan kegagalan.

GetExternalAudioStreamPlayoutVolume

Mendapatkan volume pemutaran dari aliran audio eksternal.

virtual int GetExternalAudioStreamPlayoutVolume(int streamId) = 0;

Parameter

Nama

Tipe

Deskripsi

streamId

int

ID dari aliran audio eksternal.

Returns

Volume pemutaran, dari 0 hingga 100. Nilai kurang dari 0 menunjukkan kegagalan.

RemoveExternalAudioStream

Menghapus aliran audio eksternal.

virtual int RemoveExternalAudioStream(int streamId) = 0;

Metode ini menghapus aliran audio eksternal yang sesuai dengan streamId yang ditentukan. Ini merupakan pasangan dari metode AddExternalAudioStream.

Kapan harus memanggil

Jika Anda ingin menggunakan fitur input audio kustom, Anda perlu memanggil metode AddExternalAudioStream untuk menambahkan aliran audio dan mendapatkan ID aliran audio eksternal. Setelah itu, panggil antarmuka <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#e6cf3f7cef0g6" id="bdab74f108i1p">PushExternalAudioStreamRawData</a> untuk memasukkan data audio Anda ke SDK. Ketika Anda ingin berhenti menggunakan input audio kustom, panggil antarmuka ini untuk menghapus aliran audio eksternal yang sesuai dan membersihkan sumber daya.

Parameter

Nama

Tipe

Deskripsi

streamId

int

ID aliran audio.

Nilai kembali

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

GetAudioFileInfo

Mendapatkan informasi file audio.

virtual int GetAudioFileInfo(const char *filePath) = 0;

Ini adalah antarmuka asinkron. Anda dapat memperoleh informasi file audio melalui AliEngineEventListener::OnAudioFileInfo.

Parameter

Nama

Tipe

Deskripsi

filePath

const char *

Path dari file audio.

Returns

  • 0: Sukses.

  • Nilai bukan nol: Gagal. Kode kesalahan dikembalikan.

StartAudioAccompany

Memulai pencampuran iringan audio.

virtual int StartAudioAccompany(const char *filePath, const AliEngineAudioAccompanyConfig& config) = 0;

Ini adalah metode asinkron. Anda dapat memantau status pemutar iringan audio melalui AliEngineEventListener::OnAudioAccompanyStateChanged.

Parameter

Nama

Tipe

Deskripsi

filePath

const char *

Path file audio.

config

const AliEngineAudioAccompanyConfig

Konfigurasi pemutaran iringan audio.

Return value

  • 0: Sukses.

  • Nilai bukan nol: Gagal. Kode kesalahan dikembalikan.

StopAudioAccompany

Menghentikan pencampuran iringan audio.

virtual int StopAudioAccompany() = 0;

Returns

  • 0: Berhasil.

  • Nilai bukan nol: Panggilan gagal. Kode kesalahan dikembalikan.

SetAudioAccompanyVolume

Menetapkan volume dari audio iringan.

 virtual int SetAudioAccompanyVolume(int volume) = 0;

Parameter

Nama

Tipe

Deskripsi

volume

int

Volume audio iringan. Nilainya berkisar dari 0 hingga 100.

  • 0: Bisu.

  • 100: Volume asli.

Returns

  • 0: Panggilan berhasil.

  • Nilai bukan nol: Panggilan gagal. Kode kesalahan dikembalikan.

SetAudioAccompanyPublishVolume

Mengatur volume pengambilan aliran untuk iringan audio.

virtual int SetAudioAccompanyPublishVolume(int volume) = 0;
Catatan

Pengaturan volume hanya berlaku setelah memanggil AliEngine::StartAudioAccompany.

Parameter

Nama

Tipe

Deskripsi

volume

int

Volume pengambilan aliran untuk iringan audio. Rentang nilainya adalah [0, 100].

  • 0: Bisu.

  • 100: Volume asli.

Returns

  • 0: Sukses.

  • Nilai bukan nol: Gagal. Nilai tersebut merupakan kode kesalahan.

GetAudioAccompanyPublishVolume

Mendapatkan volume publikasi dari audio pendamping.

virtual int GetAudioAccompanyPublishVolume() = 0;

Returns

Volume publikasi dari audio pendamping. Nilainya berkisar antara 0 hingga 100.

SetAudioAccompanyPlayoutVolume

Menetapkan volume pemutaran lokal dari audio iringan.

virtual int SetAudioAccompanyPlayoutVolume(int volume) = 0;

Parameter

Nama

Tipe

Deskripsi

volume

int

Volume pemutaran audio iringan. Nilai berkisar antara 0 hingga 100.

  • 0: Bisu.

  • 100: Volume asli.

Returns

  • 0: Sukses.

  • Nilai bukan nol: Gagal. Kode kesalahan dikembalikan.

GetAudioAccompanyPlayoutVolume

Mendapatkan volume pemutaran lokal dari audio iringan.

virtual int GetAudioAccompanyPlayoutVolume() = 0;

Returns

Volume pemutaran lokal dari audio iringan. Nilainya berkisar antara 0 hingga 100.

PauseAudioAccompany

Menghentikan sementara pencampuran suara iringan.

virtual int PauseAudioAccompany() = 0;

Returns

  • 0: Panggilan berhasil.

  • Nilai bukan nol: Panggilan gagal. Kode kesalahan dikembalikan.

ResumeAudioAccompany

Melanjutkan pencampuran iringan audio.

virtual int ResumeAudioAccompany() = 0;

Returns

  • 0: Berhasil.

  • Nilai bukan nol: Gagal. Nilai tersebut adalah kode kesalahan.

GetAudioAccompanyDuration

Mendapatkan durasi file iringan audio dalam milidetik.

virtual int GetAudioAccompanyDuration() = 0;

Pengembalian

Durasi file iringan audio dalam milidetik.

GetAudioAccompanyCurrentPosition

Mendapatkan posisi pemutaran saat ini dari file iringan audio dalam milidetik.

virtual int GetAudioAccompanyCurrentPosition() = 0;

Pengembalian

Posisi pemutaran saat ini dari file iringan audio, dalam milidetik.

SetAudioAccompanyPosition

Mengatur posisi pemutaran file iringan.

virtual int SetAudioAccompanyPosition(int pos) = 0;

Mengembalikan

  • 0: Sukses.

  • Nilai bukan nol: Panggilan gagal. Kode kesalahan dikembalikan.

PreloadAudioEffect

Memuat terlebih dahulu file efek suara.

virtual int PreloadAudioEffect(unsigned int soundId,
                                       const char *filePath) = 0;

Parameter

Nama

Tipe

Deskripsi

soundId

unsigned int

ID yang Anda tetapkan untuk berkas efek suara tersebut.

filePath

const char *

Path file efek suara.

Returns

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

UnloadAudioEffect

Membatalkan pemuatan file efek suara yang telah dimuat sebelumnya.

virtual int UnloadAudioEffect(unsigned int soundId) = 0;

Parameter

Nama

Tipe

Deskripsi

soundId

NSInteger

ID yang diberikan ke file efek suara.

Returns

0 menunjukkan pemanggilan berhasil. Nilai lain menunjukkan pemanggilan gagal.

PlayAudioEffect

Memainkan efek suara.

virtual int PlayAudioEffect(unsigned int soundId, const char *filePath, const AliEngineAudioEffectConfig& config) = 0;

Parameter

Nama

Tipe

Deskripsi

soundId

unsigned int

ID yang ditetapkan untuk file efek suara.

filePath

const char *

Jalur file efek suara.

config

AliEngineAudioEffectConfig

Konfigurasi efek suara.

Return value

0 menunjukkan pemanggilan berhasil. Nilai lain menunjukkan pemanggilan gagal.

StopAudioEffect

Menghentikan pemutaran efek suara.

virtual int StopAudioEffect(unsigned int soundId) = 0;

Parameter

Nama

Tipe

Deskripsi

soundId

unsigned int

ID yang diberikan ke file efek suara.

Return value

Mengembalikan 0 jika metode dipanggil berhasil. Mengembalikan nilai lain jika pemanggilan metode gagal.

StopAllAudioEffects

Menghentikan semua efek suara.

- (int)StopAllAudioEffects;

Nilai kembalian

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

PauseAudioEffect

Menghentikan sementara efek suara.

virtual int PauseAudioEffect(unsigned int soundId) = 0;

Parameter

Nama

Tipe

Deskripsi

soundId

unsigned int

ID yang Anda tetapkan untuk file efek suara.

Returns

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

PauseAllAudioEffects

Menghentikan sementara semua efek suara.

virtual int PauseAllAudioEffects() = 0;

Returns

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

ResumeAudioEffect

Melanjutkan pemutaran efek suara.

virtual int ResumeAudioEffect(unsigned int soundId) = 0;

Parameter

Nama

Tipe

Deskripsi

soundId

unsigned int

ID yang diberikan ke file efek suara.

Returns

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

ResumeAllAudioEffects

Melanjutkan pemutaran semua efek suara.

virtual int ResumeAllAudioEffects() = 0;

Returns

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

SetAudioEffectPublishVolume

Mengatur volume efek suara untuk pengambilan aliran.

virtual int SetAudioEffectPublishVolume(unsigned int soundId, int volume) = 0;

Parameter

Nama

Tipe

Deskripsi

soundId

unsigned int

ID yang diberikan ke file efek suara.

volume

int

Volume pencampuran. Rentang nilainya adalah [0, 100]. Nilai default-nya adalah 50.

Nilai kembali

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

GetAudioEffectPublishVolume

Mendapatkan volume efek suara yang diterbitkan.

virtual int GetAudioEffectPublishVolume(unsigned int soundId) = 0;

Parameter

Nama

Tipe

Deskripsi

soundId

unsigned int

ID yang ditetapkan untuk file efek suara.

Returns

Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.

SetAllAudioEffectsPublishVolume

Menetapkan volume publikasi untuk semua efek suara.

virtual int SetAllAudioEffectsPublishVolume(int volume) = 0;

Parameter

Nama

Tipe

Deskripsi

volume

int

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

Returns

Mengembalikan 0 jika berhasil. Nilai lainnya menunjukkan terjadi kesalahan.

SetAudioEffectPlayoutVolume

Menetapkan volume pemutaran lokal dari efek suara.

virtual int SetAudioEffectPlayoutVolume(unsigned int soundId, int volume) = 0;

Parameter

Nama

Tipe

Deskripsi

soundId

unsigned int

ID dari efek suara.

volume

int

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

Returns

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

GetAudioEffectPlayoutVolume

Mendapatkan volume pemutaran lokal dari efek suara.

virtual int GetAudioEffectPlayoutVolume(unsigned int soundId) = 0;

Parameter

Nama

Tipe

Deskripsi

soundId

unsigned int

ID yang Anda tetapkan untuk file efek suara.

Returns

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

SetAllAudioEffectsPlayoutVolume

Mengatur volume pemutaran untuk semua efek suara.

virtual int SetAllAudioEffectsPlayoutVolume(int volume) = 0;

Parameter

Nama

Tipe

Deskripsi

volume

int

Volume pemutaran. Nilai berkisar antara 0 hingga 100. Nilai default adalah 50.

Return value

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

SetAllAudioEffectsPublishVolume

Mengatur volume pengambilan aliran untuk semua efek suara.

virtual int SetAllAudioEffectsPublishVolume(int volume) = 0;

Parameter

Nama

Tipe

Deskripsi

volume

int

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

Nilai kembali

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

SetLocalViewConfig

Mengatur jendela rendering dan parameter rendering untuk pratinjau video lokal.

virtual int SetLocalViewConfig(AliEngineVideoCanvas renderConfig,
                                         AliEngineVideoTrack track) = 0;

Metode ini mengatur tampilan pratinjau lokal. Metode ini menyambungkan aliran video lokal ke jendela tampilan (view) dan mengonfigurasi pengaturan rendering-nya, seperti mode rendering, mode cermin, dan sudut rotasi. Pengaturan ini hanya memengaruhi pratinjau lokal dan tidak memengaruhi aliran video yang dipublikasikan. Untuk mengatur tampilan pengguna jarak jauh, panggil SetRemoteViewConfig.

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

  • Untuk mengatur ulang parameter renderMode dari AliEngineVideoCanvas selama pemutaran, ubah hanya nilai renderMode dan pertahankan parameter lainnya tetap sama.

  • Untuk mengatur ulang parameter mirrorMode dari AliEngineVideoCanvas selama pemutaran, ubah hanya nilai mirrorMode dan pertahankan parameter lainnya tetap sama.

  • Panggil secara eksplisit StartPreview() untuk memulai pratinjau lokal.

Kapan harus memanggil

Panggil metode ini sebelum atau setelah bergabung ke saluran.

Parameter

Nama

Tipe

Deskripsi

renderConfig

AliEngineVideoCanvas

Parameter rendering, yang mencakup jendela rendering dan mode rendering.

track

AliEngineVideoTrack

Tipe trek video.

Pengembalian

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

SetCameraCapturerConfiguration

Mengonfigurasi preferensi penangkapan kamera, seperti arah kamera dan laju frame penangkapan.

virtual int SetCameraCapturerConfiguration(const AliEngineCameraCapturerConfiguration& config) = 0;

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

Kapan harus memanggil

Panggil metode ini sebelum membuka kamera, misalnya, sebelum melakukan operasi berikut:

  • StartPreview

  • JoinChannel

Parameter

Nama

Tipe

Deskripsi

config

AliEngineCameraCapturerConfiguration

Preferensi pengambilan kamera, seperti arah kamera dan laju frame. Nilai default-nya adalah sebagai berikut:

  • preferensi:

    • AliEngineCaptureOutputPreferenceAuto: SDK secara otomatis menyesuaikan parameter pengambilan.

    • AliEngineCaptureOutputPreferencePerformance: Pratinjau definisi tinggi (HD). Proses pengambilan memprioritaskan kualitas pratinjau video.

    • AliEngineCaptureOutputPreferencePerformance: Proses pengambilan memilih resolusi yang paling mendekati aliran ingest untuk memprioritaskan performa perangkat.

  • fps: Laju frame. Default: 15. Nilai -1 menunjukkan bahwa pengaturan internal penyandi digunakan.

  • cameraCaptureProfile: Menentukan resolusi untuk pengambilan video. Default: 0.

  • disableVideoCaptureReverse: Menentukan apakah akan membalik frame video yang diambil berdasarkan rasio aspek. -1: Default. 0: Dinonaktifkan. 1: Diaktifkan.

  • captureObserverOriginal: Menentukan apakah akan melakukan callback terhadap data frame video asli. -1: default, 0: dinonaktifkan, 1: diaktifkan.

"-1" menunjukkan penggunaan pengaturan default SDK.

Nilai kembali

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

EnableLocalVideo

Menonaktifkan atau mengaktifkan kembali pengambilan video lokal.

virtual int EnableLocalVideo(bool enabled) = 0;

Metode ini mengaktifkan atau menonaktifkan pengambilan video lokal. Saat pengambilan video lokal dinonaktifkan, tidak ada data video yang tersedia untuk pratinjau lokal maupun pengambilan aliran. Hal ini tidak memengaruhi penerimaan aliran video jarak jauh. Jika metode ini dipanggil untuk menonaktifkan kamera lokal, baik pratinjau lokal maupun aliran keluar akan membekukan pada bingkai terakhir.

Catatan

Pengambilan video lokal diaktifkan secara default.

Kapan harus memanggil

Panggil metode ini sebelum atau setelah Anda bergabung ke saluran.

Callback terkait

Pemanggilan metode ini yang berhasil akan memberi tahu pengguna jarak jauh melalui callback OnUserVideoEnabled.

Parameter

Nama

Tipe

Deskripsi

enable

bool

true: Mengaktifkan pengambilan video lokal. Ini adalah nilai default. false: Menonaktifkan pengambilan video lokal.

Pengembalian

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

MuteLocalCamera

Menghentikan atau melanjutkan pengiriman data video lokal.

virtual int MuteLocalCamera(bool mute, AliEngineVideoTrack track) = 0;

Panggil metode ini selama pengambilan aliran untuk mengirim frame video hitam. Pratinjau lokal tidak terpengaruh. Modul penangkapan, pengkodean, dan pengiriman tetap berjalan, tetapi konten video diganti dengan frame hitam.

Catatan

Metode ini hanya mengontrol apakah akan mengirim frame hitam pada aliran video tertentu. Metode ini tidak menghentikan penangkapan video atau pengiriman data. Untuk menonaktifkan penangkapan video, gunakan metode EnableLocalVideo. Untuk menghentikan pengiriman data video, gunakan metode PublishLocalVideoStream.

Parameter

Nama

Tipe

Deskripsi

mute

bool

Menentukan apakah akan mengirim frame hitam. Nilai default-nya adalah false.true: Mengirim frame hitam.false: Melanjutkan pengaliran video normal.

track

AliEngineVideoTrack

Track video yang status penerbitannya ingin Anda ubah.

Nilai Kembali

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

SetRemoteViewConfig

Mengatur jendela rendering dan parameter rendering untuk video jarak jauh.

virtual int SetRemoteViewConfig(AliEngineVideoCanvas renderConfig,
                                          const char *uid,
                                          AliEngineVideoTrack track) = 0;

Metode ini menyambungkan tampilan untuk aliran video tertentu dari pengguna jarak jauh dan mengatur mode rendering, mode cermin (mirror), serta sudut rotasi untuk tampilan lokal, yang hanya memengaruhi citra video yang dilihat oleh pengguna lokal. Jika Anda perlu mengatur tampilan pratinjau lokal, panggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#fbc8ab10f5e03" id="c0f59b8c26y7o">SetLocalViewConfig</a>.

  • Jika parameter view dalam AliEngineVideoCanvas kosong, rendering berhenti.

  • Untuk mengatur ulang parameter renderMode dari AliEngineVideoCanvas selama pemutaran, ubah hanya renderMode dan pertahankan parameter lainnya tetap tidak berubah.

  • Untuk mengatur ulang parameter mirrorMode dari AliEngineVideoCanvas selama pemutaran, ubah hanya mirrorMode dan pertahankan parameter lainnya tetap tidak berubah.

Kapan harus memanggil

Panggil metode ini ketika Anda menerima callback OnRemoteTrackAvailableNotify. Callback ini menunjukkan bahwa aliran video pengguna jarak jauh aktif.

Parameter

Nama

Tipe

Deskripsi

canvas

AliEngineVideoCanvas

Parameter rendering, yang mencakup jendela rendering dan mode rendering.

uid

const char *

ID pengguna.

track

AliEngineVideoTrack

Jenis trek video yang akan ditetapkan.

Nilai kembali

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

IsCameraOn

Memeriksa apakah kamera menyala.

virtual bool IsCameraOn() = 0;

Return value

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

SetVideoEncoderConfiguration

Mengatur properti pengkodean video.

virtual void SetVideoEncoderConfiguration(const AliEngineVideoEncoderConfiguration& config) = 0;

Gunakan metode ini untuk mengatur parameter video untuk aliran video. Parameter-parameter tersebut mencakup resolusi, laju frame, bitrate, dan orientasi video. Panggil metode ini untuk semua skenario video.

Catatan

Semua parameter memiliki batas rentang. Jika suatu parameter diatur di luar rentang yang valid, SDK akan menyesuaikannya secara otomatis.

Kapan harus memanggil

Panggil metode ini sebelum atau setelah bergabung dalam rapat. Untuk mengatur properti pengkodean video hanya sekali per rapat khusus untuk aliran kamera, panggil metode ini sebelum bergabung.

Batasan pemanggilan

Baik parameter `mirrorMode` pada metode ini maupun metode setVideoMirrorMode dapat mengatur cermin video untuk pengambilan aliran. Gunakan hanya salah satu opsi tersebut. Jika Anda menggunakan keduanya, efek cermin mungkin bertumpuk. Hal ini dapat menyebabkan pengaturan cermin gagal atau berperilaku tidak sesuai harapan.

Parameter

Nama

Tipe

Deskripsi

config

AliEngineVideoEncoderConfiguration

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

  • dimensi: [640, 480]

  • frameRate: 15

  • bitrate: 0

  • keyFrameInterval: Interval keyframe dalam milidetik. Nilai default adalah 0. Nilai 0 berarti SDK mengontrol interval.

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

  • mirrorMode: Mode cermin untuk pengambilan aliran. Nilai default adalah `AliEngineVideoMirrorModeDisabled`.

  • orientationMode: 0

  • rotation: 0

SetVideoDecoderConfiguration

Menetapkan properti dekoding video untuk aliran kamera. Properti ini mencakup pengaturan dekoding perangkat lunak atau perangkat keras dan apakah akan mengaktifkan B-frame.

virtual void SetVideoDecoderConfiguration(const AliEngineVideoDecoderConfiguration& config) = 0;

Kapan harus memanggil

Panggil metode ini sebelum bergabung ke konferensi dan menarik aliran.

Parameter

Parameter

Tipe

Deskripsi

config

AliEngineVideoDecoderConfiguration

Struktur yang menjelaskan properti decoding video, termasuk properti utama dan nilai default-nya.

StartPreview

Memulai pratinjau lokal dan secara otomatis mengaktifkan kamera.

virtual int StartPreview(int width = 0, int height = 0) = 0;

Metode ini memulai pratinjau video lokal dan secara otomatis mengaktifkan kamera. Untuk menghentikan pratinjau lokal, panggil metode StopPreview.

Catatan

Pemanggilan LeaveChannel secara otomatis menghentikan pratinjau lokal. Jika Anda tidak melakukan ingest aliran kamera, kamera juga akan secara otomatis dimatikan.

Kapan harus memanggil

  • Sebelum memanggil metode ini, panggil SetLocalViewConfig untuk menetapkan tampilan bagi pratinjau lokal. Jika Anda tidak menetapkan tampilan, pratinjau tidak akan ditampilkan. Ingest aliran tidak terpengaruh.

  • Sesuai kebutuhan, panggil metode ini sebelum Anda memanggil JoinChannel untuk memulai pratinjau. Kamera akan secara otomatis diaktifkan.

Nilai Pengembalian

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

StopPreview

Menghentikan pratinjau lokal.

virtual int StopPreview() = 0;

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

Catatan

Meninggalkan saluran dengan memanggil LeaveChannel secara otomatis menghentikan pratinjau lokal. Jika Anda tidak sedang melakukan pengambilan aliran dari Kamera, Kamera juga akan dimatikan secara otomatis.

Kapan harus memanggil

Panggil metode ini untuk menghentikan pratinjau setelah pratinjau dimulai.

Return value

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

setVideoMirrorMode

Mengatur mode cermin untuk pratinjau lokal dan aliran video yang dipublikasikan.

virtual int setVideoMirrorMode(AliEngineVideoPipelineMirrorMode mirrorMode) = 0;

Mengaktifkan atau menonaktifkan mode cermin untuk pratinjau video lokal dan aliran video yang dipublikasikan.

Catatan

Metode ini memiliki prioritas lebih tinggi dibandingkan SetLocalViewConfig&SetVideoEncoderConfiguration. Panggil metode ini untuk mengatur mode cermin video.

Kapan harus memanggil

Anda dapat memanggil metode ini secara dinamis baik sebelum maupun setelah bergabung ke saluran. SDK mencatat status tersebut secara internal. Perubahan akan diterapkan pada video ketika pratinjau dan pengkodean (pengambilan aliran) tersedia.

Batasan

Fungsi metode ini tumpang tindih dengan parameter `mirrorMode` dalam SetLocalViewConfig&SetVideoEncoderConfiguration. Gunakan hanya metode ini.

Parameter

Nama

Tipe

Deskripsi

mirrorMode

AliEngineVideoPipelineMirrorMode

Mode cermin.

Pengembalian

  • 0: Pemanggilan metode berhasil.

  • <0: Pemanggilan metode gagal.

    • AliRtcErrInner: Terjadi kesalahan internal SDK. Periksa apakah instans SDK telah berhasil dibuat.

SetCapturePipelineScaleMode

Mengatur apakah akan menskalakan video yang ditangkap segera setelah penangkapan atau selama proses encoding.

virtual void SetCapturePipelineScaleMode(const AliEngineCapturePipelineScaleMode mode) = 0;

Pengaturan ini berguna ketika resolusi penangkapan berbeda dari resolusi encoding. Pengaturan ini memungkinkan Anda mengontrol apakah data pratinjau sesuai dengan data untuk aliran yang dimasukkan (ingested stream).

Kapan harus memanggil

Panggil metode ini sebelum membuka kamera. Misalnya, panggil sebelum memulai pratinjau dengan StartPreview atau bergabung ke saluran dengan JoinChannel.

Parameter

Nama

Tipe

Deskripsi

mode

AliEngineCapturePipelineScaleMode

Mengontrol kapan video yang ditangkap akan diskalakan. Secara default, penskalaan terjadi segera setelah penangkapan.

GetCameraList

Mendapatkan daftar kamera.

virtual AliEngineDeviceInfoList* GetCameraList() = 0;

Nilai kembali

Sebuah pointer ke objek daftar kamera, AliEngineDeviceInfoList*.

GetCurrentCameraName

Mendapatkan nama kamera yang sedang digunakan.

virtual String GetCurrentCameraName() = 0;

Nilai kembali

Nama perangkat dari kamera yang sedang digunakan.

GetCurrentCameraID

Mendapatkan ID dari kamera saat ini.

virtual String GetCurrentCameraID() = 0;

Nilai kembali

ID dari kamera saat ini.

SetCurrentCameraName

Mengatur kamera saat ini.

virtual int SetCurrentCameraName(const char* cameraName) = 0;

Parameter

Nama

Tipe

Deskripsi

cameraName

const char *

Nama perangkat dari kamera.

Nilai pengembalian

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

SetCurrentCameraID

Menetapkan ID kamera saat ini.

virtual int SetCurrentCameraID(const char* cameraID) = 0;

Parameter

Nama

Tipe

Deskripsi

cameraID

const char *

ID perangkat.

Nilai pengembalian

Mengembalikan 0 jika berhasil. Nilai bukan nol menunjukkan kegagalan.

GetCurrentCameraSupportedResolutionList

Mendapatkan resolusi yang didukung.

virtual AliEngineVideoResolutionList * GetCurrentCameraSupportedResolutionList(int source) = 0 ;

Parameter

Nama

Tipe

Deskripsi

source

int

Jenis perangkat.

Nilai kembali

Mengembalikan daftar resolusi yang didukung. Mengembalikan NULL jika operasi gagal.

SetExternalVideoSource

Mengaktifkan sumber input video eksternal.

virtual int SetExternalVideoSource(bool enable,
        AliEngineVideoTrack type,
        AliEngineRenderMode renderMode) = 0;

Parameter

Nama

Tipe

Deskripsi

enable

bool

Atur ke true untuk mengaktifkan sumber input video eksternal, atau false untuk menonaktifkannya.

type

AliEngineVideoTrack

Jenis aliran.

renderMode

AliEngineRenderMode

Mode rendering.

PushExternalVideoFrame

Mendorong data video eksternal.

virtual int PushExternalVideoFrame(const AliEngineVideoRawData &frame,
        AliEngineVideoTrack type) = 0;

Parameter

Nama

Tipe

Deskripsi

frame

AliEngineVideoRawData

Data frame.

type

AliEngineVideoTrack

Tipe aliran.

Return value

Mengembalikan 0 jika pemanggilan metode berhasil. Mengembalikan nilai lain jika pemanggilan metode gagal.

StartPublishLiveStream

Memulai aliran langsung bypass.

virtual int StartPublishLiveStream(const String& streamURL, const AliEngineLiveTranscodingParam &transcoding) = 0;

Parameter

Nama

Type

Deskripsi

streamUrl

const String

URL ingest.

transcoding

AliEngineLiveTranscodingParam

Parameter untuk pengambilan aliran.

Returns

Mengembalikan 0 untuk pemanggilan metode yang berhasil. Mengembalikan nilai bukan nol untuk pemanggilan metode yang gagal.

UpdatePublishLiveStream

Memperbarui parameter untuk streaming langsung tanpa proses tambahan.

virtual int UpdatePublishLiveStream(const String& streamURL, const AliEngineLiveTranscodingParam &transcoding) = 0;

Parameter

Nama

Tipe

Deskripsi

streamUrl

const String

URL ingest.

transcoding

AliEngineLiveTranscodingParam

Parameter yang diperlukan untuk pengambilan aliran.

Returns

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

StopPublishLiveStream

Menghentikan aliran langsung bypass.

virtual int StopPublishLiveStream(const String& streamURL) = 0;

Parameter

Nama

Tipe

Deskripsi

streamURL

const String

URL ingest.

Return value

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

GetPublishLiveStreamState

Mendapatkan status aliran langsung bypass.

virtual AliEngineLiveTranscodingState GetPublishLiveStreamState(const String& streamURL) = 0;

Parameter

Parameter

Tipe

Deskripsi

streamURL

const String

URL ingest.

Returns

Mengembalikan status aliran langsung bypass.

StartLastmileDetect

Memulai uji probe kualitas jaringan last-mile. Masalah pada jaringan lokal dapat menyebabkan panggilan audio dan video gagal. Panggil metode ini untuk mendapatkan informasi seperti bandwidth jaringan uplink dan downlink, tingkat kehilangan paket, jitter, dan waktu respons (RT) tautan. Informasi ini membantu Anda menemukan dan mengatasi masalah jaringan.

 virtual int StartLastmileDetect(bool uplink, bool downlink, int uplinkBandWidth, int downlinkBandWidth) = 0;

Kapan harus memanggil

Panggil metode ini sebelum memanggil JoinChannel. Hasil pengujian dikembalikan melalui callback. Pengujian probe jaringan dapat memakan waktu cukup lama. Panggil StopLastmileDetect untuk menghentikan pengujian probe jaringan sesuai kebutuhan.

Batasan penggunaan

Kit pengembangan perangkat lunak (SDK) hanya dapat menjalankan satu pengujian probe jaringan dalam satu waktu. Jika Anda memanggil metode ini lagi sebelum pengujian sebelumnya selesai, pemanggilan tersebut akan gagal.

Callback terkait

Setelah Anda berhasil memanggil metode ini, dua callback akan dipicu:

Parameter

Parameter

Tipe

Deskripsi

uplink

bool

Menunjukkan apakah akan menguji jaringan uplink.

downlink

bool

Menunjukkan apakah akan menguji jaringan downlink.

uplinkBandWidth

int

Bandwidth maksimum untuk pengujian uplink.

downlinkBandWidth

int

Bandwidth maksimum untuk pengujian downlink.

Nilai kembalian

  • 0: Pemanggilan metode berhasil.

  • <0: Pemanggilan metode gagal. Misalnya, Anda telah bergabung ke saluran.

StopLastmileDetect

Menghentikan probe kualitas jaringan.

virtual int StopLastmileDetect() = 0;

Kapan harus memanggil

Panggil API ini setelah Anda membuat engine dan sebelum bergabung ke dalam rapat.

Nilai yang dikembalikan

  • 0: Pemanggilan berhasil.

  • <0: Pemanggilan gagal.

SendMediaExtensionMsg

Mengirim pesan ekstensi media. Fitur ini diimplementasikan secara internal menggunakan Supplemental Enhancement Information (SEI).

virtual int SendMediaExtensionMsg(const int8_t * message, uint32_t length, int32_t repeatCount, uint32_t delay, bool isKeyFrame) = 0;

SDK memungkinkan Anda mengirim dan menerima pesan ekstensi media. Untuk menerima pesan, lihat AliEngineEventListener::OnMediaExtensionMsgReceived. Pesan-pesan ini menggunakan kembali saluran data audio dan video. Oleh karena itu, kendalikan frekuensi dan panjang data pesan kustom Anda. Perhatikan batasan berikut:

  • Jumlah pesan yang dikirim per detik tidak boleh melebihi nilai frame per detik (fps) yang ditetapkan dalam profil.

  • Untuk menjaga kualitas transmisi data media, batasi isi pesan kustom hingga 4 KB. Hal ini memungkinkan Anda mentransfer data dalam jumlah kecil.

  • Parameter repeatCount dalam fungsi sendMediaExtensionMsg mengontrol redundansi pesan. Jika Anda menetapkan parameter ini ke nilai lebih besar dari 1, pesan akan dikirim beberapa kali. Hal ini membantu mencegah kehilangan pesan akibat loss paket jaringan. Pengguna lain dalam saluran akan menerima pesan yang sama beberapa kali. Sisi penerima harus menghapus duplikat pesan-pesan tersebut.

  • Pelanggan dalam saluran juga menerima pesan kustom ini selama live streaming bypass. Jika Anda menetapkan parameter repeatCount ke -1, pesan akan dikirim terus-menerus hingga Anda memanggil sendMediaExtensionMsg lagi.

  • Hanya satu pemanggilan sendMediaExtensionMsg yang diproses dalam satu waktu. Pemanggilan baru ke fungsi ini akan menimpa pemanggilan sebelumnya jika pemanggilan sebelumnya belum dikirim atau belum selesai.

Parameter

Nama

Tipe

Deskripsi

message

const int8_t *

Isi dari pesan ekstensi. Panjang maksimum adalah 4 KB.

length

uint32_t

Panjang pesan ekstensi. Panjang maksimum adalah 4 KB (4 × 1.024 byte).

repeatCount

int32_t

Jumlah pengulangan. Ini merepresentasikan redundansi pesan dan digunakan untuk mencegah kehilangan pesan akibat loss paket jaringan. Nilai -1 berarti pesan dikirim ulang tanpa henti hingga SendMediaExtensionMsg dipanggil lagi.

delay

uint32_t

Penundaan dalam milidetik sebelum pesan dikirim. Parameter ini menunda pengiriman SEI. SEI disambungkan ke aliran H.264 atau H.265 yang telah dikodekan. Oleh karena itu, penundaan aktual mungkin sedikit lebih lama daripada nilai yang ditentukan.

isKeyFrame

bool

Menentukan apakah akan menambahkan SEI hanya pada keyframe. Jika diatur ke true, SEI hanya ditambahkan pada keyframe.

Mengembalikan

  • 0: Sukses.

  • <0: Gagal. Kode kesalahan dikembalikan.

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

SendMediaExtensionMsgEx

Mengirim pesan ekstensi media. Fungsi ini diimplementasikan secara internal menggunakan Informasi Peningkatan Tambahan (SEI).

virtual int SendMediaExtensionMsgEx(const int8_t * message, uint32_t length, int32_t repeatCount, uint32_t delay, bool isKeyFrame, int32_t payloadType) = 0;

SDK menyediakan fitur untuk mengirim dan menerima SEI. Untuk detail di sisi penerima, lihat AliEngineEventListener::OnMediaExtensionMsgReceived. Saat menggunakan fitur ini, Anda perlu menggunakan kembali saluran data audio dan video. Oleh karena itu, Anda harus mengontrol frekuensi pengiriman pesan kustom dan panjang pesan tersebut. Perhatikan poin-poin berikut:

  • Jumlah maksimum pesan yang dikirim per detik tidak boleh melebihi nilai frames per second (fps) yang ditetapkan dalam profil.

  • Isi pesan kustom dibatasi hingga 4 KB untuk menghindari dampak negatif terhadap kualitas transmisi data media. Anda dapat menggunakannya untuk mentransmisikan data dalam jumlah kecil.

  • Parameter `repeatCount` pada fungsi `sendMediaExtensionMsg` menentukan redundansi pesan. Jika `repeatCount` lebih besar dari 1, pesan dikirim beberapa kali untuk mencegah kehilangan pesan akibat loss paket jaringan. Pengguna lain dalam saluran akan menerima pesan yang sama beberapa kali. Anda harus menghapus duplikat pesan-pesan tersebut.

  • Pelanggan dalam saluran juga menerima pesan kustom selama live streaming bypass. Jika Anda mengatur parameter `repeatCount` ke -1, data dikirim tanpa batas. Pengiriman hanya berhenti jika Anda memanggil `sendMediaExtensionMsg` lagi.

  • Hanya satu panggilan `sendMediaExtensionMsg` yang diproses dalam satu waktu. Panggilan baru ke `sendMediaExtensionMsg` akan menimpa panggilan sebelumnya jika pesan sebelumnya belum dikirim atau masih dalam proses pengiriman.

Parameter

Nama

Tipe

Deskripsi

message

const int8_t *

Konten pesan ekstensi. Panjang maksimum adalah 4 KB.

length

uint32_t

Panjang pesan ekstensi. Panjang maksimum adalah 4 KB (4 × 1.024 byte).

repeatCount

int32_t

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

delay

uint32_t

Penundaan dalam milidetik sebelum pesan dikirim. Ini menunda pengiriman SEI. Karena SEI disambungkan ke aliran H.264/H.265 yang telah dikodekan, penundaan aktual sedikit lebih lama daripada nilai yang dikonfigurasi.

isKeyFrame

bool

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

payloadType

int32_t

Tipe muatan. Nilainya dapat berupa `5` atau nilai dalam rentang `100` hingga `254`.

Nilai kembalian

  • 0: Panggilan berhasil.

  • <0: Panggilan gagal. Kode kesalahan dikembalikan.

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

OnConnectionStatusChange

Callback untuk perubahan status konektivitas jaringan.

virtual void OnConnectionStatusChange(int status, int reason) {};

Deskripsi parameter

Parameter

Tipe

Deskripsi

status

AliEngineConnectionStatus

Status koneksi saat ini.

reason

AliEngineConnectionStatusChangeReason

Alasan perubahan status koneksi.

OnLocalDeviceException

Pemicu balik ini dipanggil ketika terjadi pengecualian pada perangkat lokal. Anda harus menangani pemicu balik ini.

virtual void OnLocalDeviceException(AliEngineLocalDeviceType deviceType, AliEngineLocalDeviceExceptionType exceptionType, const char* msg){};

Parameter

Parameter

Tipe

Deskripsi

deviceType

AliEngineLocalDeviceType

Tipe perangkat.

exceptionType

AliEngineLocalDeviceExceptionType

Jenis pengecualian perangkat.

msg

const char*

Pesan pengecualian.

OnAuthInfoWillExpire

Callback ini memberi tahu Anda bahwa informasi autentikasi Anda akan kedaluwarsa dalam 30 detik. Anda harus menangani callback ini.

virtual void OnAuthInfoWillExpire() {};

Ketika Anda menerima callback ini, informasi autentikasi Anda akan kedaluwarsa dalam 30 detik. Dapatkan token baru dan perbarui informasi autentikasi Anda dengan salah satu cara berikut:

  • Panggil metode RefreshAuthInfo untuk memperbarui informasi autentikasi.

  • Panggil LeaveChannel untuk meninggalkan saluran saat ini, lalu panggil JoinChannel untuk bergabung kembali ke saluran tersebut.

Pemicu

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

OnAuthInfoExpired

Panggilan balik ini dipicu ketika server melaporkan bahwa informasi autentikasi Anda telah kedaluwarsa.

virtual void OnAuthInfoExpired() {};

Untuk tetap berada di saluran, buat token baru di server Anda. Kemudian, perbarui informasi autentikasi Anda sebagai berikut:

  • Panggil LeaveChannel untuk meninggalkan saluran saat ini, lalu panggil JoinChannel untuk bergabung kembali ke saluran.

Pemicu

Panggilan balik ini dipicu ketika informasi autentikasi Anda kedaluwarsa.

OnJoinChannelResult

Callback ini memberikan hasil dari proses bergabung ke dalam saluran. Callback ini setara dengan operasi blok dari metode JoinChannel. Keduanya menangani event setelah pengguna bergabung ke dalam saluran. Anda hanya perlu menggunakan salah satunya.

virtual void OnJoinChannelResult(int result, const char *channel, const char *userId, int elapsed) {}

Kondisi pemicu

Saat sebuah aplikasi memanggil metode JoinChannel, callback ini dipicu. Callback ini menunjukkan apakah pengguna berhasil bergabung ke dalam saluran dan mengembalikan informasi terkait proses bergabung tersebut, termasuk waktu yang berlalu.

Parameter

Parameter

Tipe

Deskripsi

result

int

Hasil dari proses bergabung ke dalam saluran. Nilai 0 menunjukkan keberhasilan. Nilai bukan nol menunjukkan kegagalan dan mengembalikan kode kesalahan. Untuk informasi selengkapnya, lihat Daftar kode kesalahan. Kode kesalahan umum meliputi:

  • ERR_JOIN_BAD_APPID: AppId tidak ada.

  • ERR_JOIN_INVALID_APPID: AppId tidak valid.

  • ERR_JOIN_BAD_CHANNEL: Saluran tidak ada.

  • ERR_JOIN_INVALID_CHANNEL: Saluran tidak valid.

  • ERR_JOIN_BAD_TOKEN: Token tidak ada.

  • ERR_JOIN_TIMEOUT: Permintaan untuk bergabung dengan saluran kehabisan waktu.

  • ERR_JOIN_BAD_PARAM: Parameter yang tidak valid digunakan untuk bergabung ke dalam saluran.

  • ERR_JOIN_FAILED: Gagal bergabung dengan saluran.

  • ERR_JOIN_CONFIG_INVALID: Konfigurasi bergabung tidak valid, seperti token kosong.

channel

const char *

ID saluran.

userId

const char *

ID pengguna.

elapsed

int

Waktu yang telah berlalu untuk bergabung dengan saluran.

OnLeaveChannelResult

Callback untuk hasil meninggalkan saluran. Callback ini dikembalikan setelah Anda memanggil metode LeaveChannel. Jika Anda segera memanggil Destroy setelahnya, Anda tidak akan menerima callback ini.

virtual void OnLeaveChannelResult(int result, AliEngineStats stats) {}

Pemicu

Callback ini dipicu ketika aplikasi berhasil memanggil LeaveChannel untuk meninggalkan saluran. Callback ini mengembalikan hasil dari proses meninggalkan saluran dan statistik sesi saluran tersebut.

Catatan

Callback ini tidak dipicu jika Anda memanggil LeaveChannel lalu segera memanggil Destroy untuk menghapus engine.

Parameter

Parameter

Tipe

Deskripsi

result

int

Hasil dari proses meninggalkan saluran. Nilai 0 menunjukkan keberhasilan. Kode kesalahan dikembalikan jika gagal.

stats

AliEngineStats

Statistik untuk sesi saluran.

OnRemoteUserOffLineNotify

Callback yang dipicu ketika pengguna jarak jauh offline.

virtual void OnRemoteUserOffLineNotify(const char *uid, AliEngineUserOfflineReason reason) {}

Callback ini memberi tahu pengguna lokal ketika pengguna jarak jauh offline karena alasan apa pun.

Pemicu

  • Pengguna remote secara aktif meninggalkan saluran.

  • Ketika streamer jarak jauh memanggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#c99c2b257dd8o" id="03e45f655fcxx">SetClientRole</a> untuk beralih ke peran penonton (diatur ke AliEngineClientRoleLive), callback dipicu.

  • Streamer jarak jauh dianggap offline karena periode inaktivitas data yang berkepanjangan.

Parameter

Parameter

Tipe

Deskripsi

uid

const char *

ID pengguna. Pengidentifikasi unik yang ditetapkan oleh server aplikasi.

reason

AliEngineUserOfflineReason

Alasan mengapa pengguna menjadi offline.

OnRemoteUserOnLineNotify

Callback ini memberi tahu klien lokal bahwa pengguna remote telah bergabung ke dalam saluran.

virtual void OnRemoteUserOnLineNotify(const char *uid, int elapsed) {}

Callback ini memberi tahu klien lokal bahwa pengguna remote telah bergabung ke saluran.

Kondisi pemicu

  • Pengguna remote bergabung ke dalam saluran.

  • Setelah pengguna lokal bergabung ke saluran, pemicu callback ini dijalankan untuk semua pengguna jarak jauh yang sudah berada di saluran tersebut. Hal ini menampilkan pengguna yang sebelumnya telah bergabung.

Parameter

Parameter

Tipe

Deskripsi

uid

const char *

ID pengguna unik yang ditetapkan oleh server aplikasi.

elapsed

int

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

OnRemoteTrackAvailableNotify

Panggilan balik ini dipicu ketika aliran pengguna jarak jauh berubah.

virtual void OnRemoteTrackAvailableNotify(const char *uid,
                                                  AliEngineAudioTrack audioTrack,
                                                  AliEngineVideoTrack videoTrack) {}

Panggilan balik ini dipicu ketika status penerbitan aliran pengguna jarak jauh berubah. Panggilan balik ini memberikan informasi real-time mengenai apakah pengguna jarak jauh sedang menerbitkan aliran audio dan video. Gunakan informasi ini untuk menampilkan atau menyembunyikan audio dan video pengguna jarak jauh pada antarmuka pengguna.

Kondisi pemicu

Callback ini dipicu dalam skenario berikut:

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

  • Pengguna jarak jauh berhenti menerbitkan aliran (audio dan video).

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

Contoh aliran video berikut menunjukkan kapan panggilan balik ini dipicu. Asumsikan pengguna jarak jauh awalnya tidak menerbitkan aliran video:

  • Pengguna jarak jauh mulai menerbitkan aliran kamera (Status penerbitan: Tidak ada aliran video -> Hanya aliran kamera). Panggilan balik lokal mengembalikan AliEngineVideoTrackCamera, yang menunjukkan bahwa aliran kamera pengguna jarak jauh tersedia.

  • Pengguna jarak jauh juga mulai menerbitkan aliran berbagi layar (Status penerbitan: Hanya aliran kamera -> Aliran kamera dan berbagi layar). Panggilan balik lokal mengembalikan AliEngineVideoTrackBoth, yang menunjukkan bahwa aliran kamera dan berbagi layar dari pengguna jarak jauh keduanya tersedia.

  • Pengguna jarak jauh berhenti menerbitkan aliran kamera tetapi tetap menerbitkan aliran berbagi layar (Status penerbitan: Aliran kamera dan berbagi layar -> Hanya aliran berbagi layar). Panggilan balik lokal mengembalikan AliEngineVideoTrackScreen, yang menunjukkan bahwa hanya aliran berbagi layar yang saat ini tersedia.

  • Pengguna jarak jauh kemudian berhenti menerbitkan aliran berbagi layar (Status penerbitan: Hanya aliran berbagi layar -> Tidak ada aliran video). Panggilan balik lokal mengembalikan AliEngineVideoTrackNo, yang menunjukkan bahwa tidak ada aliran video yang saat ini tersedia.

Catatan

Panggilan balik ini mengembalikan status penerbitan aliran pengguna jarak jauh. Untuk mengidentifikasi aliran spesifik mana yang dibatalkan penerbitannya, catat status sebelum dan sesudah panggilan balik ini.

Parameter

Parameter

Tipe

Deskripsi

uid

const char *

ID pengguna, yaitu pengenal unik yang ditetapkan oleh server aplikasi.

audioTrack

AliEngineAudioTrack

Aliran audio pengguna remote setelah perubahan.

videoTrack

AliEngineVideoTrack

Aliran video pengguna remote setelah perubahan.

OnBye

Panggilan balik ini dipicu ketika Anda dihapus oleh server atau saluran ditutup.

virtual void OnBye(int code) {}

Panggilan balik ini dipicu ketika Anda terputus karena alasan apa pun atau saluran ditutup. Gunakan parameter code untuk menentukan alasan pemutusan koneksi dan merespons sesuai dengan itu.

Kondisi pemicu

  • Anda dihapus oleh server.

  • Saluran ditutup oleh server.

  • Anda terputus secara tidak sukarela. Coba lanjutkan sesi atau sambungkan ulang.

Parameter

Parameter

Tipe

Deskripsi

code

int

Tipe pesan. Nilai yang valid:

  • 1: Anda dihapus oleh server.

  • 2: Saluran ditutup.

  • 3: Anda dihapus oleh server karena Anda masuk dari perangkat lain dengan ID pengguna yang sama.

OnAudioPublishStateChanged

Callback untuk perubahan dalam status penerbitan audio.

virtual void OnAudioPublishStateChanged(AliEnginePublishState oldState, AliEnginePublishState newState, int elapseSinceLastState, const char *channel) {};

Callback ini dipicu ketika status penerbitan aliran audio lokal berubah.

Pemicu

Callback ini dipicu saat status penerbitan audio berubah. Misalnya:

  • Penerbitan aliran dihentikan.

  • Panggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#c99c2b257dd8o" id="904fc4e83a35n">SetClientRole</a> untuk mengganti peran klien menjadi penonton.

Parameter

Parameter

Tipe

Deskripsi

oldState

AliEnginePublishState

Status penerbitan sebelumnya.

newState

AliEnginePublishState

Status penerbitan saat ini.

elapseSinceLastState

int

Waktu yang berlalu sejak perubahan status terakhir, dalam milidetik.

channel

const char *

ID saluran saat ini.

OnAudioSubscribeStateChanged

Callback untuk perubahan status langganan aliran audio.

virtual void OnAudioSubscribeStateChanged(const char *uid,
                                                  AliEngineSubscribeState oldState, 
                                                  AliEngineSubscribeState newState,
                                                  int elapseSinceLastState,
                                                  const char *channel) {};

Callback ini memberi tahu pengguna lokal bahwa status langganan aliran audio pengguna jarak jauh telah berubah. Callback ini menunjukkan status baru dan waktu yang berlalu sejak status sebelumnya.

Parameter

Parameter

Tipe

Deskripsi

uid

NSString *_Nonnull

ID pengguna yang status langgannya berubah.

oldState

AliEngineSubscribeState

Status langganan sebelumnya.

newState

AliEngineSubscribeState

Status langganan saat ini.

elapseSinceLastState

int

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

channel

const char *

ID saluran saat ini.

OnUserAudioMuted

Notifikasi bahwa pengguna telah membisukan atau mengaktifkan kembali audio mereka.

virtual void OnUserAudioMuted(const char* uid, bool isMute) {}

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

ID pengguna yang membisukan atau mengaktifkan kembali audionya.

isMute

bool

Menunjukkan apakah pengguna dibisukan. `true` berarti pengguna dibisukan, dan `false` berarti pengguna tidak dibisukan.

SetExternalAudioStreamPublishVolume

Mengatur volume ingest aliran audio eksternal.

virtual void OnUserAudioInterruptedBegin(const char* uid) {}

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

ID pengguna yang audionya terganggu.

OnUserAudioInterruptedEnded

Pemicu balik yang dijalankan ketika gangguan audio pengguna berakhir. Pemicu balik ini berkorespondensi dengan OnUserAudioInterruptedBegin.

virtual void OnUserAudioInterruptedEnded(const char* uid) {}

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

ID pengguna yang gangguan audionya telah berakhir.

OnVideoPublishStateChanged

Memberikan laporan perubahan pada status penerbitan aliran video.

virtual void OnVideoPublishStateChanged(AliEnginePublishState oldState, AliEnginePublishState newState, int elapseSinceLastState, const char *channel) {};

Callback ini memantau perubahan status penerbitan aliran video pengguna lokal.

Parameter

Parameter

Tipe

Deskripsi

oldState

AliEnginePublishState

Status penerbitan aliran sebelumnya.

newState

AliEnginePublishState

Status penerbitan aliran saat ini.

elapseSinceLastState

int

Waktu yang berlalu sejak perubahan status terakhir, dalam milidetik.

channel

const char *

ID saluran saat ini.

SetExternalAudioStreamPlayoutVolume

Callback yang dipanggil saat status langganan terhadap track kamera berubah.

virtual void OnVideoSubscribeStateChanged(const char *uid, 
                                                  AliEngineSubscribeState oldState, 
                                                  AliEngineSubscribeState newState,
                                                  int elapseSinceLastState,
                                                  const char *channel) {};

Callback ini memberi tahu pengguna lokal bahwa status langganan terhadap aliran kamera pengguna jarak jauh telah berubah. Callback ini menyediakan detail perubahan status langganan untuk pengguna jarak jauh tertentu serta interval waktu dari status sebelumnya ke status saat ini.

Callback Terkait

Aliran video terutama terdiri dari aliran kamera dan aliran berbagi layar. Antarmuka ini digunakan untuk perubahan status langganan aliran kamera, sedangkan antarmuka callback untuk aliran berbagi layar adalah OnScreenShareSubscribeStateChanged.

Parameter

Parameter

Tipe

Deskripsi

uid

const char *

ID pengguna yang status langgannya berubah.

oldState

AliEngineSubscribeState

Status langganan sebelumnya.

newState

AliEngineSubscribeState

Status langganan saat ini.

elapseSinceLastState

int

Interval perubahan status, dalam milidetik.

channel

const char *

ID saluran saat ini.

OnUserVideoMuted

Notifikasi bahwa video pengguna dimatikan (muted).

virtual void OnUserVideoMuted(const char* uid, bool isMute) {}

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

ID pengguna yang mematikan video.

isMute

bool

true menunjukkan bahwa frame hitam dikirim. false menunjukkan bahwa aliran dikirim secara normal.

GetExternalAudioStreamPublishVolume

Mendapatkan volume ingest aliran audio eksternal.

virtual void OnUserVideoEnabled(const char* uid, bool isEnable) {}

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

ID pengguna yang menjalankan EnableLocalVideo.

isMute

bool

Diatur ke true untuk mengaktifkan pengambilan aliran kamera. Diatur ke false untuk menonaktifkan pengambilan aliran kamera.

OnUserWillResignActive

Panggilan balik yang dipicu ketika aplikasi pengguna jarak jauh berpindah ke latar belakang.

virtual void OnUserWillResignActive(const char* uid) {}

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

ID pengguna yang aplikasinya berpindah ke latar belakang.

GetExternalAudioStreamPlayoutVolume

Mendapatkan volume pemutaran aliran audio eksternal.

virtual void OnUserWillBecomeActive(const char* uid) {}

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

ID pengguna saat aplikasi kembali ke latar depan.

OnStats

Pemicu statistik real-time yang dipanggil setiap 2 detik.

virtual void OnStats(const AliEngineStats& stats) {}

Parameter

Parameter

Tipe

Deskripsi

stats

AliEngineStats

Data statistik.

RemoveExternalAudioStream

Menghapus aliran audio eksternal.

virtual void OnLocalVideoStats(const AliEngineLocalVideoStats& localVideoStats);

Informasi Parameter

Parameter

Tipe

Deskripsi

localVideoStats

const AliEngineLocalVideoStats&

Statistik kinerja video lokal, seperti bitrate dan laju frame.

OnRemoteVideoStats

Callback untuk statistik kinerja video jarak jauh. Dipicu setiap 2 detik.

virtual void OnRemoteVideoStats(const AliEngineRemoteVideoStats& remoteVideoStats);

Parameter

Parameter

Tipe

Deskripsi

remoteVideoStats

const AliEngineRemoteVideoStats&

Statistik kinerja aliran video jarak jauh. Ini mencakup ID pengguna jarak jauh, laju frame, dan tersendat.

OnLocalAudioStats

Statistik audio lokal. Callback ini dipicu setiap 2 detik.

virtual void OnLocalAudioStats(const AliEngineLocalAudioStats& localAudioStats);

Parameter

Parameter

Tipe

Deskripsi

localAudioStats

const AliEngineLocalAudioStats&

Statistik audio lokal, seperti laju sampel dan jumlah saluran suara.

OnRemoteAudioStats

Memberikan laporan statistik kinerja audio jarak jauh setiap 2 detik.

virtual void OnRemoteAudioStats(const AliEngineRemoteAudioStats& remoteAudioStats);

Parameter

Parameter

Tipe

Deskripsi

remoteAudioStats

const AliEngineRemoteAudioStats&

Statistik kinerja audio jarak jauh, seperti tingkat kehilangan paket dan laju tersendat.

GetAudioFileInfo

Callback yang dipanggil saat pesan SEI diterima. Ketika suatu titik akhir menggunakan SendMediaExtensionMsg untuk mengirim pesan, titik akhir lain menerima data melalui callback ini.

virtual void OnMediaExtensionMsgReceived(const char* uid, const uint8_t payloadType, const int8_t * message, uint32_t size);

Ketika satu sisi mengirim pesan menggunakan sendMediaExtensionMsg, sisi lain menerima data melalui callback ini.

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

ID pengguna penerima.

payloadType

const uint8_t

Jenis muatan. Nilainya adalah 5 untuk pesan yang dikirim oleh sendMediaExtensionMsg. Untuk pesan yang dikirim oleh sendMediaExtensionMsgEx, nilainya adalah jenis spesifik tersebut.

message

const int8_t *

Informasi ekstensi.

size

uint32_t

Panjang ekstensi.

OnSnapshotComplete

Callback ini mengembalikan hasil tangkapan layar setelah pemanggilan SnapshotVideo berhasil.

virtual void OnSnapshotComplete(const char* userId, AliEngineVideoTrack videoTrack, void* buffer, int width, int height, bool success);

Parameter

Parameter

Tipe

Deskripsi

userId

const char*

ID pengguna yang aliran videonya diambil.

videoTrack

AliEngineVideoTrack

Jenis aliran video yang ditangkap, seperti aliran kamera atau aliran berbagi layar.

buffer

void*

Data citra dari tangkapan layar jika operasi berhasil. Format citra adalah RGBA. Mengembalikan nullptr jika operasi gagal.

width

int

Lebar tangkapan layar.

height

int

Tinggi tangkapan layar.

success

bool

Menunjukkan apakah tangkapan layar berhasil diambil.

  • true: Tangkapan layar berhasil diambil.

  • false: Gagal mengambil tangkapan layar.

StartAudioAccompany

Memulai pencampuran audio iringan.

virtual void OnLocalAudioStateChange(AliEngineLocalAudioStateType state, const char* msg);

Deskripsi parameter

Parameter

Tipe

Deskripsi

state

AliEngineLocalAudioStateType

Status perangkat audio, seperti memulai atau telah dimulai.

msg

const char*

Deskripsi perubahan status perangkat.

onLocalVideoStateChanged

Memberikan laporan mengenai status perangkat video lokal.

virtual void onLocalVideoStateChanged(AliEngineLocalVideoStateType state, const char* msg);

Parameter

Parameter

Tipe

Deskripsi

state

AliEngineLocalVideoStateType

Status saat ini dari perangkat video, seperti sedang memulai atau telah dimulai.

msg

const char*

Deskripsi mengenai perubahan status perangkat.

OnRemoteUserSubscribedDataChannel

Memberi tahu Anda bahwa Anda dapat mulai mengirimkan pesan Data Channel.

virtual void OnRemoteUserSubscribedDataChannel(const char* uid);

Pemicu callback ini terjadi ketika pengguna jarak jauh berlangganan ke Data Channel. Callback ini memberi tahu pengguna lokal bahwa pengguna jarak jauh yang ditentukan siap menerima pesan kustom. Anda kemudian dapat dengan aman memanggil SendDataChannelMessage untuk mengirimkan data. Callback ini memastikan pengiriman pesan yang andal serta mencegah kehilangan paket atau kegagalan pengiriman pesan ke pengguna yang belum berlangganan Data Channel.

Catatan

Callback ini hanya dipicu dalam skenario AI.

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

ID pengguna jarak jauh.

OnDataChannelMessage

Pemicu balik untuk pesan saluran data.

virtual void OnDataChannelMessage(const char* uid, const AliEngineDataChannelMsg& msg);

Kit pengembangan perangkat lunak (SDK) Alibaba Real-Time Communication (ARTC) memungkinkan Anda mengirim dan menerima pesan kustom secara real time bersamaan dengan data audio dan video. Pemicu balik ini menerima pesan kustom dari saluran data. Untuk informasi selengkapnya, lihat Kirim dan terima pesan kustom.

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

  • Fitur ini dinonaktifkan secara default. Untuk mengaktifkannya, panggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#d78a13ea0e6hy" id="327b69c0ee1wh">SetParameter</a> setelah Anda membuat engine untuk mengatur parameter menjadi {\"data\":{\"enablePubDataChannel\":true" + ",\"enableSubDataChannel\":true}}.

Kapan dipicu

Pemicu balik ini dipicu untuk penerima setelah pengirim memanggil SendDataChannelMessage. Penerima harus telah mengaktifkan fitur saluran data.

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

ID pengguna yang mengirim pesan.

msg

const AliEngineDataChannelMsg&

Pesan saluran data.

OnCapturedAudioFrame

Callback untuk data audio mentah yang ditangkap.

virtual bool OnCapturedAudioFrame(AliEngineAudioRawData audioRawData) = 0;

Callback ini mengambil data audio mentah yang ditangkap oleh perangkat. Fitur ini dinonaktifkan secara default. Untuk mengambil data audio:

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

  • Panggil RegisterAudioFrameObserver untuk mendaftarkan objek yang menerima data audio.

Catatan

Callback ini mendukung pengaturan kustom untuk laju sampel, jumlah saluran suara, dan mode baca/tulis.

Parameter

Parameter

Tipe

Deskripsi

audioRawData

AliEngineAudioRawData

Data audio.

Returns

  • true: Berhasil.

  • false: Gagal.

StopAudioAccompany

Menghentikan pencampuran iringan audio.

virtual bool OnProcessCapturedAudioFrame(AliEngineAudioRawData audioRawData) = 0;

Callback ini digunakan untuk memperoleh data audio setelah pemrosesan 3A. Secara default, callback ini dinonaktifkan. Untuk memperoleh data audio ini:

  • Aktifkan callback ini melalui parameter audioSource di EnableAudioFrameObserver(true,audioSource,config). Selain itu, gunakan parameter config untuk mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis untuk data audio.

  • Panggil RegisterAudioFrameObserver untuk mendaftarkan objek guna menerima data audio.

Catatan

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

Deskripsi metrik

Parameter

Tipe

Deskripsi

audioRawData

AliEngineAudioRawData

Data audio.

Nilai kembali

  • 0: Berhasil.

  • false: Permintaan gagal.

SetAudioAccompanyVolume

Mengatur volume iringan.

virtual bool OnPublishAudioFrame(AliEngineAudioRawData audioRawData) = 0;

Callback ini digunakan untuk memperoleh data audio dari pengambilan aliran. Callback ini dinonaktifkan secara default. Untuk memperoleh data audio ini:

  • Panggil EnableAudioFrameObserver(true,audioSource,config) untuk mengaktifkan callback ini untuk sumber audio tertentu. Parameter config menetapkan properti untuk data audio, seperti laju sampel, jumlah saluran suara, dan mode baca/tulis.

  • Panggil RegisterAudioFrameObserver untuk mendaftarkan objek penerima data audio.

Catatan

API ini mendukung pengaturan laju sampel dan jumlah saluran suara, tetapi mode hanya dapat diatur ke read-only.

Parameter

Parameter

Tipe

Deskripsi

audioRawData

AliEngineAudioRawData

Data audio.

Nilai kembali

  • true: Berhasil.

  • false: Gagal.

OnPlaybackAudioFrame

Callback untuk data audio pemutaran.

virtual bool OnPlaybackAudioFrame(AliEngineAudioRawData audioRawData) = 0;

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

  • Aktifkan callback ini melalui parameter audioSource di EnableAudioFrameObserver(true,audioSource,config). Parameter config juga memungkinkan Anda mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis untuk data audio.

  • Panggil RegisterAudioFrameObserver untuk mendaftarkan objek yang menerima data audio.

Catatan

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

Limitations

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

Parameter

Parameter

Tipe

Deskripsi

audioRawData

AliEngineAudioRawData

Data audio.

Return value

  • true: Operasi berhasil.

  • false: Operasi gagal.

SetAudioAccompanyPublishVolume

Mengatur volume ingest akomodasi audio.

virtual bool OnRemoteUserAudioFrame(const char *uid, AliEngineAudioRawData audioRawData) = 0; 

Callback ini digunakan untuk memperoleh data audio jarak jauh yang ditarik dari pengguna tertentu. Callback ini dinonaktifkan secara default. Untuk memperoleh data audio ini:

  • Aktifkan callback ini dengan menentukan audioSource dalam pemanggilan EnableAudioFrameObserver(true,audioSource,config). Parameter config memungkinkan Anda mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis untuk data audio.

  • Panggil RegisterAudioFrameObserver untuk mendaftarkan objek guna menerima data audio.

Catatan

API ini tidak mendukung pengaturan laju sampel atau jumlah saluran suara, tetapi Anda dapat mengatur mode baca/tulis.

Batasan Pemanggilan

Jangan melakukan operasi yang memakan waktu lama dalam fungsi callback ini, karena dapat menyebabkan suara tidak normal.

Deskripsi metrik

Parameter

Tipe

Deskripsi

uid

const char *

ID pengguna jarak jauh.

audioRawData

AliEngineAudioRawData

Data audio.

Nilai Kembali

  • true: Sukses.

  • false: Gagal.

OnCaptureVideoSample

Callback untuk data video yang ditangkap secara lokal.

virtual bool OnCaptureVideoSample(AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;

Callback ini mengambil frame video mentah, seperti data YUV, yang ditangkap oleh kamera lokal. Anda dapat menggunakan callback ini untuk menerapkan logika pemrosesan video kustom, seperti menambahkan filter, Watermark, atau Transkoding. Anda kemudian dapat memutuskan apakah akan mengirimkan data yang telah diproses kembali ke kit pengembangan perangkat lunak (SDK) untuk encoding atau rendering. Jika Anda ingin mengirimkan video yang telah diproses ke SDK, kembalikan nilai true.

Ketika dipicu

Setelah Anda berhasil memanggil <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#0873ceb145h0t" id="c9469a35210sg">RegisterVideoSampleObserver</a> untuk mendaftarkan observer data video, yaitu ketika SDK menangkap frame video yang sesuai.

Parameter

Parameter

Tipe

Deskripsi

videoSource

AliEngineVideoSource

Sumber data video.

videoRawData

AliEngineVideoRawData

Data video mentah.

Nilai kembali

  • true: Menulis data yang telah diproses kembali ke SDK. Ini hanya berlaku untuk data I420 dan native (iOS/macOS).

  • false: Tidak menulis data yang telah diproses kembali ke SDK.

OnPreEncodeVideoSample

Callback untuk data video lokal sebelum pengkodean.

virtual bool OnPreEncodeVideoSample(AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;

Callback ini dipicu sebelum SDK mengkodekan data video lokal. Callback ini menyediakan data video mentah, seperti data dalam format YUV, untuk pemrosesan khusus. Anda dapat menambahkan Watermark, menyesuaikan warna, atau melakukan transkode terhadap data tersebut. Selanjutnya, Anda dapat memutuskan apakah akan mengembalikan data yang telah diproses ke SDK untuk dikodekan.

Parameter

Parameter

Tipe

Deskripsi

videoSource

AliEngineVideoSource

Sumber data video.

videoRawData

AliEngineVideoRawData

Data video.

Return value

  • true: Data ditulis kembali ke SDK. Ini hanya berlaku untuk format I420 dan native (iOS dan macOS).

  • false: Data tidak ditulis kembali ke SDK.

OnRemoteVideoSample

Callback untuk data video jarak jauh yang telah dilanggan.

virtual bool OnRemoteVideoSample(const char *uid, AliEngineVideoSource videoSource, AliEngineVideoRawData &videoRawData) = 0;

Callback ini menyediakan data frame video mentah—misalnya dalam format YUV—dari pengguna jarak jauh yang telah berlangganan, memungkinkan developer mengimplementasikan logika pemrosesan kustom seperti menambahkan filter, watermark, atau transkoding, serta menentukan apakah data yang telah diproses akan dikembalikan ke SDK untuk rendering.

Parameter

Parameter

Tipe

Deskripsi

uid

const char *

ID pengguna jarak jauh.

videoSource

AliEngineVideoSource

Sumber data video.

videoRawData

AliEngineVideoRawData

Data video mentah.

Pengembalian

  • true: Data ditulis ulang ke SDK.

  • false: Data tidak dikembalikan ke SDK.

GetVideoAlignment

Penyelarasan lebar video keluaran.

virtual AliEngineVideoObserAlignment GetVideoAlignment();

Mengembalikan

Penyelarasan lebar yang diharapkan dari video keluaran. Untuk informasi selengkapnya, lihat AliEngineVideoObserAlignment.

GetObservedFramePosition

Mendapatkan posisi frame yang diamati.

virtual uint32_t GetObservedFramePosition();

Returns

Posisi frame yang diamati. Untuk informasi selengkapnya, lihat AliEngineVideoObserPosition.

onDestroyCompletion

Callback yang menunjukkan bahwa proses penghapusan telah selesai.

virtual void onDestroyCompletion();

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

Trigger

Setelah Anda memanggil metode Destroy, callback ini dipicu setelah penghapusan mesin selesai.

Catatan

Tunggu callback onDestroyCompletion sebelum mengeksekusi metode lainnya. Hal ini mencegah thread utama terblokir.

GetAudioAccompanyPublishVolume

Mendapatkan volume ingest iringan audio.

virtual void OnAudioEffectFinished(int soundId) {}

Parameter

Tipe

Deskripsi

soundId

int

ID efek suara yang telah selesai diputar.

SetAudioAccompanyPlayoutVolume

Callback yang dipanggil untuk mengembalikan informasi mengenai volume audio, status suara, dan UID.

virtual void OnAudioVolumeCallback(const AliEngineUserVolumeInfo* volumeInfo, int volumeInfoCount, int totalVolume) {}

Callback ini dinonaktifkan secara default. Anda dapat memanggil metode <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#f69f93ca70pa6" id="9e5f7dfbe43ze">EnableAudioVolumeIndication</a> untuk mengaktifkannya. Setelah diaktifkan, SDK memicu callback ini pada interval yang ditetapkan oleh <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#f69f93ca70pa6" id="ebd7f2147ar4d">EnableAudioVolumeIndication</a> setelah Anda bergabung ke saluran tempat pengguna melakukan ingest aliran. Hasil callback berisi informasi volume untuk pembicara lokal dan jarak jauh.

Parameter

Parameter

Tipe

Deskripsi

volumeInfo

AliEngineUserVolumeInfo*

Sebuah array informasi volume pengguna untuk callback. Array ini berisi UID pengguna, status suara, dan volume.

  • UID bernilai 0 menunjukkan pembicara lokal.

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

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

volumeInfoCount

int

Jumlah entri informasi volume pengguna dalam array callback.

totalVolume

int

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

OnActiveSpeaker

Callback untuk pembicara aktif.

virtual void OnActiveSpeaker(const char *uid) {}

Setelah pemanggilan <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#f69f93ca70pa6" id="b5e0ba1248tmp">EnableAudioVolumeIndication</a> berhasil, SDK terus memantau pengguna jarak jauh dengan volume suara paling keras dan menghitung berapa kali pengguna tersebut diidentifikasi sebagai yang paling keras. Dalam periode waktu saat ini, pengguna jarak jauh dengan jumlah akumulasi tertinggi merupakan pengguna paling aktif.

Pemicu

SDK memicu callback ini untuk melaporkan UID pengguna jarak jauh paling aktif ketika terdapat dua atau lebih pengguna dalam saluran dan ada pengguna jarak jauh yang aktif.

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

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

Parameter

Parameter

Tipe

Deskripsi

uid

const char *

ID dari pembicara aktif.

OnPublishLiveStreamStateChanged

Panggilan balik yang dipicu ketika status pengambilan aliran bypass berubah.

virtual void OnPublishLiveStreamStateChanged(const char* streamUrl ,AliEngineLiveTranscodingState state ,AliEngineLiveTranscodingErrorCode errCode){};

Parameter

Parameter

Tipe

Deskripsi

streamURL

const char*

URL aliran.

state

AliEngineLiveTranscodingState

Status pengambilan aliran bypass.

errCode

AliEngineLiveTranscodingErrorCode

Kode kesalahan.

OnPublishTaskStateChanged

Callback untuk perubahan status dalam tugas bypass.

virtual void OnPublishTaskStateChanged(const char* streamUrl, AliEngineTrascodingPublishTaskStatus state){};

Parameter

Parameter

Tipe

Deskripsi

streamURL

const char*

URL aliran.

state

AliEngineTrascodingPublishTaskStatus

Status tugas.

OnNetworkQualityChanged

Panggilan balik ini dipicu ketika kualitas jaringan berubah.

virtual void OnNetworkQualityChanged(const char *uid, AliEngineNetworkQuality upQuality, AliEngineNetworkQuality downQuality);

Parameter

Parameter

Tipe

Deskripsi

uid

char*

ID pengguna yang kualitas jaringannya telah berubah.

Catatan

Jika parameter ini kosong, hal tersebut menunjukkan adanya perubahan pada kualitas jaringan pengguna lokal.

upQuality

AliEngineNetworkQuality

Kualitas jaringan uplink.

downQuality

AliEngineNetworkQuality

Kualitas jaringan downlink.

GetAudioAccompanyPlayoutVolume

Mendapatkan volume pemutaran lokal iringan audio.

virtual void OnLastmileDetectResultWithQuality(AliEngineNetworkQuality networkQuality);

Callback ini menjelaskan hasil probe jaringan sebelum pengguna lokal bergabung ke saluran, yang dapat Anda gunakan untuk mengevaluasi kualitas jaringan secara kasar. Setelah Anda memanggil StartLastmileDetect, SDK akan mengembalikan callback ini dalam waktu sekitar 3 detik.

Deskripsi parameter

Parameter

Tipe

Deskripsi

networkQuality

AliEngineNetworkQuality

Tingkat kualitas jaringan.

PauseAudioAccompany

Menghentikan sementara pencampuran iringan audio.

virtual void OnLastmileDetectResultWithBandWidth(int code, AliRTCSdk::AliEngineNetworkProbeResult networkQuality);

Setelah Anda memanggil StartLastmileDetect, SDK akan mengembalikan callback dalam waktu sekitar 30 detik, yang memberikan hasil detail mengenai kualitas jaringan.

Deskripsi metrik

Parameter

Tipe

Deskripsi

code

int

Nilai pengembalian:

  • 0: Probe berhasil.

  • -1: Probe gagal.

networkQuality

AliRTCSdk::AliEngineNetworkProbeResult

Hasil probe jaringan. Ini mencakup RTT tautan, serta tingkat kehilangan paket, jitter, dan bandwidth untuk uplink dan downlink.

OnOccurError

Callback ini memberi tahu aplikasi ketika terjadi kesalahan di mesin.

virtual void OnOccurError(int error, const char *msg);

Parameter

Parameter

Tipe

Deskripsi

error

int

Jenis kesalahan. Untuk informasi lebih lanjut, lihat AliEngineErrorCode.

msg

const char *

Deskripsi kesalahan.

OnFirstAudioPacketSend

Pemicu balik ini diaktifkan ketika paket data audio pertama dikirim.

virtual void OnFirstAudioPacketSend(AliEngineAudioTrack audioTrack, int timeCost);

Parameter

Parameter

Tipe

Deskripsi

audioTrack

AliEngineAudioTrack

Aliran audio yang paket pertamanya dikirim.

timeCost

int

Waktu yang berlalu sejak bergabung ke saluran hingga mengirim paket audio pertama, dalam milidetik (ms).

OnFirstAudioPacketReceived

Pemicu balik ini diaktifkan ketika Paket data audio pertama dari pengguna jarak jauh diterima.

virtual void OnFirstAudioPacketReceived(const char* uid, AliEngineAudioTrack audioTrack, int timeCost) 

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

ID pengguna remote.

audioTrack

AliEngineAudioTrack

Jenis aliran audio tempat Paket data pertama diterima.

timeCost

int

Waktu yang berlalu dari bergabung dalam sesi hingga menerima paket audio pertama, dalam milidetik.

OnFirstVideoPacketSend

Callback ini dipicu ketika paket video pertama dikirim.

virtual void OnFirstVideoPacketSend(AliEngineVideoTrack videoTrack, int timeCost);

Parameter

Parameter

Tipe

Deskripsi

videoTrack

AliEngineVideoTrack

Track video tempat paket pertama dikirim, seperti track kamera atau track berbagi layar.

timeCost

int

Waktu yang berlalu, dalam milidetik, sejak bergabung ke saluran hingga mengirim paket video pertama.

OnFirstVideoPacketReceived

Panggilan balik ini dipicu ketika paket video pertama diterima.

virtual void OnFirstVideoPacketReceived(const char* uid, AliEngineVideoTrack videoTrack, int timeCost);

Deskripsi parameter

Parameter

Tipe

Deskripsi

uid

const char*

ID pengguna jarak jauh.

videoTrack

AliEngineVideoTrack

Jenis track video. Ini menunjukkan aliran video mana yang menerima paket pertamanya, seperti aliran kamera atau aliran berbagi layar.

timeCost

int

Waktu yang berlalu, dalam milidetik, sejak bergabung ke sesi hingga menerima paket video pertama.

OnFirstRemoteAudioDecoded

Pemicu balik ini diaktifkan ketika frame pertama dari aliran audio jarak jauh didekodekan.

virtual void OnFirstRemoteAudioDecoded(const char* uid, AliEngineAudioTrack audioTrack, int elapsed);

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

ID pengguna remote.

audioTrack

AliEngineAudioTrack

Jenis aliran audio yang frame pertamanya telah didekodekan.

elapsed

int

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

OnFirstRemoteVideoFrameDrawn

Pemicu balik ini diaktifkan ketika bingkai video pertama dari pengguna jarak jauh dirender.

virtual void OnFirstRemoteVideoFrameDrawn(const char *uid, AliEngineVideoTrack videoTrack,
                                                  int width, int height, int elapsed);

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

ID pengguna remote.

videoTrack

AliEngineVideoTrack

Jenis aliran video, seperti aliran kamera atau aliran berbagi layar.

width

int

Lebar video.

height

int

Tinggi video.

elapsed

int

Total waktu yang berlalu, dalam milidetik, dari saat pengguna lokal bergabung dengan saluran hingga callback ini dipicu.

OnFirstLocalVideoFrameDrawn

Pemicu balik ini dipanggil ketika bingkai video lokal pertama digambar.

virtual void OnFirstLocalVideoFrameDrawn(int width, int height, int elapsed);

Parameter

Parameter

Tipe

Deskripsi

width

int

Lebar video.

height

int

Tinggi video.

elapsed

int

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

OnTestAudioVolumeCallback

Pemicu volume untuk pengujian perekaman audio sebelum panggilan.

virtual void OnTestAudioVolumeCallback(int volumn);

Pemicu ini diaktifkan setelah StartAudioCaptureTest berhasil dipanggil sebelum panggilan. Tingkat volume normal menunjukkan bahwa perekaman audio berjalan normal.

Deskripsi parameter

Parameter

Tipe

Deskripsi

volumn

int

Informasi volume.

OnAudioAccompanyStateChanged

Callback untuk status pemutaran iringan audio lokal.

virtual void OnAudioAccompanyStateChanged(AliEngineAudioAccompanyStateCode playState, AliEngineAudioAccompanyErrorCode errorCode);

Callback ini dipicu ketika status pemutaran iringan audio berubah. Callback ini melaporkan status pemutaran saat ini dan kode kesalahan.

Parameter

Parameter

Tipe

Deskripsi

playState

AliEngineAudioAccompanyStateCode

Status pemutaran saat ini.

errorCode

AliEngineAudioAccompanyErrorCode

Kode kesalahan pemutaran.

OnAudioFileInfo

Panggilan balik ini mengembalikan informasi mengenai berkas audio.

virtual void OnAudioFileInfo(AliEngineAudioFileInfo info, AliEngineAudioAccompanyErrorCode errorCode);

Panggilan balik ini dipicu setelah Anda memanggil GetAudioFileInfo. Panggilan balik ini mengembalikan informasi mengenai berkas audio saat ini dan kode kesalahan.

Parameter

Parameter

Tipe

Deskripsi

info

AliEngineAudioFileInfo

Informasi mengenai berkas audio.

errorCode

AliEngineAudioAccompanyErrorCode

Kode kesalahan.

OnRemoteAudioAccompanyStarted

Dipicu ketika pengguna jarak jauh mulai memutar iringan audio.

virtual void OnRemoteAudioAccompanyStarted(const char* uid);

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

ID pengguna jarak jauh.

OnRemoteAudioAccompanyFinished

Dipicu ketika pemutaran audio iringan pengguna jarak jauh selesai.

virtual void OnRemoteAudioAccompanyFinished(const char* uid);

Parameter

Parameter

Tipe

Deskripsi

uid

const char*

ID pengguna remote.

SetParameter

Menetapkan parameter kustom.

virtual int SetParameter(const char* parameter) = 0;

Parameter

Parameter

Tipe

Deskripsi

parameter

const char*

Parameter kustom.

GetParameter

Mendapatkan parameter kustom.

virtual String GetParameter(const char* parameter) = 0;

Parameter

Parameter

Tipe

Deskripsi

parameter

const char*

Parameter kustom.

ResumeAudioAccompany

Aktifkan atau batalkan berlangganan data audio

virtual int EnableAudioFrameObserver(bool enabled, AliEngineAudioSource audioSource, AliEngineAudioFrameObserverConfig config) = 0;

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

Catatan

Saat Anda memanggil API ini untuk mengaktifkan callback data audio untuk AliEngineAudioSource yang sesuai, Anda juga harus menggunakan metode RegisterAudioFrameObserver untuk meneruskan objek yang menerima data audio tersebut.

Waktu Pemanggilan

Anda dapat memanggil antarmuka ini untuk mulai memperoleh data audio.

Deskripsi metrik

Parameter

Tipe

Deskripsi

enable

bool

Menentukan apakah akan mengaktifkan callback data.

audioSource

AliEngineAudioSource

Jenis sumber data untuk callback. Nilai yang valid meliputi post-capture (0), post-3A processing (1), stream ingest (2), playback (3), dan pulled stream audio data (5).

Catatan:

  • Data audio dari stream ingest dan data audio campuran dari pemutaran stream ingest hanya mendukung mode read-only (ReadOnly).

  • Parameter audio, seperti laju sampel dan jumlah saluran suara, tidak dapat diubah untuk pulled stream audio data.

config

AliEngineAudioFrameObserverConfig

Konfigurasi parameter callback audio. Ini mencakup laju sampel, jumlah saluran suara, dan mode baca/tulis untuk callback, seperti read-only, write-only, atau read/write. Jika parameter ini null, pengaturan default digunakan: laju sampel 48000, 1 saluran suara, dan mode ReadOnly.

GetAudioAccompanyDuration

Mendapatkan durasi file iringan dalam milidetik.

virtual int RegisterAudioFrameObserver(IAudioFrameObserver* observer) = 0;

Metode ini mendaftarkan objek penerima untuk data callback audio.

Kapan harus dipanggil

Ketika Anda memerlukan SDK untuk memicu callback OnCapturedAudioFrame, OnProcessCapturedAudioFrame, OnPublishAudioFrame, OnPlaybackAudioFrame, atau OnRemoteUserAudioFrame guna memperoleh berbagai jenis data audio, Anda perlu memanggil metode ini untuk menyediakan objek penerima bagi data audio tersebut. Untuk membatalkan pendaftaran, panggil kembali metode ini dan berikan null.

Batasan pemanggilan

Anda harus memanggil EnableAudioFrameObserver untuk mengaktifkan callback untuk AliEngineAudioSource tertentu. Jika tidak, observer yang diberikan tidak dapat memperoleh data.

Deskripsi parameter

Parameter

Tipe

Deskripsi

observer

IAudioFrameObserver*

Pointer ke objek callback.

Nilai kembali

Nilai 0 menunjukkan keberhasilan, dan nilai lainnya menunjukkan bahwa operasi gagal.

GetAudioAccompanyCurrentPosition

Mendapatkan progres pemutaran file iringan dalam milidetik.

virtual void UnRegisterAudioFrameObserver(IAudioFrameObserver* observer) = 0;

Nilai kembalian

Nama

Tipe

Deskripsi

observer

IAudioFrameObserver

Pointer objek callback.

SetAudioAccompanyPosition

Berlangganan output data video.

virtual void RegisterVideoSampleObserver(IVideoFrameObserver* observer) = 0;

Antarmuka ini digunakan untuk mendaftarkan objek output untuk data video. Untuk membatalkan pendaftaran, panggil antarmuka UnRegisterVideoSampleObserver.

Catatan

Data output dikembalikan melalui callback {@link IVideoFrameObserver}.

Waktu Pemanggilan

Untuk memperoleh data video mentah (misalnya dalam format YUV atau RGBA), Anda dapat memanggil antarmuka ini untuk mendaftarkan pengamat data video guna mendapatkan data video dari setiap tahap.

Nilai kembali

Setelah Anda berhasil mendaftarkan pengamat output data video, SDK memicu callback untuk setiap frame video yang ditangkap. Implementasikan callback ini sesuai dengan kebutuhan bisnis Anda:

Deskripsi metrik

Nama

Tipe

Deskripsi

observer

IVideoFrameObserver

Pointer ke objek callback.

PreloadAudioEffect

Membatalkan pendaftaran observer untuk keluaran data video.

virtual void UnRegisterVideoSampleObserver(IVideoFrameObserver* observer) = 0;

API ini merupakan pasangan dari RegisterVideoSampleObserver. API ini membatalkan pendaftaran observer untuk keluaran data video.

Parameter

Nama

Tipe

Deskripsi

observer

IVideoFrameObserver

Pointer ke objek callback.

SnapshotVideo

Mengambil Snapshot dari aliran video.

virtual int SnapshotVideo(const String& userId, const AliEngineVideoTrack &trackType) = 0;

Ini adalah panggilan asinkron. Untuk mendapatkan Snapshot, dengarkan callback AliEngineEventListener::OnSnapshotComplete.

Parameter

Parameter

Tipe

Deskripsi

userId

const String&

ID pengguna. String kosong ("") menunjukkan pengguna lokal.

trackType

const AliEngineVideoTrack&

Jenis aliran video. Hanya AliEngineVideoTrackCamera dan AliEngineVideoTrackScreen yang didukung.

Return values

  • 0: Panggilan berhasil. Snapshot dikembalikan dalam callback.

  • <0: Panggilan gagal.

SetLogDirPath

Mengatur jalur untuk menyimpan file log SDK.

static int SetLogDirPath(const char *logDirPath);

Parameter

Nama

Tipe

Deskripsi

logDirPath

const char *

Jalur mutlak untuk menyimpan file log.

Return value

Nilai kembali 0 menunjukkan bahwa metode tersebut dipanggil dengan sukses. Nilai lainnya menunjukkan bahwa pemanggilan gagal.

Catatan

Untuk mencegah loss log, panggil metode ini sebelum memanggil metode SDK lainnya. Aplikasi harus memastikan bahwa folder yang ditentukan ada dan dapat ditulis.

UnloadAudioEffect

Menghapus file efek suara yang telah dimuat sebelumnya.

static void SetLogLevel(AliEngineLogLevel logLevel);

Parameter

Nama

Tipe

Deskripsi

logLevel

AliEngineLogLevel

Tingkat log. Nilai default adalah AliEngineLogInfo.

GetNetworkTime

Mendapatkan waktu jaringan saat ini.

virtual long long GetNetworkTime() = 0;

Nilai kembali

Mengembalikan waktu jaringan saat ini yang telah disesuaikan dengan offset (waktu NTP) dalam milidetik.

SendDataChannelMessage

Mengirim pesan saluran data.

virtual int SendDataChannelMessage(const AliEngineDataChannelMsg& msg) = 0;

Kit pengembangan perangkat lunak (SDK) Alibaba Real-Time Communication (ARTC) memungkinkan Anda mengirim dan menerima pesan kustom. Anda dapat mengirim data pesan kustom secara real-time selama transmisi data audio dan video. Misalnya, panggil antarmuka ini untuk mengirim instruksi kontrol real-time, data sinkronisasi status, atau pesan bisnis lainnya selama transmisi audio dan video. Untuk informasi lebih lanjut, lihat Kirim dan terima pesan kustom.

Catatan
  • Saluran pesan kustom dinonaktifkan secara default. Untuk menggunakan fitur ini, panggil API <a baseurl="t2713962_v4_0_0.xdita" data-node="4904760" data-root="16090" data-tag="xref" href="#d78a13ea0e6hy" id="fe71661227b31">SetParameter</a> dan atur parameter menjadi ("{\"data\":{\"enablePubDataChannel\":true" + ",\"enableSubDataChannel\":true}}") untuk mengaktifkan saluran pesan kustom. Anda dapat mengaktifkan fitur ini sebelum atau setelah bergabung ke saluran.

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

Callback terkait

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

  • Setelah pengirim mengaktifkan saluran pesan kustom, mereka dapat memanggil antarmuka ini untuk mengirim pesan kustom. Penerima mendengarkan callback OnDataChannelMessage untuk menerima pesan kustom tersebut.

Kapan harus memanggil

Panggil antarmuka ini setelah Anda menerima callback OnRemoteUserSubscribedDataChannel. Callback ini dipicu ketika pengguna jarak jauh memanggil SetParameter dan mengaktifkan EnableSubDataChannel untuk menerima pesan saluran data.

Batasan

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

  • Panggil SetParameter untuk mengaktifkan saluran pesan kustom.

Parameter

Nama

Tipe

Deskripsi

msg

const AliEngineDataChannelMsg&

Pesan yang akan dikirim.

Nilai kembali

  • 0: Sukses.

  • Nilai bukan nol: Gagal.

PlayAudioEffect

Memulai pemutaran efek suara.

virtual int StartScreenShareByDesktopId(unsignedint desktopId, const AliEngineScreenShareConfig& config) = 0;

Parameter

Nama

Type

Deskripsi

desktopId

unsigned int

ID desktop.

config

AliEngineScreenShareConfig

Konfigurasi untuk berbagi desktop.

Return Value

  • 0: Sukses

  • Lainnya: Gagal

StartScreenShareByScreenRegion

Memulai berbagi aliran video dari area tertentu pada layar.

  • Metode ini hanya berlaku untuk berbagi desktop. Untuk berbagi jendela tertentu, gunakan metode StartScreenShareByWindowId.

  • Resolusi minimum untuk area yang dibagikan adalah 16 × 16. Jika Anda menetapkan area yang lebih kecil dari resolusi ini, sistem akan mengatur ulang area tersebut ke resolusi minimum.

  • Jika area yang dibagikan melebihi resolusi layar sebenarnya, metode ini akan membagikan seluruh layar.

  • Untuk informasi lebih lanjut tentang koordinat layar virtual, lihat Virtual Screen Coordinates.

virtual int StartScreenShareByScreenRegion(
const AliEngineScreenShareRegion & screenRegion, 
const AliEngineScreenShareConfig & config) = 0;

Parameter

Nama

Tipe

Deskripsi

screenRegion

AliEngineScreenShareRegion

Posisi area layar yang akan dibagikan relatif terhadap layar virtual.

config

AliEngineScreenShareConfig

Konfigurasi berbagi layar.

Nilai kembali

  • 0: Sukses

  • Nilai lainnya: Gagal

StopAudioEffect

Menghentikan pemutaran efek suara.

virtual int StartScreenShareByWindowId(unsigned int windowId, 
  const AliEngineScreenShareConfig & config) = 0;

Parameter

Nama

Tipe

Deskripsi

windowId

int

ID jendela.

config

AliEngineScreenShareConfig

Konfigurasi berbagi layar.

Nilai kembali

  • 0: Berhasil

  • Lainnya: Gagal

StopScreenShare

Menghentikan berbagi layar.

virtual int StopScreenShare() = 0 ;

Nilai kembali

  • 0: Sukses

  • Lainnya: Gagal

ResumeScreenShare

Melanjutkan berbagi layar.

virtual int ResumeScreenShare() = 0;

Nilai kembali

  • 0: Sukses

  • Lainnya: Gagal

PauseScreenShare

Menghentikan sementara berbagi layar.

virtual int PauseScreenShare() = 0;

Nilai kembali

  • 0: Sukses

  • Nilai lainnya: Gagal

StopAllAudioEffects

Memeriksa apakah pengiriman aliran berbagi layar telah diatur.

Catatan

Panggil metode ini untuk memeriksa apakah SDK diatur untuk mendorong aliran berbagi layar. Secara default, SDK tidak mendorong aliran berbagi layar. Untuk memulai berbagi layar, panggil metode StartScreenShareByDesktopId, StartScreenShareByScreenRegion, atau StartScreenShareByWindowId.

virtual bool IsScreenSharePublished() = 0;

Nilai kembalian

  • true: Dorong diaktifkan.

  • false: Push dinonaktifkan.

PauseAudioEffect

Menghentikan sementara efek suara.

virtual int UpdateScreenShareConfig(const AliEngineScreenShareConfig & config) = 0;

Parameter

Parameter

Tipe

Deskripsi

config

AliEngineScreenShareConfig

Konfigurasi berbagi layar yang diperbarui.

Nilai kembali

  • 0: Sukses

  • Lainnya: Gagal

PauseAllAudioEffects

Menjeda semua efek suara.

virtual bool CheckWindowSourceValid(unsigned int windowId) = 0;

Deskripsi Metrik

Parameter

Tipe

Deskripsi

int

unsigned int

ID jendela.

Nilai kembali

  • true: ID jendela yang sesuai valid.

  • false: ID jendela yang sesuai tidak valid.

ResumeAudioEffect

Mendapatkan konfigurasi berbagi layar saat ini.

virtual AliEngineScreenShareConfig GetScreenShareConfig() = 0;

Parameter

Parameter

Tipe

Deskripsi

int

unsigned int

ID jendela.

Nilai kembali

  • true: ID jendela yang ditentukan valid.

  • false: ID jendela yang ditentukan tidak valid.

GetScreenShareSourceInfo

Mengambil daftar sumber berbagi layar dengan tipe tertentu.

virtual AliEngineScreenSourceList* GetScreenShareSourceInfo(AliEngineScreenShareType sourceType) = 0;

Parameter

Parameter

Tipe

Deskripsi

sourceType

AliEngineScreenShareType

Tipe sumber berbagi layar.

Nilai kembali

  • Objek AliEngineScreenSourceList yang tidak kosong yang merepresentasikan daftar tipe sumber berbagi layar.

  • NULL jika pemanggilan gagal.

ResumeAllAudioEffects

Mendapatkan ID sumber berbagi layar saat ini.

virtual unsigned int GetCurrentScreenShareSourceId() = 0;

Nilai kembali

  • >= 0: ID sumber berbagi layar saat ini.

  • < 0: Panggilan gagal.

GetCurrentScreenShareSourceType

Mendapatkan jenis sumber berbagi layar saat ini.

virtual AliEngineScreenShareType GetCurrentScreenShareSourceType() = 0;

Deskripsi metrik

Parameter

Tipe

Deskripsi

sourceType

AliEngineScreenShareType

Jenis sumber berbagi.

Nilai kembali

  • Objek AliEngineScreenSourceList yang tidak kosong yang berisi daftar jenis sumber yang dibagikan.

  • NULL menunjukkan kegagalan.

SetAudioEffectPublishVolume

Mengatur volume ingest efek suara.

virtual int GetDesktopRegion(const String& sourceId, const String& sourceTitle, AliEngineScreenShareRegion & region) = 0;

Parameter

Parameter

Tipe

Deskripsi

sourceId

String

ID dari sumber yang dibagikan.

sourceTitle

String

Judul sumber.

region

AliEngineScreenShareRegion

Cakupan berbagi.

Nilai kembali

  • 0: Berhasil

  • Lainnya: Gagal

SetScreenShareEncoderConfiguration

Menetapkan properti pengkodean video untuk aliran layar.

virtual void SetScreenShareEncoderConfiguration(const AliEngineScreenShareEncoderConfiguration& config) = 0;

Gunakan metode ini untuk mengatur parameter video untuk aliran layar, seperti resolusi, laju frame, bitrate, dan orientasi video. Semua parameter memiliki rentang nilai yang valid. Jika Anda menetapkan parameter di luar rentang yang valid, kit pengembangan perangkat lunak (SDK) akan menyesuaikannya secara otomatis.

Anda dapat memanggil metode ini sebelum atau setelah bergabung ke dalam rapat. Jika Anda hanya perlu menetapkan properti pengkodean aliran layar sekali untuk setiap rapat, panggil metode ini sebelum bergabung.

Parameter

Parameter

Tipe

Deskripsi

config

AliEngineScreenShareEncoderConfiguration

Properti pengkodean berbagi layar yang telah ditentukan sebelumnya.

Antarmuka

IAliEngineMediaEngine