Topik ini menjelaskan API dari SDK ApsaraVideo Real-time Communication untuk iOS.
Daftar Isi
API Dasar
API | Deskripsi fungsi |
Membuat instance AliRtcEngine (pola singleton). | |
Menghancurkan instance AliRtcEngine (sinkron). | |
Menghancurkan instance AliRtcEngine (asinkron). | |
Menetapkan mode kompatibilitas H5. | |
Memeriksa apakah kompatibilitas H5 diaktifkan. | |
Mendapatkan nomor versi SDK. |
API Saluran
API | Deskripsi fungsi |
Menetapkan profil saluran. | |
Menetapkan profil audio. | |
Memeriksa apakah mode saat ini hanya audio. | |
Menetapkan mode ke hanya audio atau audio dan video. | |
Bergabung ke saluran. | |
Bergabung ke saluran. | |
Bergabung ke saluran. | |
Keluar dari saluran. | |
Memeriksa apakah pengguna berada di saluran. | |
Menetapkan peran pengguna. | |
Mendapatkan peran pengguna. | |
Memperbarui informasi autentikasi. | |
Memperbarui informasi autentikasi. |
API Penerbitan dan Berlangganan
API | Deskripsi fungsi |
Menetapkan apakah akan menerbitkan aliran audio lokal. Aliran audio diterbitkan secara default. | |
Memeriksa apakah aliran audio lokal sedang diterbitkan. | |
Menetapkan apakah akan berlangganan aliran audio jarak jauh secara default. Semua aliran audio jarak jauh berlangganan secara default. Panggil API ini sebelum bergabung ke saluran. | |
Menghentikan atau melanjutkan berlangganan aliran audio pengguna jarak jauh tertentu. | |
Menghentikan atau melanjutkan berlangganan semua aliran audio jarak jauh. | |
Menetapkan apakah akan menerbitkan aliran video lokal. | |
Memeriksa apakah aliran video lokal sedang diterbitkan. | |
Menetapkan apakah akan berlangganan aliran video jarak jauh secara default. Semua aliran video jarak jauh berlangganan secara default. Panggil API ini sebelum bergabung ke saluran. | |
Menghentikan atau melanjutkan berlangganan aliran video pengguna jarak jauh. | |
Menghentikan atau melanjutkan berlangganan semua aliran video jarak jauh. | |
Menghentikan atau melanjutkan berlangganan aliran media pengguna jarak jauh tertentu. Gunakan API ini ketika aliran audio dan video ada dan perlu dikontrol. | |
Menghentikan atau melanjutkan berlangganan aliran media pengguna jarak jauh tertentu. Gunakan API ini ketika aliran audio dan video ada dan perlu dikontrol. | |
Menghentikan atau melanjutkan berlangganan aliran media pengguna jarak jauh tertentu di berbagai saluran. | |
Berlangganan aliran semua pengguna di saluran target. | |
Menetapkan volume audio jarak jauh. |
API manajemen perangkat audio
API | Deskripsi fungsi |
Menetapkan apakah akan menghentikan penerbitan audio lokal. | |
Menetapkan apakah akan menghentikan pemutaran aliran audio jarak jauh. | |
Menghentikan atau melanjutkan pemutaran semua audio jarak jauh. | |
Memulai penangkapan audio. | |
Memulai penangkapan audio. | |
Menghentikan penangkapan audio. | |
Menetapkan output audio ke earpiece atau speaker. | |
Mendapatkan perangkat output audio saat ini, earpiece atau speaker. | |
Mengaktifkan fitur deteksi volume. | |
Mengaktifkan pemantauan in-ear. | |
Menetapkan volume pemantauan in-ear (iOS saja). | |
Memulai pemutaran audio. | |
Menghentikan pemutaran audio. | |
Menetapkan volume pemutaran. | |
Menetapkan volume penangkapan. | |
Memulai pengujian perangkat pemutaran audio. | |
Menghentikan pengujian perangkat pemutaran audio. | |
Memulai pengujian perangkat penangkapan audio. | |
Menghentikan pengujian perangkat penangkapan audio. | |
Menetapkan perangkat output default. |
Perubahan suara audio dan gema
API | Deskripsi fungsi |
Menetapkan mode efek pengubah suara. | |
Menetapkan parameter perubahan pitch. | |
Menetapkan mode efek gema. | |
Menetapkan jenis efek gema dan parameter spesifiknya. |
Input audio kustom
API | Deskripsi fungsi |
Menambahkan aliran audio eksternal. | |
Memasukkan data aliran audio eksternal. | |
Menetapkan volume penerbitan. | |
Mendapatkan volume penerbitan. | |
Menetapkan volume pemutaran untuk aliran audio eksternal. | |
Mendapatkan volume pemutaran aliran audio eksternal. | |
Menghapus aliran eksternal. |
Akord audio
API | Deskripsi fungsi |
Mendapatkan informasi tentang file akord audio. | |
Memulai pemutaran file akord. | |
Menghentikan pemutaran file akord. | |
Menetapkan volume akord. | |
Menetapkan volume penerbitan file akord. | |
Mendapatkan volume penerbitan file akord. | |
Menetapkan volume pemutaran file akord. | |
Mendapatkan volume pemutaran file akord. | |
Menjeda pemutaran akord. | |
Melanjutkan pemutaran akord. | |
Mendapatkan durasi file akord. | |
Mendapatkan posisi pemutaran akord saat ini. | |
Menetapkan posisi pemutaran akord. |
File efek suara
API | Deskripsi fungsi |
Memuat awal file efek suara. | |
Membongkar file efek suara yang telah dimuat sebelumnya. | |
Memulai pemutaran efek suara. | |
Menghentikan pemutaran efek suara. | |
Menghentikan pemutaran semua efek suara. | |
Menjeda efek suara. | |
Menjeda semua efek suara. | |
Melanjutkan file efek suara tertentu. | |
Melanjutkan semua file efek suara. | |
Menetapkan volume pencampuran untuk menerbitkan efek suara. | |
Mendapatkan volume pencampuran untuk menerbitkan efek suara. | |
Menetapkan volume pencampuran untuk menerbitkan semua efek suara. | |
Menetapkan volume pemutaran lokal untuk efek suara. | |
Mendapatkan volume pemutaran lokal untuk efek suara. | |
Menetapkan volume pemutaran lokal untuk semua efek suara. |
Merekam file audio dan video
API | Deskripsi fungsi |
Merekam file audio dan video (AAC, WAV, MP4). | |
Menghentikan perekaman file audio dan video. |
API manajemen perangkat video
API | Deskripsi fungsi |
Menetapkan jendela rendering dan parameter gambar untuk pratinjau lokal. | |
Menetapkan preferensi penangkapan kamera. | |
Menonaktifkan atau mengaktifkan kembali penangkapan video lokal. | |
Menetapkan apakah akan menghentikan penerbitan aliran video lokal. | |
Menetapkan jendela rendering dan parameter gambar untuk video jarak jauh. | |
Memeriksa apakah kamera menyala. | |
Menetapkan properti pengkodean video. | |
Menetapkan properti dekode video. | |
Beralih antara kamera depan dan belakang. Kamera depan digunakan secara default. | |
Mendapatkan arah kamera saat ini. | |
Memulai pratinjau lokal. | |
Menghentikan pratinjau lokal. | |
Menetapkan zoom kamera. | |
Mendapatkan faktor zoom maksimum kamera. | |
Mendapatkan faktor zoom maksimum kamera. | |
Menetapkan eksposur kamera. | |
Mendapatkan eksposur kamera. | |
Mendapatkan eksposur kamera minimum. | |
Mendapatkan eksposur kamera maksimum. | |
Mengaktifkan atau menonaktifkan lampu kilat kamera. | |
Memeriksa apakah kamera mendukung fokus manual. | |
Memeriksa apakah kamera mendukung pengaturan titik eksposur. | |
Menetapkan titik fokus manual untuk kamera. | |
Menetapkan titik eksposur untuk kamera. | |
Memeriksa apakah kamera mendukung autofokus berbasis wajah. | |
Menetapkan autofokus berbasis wajah untuk kamera. | |
Menetapkan mode cermin untuk pratinjau dan ingest aliran. | |
Menetapkan waktu penskalaan pipeline penangkapan. Menentukan apakah data video diskalakan segera setelah ditangkap atau selama pengkodean. |
Konfigurasi callback data video
API | Deskripsi fungsi |
Mendaftarkan callback data video. | |
Membatalkan pendaftaran callback data video. | |
Mendaftarkan callback tekstur video. | |
Membatalkan pendaftaran callback tekstur video. | |
Mengambil tangkapan layar dari tampilan kamera. | |
Mendaftarkan callback output data video. | |
Membatalkan pendaftaran callback output data video. |
Konfigurasi callback data audio
API | Deskripsi fungsi |
Menetapkan parameter callback audio. | |
Mendaftarkan callback data audio. |
Input video kustom
API | Deskripsi fungsi |
Mengaktifkan sumber input video eksternal. | |
Memasukkan data video. |
API berbagi layar
API | Deskripsi fungsi |
Memulai ingest aliran berbagi layar. | |
Memulai ingest aliran berbagi layar. Catatan API ini sudah tidak digunakan lagi. | |
Menghentikan ingest aliran berbagi layar. | |
Menetapkan volume aliran audio yang dibagikan. | |
Memeriksa apakah berbagi layar sedang diterbitkan. | |
Mengonfigurasi parameter pengkodean berbagi layar. |
API streaming langsung bypass
API | Deskripsi fungsi |
Memulai streaming langsung bypass. | |
Memperbarui parameter streaming langsung bypass. | |
Menghentikan streaming langsung bypass. | |
Mendapatkan status streaming langsung bypass. |
API deteksi kualitas jaringan
API | Deskripsi fungsi |
Memulai deteksi kualitas jaringan. | |
Menghentikan deteksi kualitas jaringan. |
SEI
API | Deskripsi fungsi |
Mendorong aliran SEI. | |
Mendorong aliran SEI (diperluas). |
API Lainnya
API | Deskripsi fungsi |
Menetapkan parameter kustom. | |
Mendapatkan parameter kustom. | |
Menetapkan jalur penyimpanan untuk file log SDK. | |
Menetapkan tingkat log. | |
Menetapkan izin kontrol SDK untuk AVAudioSession. | |
Menetapkan orientasi perangkat. | |
Mendapatkan stempel waktu jaringan. | |
Mengirim pesan saluran data. |
Callbacks
AliRtcEngineDelegate
API | Deskripsi fungsi |
Callback untuk perubahan status koneksi jaringan. Anda perlu menangani callback ini. | |
Callback untuk pengecualian perangkat lokal. Anda perlu menangani callback ini. | |
Pemberitahuan bahwa token autentikasi akan segera kedaluwarsa. Token akan kedaluwarsa dalam 30 detik. Anda perlu menangani callback ini. | |
Server mengembalikan bahwa token telah kedaluwarsa ketika pengguna memanggil API yang memerlukan autentikasi. | |
Callback untuk hasil bergabung ke saluran. | |
Callback untuk hasil meninggalkan saluran. | |
Pemberitahuan bahwa pengguna jarak jauh telah offline. | |
Pemberitahuan bahwa pengguna jarak jauh telah online. | |
Pemberitahuan informasi aliran jarak jauh. | |
Callback ketika pengguna dikeluarkan dari server atau saluran ditutup. | |
Pemberitahuan perubahan status penerbitan audio. | |
Pemberitahuan perubahan status langganan audio. | |
Pemberitahuan bahwa pengguna jarak jauh dimatikan suaranya. | |
Pemberitahuan bahwa gangguan perangkat audio telah dimulai. | |
Pemberitahuan bahwa gangguan perangkat audio telah berakhir. | |
Callback untuk perubahan status penerbitan video. | |
Callback untuk perubahan status langganan aliran kamera. | |
Pemberitahuan bahwa pengguna jarak jauh mengirim frame video hitam. | |
Pemberitahuan bahwa pengguna jarak jauh telah menonaktifkan penangkapan aliran kamera. | |
Aplikasi pengguna jarak jauh telah dipindahkan ke latar belakang. | |
Aplikasi pengguna jarak jauh telah dipindahkan ke latar depan. | |
Callback ketika pemutaran efek suara lokal selesai. | |
Volume audio, status aktivitas suara, dan UID pengguna yang berlangganan. | |
Deteksi aktivitas suara. Callback ketika pembicara aktif terdeteksi. | |
Callback untuk perubahan status penerbitan aliran bypass. | |
Callback untuk perubahan status tugas bypass. | |
Callback untuk perubahan kualitas jaringan. | |
Callback untuk deteksi kualitas jaringan. | |
Callback untuk hasil deteksi kualitas jaringan. | |
Jika terjadi kesalahan pada mesin, callback ini memberi tahu aplikasi. | |
Callback untuk paket audio pertama yang dikirim. | |
Callback untuk frame video pertama yang diterima. | |
Callback untuk paket video pertama yang dikirim. | |
Callback untuk paket audio pertama yang diterima. | |
Callback untuk frame audio jarak jauh pertama yang didekodekan. | |
Callback ini dipicu ketika frame video pertama pengguna jarak jauh ditampilkan. | |
Callback ini dipicu ketika frame video pertama ditampilkan dalam pratinjau lokal. | |
Callback untuk volume penangkapan audio selama pengujian pra-panggilan. | |
Callback untuk status pemutaran akord audio lokal. | |
Callback ketika pengguna jarak jauh memulai pemutaran akord audio. | |
Callback ketika pengguna jarak jauh menyelesaikan pemutaran akord audio. | |
Callback data real-time (dipicu setiap 2 detik). | |
Statistik video lokal (dipicu setiap 2 detik). | |
Statistik video jarak jauh (dipicu setiap 2 detik). | |
Statistik audio lokal (dipicu setiap 2 detik). | |
Statistik audio jarak jauh (dipicu setiap 2 detik). | |
Callback untuk pesan ekstensi media yang diterima. | |
Callback untuk perubahan rute audio. | |
Callback untuk tangkapan layar. | |
Callback untuk status perangkat penangkapan audio lokal. | |
Callback untuk status perangkat penangkapan video lokal. | |
Callback ketika Anda dapat mulai mengirim pesan saluran data. | |
Callback untuk pesan saluran data. | |
Callback untuk perubahan status penerbitan berbagi layar. |
AliRtcAudioFrameDelegate
API | Deskripsi fungsi |
Callback untuk data mentah yang ditangkap. | |
Callback untuk data setelah pemrosesan 3A. | |
Callback untuk data aliran yang diterbitkan. | |
Callback untuk data pemutaran. | |
Callback untuk data penarikan aliran jarak jauh. |
AliRtcEngineDestroyDelegate
API | Deskripsi fungsi |
Callback ketika mesin dilepas. Mesin hanya dilepas setelah callback ini dieksekusi. |
AliRtcTextureDelegate
API | Deskripsi fungsi |
Callback untuk pembuatan konteks OpenGL. | |
Callback untuk pembaruan tekstur OpenGL. | |
Callback untuk penghancuran konteks OpenGL. |
AliRtcVideoFrameDelegate
API | Deskripsi fungsi |
Callback untuk frame video yang ditangkap. | |
Callback untuk data video lokal yang berlangganan sebelum pengkodean. | |
Callback untuk data video jarak jauh yang berlangganan. | |
Format output data video. | |
Posisi output data video. |
Detail API
sharedInstance
Membuat instance AliRtcEngine menggunakan pola singleton.
+ (instancetype _Nonnull )sharedInstance:(id<AliRtcEngineDelegate>_Nullable)delegate extras:(NSString *_Nullable)extras;Kapan dipanggil
Anda harus memanggil metode ini untuk membuat instance AliRtcEngine sebelum memanggil API lain dari SDK ApsaraVideo Real-time Communication (ARTC).
Batasan
Ini adalah metode sinkron dan harus dipanggil dari thread utama.
SDK mendukung pembuatan hanya satu instance AliRtcEngine untuk setiap aplikasi.
Callback terkait
Saat Anda membuat instance mesin, Anda harus mengimplementasikan callback di AliRtcEngineDelegate berdasarkan skenario bisnis Anda. Jika terjadi pengecualian selama runtime, SDK pertama-tama akan mencoba memulihkan secara otomatis menggunakan mekanisme pengulangan internalnya. Untuk kesalahan yang tidak dapat diselesaikan secara internal, SDK memberi tahu aplikasi Anda melalui antarmuka callback yang telah ditentukan. Lapisan aplikasi harus mendengarkan dan menanggapi callback kunci berikut yang tidak dapat ditangani oleh SDK:
Penyebab | Callback dan parameter | Solusi | Deskripsi |
Autentikasi gagal | Parameter result dalam callback onJoinChannelResult mengembalikan AliRtcErrJoinBadToken. | Jika kesalahan ini terjadi, aplikasi perlu memeriksa apakah token benar. | Ketika pengguna memanggil API, jika autentikasi gagal, sistem mengembalikan pesan kesalahan kegagalan autentikasi dalam callback API. |
Kesalahan koneksi jaringan | Callback onConnectionStatusChange mengembalikan AliRtcConnectionStatusFailed. | Jika kesalahan ini terjadi, aplikasi perlu bergabung kembali ke saluran. | SDK dapat memulihkan secara otomatis dari gangguan jaringan dalam periode tertentu. Jika waktu pemutusan melebihi ambang batas yang telah ditentukan, timeout dipicu, dan koneksi terputus. Dalam hal ini, aplikasi harus memeriksa status jaringan dan memandu pengguna untuk bergabung kembali ke saluran. |
Kesalahan perangkat lokal | onLocalDeviceException | Jika kesalahan ini terjadi, aplikasi perlu memeriksa izin dan apakah perangkat keras berfungsi dengan benar. | Layanan RTC mendukung deteksi perangkat dan diagnosis kesalahan. Ketika terjadi kesalahan perangkat lokal, layanan RTC memberi tahu pelanggan melalui callback. Jika SDK tidak dapat menyelesaikan masalah sendiri, aplikasi perlu campur tangan untuk memeriksa apakah perangkat berfungsi dengan benar. |
Dikeluarkan secara paksa | onBye |
| Layanan RTC menyediakan fitur bagi administrator untuk mengeluarkan peserta. |
Token akan segera kedaluwarsa | onWillAuthInfoExpire | Jika kesalahan ini terjadi, aplikasi perlu mendapatkan informasi autentikasi terbaru dan kemudian memanggil refreshAuthInfo untuk memperbaruinya. | Kesalahan kedaluwarsa token dapat terjadi dalam dua situasi: ketika pengguna memanggil API atau selama eksekusi program. Oleh karena itu, umpan balik kesalahan dikirim melalui callback API atau callback kesalahan terpisah. |
Token kedaluwarsa | onAuthInfoExpired | Jika kesalahan ini terjadi, aplikasi perlu bergabung kembali ke saluran. | Kesalahan kedaluwarsa token dapat terjadi dalam dua situasi: ketika pengguna memanggil API atau selama eksekusi program. Oleh karena itu, umpan balik kesalahan dikirim melalui callback API atau callback kesalahan terpisah. |
Parameter
Nama | Tipe | Deskripsi |
delegate | id<AliRtcEngineDelegate>_Nullable | Delegasi untuk mendengarkan callback. |
extras | NSString *_Nullable | Digunakan untuk menerima parameter untuk fitur grayscale dari pelanggan. Mengonfigurasi fitur SDK khusus melalui konfigurasi JSON. Dapat berupa string kosong. |
destroy[1/2]
Menghancurkan instance AliRtcEngine.
+ (void)destroy;Memanggil metode ini menghancurkan objek singleton AliRtcEngine dan melepaskan semua sumber daya internal. Anda tidak dapat lagi menggunakan metode lain dari AliRtcEngine atau callback apa pun. Untuk menggunakan mesin lagi, Anda harus memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#2db21d4f16s77" id="96631a9306wq8">sharedInstance</a> untuk membuat instance baru.
Kedua metode ini dan destroy[2/2] dapat menghancurkan instance mesin. Perbedaannya adalah yang terakhir memungkinkan Anda meneruskan objek pendengar untuk diberi tahu ketika penghancuran selesai.
Tunggu hingga metode ini selesai sebelum membuat instance AliRtcEngine baru.
Setelah memanggil metode ini, atur objek mesin ke null.
Kapan harus memanggil
Ketika komunikasi audio dan video berakhir, panggil metode ini untuk melepaskan instance dan mengurangi konsumsi sumber daya.
Batasan
Memanggil metode ini dari dalam callback SDK dapat menyebabkan deadlock.
destroy[2/2]
Menghancurkan instance AliRtcEngine.
+ (void)destroy:(id<AliRtcEngineDestroyDelegate>_Nullable)delegate;Menghancurkan objek singleton AliRtcEngine dan melepaskan semua sumber daya yang digunakan secara internal. Setelah metode ini dipanggil, Anda tidak dapat lagi menggunakan metode AliRtcEngine lainnya atau callback. Untuk menggunakan mesin lagi, Anda perlu memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#2db21d4f16s77" id="115fd691743nx">sharedInstance</a> untuk membuat instance baru.
Kedua metode ini dan destroy[1/2] dapat melepaskan instance AliRtcEngine. Perbedaannya adalah metode ini adalah panggilan asinkron dan memungkinkan Anda meneruskan pengamat untuk memantau kapan penghancuran selesai. Anda hanya dapat membuat instance berikutnya setelah callback onDestroyCompletion dipicu.
Kapan Memanggil
Anda dapat memanggil metode ini untuk melepaskan instance setelah komunikasi audio dan video selesai.
Batasan
Untuk menghindari deadlock, Anda tidak boleh memanggil metode ini dalam callback SDK apa pun.
Parameter
Nama | Tipe | Deskripsi |
delegate | Objek callback setelah dilepas. |
setH5CompatibleMode
Menetapkan mode kompatibilitas H5.
Anda harus memanggil metode ini untuk menetapkan mode kompatibilitas H5 sebelum membuat instance AliRtcEngine. Mode tidak dapat diubah setelah instance dibuat.
+ (void)setH5CompatibleMode:(BOOL)comp;Parameter
Nama | Tipe | Deskripsi |
comp | BOOL | YES berarti kompatibel dengan H5. NO berarti tidak kompatibel dengan H5. Nilai default adalah tidak kompatibel. |
getH5CompatibleMode
Menunjukkan apakah mode kompatibilitas H5 diatur.
+ (BOOL)getH5CompatibleMode;Nilai kembali
Mengembalikan YES jika mode kompatibilitas H5 diatur, atau NO jika tidak.
getSdkVersion
Mengambil nomor versi SDK.
+ (NSString *_Nonnull)getSdkVersion;Nilai kembali
Nomor versi SDK saat ini sebagai string, misalnya, "2.5.0.x".
Deskripsi
Ini adalah metode statis. Anda dapat mengambil nomor versi kapan saja.
setChannelProfile
Menetapkan profil saluran.
- (int)setChannelProfile:(AliRtcChannelProfile)profile;Metode ini menetapkan profil saluran. Saat ini menyediakan skenario untuk panggilan video dan streaming interaktif:
Panggilan video: Semua pengguna adalah streamer dan dapat menerbitkan dan berlangganan aliran.
Streaming interaktif: Anda harus memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#892915dd4edcy" id="d88dccff391by">setClientRole</a>untuk menetapkan peran pengguna. Untuk pengguna yang menerbitkan aliran di saluran, atur perannya menjadi streamer (AliRTCSdkInteractive). Jika pengguna hanya perlu menarik aliran dan tidak perlu menerbitkan aliran, atur perannya menjadi penonton (AliRTCSdkLive). Profil ini direkomendasikan untuk skenario RTC.
Profil streaming interaktif direkomendasikan untuk semua skenario RTC. Untuk menggunakan profil ini, panggil metode ini dengan
AliRTCSdkInteractiveLive.Semua pengguna di saluran yang sama harus menggunakan profil saluran yang sama.
Kapan harus memanggil
Anda hanya dapat memanggil metode ini sebelum bergabung ke saluran. Setelah Anda bergabung ke saluran, Anda tidak dapat mengubah profil saluran sampai Anda meninggalkan saluran tersebut.
Parameter
Nama | Tipe | Deskripsi |
profile | Profil saluran. Untuk semua skenario RTC, atur ini ke AliRtcChannelProfileInteractiveLive, profil streaming interaktif. |
Nilai kembali
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan metode gagal.
setAudioProfile
Menetapkan profil audio.
- (int)setAudioProfile:(AliRtcAudioProfile)audio_profile audio_scene:(AliRtcAudioScenario)audio_scene;Metode ini menetapkan mode pengkodean dan skenario audio. Untuk informasi lebih lanjut, lihat Operasi dan konfigurasi audio umum. Secara default, SDK ARTC menggunakan mode audio berkualitas tinggi (AliRtcEngineHighQualityMode) dan mode skenario musik (AliRtcSceneMusicMode). Jika pengaturan default tidak memenuhi kebutuhan Anda, Anda dapat memanggil metode ini untuk mengubahnya.
Kapan memanggil
Anda hanya dapat memanggil metode ini sebelum bergabung ke saluran. Anda tidak dapat mengubah profil setelah Anda bergabung ke saluran. Anda dapat mengubah profil lagi setelah Anda meninggalkan saluran.
Parameter
Nama | Tipe | Deskripsi |
audio_profile | Parameter mode pengkodean atau penangkapan audio. Mode audio berkualitas tinggi (AliRtcEngineHighQualityMode) direkomendasikan. Catatan Untuk interoperabilitas dengan klien web, atur laju sampel ke 48 kHz.
| |
audio_scene | Parameter mode skenario audio, yang terutama mencakup hal berikut:
|
Deskripsi nilai kembali
Nilai kembali 0 menunjukkan bahwa pemanggilan berhasil. Nilai selain 0 menunjukkan bahwa pemanggilan gagal.
isAudioOnly
Memeriksa apakah mode saat ini hanya audio.
- (BOOL)isAudioOnly;Nilai kembali
Mengembalikan YES jika mode hanya audio, dan NO jika mode audio dan video.
setAudioOnlyMode
Mengaktifkan atau menonaktifkan mode hanya audio.
- (int)setAudioOnlyMode:(BOOL)audioOnly;Parameter
Nama | Tipe | Deskripsi |
audioOnly | BOOL |
|
Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan. Nilai bukan nol menunjukkan kegagalan.
joinChannel[1/3]
Bergabung ke saluran menggunakan satu parameter.
- (int)joinChannel:(NSString *_Nonnull)token channelId:(NSString *_Nullable)channelId userId:(NSString *_Nullable)userId name:(NSString *_Nullable)userName onResultWithUserId:(void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed))onResult;Metode ini digunakan untuk bergabung ke saluran. Di ARTC, saluran digunakan untuk mengelola pengguna. Anda harus bergabung ke saluran untuk menerbitkan atau berlangganan aliran audio dan video. Anda dapat menggunakan metode ini, joinChannel[2/3], atau joinChannel[3/3] untuk bergabung ke saluran. Metode ini berbeda dalam metode autentikasi dan informasi pengguna yang dilewatkan, seperti dijelaskan di bawah ini:
Ini adalah metode bergabung ke saluran dengan satu parameter. Untuk bergabung ke saluran, Anda harus melewatkan token satu parameter yang dihasilkan menggunakan autentikasi berbasis token. Gunakan metode ini untuk bergabung ke saluran dalam skenario komunikasi real-time (RTC).
joinChannel[2/3]adalah metode bergabung ke saluran dengan beberapa parameter. Untuk bergabung ke saluran, Anda harus melewatkan token multi-parameter yang dihasilkan menggunakan autentikasi berbasis token dan informasi pengguna yang digunakan untuk menghasilkan token.joinChannel[3/3]digunakan untuk skenario interaksi real-time AI. Anda harus melewatkan token satu parameter dan mengatur properti penggunacapabilityProfileberdasarkan skenario tertentu.
Secara default, ketika Anda bergabung ke saluran, Anda berlangganan aliran audio dan video dari semua pengguna lain di saluran dan mendorong aliran Anda sendiri ke pengguna jarak jauh. Untuk menonaktifkan langganan default ke aliran audio atau video, Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="2e9165006d7tz">setDefaultSubscribeAllRemoteAudioStreams</a> dan <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="96cf16cf8a4us">setDefaultSubscribeAllRemoteVideoStreams</a> sebelum Anda bergabung ke saluran.
Kapan Dipanggil
Anda harus memanggil ini setelah membuat mesin.
Batasan Pemanggilan
Untuk beralih ke saluran lain, Anda harus terlebih dahulu memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="37299758eavvg">leaveChannel</a>untuk meninggalkan saluran saat ini. Setelah Anda menerima callback<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="50039f328fdk7">onLeaveChannelResult</a>, Anda dapat bergabung ke saluran baru.Anda hanya dapat bergabung ke satu saluran pada satu waktu.
Aplikasi yang menggunakan App ID berbeda tidak dapat berkomunikasi satu sama lain.
Jangan memanggil metode ini untuk mencoba ulang upaya bergabung ke saluran yang gagal.
Callback Terkait
Pemanggilan API ini yang berhasil memicu callback berikut:
Callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6d2a213d7sl2" id="903005c54be4d">onJoinChannelResult</a>mengembalikan hasil klien lokal bergabung ke saluran.Setelah Anda berhasil bergabung ke saluran, callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#634626babfq9x" id="4b11b846b1f4t">onRemoteUserOnLineNotify</a>dipicu ketika pengguna jarak jauh online.
Deskripsi Metrik
Parameter | Tipe | Deskripsi |
token | String | Informasi autentikasi untuk bergabung ke rapat. |
channelId | String | Saluran rapat. Nilai ini harus sama dengan yang digunakan untuk menghasilkan token. |
userId | String | ID pengguna untuk bergabung ke rapat. Nilai ini harus sama dengan yang digunakan untuk menghasilkan token. |
userName | String | Nama tampilan pengguna. Ini bukan ID pengguna. |
onResultWithUserId | void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed) | Callback ini dipanggil setelah eksekusi API. |
Nilai kembali
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lain menunjukkan bahwa pemanggilan metode gagal.
joinChannel[2/3]
Bergabung ke saluran untuk rapat multi-peserta.
- (int)joinChannel:(AliRtcAuthInfo *_Nonnull)authInfo name:(NSString *_Nullable)userName onResultWithUserId:(void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed))onResult;Metode ini memungkinkan Anda bergabung ke saluran. Di Alibaba Real-Time Communication (ARTC), saluran digunakan untuk mengelola pengguna. Anda harus bergabung ke saluran untuk menerbitkan atau berlangganan aliran audio dan video. Anda dapat menggunakan metode ini, joinChannel[1/3], atau joinChannel[3/3] untuk bergabung ke saluran. Metode ini berbeda dalam proses autentikasi dan informasi pengguna yang mereka butuhkan, seperti berikut:
Metode
joinChannel[1/3]bergabung ke saluran menggunakan satu parameter. Untuk menggunakan metode ini, hasilkan token untuk bergabung dengan satu parameter seperti yang dijelaskan dalam Autentikasi Token, lalu lewatkan token ke metode. Metode ini direkomendasikan untuk skenario RTC.Metode ini menggunakan beberapa parameter untuk bergabung ke saluran. Untuk menggunakan metode ini, hasilkan token untuk bergabung dengan beberapa parameter seperti yang dijelaskan dalam Autentikasi Token. Anda kemudian harus melewatkan token dan informasi pengguna yang digunakan untuk menghasilkannya ke metode.
Metode
joinChannel[3/3]digunakan untuk skenario interaksi real-time AI. Untuk menggunakan metode ini, lewatkan token untuk bergabung dengan satu parameter dan atur properti penggunacapabilityProfilesesuai dengan skenario.
Secara default, ketika Anda bergabung ke saluran, Anda berlangganan aliran audio dan video dari semua pengguna lain di saluran dan mendorong aliran audio dan video Anda ke pengguna jarak jauh. Jika Anda ingin menonaktifkan langganan default ke aliran audio atau video, Anda dapat memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="fb54669796mxq">setDefaultSubscribeAllRemoteAudioStreams</a>atau<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="abb190b699jg7">setDefaultSubscribeAllRemoteVideoStreams</a>sebelum Anda memanggil operasi ini.Operasi ini bergabung ke saluran dengan beberapa parameter. Sebelum memanggil operasi ini, Anda harus menghasilkan token untuk tujuan ini seperti yang dijelaskan dalam Autentikasi Token.
Batasan Pemanggilan
Untuk bergabung ke saluran lain saat berada di saluran yang ada, Anda harus terlebih dahulu memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="4283c6cc013bz">leaveChannel</a>dan menunggu callback<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="9e6478b2f0hen">onLeaveChannelResult</a>sebelum memanggil metode bergabung lagi.Anda hanya dapat bergabung ke satu saluran pada satu waktu.
Aplikasi tidak dapat berkomunikasi lintas App ID yang berbeda.
Callback Terkait
Pemanggilan API yang berhasil memicu callback berikut:
Klien lokal menerima hasil bergabung ke saluran melalui callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6d2a213d7sl2" id="df00346ea8928">onJoinChannelResult</a>.Setelah Anda berhasil bergabung ke saluran, Anda menerima callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#634626babfq9x" id="c3832e71e8vck">onRemoteUserOnLineNotify</a>.
Parameter
Nama | Tipe | Deskripsi |
authInfo | Informasi autentikasi. | |
userName | String | Nama tampilan pengguna. Ini bukan ID pengguna. |
onResultWithUserId | void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed) | Callback ini dipanggil setelah pemanggilan API selesai. |
joinChannel[3/3]
Bergabung ke saluran.
- (int)joinChannel:(NSString *_Nonnull)token channelParam:(AliRtcChannelParam *_Nonnull)channelParam onResultWithUserId:(void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed))onResult;Anda dapat menggunakan metode ini untuk bergabung ke saluran. Di Alibaba Real-Time Communication (ARTC), pengguna diatur ke dalam saluran. Pengguna harus bergabung ke saluran untuk menerbitkan atau berlangganan aliran audio dan video. Metode ini, joinChannel[1/3], dan joinChannel[2/3] semuanya digunakan untuk bergabung ke saluran. Mereka berbeda dalam metode autentikasi dan informasi pengguna yang mereka lewatkan. Perbedaannya adalah sebagai berikut:
joinChannel[1/3]adalah metode bergabung ke saluran dengan satu parameter dalam skenario Komunikasi Real-Time (RTC). Untuk bergabung ke saluran, Anda harus melewatkan token satu parameter yang dihasilkan menggunakan autentikasi berbasis token. Metode ini direkomendasikan untuk bergabung ke saluran dalam skenario RTC.joinChannel[2/3]adalah metode bergabung ke saluran dengan beberapa parameter. Untuk bergabung ke saluran, Anda harus melewatkan token multi-parameter yang dihasilkan menggunakan autentikasi berbasis token dan informasi pengguna yang digunakan untuk menghasilkan token.Metode ini digunakan untuk skenario interaksi real-time berbasis AI. Untuk bergabung ke saluran, Anda harus melewatkan token satu parameter dan mengatur properti pengguna
capabilityProfileberdasarkan skenario. Untuk berkomunikasi dengan agen AI, atur properti ini keAliRtcCapabilityProfileAiHuman.
Secara default, ketika Anda bergabung ke saluran, Anda berlangganan aliran audio dan video dari semua pengguna lain di saluran dan mendorong aliran audio dan video Anda ke pengguna jarak jauh. Untuk menonaktifkan langganan default ini, Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="ce6cfa82f9xzc">setDefaultSubscribeAllRemoteAudioStreams</a> atau <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="e65b420fd5kj6">setDefaultSubscribeAllRemoteVideoStreams</a> sebelum Anda bergabung ke saluran.
Batasan penggunaan
Untuk beralih ke saluran yang berbeda, Anda harus terlebih dahulu memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="923190466431o">leaveChannel</a>untuk meninggalkan saluran Anda saat ini. Anda hanya dapat bergabung ke saluran baru setelah Anda menerima callback<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="dfd794c32covq">onLeaveChannelResult</a>.Pengguna hanya dapat bergabung ke satu saluran pada satu waktu.
Aplikasi dengan App ID yang berbeda tidak dapat berkomunikasi satu sama lain.
Jika upaya bergabung ke saluran gagal, jangan memanggil metode ini lagi untuk mencoba ulang.
Callback terkait
Pemanggilan metode ini yang berhasil memicu callback berikut:
Hasil klien lokal bergabung ke saluran dikembalikan dalam callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6d2a213d7sl2" id="f83d0aff9btwh">onJoinChannelResult</a>.Callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#634626babfq9x" id="aeef817be3a0b">onRemoteUserOnLineNotify</a>dipicu oleh klien jarak jauh setelah Anda berhasil bergabung ke saluran.
Parameter
Nama | Tipe | Deskripsi |
token | NSString* | Token autentikasi. Dapatkan dari server aplikasi Anda. |
channelParam | Parameter untuk bergabung ke saluran. | |
onResultWithUserId | void (^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSInteger elapsed) | Callback ini dipicu setelah metode selesai dieksekusi. |
leaveChannel
Meninggalkan saluran.
- (int)leaveChannel;Setelah Anda memanggil metode ini, SDK menghentikan transmisi audio dan video dan meninggalkan saluran saat ini.
Metode ini adalah operasi asinkron. Pemanggilan yang berhasil tidak berarti Anda telah meninggalkan saluran sampai callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="e7c0222bacrpa">onLeaveChannelResult</a>dipicu.Sekali metode leaveChannel selesai, hancurkan mesin dan atur instance ke null.
Skenario Pemanggilan
Panggil metode ini untuk meninggalkan saluran.
Jika Anda berada di saluran dan ingin bergabung ke saluran lain, Anda harus terlebih dahulu memanggil metode ini untuk meninggalkan saluran saat ini.
Callback Terkait
Klien lokal: Memanggil metode ini memicu callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="ea2e36a41csu0">onLeaveChannelResult</a>, yang melaporkan hasil meninggalkan saluran.Ujung jarak jauh: Pemanggilan metode ini yang berhasil memicu callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#34876c27d7zv7" id="a50f534f21mew">onRemoteUserOffLineNotify</a>untuk pengguna lain di saluran.
Nilai kembali
Nilai 0 menunjukkan bahwa pemanggilan berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan gagal.
isInCall
Memeriksa apakah pengguna berada di saluran.
- (BOOL)isInCall;Nilai kembali
YES jika pengguna berada di saluran. NO jika tidak.
setClientRole
Menetapkan peran pengguna.
- (int)setClientRole:(AliRtcClientRole)role;Metode ini menetapkan peran pengguna menjadi streamer atau penonton.
Dalam mode interaktif, sebelum Anda bergabung ke saluran:
Streamer: SDK secara otomatis mendorong aliran audio dan video lokal dan menerima aliran dari streamer lain secara default.
Penonton: SDK tidak mendorong aliran audio dan video lokal tetapi menerima aliran dari streamer lain.
Kapan dipanggil
Anda dapat memanggil metode ini untuk menetapkan peran pengguna sebelum bergabung ke saluran atau untuk mengganti peran pengguna setelah Anda bergabung.
Batasan
Metode ini hanya berlaku dalam mode interaktif. Mode ini diaktifkan dengan memanggil metode <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#fc9626a99f5kj" id="cd8138c77fv4r">setChannelProfile</a> untuk menetapkan profil saluran ke AliRtcInteractivelive.
Dalam mode interaktif, Anda harus secara eksplisit memanggil metode ini untuk menetapkan peran pengguna sebelum Anda bergabung ke saluran.
Parameter
Nama | Tipe | Deskripsi |
role | Peran pengguna. Nilai default adalah AliRtcClientRolelive (penonton). Parameter ini hanya berlaku ketika profil saluran tidak diatur ke mode komunikasi. |
Pengembalian
Nilai kembali 0 menunjukkan bahwa metode dipanggil berhasil. Nilai lain menunjukkan bahwa pemanggilan gagal.
getCurrentClientRole
Mengambil peran pengguna (iOS saja).
- (AliRtcClientRole)getCurrentClientRole;Nilai kembali
Peran pengguna saat ini.
refreshAuthInfo
Memperbarui informasi autentikasi.
- (int)refreshAuthInfo:(AliRtcAuthInfo *_Nonnull)authInfo;Metode ini memperbarui informasi autentikasi. Token kedaluwarsa setelah periode tertentu. Setelah token kedaluwarsa, SDK tidak dapat terhubung ke server.
Kedua metode ini dan metode refreshAuthInfoWithToken memperbarui informasi autentikasi. Gunakan metode ini untuk memperbarui token untuk bergabung ke saluran dengan beberapa parameter. Gunakan refreshAuthInfoWithToken untuk memperbarui token untuk bergabung ke saluran dengan satu parameter. Untuk informasi lebih lanjut tentang cara menghasilkan token, lihat Autentikasi berbasis token.
Kapan harus memanggil
Pertimbangkan skenario berikut:
Ketika Anda menerima callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6766cdfb40z1a" id="c1cc6cbddb22o">onAuthInfoWillExpire</a>, yang melaporkan bahwa informasi autentikasi akan segera kedaluwarsa, kami merekomendasikan agar Anda menghasilkan ulang token di server Anda dan kemudian memanggil metode ini untuk melewatkan token baru.Jika Anda tidak memperbarui token tepat waktu, callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#b04cd67880ptu" id="13c9ccb2b6ghh">onAuthInfoExpired</a>dipicu, yang menunjukkan bahwa autentikasi telah kedaluwarsa. Pada titik ini, Anda perlu menghasilkan ulang token dan kemudian memanggiljoinChanneluntuk bergabung kembali ke saluran.
Parameter
Nama | Tipe | Deskripsi |
authInfo | AliRtcAuthInfo *_Nonnull | Informasi autentikasi. |
Pengembalian
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lain menunjukkan bahwa pemanggilan gagal.
refreshAuthInfoWithToken
Memperbarui informasi autentikasi.
- (int)refreshAuthInfoWithToken:(NSString *_Nonnull)token;Metode ini memperbarui token. Token berlaku untuk periode tertentu. Setelah token kedaluwarsa, SDK tidak dapat terhubung ke server.
Kedua operasi ini dan
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6a4495191bmd" id="eb171f6dc0n9p">refreshAuthInfo</a>memperbarui token yang digunakan untuk bergabung ke saluran. Operasi ini memerlukan satu parameter, sedangkanrefreshAuthInfomemerlukan beberapa parameter. Untuk informasi lebih lanjut tentang pembuatan token, lihat Autentikasi Token.Jika Anda tidak memperbarui token sebelum kedaluwarsa, callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#b04cd67880ptu" id="3fd3c64767aq8">onAuthInfoExpired</a>dipicu. Anda kemudian harus memanggiljoinChanneluntuk bergabung kembali ke saluran.
Kapan dipanggil
Dalam situasi berikut, hasilkan ulang Token di server Anda dan kemudian panggil metode ini dengan Token baru:
Ketika callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6766cdfb40z1a" id="b1dbfcb71d5ys">onAuthInfoWillExpire</a> dipicu, menunjukkan bahwa informasi autentikasi akan segera kedaluwarsa.
Parameter
Nama | Tipe | Deskripsi |
token | NSString *_Nonnull | Informasi autentikasi untuk bergabung ke saluran dengan satu parameter. |
Nilai kembali
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil, sedangkan nilai lain menunjukkan kegagalan.
publishLocalAudioStream
Menentukan apakah akan menerbitkan aliran audio lokal.
- (int)publishLocalAudioStream:(BOOL)enable;Secara default, SDK menerbitkan aliran audio. Untuk menonaktifkan perilaku default ini, panggil publishLocalAudioStream(false) sebelum Anda bergabung ke saluran.
Kapan dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran. Jika dipanggil sebelum bergabung, pengaturan akan berlaku ketika Anda bergabung ke saluran.
Callback terkait
Ketika status penerbitan aliran audio lokal berubah, klien lokal menerima callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#86b2d8735bm71" id="e5ef180ba6e2i">onAudioPublishStateChanged</a>, yang melaporkan status penerbitan saat ini. Klien jarak jauh menerima callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6da9cf330aoer" id="299ef35806ttb">onRemoteTrackAvailableNotify</a>, yang menunjukkan bahwa aliran audio dan video pengguna jarak jauh telah berubah.
Parameter
Nama | Tipe | Deskripsi |
enable | boolean |
|
Mengembalikan
0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lain menunjukkan bahwa pemanggilan gagal.
isLocalAudioStreamPublished
Memeriksa apakah aliran audio lokal dapat diterbitkan.
- (BOOL)isLocalAudioStreamPublished;Pengembalian
YES mengaktifkan dorongan, dan NO menonaktifkannya.
setDefaultSubscribeAllRemoteAudioStreams
Menetapkan apakah akan berlangganan semua aliran audio jarak jauh secara default.
- (int)setDefaultSubscribeAllRemoteAudioStreams:(BOOL)sub;Gunakan metode ini untuk mengonfigurasi perilaku langganan default untuk aliran audio jarak jauh. Pengaturan ini berlaku untuk pengguna yang kemudian bergabung ke saluran. Atur parameter ini ke true kecuali Anda memiliki persyaratan khusus.
Kapan memanggil metode ini
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran.
Sebelum bergabung ke saluran:
Secara default, kit pengembangan perangkat lunak (SDK) berlangganan semua aliran audio jarak jauh ketika pengguna bergabung ke saluran. Untuk mengubah perilaku ini, Anda dapat memanggil metode ini sebelum bergabung ke saluran.
Setelah bergabung ke saluran:
Untuk menghentikan langganan default, Anda dapat memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="a467e60e4eyhk">setDefaultSubscribeAllRemoteAudioStreams</a>(false). Anda tidak akan berlangganan ke aliran audio pengguna yang kemudian bergabung ke saluran.Setelah Anda menghentikan langganan default, panggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#c8249fb568gms" id="9806dd9a750pf">subscribeRemoteAudioStream</a>untuk berlangganan aliran audio pengguna tertentu. Untuk berlangganan aliran audio beberapa pengguna, Anda harus memanggil metode ini beberapa kali.Setelah Anda menghentikan langganan default, memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="9507d6d3121uh">setDefaultSubscribeAllRemoteAudioStreams</a>(true)melanjutkan langganan default untuk pengguna yang bergabung ke saluran setelahnya. Pemanggilan ini tidak berlangganan Anda ke aliran audio pengguna yang bergabung ke saluran saat langganan default dihentikan.
Parameter
Nama | Tipe | Deskripsi |
sub | BOOL |
|
Mengembalikan
0 menunjukkan bahwa pemanggilan metode berhasil. Nilai selain 0 menunjukkan bahwa pemanggilan metode gagal.
subscribeRemoteAudioStream
Menghentikan atau melanjutkan berlangganan aliran audio pengguna jarak jauh tertentu.
- (int)subscribeRemoteAudioStream:(NSString *_Nonnull)uid sub:(BOOL)sub;Anda dapat memanggil metode ini untuk menghentikan atau melanjutkan berlangganan aliran audio pengguna jarak jauh tertentu. Dalam sebagian besar skenario, Anda harus berlangganan aliran audio.
Secara default, SDK berlangganan aliran audio semua pengguna jarak jauh ketika Anda bergabung ke rapat. Untuk menonaktifkan perilaku default ini, Anda dapat memanggil <a baseurl="t2309850_v10_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="044cc0f710rfg">setDefaultSubscribeAllRemoteAudioStreams</a>(false) sebelum bergabung ke rapat.
Parameter
Nama | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna jarak jauh. |
sub | BOOL |
|
Mengembalikan
Nilai 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lain menunjukkan bahwa pemanggilan gagal.
subscribeAllRemoteAudioStreams
Menghentikan atau melanjutkan menerima semua aliran audio jarak jauh.
- (int)subscribeAllRemoteAudioStreams:(BOOL)sub;Metode ini bertindak sebagai sakelar utama untuk berlangganan aliran audio jarak jauh. Jika Anda mengatur parameter ke NO, hal berikut terjadi:
Langganan ke semua aliran audio jarak jauh di rapat saat ini dihentikan.
Pengguna baru juga tidak akan dapat berlangganan.
Anda tidak dapat menggunakan
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#c8249fb568gms" id="846b0dd501epf">subscribeRemoteAudioStream</a>untuk mengontrol aliran audio pengguna tertentu secara individual.
Untuk melanjutkan langganan, panggil metode ini lagi dan atur parameter ke YES.
Secara default, SDK berlangganan aliran audio semua pengguna jarak jauh ketika Anda bergabung ke rapat. Untuk mengubah perilaku default ini, Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="86e8c09213k9y">setDefaultSubscribeAllRemoteAudioStreams</a>(false) sebelum bergabung ke rapat.
Parameter
Nama | Tipe | Deskripsi |
sub | BOOL |
|
Nilai kembali
Nilai 0 menunjukkan bahwa metode dipanggil berhasil. Nilai lain menunjukkan bahwa pemanggilan metode gagal.
publishLocalVideoStream
Mengaktifkan atau menonaktifkan penerbitan aliran kamera.
- (int)publishLocalVideoStream:(BOOL)enable;Metode ini mengontrol penerbitan aliran video lokal.
SDK menerbitkan aliran video secara default. Untuk menonaktifkan penerbitan aliran video, Anda dapat memanggil publishLocalVideoStream(false) sebelum Anda bergabung ke saluran.
Kapan dipanggil
Anda dapat memanggil metode ini sebelum atau setelah Anda bergabung ke saluran.
Jika Anda memanggil metode ini sebelum bergabung ke saluran, metode ini akan memodifikasi pengaturan default. Pengaturan baru akan berlaku ketika Anda bergabung ke saluran.
Callback terkait
Ketika status ingest aliran audio lokal berubah, klien lokal memicu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#bd67711e63tnk" id="f966292202q3d">onVideoPublishStateChanged</a> untuk melaporkan status ingest saat ini, sedangkan klien jarak jauh memicu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6da9cf330aoer" id="2fdc208ccczr1">onRemoteTrackAvailableNotify</a> untuk melaporkan perubahan pada aliran audio dan video pengguna jarak jauh.
Parameter
Nama | Tipe | Deskripsi |
enable | boolean |
|
isLocalVideoStreamPublished
Memeriksa apakah aliran video lokal diterbitkan.
- (BOOL)isLocalVideoStreamPublished;Nilai kembali
YES: Aliran video lokal diterbitkan. NO: Aliran video lokal tidak diterbitkan.
setDefaultSubscribeAllRemoteVideoStreams
Menetapkan apakah akan berlangganan semua aliran video jarak jauh secara default.
- (int)setDefaultSubscribeAllRemoteVideoStreams:(BOOL)sub;Metode ini menetapkan perilaku langganan default untuk semua aliran video jarak jauh. Secara default, kit pengembangan perangkat lunak (SDK) berlangganan semua aliran video jarak jauh.
Secara default, SDK berlangganan ke aliran audio dan video dari pengguna jarak jauh saat Anda bergabung dengan saluran. Untuk mengubah perilaku ini, panggil metode ini sebelum bergabung dengan saluran.
Kapan harus memanggil
Anda dapat memanggil metode ini baik sebelum maupun sesudah bergabung dengan saluran.
Sebelum bergabung ke saluran:
Panggil metode ini untuk mencegah SDK berlangganan ke semua aliran video secara default.
Setelah bergabung ke saluran:
Panggil `setDefaultSubscribeAllRemoteVideoStreams(false)` untuk menghentikan perilaku langganan default. Hal ini mencegah SDK berlangganan ke aliran video pengguna yang bergabung ke saluran setelahnya.
Setelah menghentikan perilaku langganan default, panggil metode subscribeRemoteVideoStream untuk berlangganan aliran video pengguna tertentu. Untuk berlangganan aliran video beberapa pengguna, Anda harus memanggil metode ini untuk setiap pengguna.
Setelah Anda menghentikan langganan default, pemanggilan setDefaultSubscribeAllRemoteVideoStreams(false) hanya akan melanjutkan aliran audio dari pengguna yang kemudian bergabung ke saluran.
Parameter
Nama | Tipe | Deskripsi |
sub | boolean |
|
Nilai kembali
Nilai 0 menandakan bahwa panggilan metode berhasil. Nilai lainnya menandakan bahwa panggilan tersebut gagal.
subscribeRemoteVideoStream
Menghentikan atau melanjutkan penerimaan aliran video pengguna jarak jauh.
- (int)subscribeRemoteVideoStream:(NSString *_Nonnull)uid track:(AliRtcVideoTrack)track sub:(BOOL)sub;Anda dapat berlangganan atau membatalkan langganan aliran video pengguna tertentu.
Secara default, SDK berlangganan aliran video semua pengguna jarak jauh saat Anda bergabung ke saluran. Untuk menonaktifkan perilaku default ini, panggil <a baseurl="t2309850_v10_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="97d89be88bvan">setDefaultSubscribeAllRemoteVideoStreams</a>(false) sebelum Anda bergabung ke saluran.
Kapan Dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran.
Deskripsi Metrik
Nama | Tipe | Deskripsi |
uid | NSString * | ID pengguna. Ini adalah pengidentifikasi unik yang ditetapkan oleh server aplikasi. |
track | Jenis aliran video. | |
sub | BOOL | Menunjukkan apakah akan berlangganan aliran tersebut. |
subscribeAllRemoteVideoStreams
Menghentikan atau melanjutkan penerimaan semua aliran video jarak jauh.
Metode ini berfungsi sebagai sakelar utama untuk berlangganan aliran video jarak jauh. Jika Anda mengatur parameter ini ke NO, SDK akan berhenti berlangganan semua aliran video jarak jauh dalam rapat saat ini, termasuk aliran dari pengguna baru yang bergabung kemudian. Hal ini terjadi meskipun sebelumnya Anda telah memanggil setDefaultSubscribeAllRemoteVideoStreams:YES.
- (int)subscribeAllRemoteVideoStreams:(BOOL)sub;Jika Anda mengatur parameter ke false, hal-hal berikut terjadi:
SDK berhenti berlangganan semua aliran video jarak jauh dalam rapat saat ini.
SDK tidak berlangganan pengguna baru yang bergabung ke dalam rapat, meskipun Anda telah memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="0464849a17dks">setDefaultSubscribeAllRemoteVideoStreams</a>untuk mengaktifkan langganan default.Anda tidak dapat menggunakan
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#1cc7ef76fdawz" id="498e782f414zz">subscribeRemoteVideoStream</a>untuk mengontrol secara terpisah aliran audio pengguna tertentu.
Untuk melanjutkan langganan, panggil kembali metode ini dan atur parameter ke true.
Secara default, SDK berlangganan aliran video semua pengguna jarak jauh saat Anda bergabung ke dalam rapat. Untuk mengubah perilaku ini, Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="317fa38ecf6ya">setDefaultSubscribeAllRemoteVideoStreams</a> sebelum bergabung ke dalam rapat untuk menonaktifkan langganan default ini.
Deskripsi parameter
Nama | Tipe | Deskripsi |
sub | BOOL |
|
Nilai kembali
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan kegagalan.
subscribeRemoteMediaStream[1/2]
Melakukan Berlangganan atau membatalkan langganan aliran media dari pengguna jarak jauh tertentu.
- (int)subscribeRemoteMediaStream:(NSString *_Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack subVideo:(BOOL)subVideo subAudio:(BOOL)subAudio;Metode ini berlangganan aliran audio dan video jarak jauh.
Antarmuka terkait
Dibandingkan dengan subscribeRemoteMediaStream[2/2], antarmuka ini menggunakan dua parameter Boolean, subVideo dan subAudio, untuk menentukan apakah akan berlangganan aliran audio dan video jarak jauh, serta parameter videoTrack untuk menentukan aliran video mana yang akan ditarik.
Catatan: Untuk metode ini, properti AliRtcVideoTrackNo dari AliRtcVideoTrack tidak valid. Mengaturnya tidak memiliki efek apa pun.
Parameter
Parameter | Tipe | Deskripsi |
uid | String | ID pengguna jarak jauh. |
videoTrack | Jenis aliran video. | |
subVideo | Boolean | Menentukan apakah akan menghentikan atau melanjutkan penarikan aliran video dari pengguna jarak jauh. Nilai yang valid:
|
subAudio | Boolean | Menentukan apakah akan menghentikan atau melanjutkan penarikan aliran audio dari pengguna jarak jauh. Nilai yang valid:
|
Nilai kembali
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.
subscribeRemoteMediaStream[2/2]
Berlangganan atau berhenti berlangganan aliran media dari pengguna jarak jauh tertentu.
- (int)subscribeRemoteMediaStream:(NSString *_Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack audioTrack:(AliRtcAudioTrack)audioTrack;Anda dapat menggunakan metode ini untuk berlangganan aliran audio dan video jarak jauh.
Metode ini menggunakan parameter videoTrack dan audioTrack untuk menentukan status langganan yang diinginkan dalam satu panggilan.
Metode terkait
Berbeda dengan subscribeRemoteMediaStream[1/2], metode ini menggunakan parameter videoTrack dan audioTrack untuk mengatur status langganan yang diinginkan dalam satu panggilan. Contohnya:
Untuk berlangganan aliran Kamera dan aliran mikrofon, atur videoTrack ke
AliRtcVideoTrackCameradan audioTrack keAliRtcAudioTrackMic.Untuk berhenti berlangganan aliran Kamera tetapi tetap berlangganan aliran mikrofon, atur videoTrack ke
AliRtcVideoTrackNodan audioTrack keAliRtcAudioTrackMic.Untuk berhenti berlangganan kedua aliran tersebut, atur videoTrack ke
AliRtcVideoTrackNodan audioTrack keAliRtcAudioTrackNo.Untuk berlangganan baik aliran Kamera maupun aliran berbagi layar, atur videoTrack ke
AliRtcVideoTrackBoth. Logika yang sama berlaku untuk aliran audio.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString * | ID pengguna jarak jauh. |
videoTrack | Jenis aliran video. | |
audioTrack | Jenis aliran audio. |
Nilai kembali
Nilai kembali 0 menunjukkan bahwa metode berhasil dipanggil. Nilai bukan nol menunjukkan bahwa panggilan gagal.
subscribeRemoteDestChannelStream
Berlangganan ke aliran pengguna tertentu di saluran lain.
- (int)subscribeRemoteDestChannelStream:(NSString *_Nonnull)channelId uid:(NSString *_Nonnull)uid track:(AliRtcVideoTrack)track subAudio:(BOOL)subAudio sub:(BOOL)sub;Parameter
Parameter | Tipe | Deskripsi |
channelId | String | ID saluran jarak jauh. |
uid | String | ID pengguna jarak jauh. |
track | Aliran video yang akan berlangganan. | |
sub_audio | boolean | Menentukan apakah akan menerima aliran audio dari pengguna jarak jauh. Nilai yang valid:
|
sub | boolean | Menentukan apakah akan berlangganan atau membatalkan langganan terhadap aliran pengguna tertentu di saluran lain. |
Nilai kembalian
Mengembalikan 0 jika panggilan berhasil, atau nilai bukan nol jika panggilan gagal.
subscribeRemoteDestChannelAllStream
Berlangganan ke aliran dari semua pengguna di saluran tujuan.
- (int)subscribeRemoteDestChannelAllStream:(NSString *_Nonnull)channelId track:(AliRtcVideoTrack)track subAudio:(BOOL)subAudio sub:(BOOL)sub;Parameter
Name | Type | Description |
channelId | NSString * | Saluran target. |
videotrack | Jenis aliran video. | |
audioTrack | Jenis aliran audio. | |
subAudio | BOOL | Menentukan apakah akan berlangganan aliran audio. |
sub | BOOL | Menentukan apakah akan berlangganan aliran video pengguna di saluran jarak jauh. |
Nilai kembali
Mengembalikan 0 jika berhasil. Nilai selain nol mengindikasikan kegagalan.
setRemoteAudioVolume
Mengatur volume pemutaran pengguna jarak jauh.
- (int)setRemoteAudioVolume:(NSString *_Nonnull)uid volume:(NSInteger)volume;Anda harus memanggil metode ini setelah pengguna jarak jauh bergabung ke dalam rapat. Pemanggilan metode akan gagal jika pengguna yang ditentukan belum bergabung ke dalam rapat.
Parameters
Name | Type | Description |
uid | NSString * | ID pengguna. Ini adalah pengenal unik yang diberikan oleh server App. |
volume | NSInteger | Volume pemutaran. Nilainya berkisar antara 0 hingga 100. 0: Bisu. 100: Volume asli. |
Return value
0 menunjukkan bahwa pemanggilan metode berhasil. Nilai bukan nol menunjukkan kegagalan.
muteLocalMic
Menghentikan atau melanjutkan pengiriman aliran audio lokal.
- (int)muteLocalMic:(BOOL)mute mode:(AliRtcMuteLocalAudioMode)mode;Saat dimatikan suaranya, aliran audio mengirimkan frame diam. Modul perekaman dan pengkodean audio tetap berjalan.
Kapan harus dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran.
Callback terkait
Setelah pemanggilan berhasil, callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3189c59d9fipb" id="1579c3523779c">onUserAudioMuted</a> dipicu untuk menunjukkan apakah pengguna jarak jauh dimatikan suaranya.
Parameter
Nama | Tipe | Deskripsi |
mute | BOOL |
|
mode | Mode mute. Secara default, semua audio dimatikan suaranya.
|
Nilai kembali
Nilai kembali 0 menunjukkan pemanggilan metode berhasil. Nilai lainnya menunjukkan pemanggilan gagal.
muteRemoteAudioPlaying
Menghentikan atau melanjutkan pemutaran audio jarak jauh.
- (int)muteRemoteAudioPlaying:(NSString *_Nonnull)uid mute:(BOOL)mute;- (int)muteRemoteAudioPlaying:(NSString *_Nonnull)uid mute:(BOOL)mute;- (int)muteRemoteAudioPlaying:(NSString *_Nonnull)uid mute:(BOOL)mute;Metode ini hanya menghentikan atau melanjutkan pemutaran audio dari pengguna jarak jauh tertentu, dan tidak memengaruhi penarikan aliran dan decoding audio jarak jauh. Untuk berhenti berlangganan aliran audio pengguna, panggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#c8249fb568gms" id="dd9dbbad0bkni">subscribeRemoteAudioStream</a>.
Kapan harus dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran.
Parameter
Nama | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna. |
mute | BOOL |
|
Nilai Kembali
0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.
muteAllRemoteAudioPlaying
Metode ini menghentikan atau melanjutkan pemutaran semua audio jarak jauh.
- (int)muteAllRemoteAudioPlaying:(BOOL)mute;Metode ini menghentikan atau melanjutkan semua aliran audio jarak jauh.
Metode ini hanya menghentikan pemutaran audio dan tidak memengaruhi penarikan aliran atau pendekodean.
Kapan memanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung dengan saluran.
Parameter
Nama | Tipe | Deskripsi |
mute | BOOL |
|
Nilai Kembali
Mengembalikan 0 jika panggilan metode berhasil. Nilai non-nol menunjukkan bahwa panggilan metode gagal.
startAudioCapture[1/2]
Memulai pengambilan audio.
- (void)startAudioCapture;Metode ini memulai pengambilan audio. Anda dapat memanggilnya sebelum bergabung ke rapat untuk memulai pengambilan audio lebih awal. Secara default, SDK secara otomatis mengelola perangkat pengambilan audio. Jika Anda menghentikan pengambilan audio dengan memanggil stopAudioCapture, Anda harus memanggil metode ini lagi untuk memulainya kembali.
Kapan harus dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke rapat.
Metode terkait
Antarmuka startAudioCapture[2/2] memungkinkan Anda menggunakan parameter untuk menentukan apakah perangkat pengambilan audio tetap diaktifkan setelah Anda meninggalkan rapat.
Callback terkait
Setelah Anda memanggil metode ini, setiap perubahan pada status pengambilan audio lokal dilaporkan melalui callback onLocalAudioStateChanged.
Pengembalian
Nilai kembali 0 menunjukkan pemanggilan berhasil. Nilai lainnya menunjukkan pemanggilan gagal.
startAudioCapture[2/2]
Memulai penangkapan audio.
- (void)startAudioCapture:(BOOL)keepAlive;Membisukan mikrofon akan menghentikan penangkapan audio.
Anda dapat memanggil metode ini untuk memulai penangkapan audio sebelum bergabung ke dalam rapat. Jika Anda tidak memanggil metode ini, SDK secara otomatis mengontrol perangkat penangkapan audio.
Kapan harus dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke dalam rapat.
Metode terkait
Dibandingkan dengan startAudioCapture[1/2], metode ini memungkinkan Anda menggunakan parameter keepAlive untuk mengontrol apakah perangkat penangkapan tetap diaktifkan setelah Anda meninggalkan rapat.
Callback terkait
Saat Anda memanggil metode ini, setiap perubahan status penangkapan audio lokal dilaporkan melalui callback onLocalAudioStateChanged.
Parameter
Parameter | Tipe | Deskripsi |
keepAlive | boolean | Status perangkat penangkapan setelah Anda meninggalkan rapat. Nilai yang valid:
|
Nilai kembali
Nilai kembali 0 menunjukkan bahwa metode berhasil dipanggil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.
stopAudioCapture
Menghentikan pengambilan audio.
- (void)stopAudioCapture;Anda dapat memanggil metode ini untuk menghentikan pengambilan perangkat audio yang dimulai dengan memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3103c368bexf8" id="ddef64f9b93zq">startAudioCapture</a>.
Callback terkait
Pemanggilan metode ini memicu callback onLocalAudioStateChanged untuk melaporkan perubahan status pengambilan audio lokal.
Nilai kembali
Nilai kembali 0 menunjukkan pemanggilan metode berhasil. Nilai bukan nol menunjukkan pemanggilan metode gagal.
enableSpeakerphone
Mengalihkan output audio ke earpiece atau speaker (hanya iOS).
- (int)enableSpeakerphone:(BOOL)enable;Metode ini mengalihkan perangkat pemutaran audio ke earpiece atau speaker setelah Anda bergabung ke saluran. Jika Anda tidak memanggil metode ini, rute audio default digunakan untuk pemutaran.
SDK memiliki prioritas perutean audio yang telah ditentukan sebelumnya dan secara otomatis mengalihkan rute audio berdasarkan status koneksi perangkat eksternal. Prioritasnya adalah sebagai berikut: Headset berkabel > Headset Bluetooth > Pengaturan pengguna > Pengaturan default. Oleh karena itu, memanggil metode ini tidak berpengaruh ketika perangkat eksternal terhubung. Untuk informasi selengkapnya tentang pengaturan perutean audio, lihat Pengaturan perutean audio.
Kapan harus dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran.
Metode terkait
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#83be8cc066qqq" id="f8de149ef8so0">setDefaultAudioRoutetoSpeakerphone</a> memodifikasi rute audio default dan menetapkan perangkat audio saat ini.
Parameter
Nama | Tipe | Deskripsi |
enable | BOOL |
|
Mengembalikan
0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.
isEnableSpeakerphone
Memeriksa apakah speakerphone diaktifkan. Metode ini hanya berlaku untuk iOS.
- (BOOL)isEnableSpeakerphone;Deskripsi Respons
Mengembalikan YES untuk mode speaker atau NO untuk mode earpiece.
enableAudioVolumeIndication
Mengatur frekuensi callback volume dan koefisien penghalusan.
- (int)enableAudioVolumeIndication:(NSInteger)interval smooth:(NSInteger)smooth reportVad:(NSInteger)reportVad;Metode ini memungkinkan SDK melaporkan secara berkala volume pengguna lokal yang sedang menerbitkan aliran dan volume pengguna jarak jauh dengan volume instan tertinggi.
Kapan harus dipanggil
Panggil metode ini sebelum atau setelah bergabung ke saluran.
Callback terkait
Setelah Anda berhasil memanggil metode ini, SDK memicu dua callback berikut pada interval yang ditentukan jika pengguna sedang menerbitkan aliran di saluran:
Callback onAudioVolumeCallback melaporkan volume audio setiap pembicara. Frekuensi callback ini ditentukan oleh parameter `interval`.
Saat aktivitas suara terdeteksi, callback onActiveSpeaker melaporkan UID pengguna aktif yang sedang berbicara.
Parameter
Nama | Tipe | Deskripsi |
interval | NSInteger | Interval waktu dalam milidetik. Nilai minimum adalah 10 ms. Rentang yang direkomendasikan adalah 300 ms hingga 500 ms. Jika Anda mengatur parameter ini ke 0 atau nilai negatif, indikasi volume dan deteksi pembicara aktif akan dinonaktifkan. |
smooth | NSInteger | Koefisien penghalusan. Nilainya berkisar antara 0 hingga 9. Nilai yang lebih besar memberikan tingkat penghalusan yang lebih tinggi. Nilai yang lebih kecil memberikan kinerja real-time yang lebih baik. Nilai yang direkomendasikan adalah 3. |
reportVad | NSInteger | Menentukan apakah deteksi pembicara diaktifkan. Nilai yang valid:
|
Nilai kembali
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan metode gagal.
enableEarBack
Mengaktifkan pemantauan in-ear.
- (int)enableEarBack:(BOOL)enable;Metode ini mengaktifkan atau menonaktifkan fitur pemantauan in-ear. Untuk hasil terbaik, gunakan fitur ini dengan headphone berkabel atau Bluetooth.
Kapan harus dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran.
Parameter
Nama | Tipe | Deskripsi |
enable | BOOL |
|
Mengembalikan
0 menunjukkan bahwa pemanggilan metode berhasil. Nilai selain 0 menunjukkan bahwa pemanggilan metode gagal.
setEarBackVolume
Mengatur volume pemantauan in-ear.
- (int)setEarBackVolume:(NSInteger)volume;Metode ini mengatur volume pemantauan in-ear. Pengaturan ini hanya berlaku setelah Anda mengaktifkan pemantauan in-ear dengan memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#bd665d0f894ux" id="b0fa866c9bcuq">enableEarBack</a>.
Kapan harus dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran.
Parameter
Nama | Tipe | Deskripsi |
volume | NSInteger | Nilainya berkisar dari 0 hingga 100. Nilai default adalah 100. |
Mengembalikan
0 menunjukkan bahwa pemanggilan metode berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan metode gagal.
startAudioPlayer
Memulai pemutaran audio.
- (void)startAudioPlayer;Anda dapat memanggil metode ini untuk memulai pemutaran audio lebih awal. Jika Anda tidak memanggil metode ini, SDK akan secara otomatis memulai pemutaran setelah berlangganan ke aliran audio.
stopAudioPlayer
Menghentikan pemutaran audio.
- (void)stopAudioPlayer;Anda dapat menggunakan metode ini untuk menghentikan pemutaran audio.
setPlayoutVolume
Mengatur volume pemutaran.
- (int)setPlayoutVolume:(NSInteger)volume;Parameters
Name | Type | Description |
volume | Volume | Volume pemutaran. Nilainya dapat berkisar dari 0 hingga 400. Nilai dari 0 hingga 100 merepresentasikan volume asli. Nilai dari 100 hingga 400 memperkuat volume. |
Return value
Mengembalikan 0 jika berhasil, atau nilai bukan nol jika gagal.
setRecordingVolume
Mengatur volume perekaman.
- (int)setRecordingVolume:(NSInteger)volume;Parameters
Name | Type | Description |
volume | NSInteger | Rentang nilai yang valid adalah 0 hingga 400. Nilai 100 merepresentasikan volume asli. Nilai yang lebih besar dari 100 akan memperkuat volume. |
Return value
Mengembalikan 0 jika berhasil, atau nilai bukan nol jika gagal.
playAudioFileTest
Memutar file audio.
- (int)playAudioFileTest:(NSString *_Nonnull)filePath;Panggil metode ini sebelum Anda bergabung ke saluran.
Parameters
Parameter | Type | Description |
filePath | NSString *_Nonnull | Jalur file audio yang akan diputar. |
Return value
Mengembalikan 0 jika berhasil, atau nilai bukan nol jika gagal.
stopAudioFileTest
Menghentikan pemutaran file audio.
- (int)stopAudioFileTest;Panggil metode ini sebelum memanggil JoinChannel.
Nilai kembalian
Mengembalikan 0 jika berhasil, atau nilai bukan nol jika gagal.
startAudioCaptureTest
Memulai pengujian perangkat tangkapan audio sebelum panggilan.
- (void)startAudioCaptureTest;Anda harus memanggil metode ini sebelum `joinchannel`. Metode ini gagal jika dipanggil setelah `joinchannel`.
stopAudioCaptureTest
Menghentikan pengujian pra-panggilan untuk perangkat tangkapan audio.
- (void)stopAudioCaptureTest;Anda hanya dapat memanggil metode ini sebelum memanggil joinchannel. Jika tidak, panggilan akan gagal.
setDefaultAudioRoutetoSpeakerphone
Menentukan apakah akan menggunakan speaker sebagai output audio default. Secara default, speaker digunakan.
- (int)setDefaultAudioRouteToSpeakerphone:(BOOL)defaultToSpeakerphone;Anda dapat memanggil antarmuka ini sebelum bergabung ke saluran untuk mengatur perangkat routing audio default ke earpiece atau speaker. Secara default, SDK mengarahkan audio ke speaker. Untuk mengubah konfigurasi default ini, Anda harus memanggil antarmuka ini sebelum bergabung ke saluran.
Prioritas routing audio telah ditentukan sebelumnya dalam SDK dan secara otomatis beralih berdasarkan status koneksi periferal saat ini. Prioritasnya adalah sebagai berikut: Wired headset > Bluetooth headset > User settings > Default settings. Oleh karena itu, jika tidak ada perangkat periferal yang terhubung dan Anda tidak memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#f7d0d8b64fzkz" id="30798b686b5qk">enableSpeakerphone</a>, pengaturan default akan diterapkan.
Untuk informasi selengkapnya, lihat Pengaturan routing audio.
Perangkat seluler biasanya memiliki dua perangkat routing audio: earpiece dan speaker.
Ketika audio diarahkan ke earpiece, volumenya rendah, dan suara hanya jelas jika perangkat didekatkan ke telinga. Hal ini memberikan privasi yang baik dan cocok untuk panggilan telepon.
Ketika audio diarahkan ke speaker, suaranya keras, sehingga Anda dapat mendengar dengan jelas tanpa menempelkan ponsel ke wajah. Hal ini memungkinkan fitur hands-free.
API Terkait
Antarmuka ini mengubah pengaturan routing audio default, sedangkan antarmuka <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#f7d0d8b64fzkz" id="6001aa98ebapw">enableSpeakerphone</a> mengatur perangkat routing saat ini.
Kapan Memanggil
Anda dapat memanggil antarmuka ini sebelum atau setelah bergabung ke saluran.
Deskripsi Metrik
Nama | Tipe | Deskripsi |
defaultToSpeakerphone | BOOL | Menentukan apakah audio diarahkan ke speaker. YES mengarahkan audio ke speaker. NO mengarahkan audio ke earpiece. |
Nilai Kembalian
0 menunjukkan keberhasilan. Nilai lain menunjukkan kegagalan.
setAudioEffectVoiceChangerMode
Mengatur mode efek pengubah suara.
- (int)setAudioEffectVoiceChangerMode:(AliRtcAudioEffectVoiceChangerMode)mode;Parameter
Nama | Tipe | Deskripsi |
mode | Mode efek pengubah suara. Nilai default adalah AliRtcSdk_AudioEffect_Voice_Changer_OFF. |
Nilai kembalian
0 menunjukkan bahwa pemanggilan berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan gagal.
setAudioEffectPitchValue
Mengatur pitch efek audio.
- (int)setAudioEffectPitchValue:(double)value;Parameters
Name | Type | Description |
value | double | Nilai berkisar dari 0,5 hingga 2,0. Nilai default adalah 1,0. Nilai 1,0 menunjukkan bahwa pitch tidak berubah. |
Return value
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan gagal.
setAudioEffectReverbMode
Mengatur mode efek suara reverb.
- (int)setAudioEffectReverbMode:(AliRtcAudioEffectReverbMode)mode;Parameters
Name | Type | Description |
mode | Mode efek suara. Nilai default adalah AliRtcAudioEffectReverb_Off. |
Return value
Mengembalikan nilai 0 jika pemanggilan metode berhasil, dan nilai bukan nol jika gagal.
setAudioEffectReverbParamType
Mengatur jenis dan parameter efek suara reverb.
- (int)setAudioEffectReverbParamType:(AliRtcAudioEffectReverbParamType)type value:(float)value;Parameters
Name | Type | Description |
type | Mode reverb untuk efek suara. | |
value | float | Nilai parameter. |
Response Description
Nilai kembali 0 menunjukkan pemanggilan metode berhasil. Nilai lainnya menunjukkan pemanggilan metode gagal.
addExternalAudioStream
Menambahkan aliran audio eksternal.
- (int)addExternalAudioStream:(AliRtcExternalAudioStreamConfig *_Nonnull)config;Metode ini menambahkan aliran audio eksternal. Ikuti langkah-langkah berikut:
Panggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#d71bbfd2f242b" id="c3103216e9eu35">addExternalAudioStream</a>untuk menambahkan aliran audio eksternal dan mendapatkan ID aliran audio eksternal.Panggil pushExternalAudioStream untuk mendorong data audio ke aliran audio yang telah dibuat.
Saat panggilan berakhir, Anda harus memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#282d70095duaw" id="16f621608d94x">removeExternalAudioStream</a>untuk menghapus aliran audio eksternal.
Untuk informasi selengkapnya tentang memublikasikan audio hasil tangkapan kustom dalam saluran, lihat Custom audio capture.
Parameters
Name | Type | Description |
config | AliRtcExternalAudioStreamConfig | Konfigurasi aliran audio eksternal. |
Returns
Nilai kembali lebih besar dari 0 menunjukkan panggilan berhasil. Nilai ini merupakan ID aliran audio eksternal. Nilai lainnya menunjukkan bahwa panggilan gagal.
pushExternalAudioStream
Menyisipkan data aliran audio eksternal.
- (int)pushExternalAudioStream:(int)streamId rawData:(AliRtcAudioFrame * _Nonnull)audioFrame;Untuk menyisipkan data ke aliran audio tertentu, ikuti langkah-langkah berikut:
Anda dapat memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#d71bbfd2f242b" id="0a353f7272shu">addExternalAudioStream</a>untuk menambahkan aliran audio eksternal dan mendapatkan ID-nya.Anda dapat memanggil metode ini untuk menyisipkan data audio ke aliran audio yang telah dibuat.
Saat panggilan berakhir, panggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#282d70095duaw" id="a9ebc8d599dz4">removeExternalAudioStream</a>untuk menghapus aliran audio eksternal tersebut.
Untuk petunjuk tentang cara memublikasikan audio hasil tangkapan kustom dalam saluran, lihat Custom audio capture.
Parameters
Nama | Tipe | Deskripsi |
streamId | int | ID dari aliran audio eksternal. |
audioFrame | AliRtcAudioFrame | Data audio. |
Returns
Nilai kembali 0 menunjukkan pemanggilan metode berhasil. Nilai lainnya menunjukkan pemanggilan gagal.
setExternalAudioStream:publishVolume
Mengatur volume publikasi aliran audio eksternal.
- (int)setExternalAudioStream:(int)streamId
publishVolume:(int)publishVolume;Parameter
Nama | Tipe | Deskripsi |
streamId | int | ID dari aliran audio eksternal. |
publishVolume | int | Volume publikasi. |
Nilai kembali
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.
getExternalAudioStreamPublishVolume
Mengambil volume publikasi dari aliran audio eksternal.
- (int)getExternalAudioStreamPublishVolume:(int)streamId;Parameters
Name | Type | Description |
streamId | int | ID dari aliran audio eksternal. |
Return value
Volume publikasi, yang berkisar antara 0 hingga 100. Nilai kurang dari 0 menunjukkan bahwa panggilan gagal.
setExternalAudioStream:playoutVolume
Mengatur volume pemutaran aliran audio eksternal.
- (int)setExternalAudioStream:(int)streamId
playoutVolume:(int)playoutVolume;Parameters
Name | Type | Description |
streamId | int | ID dari aliran audio eksternal. |
playoutVolume | int | Volume pemutaran. |
Returns
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.
getExternalAudioStreamPlayoutVolume
Mengambil volume pemutaran aliran audio eksternal.
- (int)getExternalAudioStreamPlayoutVolume:(int)streamId;Parameters
Name | Type | Description |
streamId | int | ID dari aliran audio eksternal. |
Returns
Volume pemutaran. Nilainya berkisar antara 0 hingga 100. Nilai kurang dari 0 menunjukkan bahwa panggilan gagal.
removeExternalAudioStream
Menghapus aliran audio eksternal.
- (int)removeExternalAudioStream:(int)streamId;Metode ini menghapus aliran audio eksternal untuk ID aliran tertentu. Metode ini merupakan pasangan dari metode addExternalAudioStream.
Kapan harus dipanggil
Untuk menggunakan fitur input audio kustom, panggil metode addExternalAudioStream untuk menambahkan aliran audio dan mendapatkan ID aliran audio eksternal. Kemudian, panggil metode pushExternalAudioStream untuk mendorong data audio Anda ke SDK. Untuk menghentikan input audio kustom, panggil metode ini untuk menghapus aliran audio eksternal dan melepaskan sumber dayanya.
Parameter
Nama | Tipe | Deskripsi |
streamId | int | ID dari aliran audio eksternal. |
Nilai kembalian
Mengembalikan 0 jika berhasil. Nilai lain menunjukkan kegagalan.
getAudioFileInfo
Mengambil informasi mengenai berkas audio.
- (int)getAudioFileInfo:(NSString *_Nonnull)filePath;Ini adalah metode asinkron. Informasi berkas audio dikembalikan dalam callback {@link onAudioFileInfo:errorCode:}.
Parameters
Name | Type | Description |
filePath | NSString * | Jalur menuju berkas audio. |
startAudioAccompanyWithFile
Memulai pencampuran iringan audio.
- (int)startAudioAccompanyWithFile:(NSString *_Nonnull)filePath config:(AliRtcAudioAccompanyConfig *_Nonnull)config;Ini adalah panggilan asinkron. Anda dapat menggunakan Pendengar {@link onAudioAccompanyStateChanged:errorCode:} untuk memantau status pemutaran.
Parameters
Name | Type | Description |
filePath | NSString * | Jalur file. |
config | Konfigurasi iringan audio. |
Return value
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai lain menunjukkan bahwa panggilan gagal.
stopAudioAccompany
Menghentikan pencampuran audio iringan.
- (int)stopAudioAccompany;Nilai kembalian
Mengembalikan 0 jika panggilan berhasil, atau nilai lain jika panggilan gagal.
setAudioAccompanyVolume
Mengatur volume audio iringan.
- (int)setAudioAccompanyVolume:(NSInteger)volume;Metode ini mengatur volume untuk pemutaran lokal maupun pengambilan aliran.
Parameters
Name | Type | Description |
volume | NSInteger | Volume audio iringan. Nilainya berkisar dari 0 hingga 100. |
Return value
Mengembalikan 0 jika berhasil. Kode kesalahan dikembalikan jika gagal.
setAudioAccompanyPublishVolume
Mengatur volume iringan audio untuk pengambilan aliran.
- (int)setAudioAccompanyPublishVolume:(NSInteger)volume;Pengaturan ini mengontrol volume iringan audio dalam aliran yang dipublikasikan.
Parameters
Name | Type | Description |
volume | NSInteger | Volume iringan audio. Nilainya berkisar dari 0 hingga 100. |
Return value
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
getAudioAccompanyPublishVolume
Mengambil volume iringan untuk pengambilan aliran.
- (int)getAudioAccompanyPublishVolume;Return value
Nilai dari 0 hingga 100 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
setAudioAccompanyPlayoutVolume
Mengatur volume pemutaran lokal untuk iringan audio.
- (int)setAudioAccompanyPlayoutVolume:(NSInteger)volume;Parameters
Name | Type | Description |
volume | NSInteger | Volume iringan audio. Nilainya berkisar dari 0 hingga 100. |
Return value
Mengembalikan 0 jika berhasil. Nilai lainnya menunjukkan kegagalan.
getAudioAccompanyPlayoutVolume
Mengambil volume pemutaran lokal dari iringan audio.
- (int)getAudioAccompanyPlayoutVolume;Nilai kembali
Nilai kembali dari 0 hingga 100 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
pauseAudioAccompany
Menghentikan sementara iringan audio.
- (int)pauseAudioAccompany;Return value
Mengembalikan nilai 0 jika berhasil dan nilai bukan nol jika gagal.
resumeAudioAccompany
Menjalankan kembali pencampuran iringan audio.
- (int)resumeAudioAccompany;Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan, dan nilai bukan nol menunjukkan kegagalan.
getAudioAccompanyDuration
Mengambil durasi file iringan audio dalam milidetik.
- (int)getAudioAccompanyDuration;Nilai kembalian
Pemanggilan yang berhasil mengembalikan durasi file iringan audio dalam milidetik, yaitu nilai 0 atau lebih besar. Pemanggilan yang gagal mengembalikan nilai <0.
getAudioAccompanyCurrentPosition
Mengambil progres pemutaran file iringan dalam milidetik.
- (int)getAudioAccompanyCurrentPosition;Nilai kembalian
Progres pemutaran file iringan. Nilai kurang dari 0 dikembalikan jika operasi gagal.
setAudioAccompanyPosition
Mengatur posisi pemutaran file iringan.
- (int)setAudioAccompanyPosition:(int)pos;Parameters
Name | Type | Description |
pos | int | Posisi pemutaran, dalam milidetik (ms). |
Return value
Mengembalikan 0 jika berhasil. Nilai lainnya menunjukkan kegagalan.
preloadAudioEffectWithSoundId
Memuat sebelumnya file efek suara.
- (int)preloadAudioEffectWithSoundId:(NSInteger)soundId filePath:(NSString *_Nonnull)filePath;Parameter
Nama | Tipe | Deskripsi |
soundId | NSInteger | ID yang Anda tetapkan untuk file efek suara. |
filePath | NSString *_Nonnull | Jalur file efek suara. |
Nilai kembalian
0 menunjukkan bahwa pemanggilan metode berhasil. Nilai selain 0 menunjukkan bahwa pemanggilan metode gagal.
unloadAudioEffectWithSoundId
Menghapus pemuatan berkas efek suara yang telah dimuat sebelumnya.
- (int)unloadAudioEffectWithSoundId:(NSInteger)soundId;Parameter
Nama | Tipe | Deskripsi |
soundId | NSInteger | ID yang ditetapkan pengguna untuk berkas efek suara. |
Deskripsi Respons
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
playAudioEffectWithSoundId
Memulai pemutaran efek suara.
- (int)playAudioEffectWithSoundId:(NSInteger)soundId filePath:(NSString *_Nonnull)filePath cycles:(NSInteger)cycles publish:(BOOL)publish;Parameter
Nama | Tipe | Deskripsi |
soundId | NSInteger | ID yang Anda tetapkan untuk berkas efek suara. |
filePath | NSString *_Nonnull | Jalur berkas efek suara. |
cycles | NSInteger | Jumlah putaran. Nilainya dapat berupa -1 atau bilangan bulat positif. |
publish | BOOL | Apakah akan memublikasikan efek suara tersebut. |
Nilai kembalian
Nilai 0 menunjukkan pemanggilan metode berhasil. Nilai lainnya menunjukkan kegagalan.
stopAudioEffectWithSoundId
Menghentikan pemutaran efek suara.
- (int)stopAudioEffectWithSoundId:(NSInteger)soundId;Parameters
Name | Type | Description |
soundId | NSInteger | ID yang diberikan ke file efek suara. |
Return value
Mengembalikan 0 jika pemanggilan metode berhasil, atau nilai bukan nol jika gagal.
stopAllAudioEffects
Menghentikan pemutaran semua efek suara.
- (int)stopAllAudioEffects;Nilai kembali
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.
pauseAudioEffectWithSoundId
Menghentikan sementara efek suara.
- (int)pauseAudioEffectWithSoundId:(NSInteger)soundId;Parameter
Nama | Tipe | Deskripsi |
soundId | NSInteger | ID yang diberikan ke file efek suara. |
Nilai kembali
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.
pauseAllAudioEffects
Menghentikan sementara semua efek suara.
- (int)pauseAllAudioEffects;Returns
0 menunjukkan bahwa pemanggilan metode berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan metode gagal.
resumeAudioEffectWithSoundId
Menjalankan kembali pemutaran efek suara.
- (int)resumeAudioEffectWithSoundId:(NSInteger)soundId;Parameters
Name | Type | Description |
soundId | NSInteger | ID yang diberikan ke file efek suara. |
Return value
Mengembalikan 0 jika pemanggilan metode berhasil, atau nilai bukan nol jika pemanggilan gagal.
resumeAllAudioEffects
Menjalankan kembali pemutaran semua efek suara.
- (int)resumeAllAudioEffects;Returns
0 menunjukkan bahwa pemanggilan metode berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan metode gagal.
setAudioEffectPublishVolumeWithSoundId
Mengatur volume efek suara tertentu untuk pengambilan aliran.
- (int)setAudioEffectPublishVolumeWithSoundId:(NSInteger)soundId volume:(NSInteger)volume;Parameters
Name | Type | Description |
soundId | NSInteger | ID berkas efek suara. |
volume | NSInteger | Volume efek suara. Nilainya berkisar dari 0 hingga 100. Nilai default adalah 50. |
Return value
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.
getAudioEffectPublishVolumeWithSoundId
Mengambil volume efek suara untuk pengambilan aliran.
- (int)getAudioEffectPublishVolumeWithSoundId:(NSInteger)soundId;Parameters
Name | Type | Description |
soundId | NSInteger | ID yang Anda tetapkan untuk berkas efek suara. |
Nilai kembali
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.
setAllAudioEffectsPublishVolume
Mengatur volume pencampuran semua efek suara untuk aliran yang dipublikasikan.
- (int)setAllAudioEffectsPublishVolume:(NSInteger)volume;Parameters
Name | Type | Description |
volume | NSInteger | Volume pencampuran. Nilainya berkisar dari 0 hingga 100. Nilai default adalah 50. |
Returns
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai selain 0 menunjukkan bahwa pemanggilan metode gagal.
setAudioEffectPlayoutVolumeWithSoundId
Mengatur volume pemutaran lokal dari efek suara.
- (int)setAudioEffectPlayoutVolumeWithSoundId:(NSInteger)soundId volume:(NSInteger)volume;Parameter
Nama | Tipe | Deskripsi |
soundId | NSInteger | ID yang Anda tetapkan untuk file efek suara. |
volume | NSInteger | Volume pencampuran. Nilainya berkisar antara 0 hingga 100. Nilai default adalah 50. |
Nilai kembalian
Mengembalikan 0 jika berhasil. Nilai bukan nol menunjukkan kegagalan.
getAudioEffectPlayoutVolumeWithSoundId
Mengambil volume pemutaran lokal dari efek suara.
- (int)getAudioEffectPlayoutVolumeWithSoundId:(NSInteger)soundId;Parameters
Name | Type | Description |
soundId | NSInteger | ID yang Anda tetapkan untuk file efek suara. |
Returns
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan metode gagal.
setAllAudioEffectsPlayoutVolume
Mengatur volume pemutaran lokal untuk semua efek suara.
- (int)setAllAudioEffectsPlayoutVolume:(NSInteger)volume;Parameters
Name | Type | Description |
volume | NSInteger | Volume pemutaran. Nilainya berkisar dari 0 hingga 100. Nilai default adalah 50. |
Return value
Nilai 0 menunjukkan pemanggilan metode berhasil. Nilai bukan nol menunjukkan pemanggilan gagal.
startRecord
Memulai perekaman file media.
- (BOOL)startRecord:(AliRtcRecordType)recordType recordFormat:(AliRtcRecordFormat)recordFormat filePath:(NSString*)filePath audioConfig:(AliRtcRecordAudioConfig*)audioConfig videoConfig:(AliRtcRecordVideoConfig*)videoConfig;Parameter
Parameter | Tipe | Deskripsi |
recordType | Tipe catatan. | |
recordFormat | Format catatan. | |
filePath | NSString * | Nama file dan jalur untuk rekaman. |
audioConfig | Konfigurasi audio. | |
videoConfig | Konfigurasi video. |
Nilai kembali
Nilai kembali TRUE menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
Saat merekam aliran video, panggil metode ini setelah aliran berhasil dipublikasikan, yang ditandai oleh callback
onVideoPublishStateChanged. Metode ini merekam aliran video yang telah dikodekan secara lokal dan menyimpannya ke file lokal.Saat Anda merekam aliran audio, file hasil berisi campuran dari aliran audio lokal dan semua aliran audio jarak jauh.
stopRecord
Menghentikan perekaman file media.
- (void)stopRecord Parameters
Tidak ada.
setLocalViewConfig
Mengatur jendela rendering dan parameter untuk pratinjau lokal.
- (int)setLocalViewConfig:(AliVideoCanvas *_Nullable)viewConfig forTrack:(AliRtcVideoTrack)track;Metode ini mengatur tampilan untuk pratinjau video lokal. Metode ini mengikat jendela tampilan (view) ke aliran video lokal dan mengonfigurasi parameter, seperti mode rendering, mode cermin, dan sudut rotasi. Pengaturan ini hanya memengaruhi pratinjau lokal dan tidak memengaruhi aliran video yang dipublikasikan. Untuk mengatur tampilan pengguna jarak jauh, panggil setRemoteViewConfig.
Jika parameter view dalam AliVideoCanvas bernilai null, rendering akan berhenti.
Untuk mengubah parameter renderMode dari AliVideoCanvas selama pemutaran, ubah hanya parameter renderMode. Jangan ubah parameter lainnya.
Untuk mengubah parameter mirrorMode dari AliVideoCanvas selama pemutaran, ubah hanya parameter mirrorMode. Jangan ubah parameter lainnya.
Anda harus secara eksplisit memanggil startPreview() untuk memulai pratinjau lokal.
Kapan metode ini dipanggil
Metode ini dapat dipanggil sebelum atau setelah bergabung ke saluran.
Parameter
Nama | Tipe | Deskripsi |
viewConfig | *_Nullable | Parameter rendering, yang mencakup jendela rendering dan mode rendering. |
track | Jenis track video. |
Nilai kembali
Nilai kembali 0 menunjukkan bahwa metode berhasil dipanggil. Nilai bukan nol menunjukkan bahwa panggilan gagal.
setCameraCapturerConfiguration
Mengatur preferensi pengambilan kamera.
- (int)setCameraCapturerConfiguration:(AliRtcCameraCapturerConfiguration* _Nonnull)config;Gunakan metode ini untuk mengonfigurasi preferensi pengambilan kamera, seperti arah kamera dan laju frame pengambilan.
Kapan harus dipanggil
Panggil metode ini sebelum Anda membuka kamera. Misalnya, panggil metode ini sebelum operasi berikut:
startPreview
joinChannel
Parameter
Nama | Tipe | Deskripsi |
config | AliRtcCameraCapturerConfiguration * _Nonnull | Preferensi pengambilan kamera. Nilai default-nya adalah sebagai berikut:
Nilai -1 menunjukkan bahwa pengaturan SDK default digunakan. |
Nilai kembali
Nilai kembali 0 menunjukkan bahwa metode berhasil dipanggil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.
enableLocalVideo
Anda dapat menonaktifkan atau mengaktifkan kembali pengambilan video lokal.
- (int)enableLocalVideo:(BOOL)enable;Metode ini mengaktifkan atau menonaktifkan pengambilan video lokal. Saat Anda menonaktifkan pengambilan video lokal, SDK berhenti mengirim data video untuk pratinjau lokal dan pengambilan aliran. Hal ini tidak memengaruhi penerimaan video jarak jauh. Jika Anda memanggil metode ini untuk menonaktifkan pengambilan video lokal, baik pratinjau lokal maupun pengambilan aliran jarak jauh akan membekukan pada bingkai terakhir.
Pengambilan video lokal diaktifkan secara default di SDK.
Kapan harus dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran.
Callback terkait
Setelah metode ini berhasil dipanggil, pengguna jarak jauh diberi tahu melalui callback onUserVideoEnabled.
Parameter
Nama | Tipe | Deskripsi |
enable | BOOL | YES: Mengaktifkan pengambilan video lokal. NO: Menonaktifkan pengambilan video lokal. Nilai default adalah YES. |
Nilai kembalian
Mengembalikan 0 jika pemanggilan metode berhasil. Nilai bukan nol menunjukkan bahwa pemanggilan metode gagal.
muteLocalCamera
Menghentikan atau melanjutkan pengiriman aliran video lokal.
- (int)muteLocalCamera:(BOOL)mute forTrack:(AliRtcVideoTrack)track;Anda dapat memanggil metode ini selama pengambilan aliran untuk mengirim frame video hitam. Pratinjau lokal tidak terpengaruh. Modul penangkapan, pengodean, dan pengiriman terus berjalan, tetapi video yang dikirim hanya terdiri dari frame hitam.
Metode ini hanya mengontrol apakah frame hitam dikirim dalam aliran video tertentu. Metode ini tidak menghentikan pengambilan video atau pengiriman data. Untuk mematikan pengambilan video, gunakan metode enableLocalVideo. Untuk menghentikan pengiriman data video, gunakan metode publishLocalVideoStream.
Parameter
Nama | Tipe | Deskripsi |
mute | BOOL | YES mengirimkan frame hitam. NO melanjutkan pengiriman video normal. Nilai default-nya adalah NO. |
track | Jenis Track video yang ingin Anda ubah status penerbitannya. |
Antarmuka terkait
Nilai kembali 0 mengindikasikan bahwa panggilan metode berhasil. Nilai lainnya mengindikasikan bahwa panggilan tersebut gagal.
setRemoteViewConfig
Menetapkan jendela rendering dan parameter rendering untuk aliran video jarak jauh.
- (int)setRemoteViewConfig:(AliVideoCanvas *_Nullable)canvas uid:(NSString *_Nonnull)uid forTrack:(AliRtcVideoTrack)track;Metode ini menyambungkan tampilan aliran video pengguna jarak jauh dan menetapkan mode rendering, mode cermin, serta sudut rotasinya. Pengaturan ini hanya memengaruhi tampilan video untuk pengguna lokal. Untuk mengatur tampilan pratinjau lokal, panggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#fea843803078q" id="b6f22fe87a2es">setLocalViewConfig</a>.
Jika parameter view dari AliVideoCanvas bernilai null, rendering berhenti.
Untuk mengatur ulang parameter renderMode dari AliVideoCanvas selama pemutaran, ubah hanya parameter tersebut. Semua parameter lain harus tetap tidak berubah.
Untuk mengatur ulang parameter mirrorMode dari AliVideoCanvas selama pemutaran, ubah hanya parameter tersebut. Semua parameter lain harus tetap tidak berubah.
Kapan dipanggil
Anda dapat memanggil metode ini saat menerima callback onRemoteTrackAvailableNotify, yang dipicu ketika aliran video dari pengguna jarak jauh tersedia.
Parameter
Nama | Tipe | Deskripsi |
canvas | *_Nullable | Parameter rendering, yang mencakup jendela rendering dan mode rendering. |
uid | NSString *_Nonnull | ID pengguna. |
track | Jenis Track video yang akan diatur. |
Nilai kembali
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.
isCameraOn
Memeriksa apakah kamera menyala.
- (BOOL)isCameraOn;Returns
Mengembalikan YES jika kamera menyala, atau NO jika kamera mati.
setVideoEncoderConfiguration
Mengatur properti pengkodean video.
- (void)setVideoEncoderConfiguration:(AliRtcVideoEncoderConfiguration* _Nonnull)config;Anda dapat menggunakan metode ini untuk mengatur parameter video untuk aliran video, seperti resolusi, laju frame, bitrate, dan orientasi. Metode ini berlaku untuk semua skenario video.
Semua parameter memiliki rentang nilai yang valid. Jika Anda mengatur parameter di luar rentang yang valid, kit pengembangan perangkat lunak (SDK) akan menyesuaikannya secara otomatis.
Kapan harus dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran. Untuk mengatur properti pengkodean aliran kamera hanya sekali setiap sesi, panggil metode ini sebelum Anda bergabung ke saluran.
Batasan
Baik parameter mirrorMode maupun metode setVideoMirrorMode dapat mengatur mode cermin untuk aliran yang dimasukkan. Anda hanya boleh menggunakan salah satu dari metode tersebut. Jika Anda menggunakan keduanya, efek cermin mungkin bertentangan, yang dapat menyebabkan pengaturan cermin gagal atau berperilaku tidak sesuai harapan.
Parameter
Nama | Tipe | Deskripsi |
config | AliRtcVideoEncoderConfiguration * _Nonnull | Properti pengkodean yang telah ditentukan. Nilai default-nya adalah:
Nilai -1 untuk parameter-parameter di atas menunjukkan bahwa pengaturan default SDK digunakan. |
setVideoDecoderConfiguration
Menetapkan konfigurasi decoding video.
- (void)setVideoDecoderConfiguration:(AliRtcVideoDecoderConfiguration* _Nonnull)config;Metode ini menetapkan parameter decoding video untuk aliran kamera.
Kapan harus dipanggil
Panggil metode ini sebelum bergabung ke saluran.
Parameter
Nama | Tipe | Deskripsi |
config | AliRtcVideoDecoderConfiguration * _Nonnull | Properti decoding yang telah ditentukan. Nilai default-nya adalah:
Nilai -1 menunjukkan bahwa pengaturan SDK default digunakan. |
switchCamera
Beralih antara kamera depan dan kamera belakang. Kamera depan digunakan secara default.
- (int)switchCamera;Metode ini memungkinkan Anda beralih secara dinamis antara kamera aktif saat aplikasi sedang berjalan. Anda tidak perlu memulai ulang aliran video atau mengonfigurasi ulang sumber video.
Kapan harus dipanggil
Anda dapat memanggil metode ini setelah kamera berhasil dijalankan.
Batasan
Metode ini hanya tersedia di Android dan iOS.
Nilai kembali
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.
getCurrentCameraDirection
Mengambil arah kamera saat ini. Kamera depan digunakan secara default. Metode ini hanya tersedia di iOS.
- (AliRtcCameraDirection)getCurrentCameraDirection;Return value
Mengembalikan nilai enumerasi untuk arah kamera.
startPreview
Memulai pratinjau lokal dan secara otomatis mengaktifkan kamera.
- (int)startPreview;Anda dapat memanggil metode ini untuk memulai pratinjau video lokal. Untuk menghentikan pratinjau, panggil metode stopPreview.
Memanggil leaveChannel untuk meninggalkan saluran akan secara otomatis menghentikan pratinjau lokal. Jika tidak ada aliran kamera yang sedang diambil, kamera akan secara otomatis mati.
Kapan harus dipanggil
Sebelum memanggil metode ini, Anda harus memanggil setLocalViewConfig untuk menetapkan tampilan bagi pratinjau lokal. Jika tidak, pratinjau tidak tersedia, tetapi pengambilan aliran tidak terpengaruh.
Anda dapat memanggil metode ini untuk memulai pratinjau sebelum memanggil joinChannel. Hal ini secara otomatis akan mengaktifkan kamera.
Nilai kembalian
0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.
stopPreview
Menghentikan pratinjau lokal.
- (int)stopPreview;Metode ini menghentikan pratinjau video lokal dan mematikan kamera. Setelah pratinjau dihentikan, video lokal membekukan pada bingkai terakhir. Hal ini tidak memengaruhi pengambilan aliran.
Meninggalkan saluran dengan memanggil leaveChannel secara otomatis menghentikan pratinjau lokal. Jika tidak ada aliran kamera yang sedang diambil, kamera juga akan dimatikan secara otomatis.
Kapan harus dipanggil
Anda dapat memanggil metode ini untuk menghentikan pratinjau lokal setelah Anda memulainya.
Nilai kembali
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.
setCameraZoom
Mengatur zoom kamera.
- (int)setCameraZoom:(float)zoom;Parameters
Name | Type | Description |
zoom | float | Tingkat zoom. Nilainya berkisar dari 1 hingga nilai zoom maksimum yang didukung oleh Kamera. |
Return value
Mengembalikan 0 jika berhasil. Nilai lain menunjukkan kegagalan.
GetCameraMaxZoomFactor
Mengembalikan faktor zoom maksimum dari Kamera.
- (float)GetCameraMaxZoomFactor;Nilai kembalian
Faktor zoom maksimum dari Kamera.
GetCurrentZoom
Mengambil rasio zoom saat ini dari kamera.
- (float)GetCurrentZoom;Nilai yang dikembalikan
Rasio zoom saat ini dari kamera.
SetExposure
Mengatur eksposur kamera.
- (int)SetExposure:(float)exposure;Parameters
Name | Type | Description |
exposure | float | Nilai eksposur. |
Return value
Mengembalikan 0 jika berhasil. Nilai bukan nol menunjukkan kegagalan.
GetCurrentExposure
Mengambil eksposur kamera.
- (float)GetCurrentExposure;Nilai yang dikembalikan
Eksposur kamera.
GetMinExposure
Mengambil eksposur kamera minimum.
- (float)GetMinExposure;Nilai kembalian
Eksposur kamera minimum.
GetMaxExposure
Mengambil eksposur maksimum kamera.
- (float)GetMaxExposure;Nilai kembalian
Eksposur maksimum kamera.
setCameraFlash
Mengaktifkan atau menonaktifkan lampu kilat kamera.
- (int)setCameraFlash:(BOOL)flash;Parameters
Name | Type | Description |
flash | BOOL | Menentukan apakah lampu kilat akan diaktifkan. |
Return value
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
isCameraFocusPointSupported
Memeriksa apakah kamera mendukung fokus manual.
- (BOOL)isCameraFocusPointSupported;Nilai kembalian
Mengembalikan TRUE jika fokus manual didukung, atau FALSE jika tidak.
isCameraExposurePointSupported
Memeriksa apakah kamera mendukung pengaturan titik eksposur.
- (BOOL)isCameraExposurePointSupported;Nilai yang dikembalikan
TRUE: Pengaturan titik eksposur didukung. FALSE: Pengaturan titik eksposur tidak didukung.
setCameraFocusPoint
Mengatur titik fokus manual untuk Kamera.
- (int)setCameraFocusPoint:(CGPoint)point;Parameters
Name | Type | Description |
point | CGPoint | Koordinat titik fokus. Titik fokus ini tetap disetel. |
Return value
Nilai kembali 0 menunjukkan bahwa operasi berhasil. Nilai lainnya menunjukkan bahwa operasi gagal.
setCameraExposurePoint
Mengatur titik eksposur kamera.
- (int)setCameraExposurePoint:(CGPoint)point;Parameters
Name | Type | Description |
point | CGPoint | Koordinat titik eksposur. Pengaturan ini bersifat persisten. |
Return value
Mengembalikan 0 jika operasi berhasil. Nilai bukan nol dikembalikan jika operasi gagal.
isCameraAutoFocusFaceModeSupported
Memeriksa apakah kamera mendukung autofokus berbasis wajah.
- (BOOL)isCameraAutoFocusFaceModeSupported;Nilai kembalian
TRUE menunjukkan bahwa autofokus berbasis wajah didukung. FALSE menunjukkan bahwa fitur tersebut tidak didukung.
setCameraAutoFocusFaceModeEnabled
Mengaktifkan atau menonaktifkan autofokus wajah untuk kamera.
- (BOOL)setCameraAutoFocusFaceModeEnabled:(BOOL)enable;Parameters
Name | Type | Description |
point | CGPoint | Koordinat titik fokus. Kamera mempertahankan fokus pada titik ini. |
Return value
Mengembalikan TRUE jika berhasil atau FALSE jika gagal.
setVideoMirrorMode
Mengatur mode cermin video.
- (int)setVideoMirrorMode:(AliRtcVideoPipelineMirrorMode)mirrorMode;Metode ini mengatur mode cermin untuk pratinjau video lokal dan aliran video yang dipublikasikan.
Metode ini memiliki prioritas lebih tinggi daripada setLocalViewConfig dan setVideoEncoderConfiguration. Kami menyarankan Anda menggunakan metode ini untuk mengatur mode cermin video.
Kapan harus dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran. SDK mencatat pengaturan tersebut dan menerapkan mode cermin saat pratinjau video dan pengkodean (pengambilan aliran) aktif.
Batasan
Fungsionalitas metode ini tumpang tindih dengan parameter mirrorMode dalam setLocalViewConfig dan setVideoEncoderConfiguration. Untuk menghindari perilaku yang tidak diinginkan, kami menyarankan Anda hanya menggunakan metode ini untuk mengatur mode cermin.
Parameter
Nama | Tipe | Deskripsi |
mirrorMode | Mode cermin. |
SetCapturePipelineScaleMode
Mengatur mode penskalaan untuk pipeline video.
-(void)setCapturePipelineScaleMode:(AliRtcCapturePipelineScaleMode)mode;Metode ini menentukan apakah data video akan diskalakan segera setelah diambil atau saat encoding. Misalnya, jika resolusi pengambilan berbeda dari resolusi encoding, Anda dapat menggunakan metode ini untuk memastikan bahwa data pratinjau sesuai dengan data aliran yang dipublikasikan.
Secara default, video diskalakan segera setelah diambil. Panggil metode ini sebelum Anda mengaktifkan Kamera, dan sebelum memanggil startPreview atau joinChannel.
Kapan memanggil metode ini
Panggil metode ini sebelum Anda mengaktifkan kamera, misalnya, sebelum Anda memanggil startPreview atau joinChannel.
Parameter
Name | Type | Description |
mode | Jenis penskalaan. |
Nilai kembali
Nilai kembali 0 mengindikasikan keberhasilan. Nilai lainnya mengindikasikan kegagalan.
registerVideoFrameWithObserver
Mendaftarkan sebuah objek untuk mengeluarkan data video.
- (void)registerVideoFrameWithObserver:(id<AliRtcVideoFrameDelegate> _Nullable)observer;Panggil metode ini untuk mendaftarkan sebuah objek guna mengeluarkan data video. Untuk membatalkan pendaftaran objek tersebut, panggil metode unregisterVideoSampleWithObserver.
Kapan harus dipanggil
Untuk mendapatkan data video mentah, seperti data dalam format YUV atau RGBA, panggil metode ini untuk mendaftarkan observer data video. Hal ini memungkinkan Anda memperoleh data video pada berbagai tahap.
Callback terkait
Setelah Anda mendaftarkan observer data video, kit pengembangan perangkat lunak (SDK) memicu callback yang telah Anda implementasikan setiap kali sebuah frame video ditangkap. Implementasikan callback berikut sesuai kebutuhan:
onCaptureVideoSample: Callback untuk data video yang ditangkap secara lokal.
onRemoteVideoSample: Callback untuk data video jarak jauh.
onPreEncodeVideoSample: Callback untuk data video lokal sebelum pengkodean.
Parameter
Nama | Tipe | Deskripsi |
observer | Objek keluaran data video. |
unregisterVideoSampleWithObserver
Membatalkan pendaftaran pengamat bingkai video.
- (void)unregisterVideoSampleWithObserver:(id<AliRtcVideoFrameDelegate> _Nullable)observer;Antarmuka ini membatalkan pendaftaran objek untuk mengekspor data video dan merupakan pasangan dari antarmuka <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#9a3437ab16j1w" id="f524bad30a6ys">registerVideoSampleObserver</a>.
Parameters
Name | Type | Description |
observer | Objek keluaran data video. |
registerLocalVideoTextureObserver
Anda dapat mendaftarkan pengamat data tekstur OpenGL untuk aliran video kamera lokal.
- (void)registerLocalVideoTextureObserver:(id<AliRtcTextureDelegate> _Nullable)observer;Untuk memperoleh data video mentah, panggil antarmuka registerVideoSampleObserver untuk mendaftarkan callback yang sesuai. Untuk memperoleh data tekstur internal, panggil antarmuka yang sesuai untuk mendaftarkan pengamat tekstur. Untuk membatalkan pendaftaran pengamat, panggil antarmuka unRegisterLocalVideoTextureObserver.
API ini hanya berfungsi dengan aliran video kamera lokal.
Setelah Anda mendaftarkan pengamat data tekstur OpenGL untuk aliran video kamera lokal, SDK memicu callback onTextureCreate, onTextureUpdate, dan onTextureDestroy saat menangkap bingkai video.
Callback Terkait
Setelah Anda mendaftarkan pengamat untuk data tekstur OpenGL dari aliran video kamera lokal, SDK memicu callback dalam implementasi `AliRtcTextureObserver` Anda untuk setiap bingkai video yang ditangkap. Anda dapat mengimplementasikan callback yang sesuai berdasarkan kebutuhan bisnis Anda:
onTextureCreate: Callback ini dipicu saat konteks OpenGL internal SDK dibuat.
onTextureUpdate: Callback ini dipicu setelah setiap bingkai video diunggah ke tekstur OpenGL. Saat pengamat data tekstur OpenGL eksternal didaftarkan, Anda dapat memproses tekstur dalam callback ini dan mengembalikan ID tekstur yang telah diproses. Nilai kembali harus berupa ID tekstur yang valid. Jika tidak ada pemrosesan yang dilakukan, kembalikan parameter textureId.
onTextureDestroy: Callback ini dipicu saat konteks OpenGL internal SDK dihapus.
Deskripsi metrik
Nama | Tipe | Deskripsi |
observer | Pengamat untuk data tekstur OpenGL. |
unregisterLocalVideoTextureObserver
Membatalkan pendaftaran observer untuk data tekstur OpenGL dari aliran video Kamera lokal.
- (void)unregisterLocalVideoTextureObserver:(id<AliRtcTextureDelegate> _Nullable)observer;Metode ini merupakan pasangan dari registerLocalVideoTextureObserver.
Parameters
Name | Type | Description |
observer | Observer untuk data tekstur OpenGL. |
snapshotVideo
Mengambil Snapshot dari sebuah video.
- (int)snapshotVideo:(NSString*_Nullable)userId type:(AliRtcVideoTrack)type;Parameters
Name | Type | Description |
userId | NSString * | ID pengguna. Jika `userId` bernilai `nil` atau string kosong `""`, maka merepresentasikan pengguna lokal. |
type | Jenis aliran video. Hanya `{@link AliRtcVideoTrack::AliRtcVideoTrackCamera}` dan `{@link AliRtcVideoTrack::AliRtcVideoTrackScreen}` yang didukung. |
Return value
Mengembalikan 0 jika operasi berhasil. Jika tidak, kode kesalahan akan dikembalikan.
setExternalVideoSource
Mengaktifkan sumber input video eksternal.
- (int)setExternalVideoSource:(BOOL)enable sourceType:(AliRtcVideoSource)type renderMode:(AliRtcRenderMode)renderMode;Parameters
Nama | Tipe | Deskripsi |
enable | BOOL | YES mengaktifkan sumber. NO menonaktifkan sumber. |
type | Jenis aliran. | |
renderMode | Mode rendering. |
pushExternalVideoFrame
Menyisipkan data video eksternal.
- (int)pushExternalVideoFrame:(AliRtcVideoDataSample *_Nonnull)frame sourceType:(AliRtcVideoSource)type;Parameter
Nama | Tipe | Deskripsi |
frame | *_Nonnull | Data frame. |
type | Jenis aliran. |
Nilai Kembali
Mengembalikan 0 jika berhasil. Nilai bukan nol menunjukkan kegagalan.
startPublishLiveStreamWithURL
Memulai aliran langsung bypass.
- (int)startPublishLiveStreamWithURL:(NSString *_Nonnull)streamURL liveTranscoding:(AliRtcLiveTranscodingParam *_Nonnull)trancoding;Parameter
Nama | Tipe | Deskripsi |
streamUrl | NSString * | URL ingest. |
transcoding | * | Parameter pengambilan aliran. |
Nilai kembali
Nilai kembali 0 menunjukkan panggilan berhasil. Nilai bukan nol menunjukkan panggilan gagal.
updatePublishLiveStreamWithURL
Memperbarui parameter untuk streaming langsung bypass.
- (int)updatePublishLiveStreamWithURL:(NSString *_Nonnull)streamURL liveTranscoding:(AliRtcLiveTranscodingParam *_Nonnull)trancoding;Parameters
Name | Type | Description |
streamUrl | NSString * | URL ingest. |
transcoding | * | Parameter yang diperlukan untuk pengambilan aliran. |
Return value
Nilai 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.
stopPublishLiveStreamWithURL
Menghentikan streaming langsung bypass.
- (int)stopPublishLiveStreamWithURL:(NSString *_Nonnull)streamURL;Parameters
Name | Type | Description |
streamUrl | NSString *_Nonnull | URL ingest. |
Returns
Nilai kembali 0 menunjukkan bahwa panggilan berhasil. Nilai bukan nol menunjukkan bahwa panggilan gagal.
GetPublishLiveStreamStateWithURL
Mengambil status aliran langsung bypass.
- (AliRtcLiveTranscodingState)GetPublishLiveStreamStateWithURL:(NSString *_Nonnull)streamURL;Parameter
Parameter | Tipe | Deskripsi |
streamURL | NSString * | URL ingest. |
Nilai kembalian
Mengembalikan status streaming langsung bypass.
startLastmileDetect
Memulai probe kualitas jaringan.
- (int)startLastmileDetect:(AliRtcNetworkQualityProbeConfig *_Nonnull)config;Parameters
Parameter | Type | Description |
config | Parameter konfigurasi probe. |
Returns
Mengembalikan nilai 0 jika berhasil, atau nilai bukan nol jika gagal.
stopLastmileDetect
Menghentikan probe kualitas jaringan.
- (int)stopLastmileDetect;Return value
Mengembalikan nilai 0 jika berhasil. Nilai bukan nol menunjukkan kegagalan.
sendMediaExtensionMsg
Mengirim pesan Supplemental Enhancement Information (SEI).
- (int)sendMediaExtensionMsg:(NSData *_Nonnull)data repeatCount:(int)repeatCount delay:(int)delay isKeyFrame:(bool)isKeyFrame;SDK memungkinkan Anda mengirim dan menerima pesan ekstensi media. Metode ini mengirim pesan menggunakan protokol ekstensi SEI. Untuk menerima pesan, Anda dapat mendengarkan callback onMediaExtensionMsgReceived.
Skenario umum meliputi hal-hal berikut:
Meneruskan timestamp untuk menghitung latensi jaringan end-to-end atau menyinkronkan data dengan layanan lain.
Meneruskan informasi deskriptif. Anda dapat mengirim hingga 4 KB data. Anda dapat menggunakan JSON atau string biasa untuk kontennya.
Kapan harus dipanggil
Anda dapat memanggil metode ini setelah pengambilan aliran dimulai.
Batasan
Pesan ekstensi media menggunakan kembali saluran data audio dan video. Oleh karena itu, Anda harus mengontrol frekuensi dan panjang pesan kustom. Perhatikan batasan berikut:
Jumlah maksimum pesan yang dapat dikirim per detik sama dengan nilai frames per second (fps) yang ditetapkan dalam profil. Hal ini karena pesan SEI dilampirkan ke frame video terenkripsi dalam aliran H.264/H.265.
Untuk menghindari dampak pada kualitas data media, isi pesan dibatasi hingga 4 KB. Ini cocok untuk mentransfer jumlah informasi yang kecil.
Parameter `repeatCount` dalam fungsi sendMediaExtensionMsg menetapkan redundansi pesan. Jika `repeatCount` lebih besar dari 1, pesan dikirim beberapa kali untuk mencegah kehilangan pesan akibat kehilangan paket jaringan.
Pengguna lain di saluran menerima beberapa pesan identik. Sisi penerima harus menghapus duplikat tersebut.
Subscriber di saluran juga menerima pesan kustom selama live streaming bypass.
Hanya satu pesan ekstensi media yang dapat sedang dalam proses pengiriman pada satu waktu. Jika sendMediaExtensionMsg dipanggil beberapa kali, data dari pemanggilan terbaru akan menimpa data sebelumnya.
Callback terkait
Saat publisher mengirim pesan ekstensi media, subscriber dapat menerimanya dengan mendengarkan callback onMediaExtensionMsgReceived.
Parameter
Nama | Tipe | Deskripsi |
data | NSData * | Konten pesan ekstensi. Panjang maksimum adalah 4 KB. |
repeatCount | int | Jumlah pengulangan pesan. Ini menetapkan redundansi pesan untuk mencegah kehilangan pesan akibat kehilangan paket. Nilai -1 menunjukkan bahwa pesan dikirim ulang tanpa henti hingga `sendMediaExtensionMsg` dipanggil lagi. |
delay | int | Penundaan dalam milidetik sebelum pesan dikirim. Karena pesan SEI dilampirkan ke aliran H.264/H.265 terenkripsi, penundaan aktual mungkin sedikit lebih lama daripada nilai yang ditetapkan. |
isKeyFrame | bool | Menentukan apakah pesan SEI hanya dilampirkan ke keyframe. Jika diatur ke `true`, pesan hanya dilampirkan ke keyframe. |
Nilai kembalian
0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
sendMediaExtensionMsgEx
Mengirimkan pesan ekstensi media menggunakan Supplemental Enhancement Information (SEI).
- (int)sendMediaExtensionMsgEx:(NSData *_Nonnull)data repeatCount:(int)repeatCount delay:(int)delay isKeyFrame:(bool)isKeyFrame payloadType:(int)payloadType;Kit pengembangan perangkat lunak (SDK) memungkinkan Anda mengirim dan menerima pesan ekstensi media. Metode ini mengirimkan pesan menggunakan protokol ekstensi SEI. Penerima dapat mengambil pesan tersebut dengan mendengarkan callback onMediaExtensionMsgReceived. Jika Anda mengatur `payloadType` ke 5, metode ini berperilaku sama seperti metode `sendMediaExtensionMsg`.
Skenario umum meliputi hal-hal berikut:
Mengirimkan timestamp untuk menghitung latensi jaringan end-to-end atau untuk menyinkronkan data dengan layanan lain.
Mengirimkan informasi deskriptif. Anda dapat mengirimkan hingga 4 KB data, yang berguna untuk transfer data kecil. Gunakan JSON atau string biasa sebagai format data.
Kapan harus dipanggil
Panggil metode ini setelah pengambilan aliran dimulai.
Batasan
Pesan ekstensi media menggunakan kembali saluran data audio dan video. Oleh karena itu, Anda harus mengontrol frekuensi pengiriman dan panjang data pesan kustom. Batasan-batasannya adalah sebagai berikut:
Laju pesan maksimum adalah `fps` pesan per detik, sebagaimana ditentukan dalam profil. Hal ini karena pesan dikirimkan sebagai Supplemental Enhancement Information (SEI) dalam aliran H.264/H.265, dan informasi ekstensi ini hanya dapat disambungkan saat frame video dikodekan.
Untuk menghindari dampak pada kualitas transmisi media, ukuran isi pesan kustom dibatasi hingga 4 KB. Hal ini menjadikan pesan kustom cocok untuk mengirimkan jumlah informasi yang kecil.
Parameter `repeatCount` dalam fungsi `sendMediaExtensionMsg` mengontrol redundansi pesan. Nilai lebih besar dari 1 menyebabkan pesan dikirimkan beberapa kali.
Untuk memastikan pengiriman pesan meskipun terjadi loss paket jaringan, pengguna lain dalam saluran mungkin menerima pesan yang sama beberapa kali. Anda harus menghapus duplikat tersebut.
Pelanggan dalam saluran juga menerima pesan kustom selama live streaming bypass.
Hanya satu pesan ekstensi media yang dapat sedang dalam perjalanan pada satu waktu. Jika Anda memanggil metode ini beberapa kali, data dari pemanggilan terbaru akan menimpa data dari pemanggilan sebelumnya.
Parameter
Nama | Tipe | Deskripsi |
data | NSData * | Isi pesan ekstensi. Ukuran maksimum adalah 4 KB. |
repeatCount | int | Jumlah pengulangan. Ini menentukan redundansi pesan untuk mencegah kehilangan pesan akibat loss paket jaringan. Nilai -1 berarti pesan dikirim ulang tanpa batas hingga metode ini dipanggil lagi. |
delay | int | Penundaan dalam milidetik sebelum pesan dikirim. Karena SEI disambungkan ke aliran H.264/H.265 yang telah dikodekan, penundaan aktual mungkin sedikit lebih lama dari nilai yang ditentukan. |
isKeyFrame | bool | Menentukan apakah pesan SEI hanya ditambahkan ke keyframe. Jika Anda mengatur parameter ini ke `true`, pesan hanya ditambahkan ke keyframe. |
payloadType | int | Tipe muatan. Gunakan 5 untuk muatan dengan UUID. Nilainya harus 5 atau berada dalam rentang 100 hingga 254. |
Nilai yang Dikembalikan
0: Pemanggilan berhasil.
<0: Pemanggilan gagal. Kode kesalahan dikembalikan.
ERR_INNER(-1): Terjadi kesalahan internal SDK. Hal ini dapat terjadi jika SDK belum diinisialisasi atau jika metode dipanggil setelah SDK dihapus.
onConnectionStatusChange
Callback ini dipanggil ketika status koneksi jaringan berubah.
- (void)onConnectionStatusChange:(AliRtcConnectionStatus)status reason:(AliRtcConnectionStatusChangeReason)reason;Parameters
Parameter | Type | Description |
status | Nilai status saat ini. | |
reason | Alasan spesifik perubahan status. |
onLocalDeviceException
Panggilan balik ini dipicu ketika terjadi pengecualian pada perangkat lokal. Anda harus menangani panggilan balik ini.
- (void)onLocalDeviceException:(AliRtcLocalDeviceType)deviceType exceptionType:(AliRtcLocalDeviceExceptionType)exceptionType message:(NSString *_Nullable)msg;Parameter
Parameter | Tipe | Deskripsi |
deviceType | AliRtcLocalDeviceType | Jenis perangkat |
exceptionType | AliRtcLocalDeviceExceptionType | Jenis pengecualian perangkat |
msg | NSString | Informasi mengenai pengecualian |
onAuthInfoWillExpire
Callback ini memberi tahu Anda bahwa informasi autentikasi pengguna akan segera kedaluwarsa. Anda harus mengimplementasikan callback ini.
- (void)onAuthInfoWillExpire;Callback ini menunjukkan bahwa informasi autentikasi pengguna akan kedaluwarsa dalam 30 detik. Dapatkan token baru, lalu perbarui informasi autentikasi dengan salah satu cara berikut:
Panggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6a4495191bmd" id="918ba91977wi6">refreshAuthInfo</a>untuk memperbarui informasi autentikasi.Anda dapat memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="ad8235d30dprb">leaveChannel</a>untuk meninggalkan saluran saat ini, lalu memanggiljoinChanneluntuk bergabung kembali ke saluran tersebut.
Saat dipicu
SDK memicu callback ini 30 detik sebelum informasi autentikasi pengguna kedaluwarsa. Saat menerima callback ini, Anda harus segera memperbarui informasi autentikasi.
onAuthInfoExpired
Dipicu ketika pengguna memanggil API yang memerlukan autentikasi dan server melaporkan bahwa informasi autentikasi telah kedaluwarsa.
- (void)onAuthInfoExpired;Callback ini menunjukkan bahwa informasi autentikasi pengguna telah kedaluwarsa. Untuk tetap berada dalam sesi, hasilkan token baru di server Anda dan perbarui informasi autentikasi sebagai berikut:
Anda dapat memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="21390e77a1307">leaveChannel</a>untuk meninggalkan saluran saat ini, lalu panggiljoinChanneluntuk bergabung kembali ke saluran tersebut.
Pemicu
Callback ini dipicu ketika informasi autentikasi pengguna kedaluwarsa.
onJoinChannelResult
Panggilan balik ini melaporkan hasil dari proses bergabung ke saluran dan merupakan alternatif dari blok penyelesaian metode joinChannel. Anda hanya perlu mengimplementasikan salah satu dari keduanya untuk menangani hasil tersebut.
- (void)onJoinChannelResult:(int)result channel:(NSString *_Nonnull)channel elapsed:(int) elapsed;Pemicu
Panggilan balik ini dipicu setelah Anda memanggil metode joinChannel. Panggilan balik ini menunjukkan apakah Anda berhasil bergabung ke saluran dan mengembalikan informasi mengenai operasi bergabung, termasuk waktu yang berlalu.
Parameter
Parameter | Tipe | Deskripsi |
result | int | Hasil dari proses bergabung ke saluran. Nilai 0 menunjukkan keberhasilan. Nilai bukan nol merupakan kode kesalahan. |
channel | NSString *_Nonnull | ID saluran. |
elapsed | int | Waktu yang berlalu untuk bergabung ke saluran. |
onLeaveChannelResult
Panggilan balik ini melaporkan hasil dari keluar dari saluran. Panggilan balik ini dipicu setelah Anda memanggil metode leaveChannel. Anda tidak akan menerima panggilan balik ini jika Anda memanggil `destroy` segera setelah memanggil `leaveChannel`.
- (void)onLeaveChannelResult:(int)result stats:(AliRtcStats)stats;Parameter
Parameter | Tipe | Deskripsi |
result | int | Hasil dari keluar dari saluran. Nilai 0 menunjukkan keberhasilan. Nilai lainnya merupakan kode kesalahan. |
stats | Rangkuman statistik data untuk sesi di dalam saluran. |
onRemoteUserOffLineNotify
Terjadi ketika pengguna jarak jauh offline.
- (void)onRemoteUserOffLineNotify:(NSString *_Nonnull)uid offlineReason:(AliRtcUserOfflineReason)reason;SDK memicu callback ini untuk memberi tahu pengguna lokal bahwa pengguna jarak jauh telah offline.
Pemicu
Pengguna jarak jauh meninggalkan saluran.
Callback ini dipicu ketika streamer jarak jauh memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#892915dd4edcy" id="78b1952ad5lwp">setClientRole</a>untuk beralih ke peran penonton (AliRtcClientRolelive).Streamer jarak jauh dianggap offline jika tidak ada data yang diterima darinya dalam periode waktu yang lama.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna unik yang ditetapkan oleh server aplikasi. |
reason | Alasan pengguna offline. |
onRemoteUserOnLineNotify
Pemicu balik yang dipicu ketika pengguna jarak jauh online.
- (void)onRemoteUserOnLineNotify:(NSString *_Nonnull)uid elapsed:(int)elapsed;Pemicu balik ini memberi tahu klien lokal ketika pengguna jarak jauh bergabung ke saluran.
Pemicu
Pengguna jarak jauh berhasil bergabung ke saluran.
Ketika Anda bergabung ke saluran, pemicu balik ini juga dipicu untuk setiap pengguna yang sudah berada di saluran. Hal ini memungkinkan Anda mengidentifikasi pengguna yang sudah ada.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna unik yang ditetapkan oleh server aplikasi Anda. |
elapsed | int | Waktu yang berlalu sejak pengguna lokal memanggil untuk bergabung ke saluran hingga pemicu balik ini dipicu. |
onRemoteTrackAvailableNotify
Pemicu balik ini dipicu ketika ketersediaan aliran pengguna jarak jauh berubah.
- (void)onRemoteTrackAvailableNotify:(NSString *_Nonnull)uid audioTrack:(AliRtcAudioTrack)audioTrack videoTrack:(AliRtcVideoTrack)videoTrack;Pemicu balik ini dipicu ketika status penerbitan aliran pengguna jarak jauh berubah. Anda dapat menggunakan pemicu balik ini untuk menerima notifikasi secara real time jika pengguna jarak jauh sedang menerbitkan aliran audio atau video. Anda kemudian dapat menampilkan atau menyembunyikan audio dan video pengguna jarak jauh tersebut di antarmuka.
Pemicu balik ini mengembalikan status penerbitan aliran pengguna jarak jauh. Untuk mengidentifikasi aliran mana yang tidak lagi diterbitkan, Anda dapat mencatat status aliran sebelum dan sesudah pemicu balik ini dipicu.
Pemicu
Pemicu balik ini dipicu dalam skenario berikut:
Pengguna jarak jauh mulai menerbitkan aliran (audio atau video).
Pengguna jarak jauh menghentikan penerbitan semua aliran (audio dan video).
Dalam mode interaktif, pengguna jarak jauh memanggil setClientRole untuk mengganti perannya dari penonton menjadi Streamer dan mulai menerbitkan aliran.
Sebagai contoh, ketika pengguna jarak jauh menonaktifkan pengambilan aliran video, pemicu balik ini tidak dipicu.
Jika pengguna jarak jauh mulai menerbitkan aliran Kamera (perubahan status: tidak ada video → hanya Kamera), pemicu balik mengembalikan
AliRtcVideoTrackCamera.Jika pengguna tersebut kemudian juga menerbitkan aliran berbagi layar (perubahan status: hanya Kamera → keduanya), pemicu balik mengembalikan
AliRtcVideoTrackBoth.Jika pengguna menghentikan penerbitan aliran Kamera (perubahan status: keduanya → hanya layar), pemicu balik mengembalikan
AliRtcVideoTrackScreen.Jika pengguna kemudian menghentikan penerbitan aliran berbagi layar (perubahan status: hanya layar → tidak ada video), pemicu balik mengembalikan
AliRtcVideoTrackNo.
Deskripsi parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna. Ini adalah pengenal unik yang ditetapkan oleh server aplikasi Anda. |
audioTrack | Aliran audio pengguna jarak jauh setelah perubahan. | |
videoTrack | Aliran video pengguna jarak jauh setelah perubahan. |
onBye
Panggilan balik ini dipanggil ketika pengguna dipaksa meninggalkan saluran.
- (void)onBye:(int)code;Panggilan balik ini dipicu ketika pengguna terputus karena alasan apa pun atau ketika rapat berakhir. Anda dapat menggunakan parameter panggilan balik code untuk menentukan alasan pemutusan koneksi dan menanganinya sesuai kebutuhan.
Trigger Conditions
Server memutuskan koneksi pengguna.
Rapat berakhir dan server menghapus saluran.
Terjadi pemutusan pasif. Klien harus mencoba melanjutkan sesi atau menyambung ulang.
Parameters
Parameter | Type | Description |
code | int | Jenis paket. Nilai yang valid:
|
onAudioPublishStateChanged
Callback untuk perubahan pengambilan aliran audio.
- (void)onAudioPublishStateChanged:(AliRtcPublishState)oldState newState:(AliRtcPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;Callback ini memantau perubahan status pengambilan aliran audio pengguna lokal.
Kondisi Pemicu
Misalnya, ketika status pengambilan aliran audio pengguna berubah:
Hentikan pengambilan aliran.
Anda dapat memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#892915dd4edcy" id="81771ef0798we">setClientRole</a>untuk beralih ke peran penonton.
Deskripsi parameter
Parameter | Tipe | Deskripsi |
oldState | Status pengambilan aliran sebelumnya. | |
newStat | Status pengambilan aliran saat ini. | |
elapseSinceLastState | NSInteger | Interval waktu sejak perubahan status terakhir, dalam milidetik. |
channel | NSString *_Nonnull | ID saluran saat ini. |
onAudioSubscribeStateChanged
Panggilan balik ini dipicu ketika status langganan aliran audio pengguna jarak jauh berubah.
- (void)onAudioSubscribeStateChanged:(NSString *_Nonnull)uid oldState:(AliRtcSubscribeState)oldState newState:(AliRtcSubscribeState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;Panggilan balik ini menyediakan status langganan baru dan waktu yang berlalu sejak status sebelumnya hingga status saat ini.
Parameters
Parameter | Type | Description |
uid | NSString *_Nonnull | ID pengguna yang status langgannya berubah. |
oldState | Status langganan sebelumnya. | |
newState | Status langganan saat ini. | |
elapseSinceLastState | NSInteger | Waktu yang berlalu sejak perubahan status terakhir. Satuan: ms. |
channel | NSString *_Nonnull | ID saluran saat ini. |
onUserAudioMuted
Terjadi ketika pengguna membisukan atau mengaktifkan kembali audio mereka.
- (void)onUserAudioMuted:(NSString *_Nonnull)uid audioMuted:(BOOL)isMute;Parameters
Parameter | Type | Description |
uid | NSString *_Nonnull | ID pengguna yang membisukan atau mengaktifkan kembali audionya. |
isMute | BOOL | YES menunjukkan bahwa audio dibisukan. NO menunjukkan bahwa audio diaktifkan kembali. |
onUserAudioInterruptedBegin
Panggilan balik ini dipicu ketika audio pengguna terganggu. Hal ini biasanya terjadi ketika sesi audio didahului oleh proses lain, seperti panggilan telepon.
- (void)onUserAudioInterruptedBegin:(NSString *_Nonnull)uid;Parameters
Parameter | Type | Description |
uid | NSString *_Nonnull | ID pengguna yang audionya terganggu. |
onUserAudioInterruptedEnded
Pemicu balik ini dipicu ketika gangguan audio pengguna berakhir. Pemicu balik ini berkorespondensi dengan onUserAudioInterruptedBegin.
- (void)onUserAudioInterruptedEnded:(NSString *_Nonnull)uid;Parameters
Parameter | Type | Description |
uid | NSString *_Nonnull | ID pengguna yang gangguan audionya telah berakhir. |
onVideoPublishStateChanged
Terjadi ketika status pengambilan aliran video berubah.
- (void)onVideoPublishStateChanged:(AliRtcPublishState)oldState newState:(AliRtcPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;Panggilan balik ini dipicu ketika status pengambilan aliran video pengguna lokal berubah.
Parameter
Parameter | Tipe | Deskripsi |
oldState | Status pengambilan aliran sebelumnya. | |
newState | Status pengambilan aliran saat ini. | |
elapseSinceLastState | NSInteger | Waktu yang berlalu sejak perubahan status terakhir, dalam milidetik. |
channel | NSString *_Nonnull | ID saluran saat ini. |
onVideoSubscribeStateChanged
Memberikan laporan perubahan pada status langganan aliran video Kamera.
- (void)onVideoSubscribeStateChanged:(NSString *_Nonnull)uid oldState:(AliRtcSubscribeState)oldState newState:(AliRtcSubscribeState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;Callback ini memberi tahu pengguna lokal ketika status langganan aliran video Kamera pengguna jarak jauh berubah. Callback ini menyediakan status langganan baru dan waktu yang telah berlalu sejak perubahan status terakhir.
Callback terkait
Aliran video dapat berupa aliran Kamera atau aliran berbagi layar. Callback ini hanya melaporkan perubahan status langganan untuk aliran Kamera. Untuk perubahan yang terkait dengan aliran berbagi layar, gunakan callback onScreenShareSubscribeStateChanged.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna yang status langgannya berubah. |
oldState | Status langganan sebelumnya. | |
newState | Status langganan saat ini. | |
elapseSinceLastState | NSInteger | Waktu yang telah berlalu sejak perubahan status terakhir, dalam milidetik. |
channel | NSString *_Nonnull | ID saluran saat ini. |
onUserVideoMuted
Terjadi ketika pengguna membisukan atau membatalkan pembisuan aliran video mereka.
- (void)onUserVideoMuted:(NSString *_Nonnull)uid videoMuted:(BOOL)isMute;Parameters
Parameter | Type | Description |
uid | NSString *_Nonnull | ID pengguna yang membisukan atau membatalkan pembisuan aliran video mereka. |
isMute | BOOL | Nilai YES menunjukkan bahwa frame hitam dikirim. Nilai NO menunjukkan bahwa video normal dikirim. |
onUserVideoEnabled
Notifikasi dikirimkan ketika pengambilan video lokal dinonaktifkan atau diaktifkan kembali.
- (void)onUserVideoEnabled:(NSString *_Nullable)uid videoEnabled:(BOOL)isEnable;Parameters
Parameter | Type | Description |
uid | NSString *_Nonnull | ID pengguna yang memanggil metode EnableLocalVideo. |
isMute | BOOL | YES menunjukkan bahwa pengambilan aliran kamera diaktifkan. NO menunjukkan bahwa pengambilan aliran kamera dinonaktifkan. |
onUserWillResignActive
Event ini terjadi ketika aplikasi pengguna jarak jauh masuk ke latar belakang.
- (void)onUserWillResignActive:(NSString *_Nonnull)uid;Parameters
Parameter | Type | Description |
uid | NSString *_Nonnull | ID pengguna yang aplikasinya masuk ke latar belakang. |
onUserWillBecomeActive
Pemicu balik ini diaktifkan ketika aplikasi pengguna jarak jauh kembali ke latar depan.
- (void)onUserWillBecomeActive:(NSString *_Nonnull)uid;Parameters
Parameter | Type | Description |
uid | NSString *_Nonnull | ID pengguna yang aplikasinya kembali ke latar depan. |
onRtcStats
Panggilan balik ini melaporkan data waktu nyata. Pemicu dijalankan setiap 2 detik.
- (void)onRtcStats:(AliRtcStats)stats;Parameters
Parameter | Type | Description |
stats | Data panggilan balik. |
onRtcLocalVideoStats
Memberikan statistik video lokal setiap 2 detik.
- (void)onRtcLocalVideoStats:(AliRtcLocalVideoStats *_Nonnull)localVideoStats;Parameters
Parameter | Type | Description |
localVideoStats | Statistik untuk video lokal. |
onRtcRemoteVideoStats
Pemicu balik ini dipanggil setiap 2 detik untuk melaporkan statistik kinerja video jarak jauh.
- (void)onRtcRemoteVideoStats:(AliRtcRemoteVideoStats *_Nonnull)remoteVideoStats;Parameters
Parameter | Type | Description |
remoteVideoStats | Statistik kinerja video jarak jauh. |
onRtcLocalAudioStats
Panggilan balik ini melaporkan statistik kinerja audio lokal dan dipicu setiap 2 detik.
- (void)onRtcLocalAudioStats:(AliRtcLocalAudioStats *_Nonnull)localAudioStats;Parameters
Parameter | Type | Description |
localAudioStats | Statistik kinerja audio lokal. |
onRtcRemoteAudioStats
Callback ini melaporkan statistik audio jarak jauh setiap 2 detik.
- (void)onRtcRemoteAudioStats:(AliRtcRemoteAudioStats *_Nonnull)remoteAudioStats;Parameters
Parameter | Type | Description |
remoteAudioStats | Statistik untuk audio jarak jauh. |
onMediaExtensionMsgReceived
Terjadi ketika pesan ekstensi media diterima.
- (void)onMediaExtensionMsgReceived:(NSString *_Nonnull)uid payloadType:(int)payloadType message:(NSData *_Nonnull)data;Ketika klien mengirim pesan dengan memanggil sendMediaExtensionMsg, klien lain menerima pesan tersebut melalui callback ini.
Parameters
Parameter | Type | Description |
uid | NSString | ID pengguna. |
payloadType | int | Jenis muatan. |
message | NSData * | Pesan ekstensi media. |
onAudioRouteChanged
Panggilan balik ini dipicu ketika rute audio berubah. Panggilan balik ini hanya tersedia di Android dan iOS.
- (void)onAudioRouteChanged:(AliRtcAudioRouteType)routing;Parameters
Parameter | Type | Description |
routing | Jenis routing. |
onSnapshotComplete
Panggilan balik snapshot
- (void)onSnapshotComplete:(NSString*_Nullable)uid videoTrack:(AliRtcVideoTrack)videoTrack image:(UIImage* _Nullable)image success:(BOOL)success;Parameters
Parameter | Type | Description |
image | UIImage * | Jenis citra |
success | BOOL | Menunjukkan apakah pengambilan Snapshot berhasil. |
onLocalAudioStateChanged
Memberikan laporan perubahan status perangkat pengambilan audio lokal.
- (void)onLocalAudioStateChanged:(AliRtcLocalAudioStateType)state message:(NSString *_Nullable)msg;Pemicu callback ini dipanggil melalui panggilan ke startAudioCapture dan stopAudioCapture.
Parameters
Parameter | Type | Description |
state | Status perangkat. | |
msg | NSString * | Deskripsi perubahan status perangkat. |
onLocalVideoStateChanged
Callback ini melaporkan perubahan status perangkat pengambilan video lokal.
- (void)onLocalVideoStateChanged:(AliRtcLocalVideoStateType)state message:(NSString *_Nullable)msg;Parameters
Parameter | Type | Description |
state | Status perangkat. Jenisnya adalah AliRtcLocalVideoStateType. | |
msg | NSString * | Pesan yang menjelaskan perubahan status perangkat. |
onRemoteUserSubscribedDataChannel
Panggilan balik ini menunjukkan bahwa Anda dapat mulai mengirimkan pesan saluran data.
- (void)onRemoteUserSubscribedDataChannel:(NSString *_Nonnull)uid;Panggilan balik ini dipicu ketika pengguna jarak jauh berlangganan ke saluran data. Panggilan balik ini memberi tahu Anda bahwa pengguna jarak jauh yang ditentukan siap menerima pesan kustom. Pada titik ini, Anda dapat dengan aman memanggil sendDataChannelMessage. Panggilan balik ini merupakan mekanisme kunci untuk memastikan pengiriman pesan yang andal karena mencegah kehilangan paket atau kegagalan pengiriman yang dapat terjadi jika Anda mengirim pesan sebelum penerima siap.
Panggilan balik ini hanya dipicu dalam skenario AI.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString * | ID pengguna. |
onDataChannelMessage
Callback untuk pesan saluran data.
- (void)onDataChannelMessage:(NSString *_Nonnull)uid controlMsg:(AliRtcDataChannelMsg*_Nonnull)controlMsg;ApsaraVideo Real-time Communication (ARTC) software development kit (SDK) memungkinkan Anda mengirim dan menerima pesan kustom selama mentransmisikan data audio dan video. Gunakan callback ini untuk menerima pesan kustom dari saluran data. Untuk informasi selengkapnya, lihat Kirim dan terima pesan kustom.
Dalam skenario interaktif, Streamer dapat mengirim dan menerima pesan, sedangkan penonton hanya dapat menerima pesan.
Fitur ini dinonaktifkan secara default. Untuk mengaktifkan fitur ini, panggil
setParametersetelah membuat Mesin DPI dan atur parameter menjadi{\"data\":{\"enablePubDataChannel\":true" + ",\"enableSubDataChannel\":true}}.
Kapan ini dipicu
Callback ini dipicu di sisi penerima setelah pengirim memanggil sendDataChannelMessage untuk mengirim pesan kustom. Penerima harus telah mengaktifkan fitur saluran data.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString * | ID pengguna. |
controlMsg | Pesan saluran data. |
onScreenSharePublishStateChanged
Terjadi ketika status pengambilan aliran berbagi layar berubah.
- (void)onScreenSharePublishStateChanged:(AliRtcPublishState)oldState newState:(AliRtcPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;Parameters
Parameter | Type | Description |
oldState | Hasil probe. 0: berhasil. -1: gagal karena kondisi jaringan yang buruk. | |
newState | Status pengambilan aliran sebelumnya. | |
newState | Status pengambilan aliran yang baru. | |
elapseSinceLastState | NSInteger | Interval perubahan status, dalam milidetik. |
Channel | NSString * | ID saluran saat ini. |
onCapturedAudioFrame
Callback ini menyediakan data audio mentah yang ditangkap dari perangkat lokal.
- (BOOL)onCapturedAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;Callback ini dinonaktifkan secara default. Untuk menerima data dari callback ini:
Panggil enableAudioFrameObserver(true,audioSource,config). Parameter config memungkinkan Anda mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.
Panggil registerAudioFrameObserver untuk mendaftarkan objek guna menerima data audio.
Anda dapat mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.
Jangan melakukan operasi yang memakan waktu dalam fungsi callback ini karena dapat menyebabkan masalah audio.
Anda dapat mengatur laju sampel dan jumlah saluran suara.
Antarmuka ini mendukung operasi baca dan tulis.
Batasan
Jangan melakukan operasi yang memakan waktu dalam fungsi callback ini karena hal tersebut dapat menyebabkan masalah audio.
Parameter
Parameter | Tipe | Deskripsi |
frame | Frame video |
Nilai kembalian
Mengembalikan true jika berhasil.
onProcessCapturedAudioFrame
Callback ini menyediakan data audio yang telah ditangkap setelah melalui pemrosesan 3A.
- (BOOL)onProcessCapturedAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;Callback ini dinonaktifkan secara default. Untuk menerima data audio ini:
Aktifkan callback ini menggunakan parameter audioSource dalam enableAudioFrameObserver(true, audioSource, config). Anda dapat menggunakan parameter config untuk mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.
Panggil registerAudioFrameObserver untuk mendaftarkan objek pengamat frame audio.
Anda dapat menggunakan API ini untuk mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.
Untuk menghindari masalah audio, jangan melakukan operasi yang memakan waktu lama di dalam fungsi callback ini.
Anda dapat menggunakan API ini untuk mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.
Antarmuka ini mendukung operasi baca dan tulis.
Batasan penggunaan
Jangan melakukan operasi yang memakan waktu lama di dalam callback ini karena hal tersebut dapat menyebabkan masalah audio.
Parameter
Parameter | Tipe | Deskripsi |
frame | Frame video |
Nilai kembalian
true: Operasi berhasil.
onPublishAudioFrame
Fungsi callback ini menyediakan data audio untuk pengambilan aliran.
- (BOOL)onPublishAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;Anda dapat menggunakan fungsi callback ini untuk memperoleh data audio untuk pengambilan aliran. Callback ini dinonaktifkan secara default. Untuk mengaktifkan callback ini dan memperoleh data audio, lakukan salah satu operasi berikut:
Panggil enableAudioFrameObserver(true, audioSource, config). Parameter
configmemungkinkan Anda mengatur properti untuk data audio, seperti laju sampel, jumlah saluran suara, dan mode baca/tulis.Panggil registerAudioFrameObserver untuk mendaftarkan observer frame audio.
Antarmuka ini memungkinkan Anda mengatur laju sampel dan jumlah saluran suara, tetapi mode hanya dapat diatur ke read-only.
Jangan melakukan operasi yang memakan waktu dalam fungsi callback ini. Hal ini dapat menyebabkan masalah audio.
Anda dapat mengatur laju sampel dan jumlah saluran suara.
API ini mendukung mode baca/tulis.
Batasan
Jangan melakukan operasi yang memakan waktu dalam fungsi callback ini. Jika tidak, masalah audio dapat terjadi.
Parameter
Parameter | Tipe | Deskripsi |
frame | Frame video. |
Nilai kembalian
Nilai true menunjukkan keberhasilan.
onPlaybackAudioFrame
Callback ini mengambil data audio pemutaran.
- (BOOL)onPlaybackAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;Callback ini dinonaktifkan secara default. Untuk mengambil data audio, Anda harus:
Memanggil enableAudioFrameObserver(true, audioSource, config) untuk mengaktifkan callback ini. Parameter config memungkinkan Anda mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.
Memanggil registerAudioFrameObserver untuk mendaftarkan objek pengamat frame audio.
Anda dapat menggunakan antarmuka ini untuk mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.
Menjalankan operasi yang memakan waktu lama dalam fungsi callback ini dapat menyebabkan audio menjadi tidak normal.
Antarmuka ini memungkinkan Anda mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.
Antarmuka ini mendukung operasi baca dan tulis.
Batasan
Untuk mencegah masalah audio, hindari menjalankan operasi yang memakan waktu lama dalam fungsi callback ini.
Parameter
Parameter | Tipe | Deskripsi |
frame | Sebuah frame video. |
Nilai kembalian
true: Operasi berhasil.
onRemoteUserAudioFrame
Callback data untuk penarikan aliran jarak jauh.
- (BOOL)onRemoteUserAudioFrame:(NSString *_Nullable)uid frame:(AliRtcAudioFrame* _Nonnull)frame;Callback ini dinonaktifkan secara default. Untuk menerima frame audio ini:
Panggil enableAudioFrameObserver(true, audioSource, config). Gunakan parameter config untuk mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis untuk data audio.
Panggil registerAudioFrameObserver untuk mendaftarkan objek pengamat frame audio.
Callback ini memungkinkan Anda mengatur mode baca/tulis, tetapi tidak laju sampel atau jumlah saluran suara.
Jangan melakukan operasi yang memakan waktu lama dalam fungsi callback ini karena dapat menyebabkan masalah audio.
Callback ini does not support pengaturan laju sampel atau jumlah saluran suara.
Callback ini mendukung mode baca/tulis.
Batasan
Hindari melakukan operasi yang memakan waktu lama dalam fungsi callback ini untuk mencegah terjadinya masalah audio.
Parameter
Parameter | Tipe | Deskripsi |
frame | Frame video |
Nilai kembalian
true: Operasi berhasil.
onDestroyCompletion
Callback yang dipanggil ketika engine telah sepenuhnya dihancurkan.
- (void)onDestroyCompletion;Callback ini menunjukkan bahwa instans engine SDK telah dihapus. Anda kemudian dapat membuat instans baru.
Untuk menghindari pemblokiran thread utama, tunggu hingga callback onDestroyCompletion selesai sebelum memanggil metode lainnya.
Pemicu
Callback ini dipicu setelah metode destroy dipanggil dan engine telah sepenuhnya dihancurkan.
onTextureCreate
Callback untuk pembuatan konteks OpenGL.
- (void)onTextureCreate:(void *_Nullable)context;Callback ini berlaku untuk konteks OpenGL internal SDK.
Kondisi pemicu
Callback ini dipicu ketika SDK membuat konteks. Anda dapat menggunakan callback ini untuk menginisialisasi sumber daya terkait.
Parameter
Parameter | Tipe | Deskripsi |
context | void * | Konteks OpenGL. |
onTextureUpdate
Pemicu balik untuk pembaruan tekstur OpenGL.
- (int)onTextureUpdate:(int)textureId width:(int)width height:(int)height videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;Pemicu balik ini dipicu setelah setiap bingkai video diunggah ke tekstur OpenGL. Jika Anda telah mendaftarkan pengamat eksternal untuk data tekstur OpenGL, Anda dapat menggunakan pemicu balik ini untuk memproses tekstur tersebut dan mengembalikan ID tekstur yang telah diproses.
Pemicu balik ini harus mengembalikan ID tekstur yang valid. Jika tidak ada pemrosesan yang dilakukan, kembalikan parameter textureId asli.
Pemicu
Pemicu balik ini dipicu setelah setiap bingkai video diunggah ke tekstur OpenGL.
Parameter
Parameter | Tipe | Deskripsi |
textureId | int | Konteks OpenGL. |
width | int | Lebar video. |
height | int | Tinggi video. |
videoSample | Data bingkai video. |
Nilai kembali
ID tekstur baru atau ID tekstur asli. Nilai kembali kurang dari 0 menunjukkan bahwa ID tekstur tidak diperbarui.
onTextureDestory
Callback yang dipicu saat konteks OpenGL dihancurkan.
- (void)onTextureDestory;Callback ini dipicu saat konteks OpenGL internal SDK dihancurkan.
Kondisi pemicu
SDK memicu callback ini saat konteks OpenGL internalnya dihancurkan. Anda dapat mengimplementasikan callback ini untuk melepas sumber daya terkait.
onCaptureVideoSample
Callback untuk frame video yang ditangkap.
- (BOOL)onCaptureVideoSample:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;Callback ini menyediakan frame video mentah, seperti data YUV, yang ditangkap oleh kamera lokal. Anda dapat menggunakan callback ini untuk mengimplementasikan logika pemrosesan video kustom, seperti menambahkan filter, Watermark, atau Transkoding. Setelah diproses, Anda dapat mengembalikan data video yang telah dimodifikasi ke SDK untuk proses encoding dan rendering selanjutnya. Untuk mengirim video yang telah diproses ke SDK, kembalikan nilai YES.
Kapan dipicu
Setelah pemanggilan sukses ke <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#9a3437ab16j1w" id="6c93b9cf8e771">registerVideoSampleObserver</a>, SDK memicu observer setiap kali menangkap sebuah frame video.
Parameter
Parameter | Tipe | Deskripsi |
videoSource | Jenis aliran video. | |
videoSample | Data video mentah. |
Nilai kembalian
Ya, data ditulis kembali ke SDK, yang hanya berlaku untuk I420 dan CVPixelBuffer pada iOS dan macOS.
Data tidak ditulis kembali ke SDK.
onPreEncodeVideoSample
Callback yang menyediakan data video lokal sebelum pengkodean.
- (BOOL)onPreEncodeVideoSample:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;
Callback ini dipicu sebelum SDK mengkodekan frame video lokal. Callback ini menyediakan data video mentah, seperti data dalam format YUV. Anda dapat menggunakan callback ini untuk menerapkan logika pemrosesan khusus, seperti menambahkan Watermark, menyesuaikan warna, atau Transkoding. Setelah pemrosesan, Anda dapat memutuskan apakah akan mengembalikan data yang telah dimodifikasi ke SDK untuk dikodekan.
Parameter
Parameter | Tipe | Deskripsi |
videoSource | Jenis aliran video. | |
videoSample | Data video mentah. |
Nilai kembalian
YES: Data yang telah diproses dikembalikan ke SDK. Opsi ini hanya berlaku untuk data dalam format I420 atau CVPixelBuffer (iOS/macOS).
NO: Data yang telah diproses tidak dikembalikan ke SDK.
onRemoteVideoSample
Callback untuk data video dari pengguna jarak jauh yang telah berlangganan.
- (BOOL)onRemoteVideoSample:(NSString *_Nonnull)uid videoSource:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;Callback ini menyediakan data frame video mentah, seperti data dalam format YUV. Anda dapat menggunakan callback ini untuk menerapkan logika kustom, seperti menambahkan filter, watermark, atau transkoding, lalu memutuskan apakah akan mengembalikan data yang telah diproses ke SDK untuk rendering.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString * | ID pengguna. |
videoSource | Jenis aliran video. | |
videoSample | Data video mentah. |
Nilai kembalian
YES: Data dikembalikan ke SDK. Ini hanya berlaku untuk data dalam format I420 dan CVPixelBuffer di iOS dan macOS.
NO: Data tidak dikembalikan ke SDK.
onGetVideoFormatPreference
Format keluaran untuk data video.
- (AliRtcVideoFormat)onGetVideoFormatPreference;Format default adalah AliRtcYUV420.
Nilai kembalian
Format keluaran video yang disukai.
onGetVideoObservedFramePosition
Mengambil posisi keluaran data video.
- (NSInteger)onGetVideoObservedFramePosition;Nilai kembalian
Posisi keluaran video yang diinginkan. Untuk informasi selengkapnya, lihat {@link AliRtcVideoObserPosition}.
onAudioEffectFinished
Panggilan balik ini dipicu ketika pemutaran efek suara lokal selesai.
- (void)onAudioEffectFinished:(int)soundId;Parameters
Parameter | Type | Description |
soundId | int | ID dari efek suara yang telah selesai diputar. |
onAudioVolumeCallback
Callback ini melaporkan volume audio, status suara, dan UID pengguna yang berlangganan.
- (void)onAudioVolumeCallback:(NSArray <AliRtcUserVolumeInfo *> *_Nullable)array totalVolume:(int)totalVolume;Anda dapat menggunakan callback ini untuk memperoleh data frame video mentah (seperti data dalam format YUV) dari pengguna jarak jauh, menerapkan logika pemrosesan kustom seperti menambahkan filter, Watermark, dan Transkoding, serta menentukan apakah akan mengembalikan data yang telah diproses ke SDK untuk rendering selanjutnya.
Parameters
Parameter | Type | Description |
array | NSArray <AliRtcUserVolumeInfo *> *_Nullable | Array yang berisi informasi volume pengguna, termasuk UID pengguna, status suara, dan volume.
|
totalVolume | int | Volume total setelah pencampuran. Nilainya berkisar antara 0 hingga 255. Pada callback untuk pengguna lokal, totalVolume adalah volume pengguna lokal setelah pencampuran. Pada callback untuk pengguna jarak jauh, totalVolume adalah volume total semua pembicara setelah pencampuran. |
onActiveSpeaker
Callback yang melaporkan UID dari pembicara paling aktif.
- (void)onActiveSpeaker:(NSString *_Nonnull)uid;Setelah pemanggilan sukses ke <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#85b41ef251dg0" id="a41de41e279og">enableAudioVolumeIndication</a>, SDK terus-menerus mengidentifikasi pengguna jarak jauh mana yang berbicara paling keras dan menghitung jumlah kali setiap pengguna diidentifikasi demikian. Pengguna jarak jauh dengan jumlah kumulatif tertinggi dalam periode waktu tertentu dianggap sebagai pengguna paling aktif.
Pemicu
Ketika dua atau lebih pengguna berada dalam saluran, SDK memicu callback ini untuk melaporkan UID pembicara jarak jauh paling aktif.
Jika pengguna jarak jauh paling aktif tetap sama, SDK tidak memicu callback
onActiveSpeakerlagi.Jika pengguna jarak jauh paling aktif berubah, SDK memicu callback ini lagi untuk melaporkan UID pengguna baru tersebut.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pembicara saat ini. |
onPublishLiveStreamStateChanged
Panggilan balik ini dipicu ketika status pengambilan aliran bypass berubah.
- (void)onPublishLiveStreamStateChanged:(NSString *_Nonnull)streamURL state:(AliRtcLiveTranscodingState)state errCode:(AliRtcTrascodingLiveStreamErrorCode)errCode;Parameters
Parameter | Type | Description |
streamURL | NSString * | URL aliran. |
state | Status aliran. | |
errCode | Kode kesalahan. |
onPublishTaskStateChanged
Callback untuk perubahan status Tugas bypass.
- (void)onPublishTaskStateChanged:(NSString *_Nonnull)streamURL state:(AliRtcTrascodingLiveTaskStatus)state;Parameters
Parameter | Type | Description |
streamURL | NSString * | URL aliran. |
state | Status. |
onNetworkQualityChanged
Panggilan balik ini dipicu ketika kualitas jaringan berubah.
- (void)onNetworkQualityChanged:(NSString *_Nonnull)uid
upNetworkQuality:(AliRtcNetworkQuality)upQuality
downNetworkQuality:(AliRtcNetworkQuality)downQuality;Parameters
Parameter | Type | Description |
uid | NSString* | ID pengguna. Jika parameter ini kosong, panggilan balik melaporkan kualitas jaringan uplink dan downlink pengguna lokal. |
upQuality | Kualitas jaringan uplink. | |
downQuality | Kualitas jaringan downlink. |
onLastmileDetectResultWithQuality
Callback pengujian kualitas jaringan last-mile.
- (void)onLastmileDetectResultWithQuality:(AliRtcNetworkQuality)networkQuality;Parameters
Parameter | Type | Description |
networkQuality | Kualitas jaringan. |
onLastmileDetectResultWithBandWidth
Callback ini melaporkan hasil pengujian kualitas jaringan.
- (void)onLastmileDetectResultWithBandWidth:(int)code result:(AliRtcNetworkQualityProbeResult* _Nonnull)result;Parameters
Parameter | Type | Description |
code | int | Hasil pengujian. Nilai 0 menunjukkan keberhasilan. Nilai -1 menunjukkan kegagalan karena kondisi jaringan yang buruk. |
result | Kualitas jaringan. |
onOccurError
Callback ini dipanggil ketika terjadi kesalahan di dalam engine.
- (void)onOccurError:(int)error message:(NSString *_Nonnull)message;Parameters
Parameter | Type | Description |
error | int | Jenis kesalahan. Untuk informasi selengkapnya, lihat {@link AliRtcErrorCode}. |
message | NSString * | Deskripsi kesalahan. |
onFirstAudioPacketSentWithTimecost
Pemicu balik ini diaktifkan ketika paket audio pertama dikirim.
- (void)onFirstAudioPacketSentWithTimecost:(AliRtcAudioTrack)track timeCost:(int)timeCost;Parameters
Parameter | Type | Description |
track | Track audio. | |
timeCost | int | Waktu yang dibutuhkan untuk mengirim paket tersebut. |
onFirstVideoFrameReceivedWithUid
Terjadi ketika aliran video frame pertama diterima.
- (void)onFirstVideoFrameReceivedWithUid:(NSString *_Nonnull)uid
videoTrack:(AliRtcVideoTrack)videoTrack
timeCost:(int)timeCost;Parameters
Parameter | Type | Description |
uid | NSString * | ID pengguna. |
videoTrack | Tag aliran video. | |
timeCost | int | Waktu yang berlalu, dalam milidetik. |
onFirstVideoPacketSentWithVideoTrack
Terjadi ketika paket video pertama dikirim.
- (void)onFirstVideoPacketSentWithVideoTrack:(AliRtcVideoTrack)videoTrack
timeCost:(int)timeCost;Parameters
Parameter | Type | Description |
videoTrack | Tag aliran video. | |
timeCost | int | Biaya waktu dalam milidetik. |
onFirstAudioPacketReceivedWithUid
Terjadi ketika paket audio pertama diterima.
- (void)onFirstAudioPacketReceivedWithUid:(NSString *_Nonnull)uid
track:(AliRtcAudioTrack)track
timeCost:(int)timeCost;Parameters
Parameter | Type | Description |
uid | NSString * | ID pengguna. |
videoTrack | Tag aliran audio. | |
timeCost | int | Waktu yang berlalu, dalam milidetik. |
onFirstRemoteAudioDecodedWithUid
Terjadi ketika frame pertama dari aliran audio jarak jauh didekodekan.
- (void)onFirstRemoteAudioDecodedWithUid:(NSString *_Nonnull)uid track:(AliRtcAudioTrack)track elapsed:(int)elapsed;Parameters
Parameter | Type | Description |
uid | NSString * | ID pengguna. |
track | Tag aliran audio. | |
elapsed | int | Waktu yang berlalu, dalam milidetik. |
onFirstRemoteVideoFrameDrawn
Panggilan balik ini dipicu ketika bingkai video pertama dari pengguna jarak jauh dirender.
- (void)onFirstRemoteVideoFrameDrawn:(NSString *_Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack width:(int)width height:(int)height elapsed:(int)elapsed;Parameters
Parameter | Type | Description |
uid | NSString * | ID pengguna jarak jauh. |
videoTrack | Label aliran audio | |
width | int | Lebar bingkai video. |
height | int | Tinggi. |
elapsed | int | Waktu yang berlalu, dalam milidetik, sejak pengguna lokal bergabung ke saluran hingga panggilan balik ini dipicu. |
onFirstLocalVideoFrameDrawn
Terjadi ketika frame video lokal pertama ditampilkan dalam pratinjau lokal.
- (void)onFirstLocalVideoFrameDrawn:(int)width height:(int)height elapsed:(int)elapsed;Parameters
Parameter | Type | Description |
width | int | Lebar video pratinjau lokal. |
height | int | Tinggi video pratinjau lokal. |
elapsed | int | Waktu yang berlalu, dalam milidetik, sejak pengguna lokal bergabung ke saluran hingga callback ini dipicu. |
onTestAudioVolumeCallback
Memberikan laporan volume audio selama pengujian perekaman audio sebelum panggilan.
- (void)onTestAudioVolumeCallback:(int)volume;Parameters
Parameter | Type | Description |
volume | int | Volume tersebut. Rentang nilai: 0 hingga 100. |
onAudioAccompanyStateChanged
Callback ini melaporkan perubahan pada status pemutaran iringan audio lokal.
- (void)onAudioAccompanyStateChanged:(AliRtcAudioAccompanyStateCode)playState
errorCode:(AliRtcAudioAccompanyErrorCode)errorCode;Parameter
Parameter | Tipe | Deskripsi |
playState | Status pemutaran iringan audio. | |
errorCode | Kode kesalahan. |
onRemoteAudioAccompanyStarted
Pemicu balik ini dipanggil ketika pengguna jarak jauh mulai memutar iringan audio.
- (void)onRemoteAudioAccompanyStarted:(NSString *_Nonnull)uid;Parameters
Parameter | Type | Description |
uid | NSString * | ID pengguna. |
onRemoteAudioAccompanyFinished
Panggilan balik ini dipicu ketika pemutaran audio iringan pengguna jarak jauh selesai.
- (void)onRemoteAudioAccompanyFinished:(NSString *_Nonnull)uid;Parameters
Parameter | Type | Description |
uid | NSString * | ID pengguna. |
setParameter
Menetapkan parameter kustom.
- (int)setParameter:(NSString * _Nonnull)param;Parameters
Parameter | Type | Description |
param | String | Parameter kustom tersebut. |
getParameter
Mengambil parameter kustom.
- (NSString * _Nonnull)getParameter:(NSString * _Nonnull)param;Parameters
Parameter | Type | Description |
param | String | Parameter kustom. |
enableAudioFrameObserver
Mengatur parameter untuk callback audio.
- (int)enableAudioFrameObserver:(bool)enable audioSource: (AliRtcAudioSource)audioSource config:(AliRtcAudioFrameObserverConfig*_Nullable)config;Anda dapat memanggil metode ini untuk mengaktifkan atau menonaktifkan callback untuk jenis data audio tertentu. Hal ini memungkinkan Anda memperoleh berbagai jenis data audio mentah dan terenkripsi. Secara default, callback ini dinonaktifkan.
Jika Anda mengaktifkan callback data audio untuk AliRtcAudioSource tertentu, Anda juga harus memanggil metode registerAudioFrameObserver untuk meneruskan objek yang menerima data audio tersebut.
Kapan dipanggil
Panggil metode ini saat Anda perlu memperoleh data audio.
Parameter
Parameter | Tipe | Deskripsi |
enable | bool | Menentukan apakah akan mengaktifkan callback data. |
audioSource | Jenis sumber data untuk callback. | |
config | AliRtcAudioFrameObserverConfig | Pengaturan parameter callback. |
registerAudioFrameObserver
Mendaftarkan pengamat untuk data audio mentah.
- (int)registerAudioFrameObserver:(id<AliRtcAudioFrameDelegate> _Nullable)observer;Gunakan metode ini untuk mendaftarkan objek pengamat yang menerima callback data audio.
Kapan dipanggil
Panggil metode ini untuk mendaftarkan pengamat yang menerima data audio ketika Anda ingin SDK memicu callback untuk berbagai jenis data audio. Callback tersebut mencakup onCapturedAudioFrame, onProcessCapturedAudioFrame, onPublishAudioFrame, onPlaybackAudioFrame, dan onRemoteUserAudioFrame. Untuk membatalkan pendaftaran pengamat, panggil kembali metode ini dan berikan nil.
Batasan
Anda harus memanggil enableAudioFrameObserver untuk mengaktifkan callback untuk AliRtcAudioSource tertentu. Jika tidak, pengamat yang terdaftar tidak dapat menerima data.
Parameter
Parameter | Tipe | Deskripsi |
observer | AliRtcAudioFrameDelegate | Objek callback untuk data audio. |
registerVideoSampleObserver
Mendaftarkan observer untuk data video mentah.
- (void)registerVideoSampleObserver;unRegisterVideoSampleObserver
Anda dapat membatalkan pendaftaran keluaran data video.
- (void)unregisterVideoSampleObserver;setLogDirPath
Mengatur jalur penyimpanan untuk file log SDK.
Panggil metode ini sebelum memanggil metode SDK lainnya untuk mencegah kehilangan log. Pastikan folder yang ditentukan ada dan dapat ditulis.
+ (int)setLogDirPath:(NSString *_Nullable)logDirPath;Parameters
Name | Type | Description |
logDirPath | NSString *_Nullable | Jalur mutlak untuk menyimpan file log.
|
Return value
Nilai 0 menunjukkan bahwa pemanggilan berhasil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.
setLogLevel
Mengatur tingkat log.
- (void)setLogLevel:(AliRtcLogLevel)logLevel;Parameters
Name | Type | Description |
logLevel | Tingkat log. Nilai default adalah AliRtcLogLevelInfo. |
setAudioSessionOperationRestriction
Menetapkan izin bagi kit pengembangan perangkat lunak (SDK) untuk mengoperasikan AVAudioSession.
- (int)setAudioSessionOperationRestriction:(AliRtcAudioSessionOperationRestriction)restriction;Parameters
Name | Type | Description |
restriction | Izin kontrol untuk SDK. Nilai default-nya adalah AliRtcAudioSessionOperationRestrictionNone. |
setDeviceOrientationMode
Mengatur orientasi perangkat.
- (int)setDeviceOrientationMode:(AliRtcOrientationMode)mode;Parameters
Name | Type | Description |
mode | Orientasi perangkat. |
Return value
Mengembalikan nilai 0 jika berhasil. Nilai bukan nol menunjukkan kegagalan.
getNetworkTime
Mengambil waktu dari timeline.
-(long long)getNetworkTime;Nilai kembalian
Timestamp.
sendDataChannelMessage
-(int) sendDataChannelMessage:(AliRtcDataChannelMsg* _Nonnull)controlMsg;Kit pengembangan perangkat lunak (SDK) Alibaba Real-Time Communication (ARTC) memungkinkan Anda mengirim dan menerima pesan kustom. Anda dapat mengirim data real-time kustom, seperti instruksi kontrol atau data sinkronisasi status, selama transmisi audio dan video. Panggil operasi ini untuk mengirim pesan kustom. Untuk informasi selengkapnya, lihat Kirim dan terima pesan kustom.
Saluran pesan kustom dinonaktifkan secara default. Untuk menggunakan fitur ini, panggil API
setParameterdan atur parameter menjadi `"{\"data\":{\"enablePubDataChannel\":true" + ",\"enableSubDataChannel\":true}}"`. Anda dapat melakukan hal ini baik sebelum maupun setelah bergabung ke saluran.Pesan dapat berupa data jenis apa pun, seperti teks atau citra.
Callback terkait
Callback `onRemoteUserSubscribedDataChannel` dipicu ketika pengguna jarak jauh berlangganan ke saluran data. Setelah Anda menerima callback ini, Anda dapat mengirim pesan saluran data kepada pengguna tersebut.
Setelah pengirim mengaktifkan saluran pesan kustom, mereka dapat memanggil operasi ini untuk mengirim pesan kustom. Penerima menerima pesan tersebut melalui callback
onDataChannelMessage.
Kapan harus dipanggil
Panggil operasi ini setelah Anda menerima callback `onRemoteUserSubscribedDataChannel`. Callback ini menunjukkan bahwa pengguna jarak jauh telah memanggil `setParameter` dan mengaktifkan `enableSubDataChannel` untuk menerima pesan saluran data.
Batasan penggunaan
Pengguna dengan peran streamer dapat mengirim dan menerima pesan. Pengguna dengan peran viewer hanya dapat menerima pesan.
Anda harus memanggil `setParameter` untuk mengaktifkan saluran pesan kustom.
Parameter
Nama | Tipe | Deskripsi |
controlMsg | Pesan kontrol yang menyertainya. |
Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
startScreenShare
Memulai berbagi layar dan aliran audio.
- (int)startScreenShare:(NSString * _Nonnull)appGroup
mode:(AliRtcScreenShareMode)mode;Parameters
Name | Description |
appGroup | Nama paket aplikasi, seperti @"group.com.aliyun.rtc.demo". |
mode | Jenis berbagi layar. Untuk informasi selengkapnya, lihat AliRtcScreenShareMode. |
Return value
Nilai 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.
startScreenShare
Memulai berbagi aliran video layar.
Metode ini sudah tidak digunakan lagi. Gunakan metode startScreenShare yang baru.
- (int)startScreenShare;Returns
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan kegagalan.
stopScreenShare
Menghentikan aliran berbagi layar dan aliran audio yang terkait.
- (int)stopScreenShare;Nilai kembalian
0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan gagal.
isScreenSharePublished
Memeriksa apakah aliran berbagi layar telah dipublikasikan.
- (BOOL)isScreenSharePublished;Nilai kembalian
true: Aliran berbagi layar telah dipublikasikan. false: Aliran berbagi layar belum dipublikasikan.
setScreenShareEncoderConfiguration
Mengatur konfigurasi penyandi untuk berbagi layar.
- (void)setScreenShareEncoderConfiguration:(AliRtcScreenShareEncoderConfiguration* _Nonnull)config;Metode ini mengatur parameter video untuk aliran berbagi layar, seperti resolusi, laju frame, bitrate, dan orientasi video. Semua parameter memiliki rentang nilai yang valid, dan SDK secara otomatis menyesuaikan parameter apa pun yang diatur di luar rentang validnya. Anda dapat memanggil metode ini sebelum atau setelah bergabung ke saluran. Jika Anda hanya perlu mengatur parameter-parameter ini sekali per sesi, panggil metode ini sebelum bergabung ke saluran.
Parameters
Name | Type | Description |
config | Parameter pengkodean video untuk berbagi layar, seperti resolusi, laju frame, bitrate, dan orientasi video. |
setAudioShareAppVolume
Mengatur volume aliran audio yang dibagikan.
- (int)setAudioShareAppVolume:(int)volume;Parameters
Name | Description |
volume | Tingkat volume. Nilainya berkisar dari 0 hingga 100. Nilai default adalah 50. |
Return value
Nilai kembali 0 menunjukkan bahwa pemanggilan metode berhasil. Nilai lainnya menunjukkan bahwa pemanggilan metode gagal.