Topik ini menjelaskan antarmuka yang disediakan oleh ApsaraVideo Real-time Communication iOS SDK.
Direktori
Metode Dasar
API | Deskripsi |
Membuat instans AliRtcEngine. Ini adalah metode singleton. | |
Menghancurkan instans AliRtcEngine secara sinkron. | |
Menghancurkan instans AliRtcEngine secara asinkron. | |
Menentukan apakah akan mengaktifkan mode kompatibilitas HTML5. | |
Memeriksa apakah lingkungan saat ini kompatibel dengan HTML5. | |
Mendapatkan nomor versi SDK. |
Metode terkait Channel
API | Deskripsi |
Menetapkan mode channel. | |
Menetapkan profil audio. | |
Memeriksa apakah mode hanya audio diaktifkan. | |
Mengaktifkan mode hanya audio atau mode audio-video. | |
Bergabung ke channel. | |
Bergabung ke channel. | |
Bergabung ke channel. | |
Meninggalkan saluran. | |
Memeriksa apakah pengguna berada di dalam channel. | |
Menentukan peran pengguna. | |
Memeriksa peran pengguna. | |
Memperbarui informasi autentikasi. | |
Memperbarui informasi autentikasi. |
Metode terkait Penerbitan dan Langganan
API | Deskripsi |
Menentukan apakah akan menerbitkan track audio. Secara default, track audio diterbitkan. | |
Memeriksa apakah track audio diterbitkan. | |
Menentukan apakah akan berlangganan ke track audio pengguna remote. Secara default, semua track audio remote berlangganan. Kami menyarankan Anda memanggil metode ini sebelum pengguna bergabung ke channel. | |
Berlangganan atau berhenti berlangganan track audio pengguna remote tertentu. | |
Berlangganan atau berhenti berlangganan track audio semua pengguna remote. | |
Menentukan apakah akan menerbitkan track video. | |
Memeriksa apakah track video diterbitkan. | |
Menentukan apakah akan berlangganan ke track video pengguna remote. Secara default, semua track video remote berlangganan. Kami menyarankan Anda memanggil metode ini sebelum pengguna bergabung ke channel. | |
Berlangganan atau berhenti berlangganan track video pengguna remote. | |
Berlangganan atau berhenti berlangganan track video semua pengguna remote. | |
Anda dapat menghentikan atau melanjutkan stream media pengguna remote tertentu. Kami menyarankan Anda memanggil metode ini ketika track audio dan video tersedia dan perlu dikelola. | |
Anda dapat menghentikan atau melanjutkan stream media untuk pengguna remote tertentu. Kami menyarankan Anda memanggil metode ini ketika track audio dan video tersedia dan perlu dikelola. | |
Anda dapat menghentikan atau melanjutkan stream media pengguna remote tertentu lintas channel. | |
Berlangganan ke stream semua pengguna di channel target. | |
Menetapkan volume audio pengguna remote. |
Metode terkait manajemen perangkat audio
API | Deskripsi |
Menentukan apakah akan membisukan audio lokal. | |
Menentukan apakah akan menghentikan pemutaran track audio pengguna remote tertentu. | |
Menentukan apakah akan menghentikan pemutaran track audio semua pengguna remote. | |
Memulai pengumpulan audio. | |
Memulai pengumpulan audio. | |
Menghentikan pengumpulan audio. | |
Menetapkan headset atau speaker sebagai perangkat output audio. | |
Memeriksa apakah perangkat output audio saat ini adalah headset atau speaker. | |
Mengaktifkan deteksi volume. | |
Mengaktifkan pemantauan in-ear. | |
Menetapkan volume untuk pemantauan in-ear. Metode ini hanya berlaku untuk iOS. | |
Memulai pemutaran audio. | |
Menghentikan pemutaran audio. | |
Menetapkan volume pemutaran. | |
Menetapkan volume pengambilan. | |
Memulai pengujian perangkat pemutaran audio. | |
Menghentikan pengujian perangkat pemutaran audio. | |
Memulai pengujian perangkat pengambilan audio. | |
Menghentikan pengujian perangkat pengambilan audio. | |
Menetapkan perangkat output audio default. |
Metode terkait perubahan suara dan gema
API | Deskripsi |
Menetapkan mode perubahan suara. | |
Anda dapat menetapkan parameter penyesuaian pitch. | |
Menetapkan mode gema. | |
Menetapkan parameter mode gema. | |
Menetapkan mode efek pemercantik suara yang telah ditentukan sebelumnya. | |
Menetapkan parameter equalizer audio (EQ) untuk menyesuaikan gain pada pita frekuensi tertentu. |
Input Audio Kustom
API | Deskripsi |
Menambahkan track audio eksternal. | |
Mengimpor data audio eksternal. | |
Menetapkan volume audio eksternal untuk ingest stream. | |
Memeriksa volume audio eksternal untuk ingest stream. | |
Menetapkan volume pemutaran audio eksternal. | |
Memeriksa volume pemutaran audio eksternal. | |
Hapus pengambilan aliran eksternal. |
Akompanimen Audio
API | Deskripsi |
Mendapatkan informasi file akompanimen audio. | |
Memulai pemutaran file akompanimen. | |
Menghentikan pemutaran file akompanimen. | |
Menetapkan volume akompanimen. | |
Menetapkan volume untuk menerbitkan file akompanimen. | |
Mendapatkan volume untuk menerbitkan file akompanimen. | |
Menetapkan volume pemutaran file akompanimen. | |
Mendapatkan volume pemutaran file akompanimen. | |
Menjeda pemutaran akompanimen. | |
Melanjutkan pemutaran akompanimen. | |
Mendapatkan durasi file akompanimen. | |
Mendapatkan posisi pemutaran saat ini dari file akompanimen. | |
Menetapkan posisi pemutaran file akompanimen. |
File Efek Suara
API | Deskripsi |
Memuat awal efek suara. | |
Menghapus efek suara yang telah dimuat sebelumnya. | |
Memulai pemutaran efek suara. | |
Menghentikan pemutaran efek suara. | |
Menghentikan pemutaran semua efek suara. | |
Menjeda pemutaran efek suara. | |
Menjeda pemutaran semua efek suara. | |
Melanjutkan pemutaran efek suara. | |
Anda dapat memulihkan semua file efek suara. | |
Menetapkan volume efek suara untuk ingest stream. | |
Memeriksa volume efek suara untuk ingest stream. | |
Menetapkan volume semua efek suara untuk ingest stream. | |
Menetapkan volume efek suara untuk pemutaran lokal. | |
Memeriksa volume efek suara untuk pemutaran lokal. | |
Menetapkan volume semua efek suara untuk pemutaran lokal. |
Rekam file audio dan video
API | Deskripsi |
Merekam file audio dan video dalam format AAC, WAV, atau MP4. | |
Menghentikan perekaman file audio dan video. |
Metode terkait manajemen perangkat video
API | Deskripsi |
Menetapkan tampilan rendering dan parameter gambar untuk pratinjau lokal. | |
Menetapkan preferensi pengumpulan kamera. | |
Menonaktifkan atau mengaktifkan kembali pengumpulan video lokal. | |
Menentukan apakah akan menghentikan penerbitan track video lokal. | |
Menetapkan tampilan rendering dan parameter gambar untuk track video pengguna remote. | |
Memeriksa apakah kamera menyala. | |
Menetapkan properti pengkodean video. | |
Menetapkan properti decoding video. | |
Beralih antara kamera depan dan belakang. Secara default, kamera depan digunakan. | |
Anda dapat memperoleh arah kamera saat ini. | |
Memulai pratinjau lokal. | |
Menghentikan pratinjau lokal. | |
Menetapkan zoom kamera. | |
Mendapatkan faktor zoom maksimum kamera. | |
Mengambil rasio penskalaan maksimum kamera. | |
Menetapkan eksposur kamera. | |
Mendapatkan eksposur kamera. | |
Mendapatkan tingkat eksposur kamera minimum. | |
Mendapatkan tingkat eksposur kamera maksimum. | |
Menetapkan mode flash kamera. | |
Memeriksa apakah fokus manual didukung. | |
Memeriksa apakah pengaturan titik eksposur didukung. | |
Menetapkan titik fokus manual untuk kamera. | |
Menetapkan titik eksposur kamera. | |
Memeriksa apakah fokus otomatis wajah didukung. | |
Mengaktifkan atau menonaktifkan fokus otomatis wajah. | |
Mengatur pencerminan untuk pratinjau lokal dan pengambilan aliran. | |
Menetapkan kapan penskalaan terjadi dalam pipeline pengambilan video—baik selama pengambilan atau selama pengkodean. |
Konfigurasikan callback data video
API | Deskripsi |
Mendaftarkan callback data video. | |
Membatalkan pendaftaran callback data video. | |
Mendaftarkan callback tekstur video. | |
Membatalkan pendaftaran callback tekstur video. | |
Mengambil snapshot dari feed kamera. | |
Mendaftarkan callback untuk mengekspor data video. | |
Membatalkan pendaftaran callback untuk mengekspor data video. |
Konfigurasikan callback data audio
API | Deskripsi |
Mengonfigurasi pengaturan callback audio. | |
Mendaftarkan callback audio. |
Input Video Kustom
API | Deskripsi |
Menentukan apakah akan mengaktifkan sumber video eksternal. | |
Memasukkan data video. |
Antarmuka Berbagi Layar Desktop
API | Deskripsi |
Memulai ingest stream berbagi layar. | |
Memulai ingest stream berbagi layar. Catatan Metode ini akan dihentikan. | |
Menghentikan ingest stream untuk berbagi layar. | |
Menetapkan volume stream audio bersama. | |
Memeriksa apakah stream berbagi layar sedang diterbitkan. | |
Mengonfigurasi parameter pengkodean berbagi layar. |
Antarmuka Bypass Streaming Langsung
API | Deskripsi |
Memulai streaming langsung yang direlay. | |
Memperbarui parameter untuk streaming langsung yang direlay. | |
Menghentikan streaming langsung yang direlay. | |
Memeriksa status streaming langsung yang direlay. |
Antarmuka Probe Kualitas Jaringan
API | Deskripsi |
Memulai pengujian kualitas jaringan. | |
Menghentikan pengujian kualitas jaringan. |
SEI
API | Deskripsi |
Mengirim pesan SEI. | |
Mengirim pesan SEI (extended). |
API Lainnya
API | Deskripsi |
Menetapkan parameter kustom. | |
Memeriksa parameter kustom. | |
Menetapkan jalur untuk menyimpan file log SDK. | |
Menetapkan tingkat log. | |
Menentukan apakah SDK memiliki izin untuk mengontrol AVAudioSession. | |
Menetapkan orientasi perangkat. | |
Mendapatkan timestamp jaringan. | |
Mengirim pesan saluran data. |
Metode AliveEnv
API | Deskripsi |
Menetapkan lingkungan global. |
Callbacks
AliRtcEngineDelegate
API | Deskripsi |
Callback yang dipanggil ketika status koneksi jaringan berubah. Perhatikan callback ini. | |
Callback yang dipanggil ketika terjadi pengecualian perangkat lokal. Perhatikan callback ini. | |
Callback yang dipanggil ketika autentikasi pengguna akan segera kedaluwarsa. Autentikasi kedaluwarsa 30 detik setelah Anda menerima callback ini. Perhatikan callback ini. | |
Ketika Anda memanggil API yang memerlukan autentikasi, server mengembalikan pesan yang menunjukkan bahwa autentikasi telah kedaluwarsa. | |
Callback yang dipanggil untuk mengembalikan hasil bergabung ke channel. | |
Callback yang dipanggil untuk mengembalikan hasil keluar dari channel. | |
Notifikasi offline untuk pengguna remote. | |
Notifikasi bahwa pengguna remote sedang online. | |
Notifikasi untuk ingest stream remote. | |
Pesan yang dikirim ketika Anda diputuskan oleh server atau channel berakhir setelah pertemuan selesai. | |
Notifikasi status ingest stream audio. | |
Notifikasi status pulling stream audio. | |
Notifikasi untuk pembisuan pengguna remote. | |
Notifikasi dimulainya gangguan perangkat audio. | |
Callback yang dipanggil ketika gangguan perangkat audio berakhir. | |
Callback yang dipanggil ketika status ingest stream untuk track video berubah. | |
Callback yang dipanggil ketika status langganan ke track video berubah. | |
Callback yang dipanggil ketika pengguna remote mengirim frame hitam untuk track video. | |
Pengguna remote menghentikan pengiriman stream kamera dan mengirim notifikasi. | |
Aplikasi pengguna remote berpindah ke latar belakang. | |
Aplikasi pengguna remote kembali ke latar depan. | |
Callback yang dipanggil ketika pemutaran lokal efek suara berakhir. | |
Volume audio yang berlangganan, status suara, dan UID. | |
Callback yang dipanggil ketika pengguna aktif terdeteksi berbicara. | |
Callback yang dipanggil ketika status streaming langsung yang direlay berubah. | |
Callback yang dipanggil ketika status tugas streaming langsung yang direlay berubah. | |
Callback yang dipanggil ketika kualitas jaringan berubah. | |
Callback untuk hasil probing kualitas jaringan. | |
Callback yang dipanggil untuk mengembalikan hasil probing kualitas jaringan. | |
Callback yang dipanggil ketika terjadi kesalahan di engine. Gunakan callback ini untuk memberi tahu aplikasi Anda. | |
Callback yang dipanggil ketika paket audio pertama dikirim. | |
Callback yang dipanggil ketika frame video pertama diterima. | |
Callback yang dipanggil ketika paket video pertama dikirim. | |
Callback yang dipanggil ketika paket audio pertama diterima. | |
Callback yang dipanggil ketika frame audio remote pertama didekodekan. | |
Callback yang dipanggil ketika frame video pertama dari pengguna remote dirender. | |
Callback yang dipanggil ketika frame video lokal pertama dirender selama pratinjau. | |
Callback volume untuk pengujian pengambilan audio sebelum panggilan. | |
Callback yang dipanggil ketika status pemutaran akompanimen lokal berubah. | |
Callback yang dipanggil ketika pengguna remote mulai memutar akompanimen. | |
Callback yang dipanggil ketika pengguna remote selesai memutar akompanimen. | |
Callback statistik real-time, dipicu setiap dua detik. | |
Statistik performa video lokal (dipicu setiap 2 detik). | |
Statistik performa video remote (dipicu setiap 2 detik). | |
Callback statistik audio lokal, dipicu setiap dua detik. | |
Menyediakan statistik audio remote. Event ini dipicu setiap 2 detik. | |
Callback yang dipanggil ketika pesan ekstensi media diterima. | |
Callback yang dipanggil ketika rute audio berubah. | |
Callback penyelesaian snapshot. | |
Callback yang dipanggil ketika status perangkat pengambilan audio lokal berubah. | |
Callback yang dipanggil ketika status perangkat pengambilan video lokal berubah. | |
Callback yang dipanggil ketika Anda dapat mulai mengirim pesan saluran data. | |
Callback pesan saluran data. | |
Callback yang dipanggil ketika status ingest stream berbagi layar berubah. |
AliRtcAudioFrameDelegate
API | Deskripsi |
Callback untuk data audio mentah yang diambil. | |
Callback untuk data audio setelah pemrosesan 3A. | |
Callback data ingest stream. | |
Callback untuk data pemutaran audio. | |
Callback untuk data stream audio pengguna remote. |
AliRtcEngineDestroyDelegate
API | Deskripsi |
Callback yang dipanggil ketika engine dihancurkan. Engine sepenuhnya dilepas hanya setelah callback ini selesai. |
AliRtcTextureDelegate
API | Deskripsi |
Callback pembuatan konteks OpenGL. | |
Callback pembaruan tekstur OpenGL. | |
Callback penghancuran konteks OpenGL. |
AliRtcVideoFrameDelegate
API | Deskripsi |
Callback untuk frame video yang diambil. | |
Callback untuk data video lokal sebelum pengkodean. | |
Callback untuk data video remote. | |
Format output data video. | |
Posisi output data video. |
Rincian
sharedInstance
Membuat instans AliRtcEngine menggunakan pola singleton.
+ (instancetype _Nonnull )sharedInstance:(id<AliRtcEngineDelegate>_Nullable)delegate extras:(NSString *_Nullable)extras;Kapan Harus Menghubungi
Panggil metode ini sebelum memanggil API SDK ARTC lainnya untuk membuat instans AliRtcEngine.
Batasan
Metode ini bersifat sinkron dan harus dipanggil pada thread utama.
SDK hanya mendukung satu instans AliRtcEngine per aplikasi.
Callback terkait
Implementasikan callback di AliRtcEngineDelegate sesuai kasus penggunaan Anda saat membuat instans engine. Jika SDK mengalami pengecualian selama operasi, SDK terlebih dahulu mencoba pemulihan internal secara otomatis. Untuk kesalahan yang tidak dapat diselesaikan secara internal, SDK memberi tahu aplikasi Anda melalui callback yang telah ditentukan. Berikut adalah callback utama yang memerlukan penanganan tingkat aplikasi:
Akar penyebab | Callback dan parameter | Solusi | Catatan |
Autentikasi gagal | Callback onJoinChannelResult mengembalikan AliRtcErrJoinBadToken. | Periksa apakah token valid ketika kesalahan ini terjadi. | Ketika pengguna secara eksplisit memanggil API dan autentikasi gagal, kesalahan dikembalikan dalam callback API. |
Koneksi jaringan gagal | Callback onConnectionStatusChange mengembalikan AliRtcConnectionStatusFailed. | Bergabung kembali ke channel ketika kesalahan ini terjadi. | SDK memiliki kemampuan pemulihan jaringan bawaan. Namun, jika pemutusan koneksi melebihi ambang batas timeout yang telah ditentukan, SDK memicu timeout dan memutuskan koneksi. Dalam hal ini, periksa status jaringan dan pandu pengguna untuk bergabung kembali ke channel. |
Pengecualian perangkat lokal | onLocalDeviceException | Periksa izin dan status perangkat keras ketika kesalahan ini terjadi. | ARTC mendukung deteksi dan diagnostik perangkat. Ketika terjadi pengecualian perangkat lokal, ARTC memberi tahu aplikasi Anda melalui callback. Jika SDK tidak dapat menyelesaikan masalah tersebut, aplikasi Anda harus turun tangan untuk memverifikasi kesehatan perangkat. |
Dikeluarkan dari channel | onBye |
| ARTC memberikan administrator kemampuan untuk secara aktif menghapus peserta. |
Autentikasi akan segera kedaluwarsa | onWillAuthInfoExpire | Ketika pengecualian ini terjadi, aplikasi harus terlebih dahulu mendapatkan kembali informasi autentikasi terbaru dan kemudian memanggil refreshAuthInfo. | Kedaluwarsa autentikasi terjadi dalam dua kasus: ketika pengguna memanggil API atau selama eksekusi program. Oleh karena itu, kesalahan dilaporkan baik dalam callback API maupun melalui callback kesalahan khusus. |
Autentikasi kedaluwarsa | onAuthInfoExpired | Bergabung kembali ke channel ketika kesalahan ini terjadi. | Kedaluwarsa autentikasi terjadi dalam dua kasus: ketika pengguna memanggil API atau selama eksekusi program. Oleh karena itu, kesalahan dilaporkan baik dalam callback API maupun melalui callback kesalahan khusus. |
Parameter
Nama | Tipe | Deskripsi |
delegate | id<AliRtcEngineDelegate>_Nullable | Delegate yang mendengarkan event callback. |
extras | NSString *_Nullable | Gunakan untuk menerima parameter rilis skala abu-abu dari pelanggan. Mengonfigurasi fitur SDK khusus menggunakan string JSON. Dapat berupa string kosong. |
destroy[1/2]
Menghancurkan instans AliRtcEngine.
+ (void)destroy;Menghancurkan objek singleton AliRtcEngine. Setelah Anda memanggil metode ini, semua resource yang digunakan secara internal dilepas. Anda tidak dapat menggunakan metode atau callback AliRtcEngine lainnya. Untuk menggunakan AliRtcEngine lagi, Anda harus memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#2db21d4f16s77" id="96631a9306wq8">sharedInstance</a> untuk membuat instans baru.
Metode ini dan destroy[2/2] sama-sama menghancurkan instans engine, tetapi perbedaannya adalah destroy[2/2] memungkinkan Anda meneruskan objek monitor untuk penyelesaian penghancuran.
Jika Anda berencana membuat kembali instans AliRtcEngine, pastikan metode ini selesai sebelum melakukannya.
Setelah memanggil metode ini, atur objek engine ke nil.
Waktu Menghubungi
Panggil metode ini untuk melepas instans setelah komunikasi real-time berakhir (yaitu, ketika Anda tidak lagi memerlukan fungsi AliRtcEngine). Hal ini mengurangi penggunaan resource yang tidak perlu.
Batasan
Untuk menghindari deadlock, jangan panggil metode ini dari dalam callback SDK apa pun.
destroy[2/2]
Menghancurkan instans AliRtcEngine.
+ (void)destroy:(id<AliRtcEngineDestroyDelegate>_Nullable)delegate;Menghancurkan objek singleton AliRtcEngine. Setelah Anda memanggil metode ini, semua resource yang digunakan secara internal oleh objek dilepas. Anda tidak dapat menggunakan metode atau callback AliRtcEngine lainnya. Untuk menggunakan AliRtcEngine lagi, Anda harus memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#2db21d4f16s77" id="115fd691743nx">sharedInstance</a> untuk membuat instans baru.
Baik destroy[1/2] maupun metode ini melepas instans AliRtcEngine. Namun, metode ini bersifat asinkron dan menerima observer untuk memantau penyelesaiannya. Anda hanya dapat membuat instans baru dengan aman setelah onDestroyCompletion dipanggil.
Kapan harus memanggil
Kami menyarankan memanggil metode ini untuk melepas instans setelah menyelesaikan komunikasi real-time.
Batasan
Untuk menghindari deadlock, jangan panggil metode ini dari dalam callback SDK apa pun.
Parameter
Nama | Tipe | Deskripsi |
delegate | Observer yang menerima callback penyelesaian. |
setH5CompatibleMode
Menentukan apakah akan mengaktifkan mode kompatibilitas HTML5.
Anda tidak dapat memodifikasi pengaturan kompatibilitas HTML5 untuk versi saat ini setelah membuat instans AliRtcEngine. Anda harus memanggil metode ini sebelum membuat instans AliRtcEngine.
+ (void)setH5CompatibleMode:(BOOL)comp;Parameter
Nama | Tipe | Deskripsi |
comp | BOOL | Nilai YES mengaktifkan mode kompatibilitas HTML5. Nilai NO menonaktifkan mode kompatibilitas HTML5. Nilai default: NO. |
getH5CompatibleMode
Memeriksa apakah mode kompatibilitas HTML5 diaktifkan.
+ (BOOL)getH5CompatibleMode;Deskripsi Pengembalian
Nilai YES menunjukkan bahwa mode kompatibilitas HTML5 diaktifkan. Nilai NO menunjukkan bahwa mode kompatibilitas HTML5 dinonaktifkan.
getSdkVersion
Mengambil nomor versi SDK.
+ (NSString *_Nonnull)getSdkVersion;Nilai kembali
Nomor versi SDK saat ini sebagai string, misalnya: "2.5.0.x".
Catatan
Ini adalah metode statis. Anda dapat memanggilnya kapan saja untuk mengambil nomor versi.
setChannelProfile
Menetapkan mode channel.
- (int)setChannelProfile:(AliRtcChannelProfile)profile;Metode ini menetapkan profil channel. Tersedia dua profil utama:
Profil komunikasi: Semua pengguna bertindak sebagai streamer dan dapat menerbitkan serta berlangganan stream.
Profil streaming langsung interaktif: Anda harus memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#892915dd4edcy" id="d88dccff391by">setClientRole</a>untuk menetapkan peran klien. Tetapkan peran pengguna yang mengingest stream di channel sebagai streamer (AliRTCSdkInteractive). Jika pengguna hanya perlu menarik stream dan tidak mengingest stream, tetapkan perannya sebagai viewer (AliRTCSdkLive). Profil ini direkomendasikan untuk skenario RTC.
Kami merekomendasikan profil streaming langsung interaktif untuk semua skenario RTC. Tetapkan profil ke
AliRTCSdkInteractiveLive.Semua pengguna di channel yang sama harus menggunakan profil channel yang sama.
Kapan dipanggil
Anda hanya dapat memanggil metode ini sebelum bergabung ke channel. Anda tidak dapat mengubah profil saat berada di channel. Anda dapat mengubahnya setelah meninggalkan channel.
Parameter
Nama | Tipe | Deskripsi |
profile | Tipe channel. Untuk skenario RTC, kami merekomendasikan menyetelnya ke AliRtcChannelProfileInteractiveLive, yaitu mode streaming langsung interaktif. |
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
setAudioProfile
Menetapkan profil audio.
- (int)setAudioProfile:(AliRtcAudioProfile)audio_profile audio_scene:(AliRtcAudioScenario)audio_scene;Metode ini mengonfigurasi mode pengkodean audio dan skenario audio. Untuk informasi lebih lanjut, lihat Operasi dan konfigurasi audio umum. Secara default, SDK ARTC menggunakan mode audio berkualitas tinggi (AliRtcEngineHighQualityMode) dan mode skenario musik (AliRtcSceneMusicMode). Jika pengaturan default tidak memenuhi kebutuhan Anda, panggil metode ini untuk mengonfigurasinya.
Kapan Harus Menelepon
Anda hanya dapat memanggil metode ini sebelum bergabung ke channel. Anda tidak dapat mengubahnya setelah bergabung. Anda dapat mengubahnya setelah meninggalkan channel.
Parameter
Nama | Type | Deskripsi |
audio_profile | Parameter mode pengambilan atau pengkodean audio. Kami merekomendasikan mode berkualitas tinggi (AliRtcEngineHighQualityMode). Catatan Untuk interoperabilitas dengan klien Web, atur laju sampel ke 48 kHz.
| |
audio_scene | Parameter mode skenario audio. Opsi meliputi:
Catatan Jangan atur ini ke mode chatroom ( |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
isAudioOnly
Memeriksa apakah mode hanya audio diaktifkan.
- (BOOL)isAudioOnly;Deskripsi pengembalian
Nilai YES menunjukkan bahwa mode hanya audio diaktifkan. Nilai NO menunjukkan bahwa mode audio-video diaktifkan.
setAudioOnlyMode
Mengaktifkan mode hanya audio atau mode audio-video.
- (int)setAudioOnlyMode:(BOOL)audioOnly;Parameter
Nama | Jenis | Deskripsi |
audioOnly | BOOL |
|
Instruksi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
joinChannel[1/3]
Bergabung ke channel (yaitu, bergabung ke rapat).
- (int)joinChannel:(NSString *_Nonnull)token channelId:(NSString *_Nullable)channelId userId:(NSString *_Nullable)userId name:(NSString *_Nullable)userName onResultWithUserId:(void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed))onResult;Metode ini bergabung ke channel. ARTC mengorganisasi pengguna ke dalam channel. Pengguna harus bergabung ke channel untuk menerbitkan atau berlangganan stream audio dan video. Metode ini, bersama dengan joinChannel[2/3] dan joinChannel[3/3], dapat digunakan untuk bergabung ke channel. Perbedaannya terletak pada metode autentikasi dan informasi pengguna yang diteruskan:
Ini adalah metode bergabung parameter tunggal. Teruskan token yang dihasilkan menggunakan Autentikasi Token. Kami merekomendasikan metode ini untuk skenario RTC.
joinChannel[2/3]adalah metode bergabung parameter ganda. Teruskan token yang dihasilkan menggunakan Autentikasi Token, dan juga teruskan informasi pengguna yang digunakan untuk menghasilkan token.joinChannel[3/3]ditujukan untuk skenario interaksi real-time AI. Teruskan token parameter tunggal dan atur properti penggunacapabilityProfilesesuai skenario.
Secara default, ketika Anda bergabung ke channel, Anda berlangganan ke stream audio dan video semua pengguna lain di channel tersebut dan mendorong stream audio dan video Anda ke pengguna remote. Jika Anda ingin membatalkan langganan default, Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="2e9165006d7tz">setDefaultSubscribeAllRemoteAudioStreams</a> dan <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="96cf16cf8a4us">setDefaultSubscribeAllRemoteVideoStreams</a> sebelum memanggil API ini untuk menonaktifkan langganan ke stream audio atau video.
Kapan Harus Menghubungi
Panggil metode ini setelah membuat instans engine.
Batasan
Setelah berhasil bergabung ke channel, untuk bergabung ke channel lain di tengah sesi, Anda harus terlebih dahulu memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="37299758eavvg">leaveChannel</a>untuk meninggalkan channel saat ini dan memastikan bahwa Anda menerima callback<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="50039f328fdk7">onLeaveChannelResult</a>sebelum bergabung ke channel lagi.Metode ini hanya mendukung bergabung ke satu channel sekaligus.
Aplikasi dengan App ID berbeda tidak dapat berinteroperasi.
Tidak perlu memanggil metode ini ketika mencoba ulang setelah kegagalan bergabung.
Callback terkait
Setelah berhasil memanggil metode ini, callback berikut dipicu:
Hasil klien lokal bergabung ke channel dilaporkan melalui callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6d2a213d7sl2" id="903005c54be4d">onJoinChannelResult</a>.Setelah Anda berhasil bergabung ke channel, sisi remote memicu callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#634626babfq9x" id="4b11b846b1f4t">onRemoteUserOnLineNotify</a>.
Parameter
Parameter | Tipe | Deskripsi |
token | String | Informasi autentikasi untuk input parameter tunggal. |
channelId | String | ID channel yang akan digabung. Nilainya harus sama dengan ID channel yang digunakan untuk menghasilkan token. |
userId | String | ID pengguna yang ingin bergabung ke channel. Nilainya harus sama dengan ID pengguna yang digunakan untuk menghasilkan token. |
userName | String | Nama tampilan pengguna. Ini bukan ID pengguna. |
onResultWithUserId | void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed) | Callback ini dipanggil setelah antarmuka selesai dieksekusi. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
joinChannel[2/3]
Bergabung ke channel, yaitu sesi multipartisipan.
- (int)joinChannel:(AliRtcAuthInfo *_Nonnull)authInfo name:(NSString *_Nullable)userName onResultWithUserId:(void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed))onResult;Metode ini bergabung ke channel. ARTC mengorganisasi pengguna ke dalam channel. Pengguna harus bergabung ke channel untuk menerbitkan atau berlangganan stream audio dan video. Metode ini, bersama dengan joinChannel[1/3] dan joinChannel[3/3], dapat digunakan untuk bergabung ke channel. Perbedaannya terletak pada metode autentikasi dan informasi pengguna yang diteruskan:
joinChannel[1/3]adalah metode bergabung parameter tunggal. Teruskan token yang dihasilkan menggunakan Autentikasi Token. Kami merekomendasikan metode ini untuk skenario RTC.Ini adalah metode bergabung parameter ganda. Teruskan token yang dihasilkan menggunakan Autentikasi Token, dan juga teruskan informasi pengguna yang digunakan untuk menghasilkan token.
joinChannel[3/3]ditujukan untuk skenario interaksi real-time AI. Teruskan token parameter tunggal dan atur properti penggunacapabilityProfile.
Secara default, ketika Anda bergabung ke channel, Anda berlangganan ke stream audio dan video semua pengguna lain di channel tersebut dan mendorong stream audio dan video Anda ke pengguna remote. Untuk menonaktifkan langganan default, panggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="fb54669796mxq">setDefaultSubscribeAllRemoteAudioStreams</a>dan<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="abb190b699jg7">setDefaultSubscribeAllRemoteVideoStreams</a>sebelum memanggil antarmuka ini untuk menonaktifkan langganan ke stream audio atau video.Sebelum memanggil metode ini, lihat Autentikasi Token untuk menghasilkan token parameter ganda.
Batasan
Untuk beralih channel setelah bergabung ke satu, Anda harus terlebih dahulu memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="4283c6cc013bz">leaveChannel</a>untuk meninggalkan channel saat ini. Anda hanya dapat bergabung ke channel baru setelah menerima callback<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="9e6478b2f0hen">onLeaveChannelResult</a>.Metode ini hanya mendukung bergabung ke satu channel sekaligus.
Aplikasi dengan App ID berbeda tidak dapat berinteroperasi.
Callback terkait
Setelah berhasil memanggil metode ini, callback berikut dipicu:
Callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6d2a213d7sl2" id="df00346ea8928">onJoinChannelResult</a>mengembalikan hasil pengguna lokal bergabung ke channel.Setelah Anda berhasil bergabung ke channel, pengguna remote memicu callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#634626babfq9x" id="c3832e71e8vck">onRemoteUserOnLineNotify</a>.
Parameter
Nama | Jenis | Deskripsi |
authInfo | Informasi autentikasi. | |
userName | String | Nama tampilan pengguna. Ini bukan ID pengguna. |
onResultWithUserId | void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed) | Callback ini dipanggil ketika antarmuka selesai dieksekusi. |
joinChannel[3/3]
Bergabung ke channel.
- (int)joinChannel:(NSString *_Nonnull)token channelParam:(AliRtcChannelParam *_Nonnull)channelParam onResultWithUserId:(void(^_Nullable)(NSInteger errCode, NSString * _Nonnull channel, NSString * _Nonnull userId, NSInteger elapsed))onResult;Metode ini bergabung ke channel. ARTC mengorganisasi pengguna ke dalam channel. Pengguna harus bergabung ke channel untuk menerbitkan atau berlangganan stream audio dan video. Metode ini, bersama dengan joinChannel[1/3] dan joinChannel[2/3], dapat digunakan untuk bergabung ke channel. Perbedaannya terletak pada metode autentikasi dan informasi pengguna yang diteruskan:
joinChannel[1/3]adalah metode bergabung parameter tunggal untuk skenario RTC. Teruskan token yang dihasilkan menggunakan Autentikasi Token. Kami merekomendasikan metode ini untuk skenario RTC.joinChannel[2/3]adalah metode bergabung parameter ganda. Teruskan token yang dihasilkan menggunakan Autentikasi Token, dan juga teruskan informasi pengguna yang digunakan untuk menghasilkan token.Metode ini ditujukan untuk skenario interaksi real-time AI. Teruskan token parameter tunggal dan atur properti pengguna
capabilityProfile. Saat berkomunikasi dengan agen AI, atur ini keAliRtcCapabilityProfileAiHuman.
Jika tidak ada konfigurasi khusus yang diterapkan, ketika Anda bergabung ke channel, Anda berlangganan ke stream audio dan video semua pengguna lain di channel tersebut secara default, dan Anda mendorong stream audio dan video Anda ke pengguna remote secara default. Untuk menonaktifkan langganan default, panggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="ce6cfa82f9xzc">setDefaultSubscribeAllRemoteAudioStreams</a> dan <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="e65b420fd5kj6">setDefaultSubscribeAllRemoteVideoStreams</a> sebelum memanggil antarmuka ini untuk menonaktifkan langganan ke stream audio atau video.
Batasan
Setelah Anda berhasil bergabung ke channel, untuk bergabung ke channel lain, Anda harus terlebih dahulu memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="923190466431o">leaveChannel</a>untuk meninggalkan channel saat ini dan memastikan bahwa Anda menerima callback<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="dfd794c32covq">onLeaveChannelResult</a>sebelum Anda dapat bergabung ke channel lain.Metode ini hanya mendukung bergabung ke satu channel sekaligus.
Aplikasi dengan App ID berbeda tidak dapat berinteroperasi.
Tidak perlu memanggil metode ini ketika mencoba ulang setelah kegagalan bergabung.
Callback terkait
Setelah berhasil memanggil metode ini, callback berikut dipicu:
Hasil pengguna lokal bergabung ke channel dikembalikan oleh callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6d2a213d7sl2" id="f83d0aff9btwh">onJoinChannelResult</a>.Setelah Anda berhasil bergabung ke channel, pengguna remote memicu callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#634626babfq9x" id="aeef817be3a0b">onRemoteUserOnLineNotify</a>.
Parameter
Nama | Tipe | Deskripsi |
token | NSString* | Informasi autentikasi yang diperoleh dari AppServer. |
channelParam | Parameter untuk bergabung ke channel. | |
onResultWithUserId | void(^_Nullable)(NSInteger errCode,NSString * _Nonnull channel,NSInteger elapsed) | Callback ini dipanggil setelah antarmuka ini dieksekusi. |
leaveChannel
Meninggalkan channel.
- (int)leaveChannel;Setelah memanggil metode ini, SDK menghentikan komunikasi real-time dan meninggalkan channel saat ini.
Metode ini merupakan operasi asinkron. Ketika berhasil dipanggil, metode ini tidak langsung meninggalkan channel. Anda harus menunggu callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="e7c0222bacrpa">onLeaveChannelResult</a>sebelum channel benar-benar ditinggalkan.Setelah memanggil leaveChannel, hancurkan engine dan atur referensi engine ke nil.
Kapan Harus Menghubungi
Panggil metode ini ketika Anda perlu meninggalkan channel setelah bergabung.
Jika Anda telah bergabung ke channel dan perlu bergabung ke channel lain, panggil metode ini terlebih dahulu.
Callback terkait
Pengguna lokal: Setelah metode ini dipanggil, callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3721f1f2a3kpd" id="ea2e36a41csu0">onLeaveChannelResult</a>dipicu untuk melaporkan hasil meninggalkan channel.Sisi remote: Setelah Anda berhasil memanggil operasi ini, pengguna remote memicu callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#34876c27d7zv7" id="a50f534f21mew">onRemoteUserOffLineNotify</a>.
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
isInCall
Memeriksa apakah Anda berada di channel.
- (BOOL)isInCall;Deskripsi pengembalian
Nilai YES menunjukkan bahwa Anda berada di channel. Nilai NO menunjukkan bahwa Anda tidak berada di channel.
setClientRole
Menentukan peran pengguna.
- (int)setClientRole:(AliRtcClientRole)role;Metode ini menetapkan peran pengguna sebagai streamer atau viewer.
Dalam mode interaktif, sebelum bergabung ke channel:
Tetapkan peran pengguna sebagai streamer: SDK secara otomatis menerbitkan stream audio dan video lokal serta berlangganan ke stream pengguna streamer lainnya.
Tetapkan peran pengguna sebagai viewer: SDK tidak menerbitkan stream audio atau video lokal, tetapi berlangganan ke stream pengguna streamer lainnya.
Kapan dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel. Anda dapat menetapkan peran sebelum bergabung atau mengganti peran setelah bergabung.
Batasan
Metode ini hanya berlaku dalam mode interaktif, yaitu ketika Anda memanggil metode <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#fc9626a99f5kj" id="cd8138c77fv4r">setChannelProfile</a> dan menetapkan profil channel ke AliRtcInteractivelive.
Kami merekomendasikan menetapkan peran pengguna secara eksplisit sebelum bergabung dalam mode interaktif.
Parameter
Nama | Tipe | Deskripsi |
role | Peran pengguna. Nilai default adalah AliEngineClientRoleLive, yang menunjukkan viewer. Parameter ini hanya berlaku dalam mode non-komunikasi. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
getCurrentClientRole
Memeriksa peran pengguna. Metode ini hanya berlaku untuk iOS.
- (AliRtcClientRole)getCurrentClientRole;Nilai Kembali
Peran pengguna dikembalikan.
refreshAuthInfo
Memperbarui informasi autentikasi.
- (int)refreshAuthInfo:(AliRtcAuthInfo *_Nonnull)authInfo;Metode ini memperbarui informasi autentikasi. Token kedaluwarsa setelah periode tertentu, dan SDK akan gagal terhubung ke server setelah kedaluwarsa.
Metode ini dan refreshAuthInfoWithToken sama-sama memperbarui informasi autentikasi. Metode ini memperbarui token parameter ganda, sedangkan refreshAuthInfoWithToken memperbarui token parameter tunggal. Untuk pembuatan token, lihat Autentikasi Token.
Kapan harus memanggil
Dalam kasus berikut:
Ketika Anda menerima callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6766cdfb40z1a" id="c1cc6cbddb22o">onAuthInfoWillExpire</a>yang menunjukkan bahwa informasi autentikasi Anda akan segera kedaluwarsa, kami merekomendasikan agar Anda membuat ulang token di sisi server dan kemudian memanggil metode ini untuk meneruskan token baru.Jika Anda tidak memperbarui token tepat waktu, callback
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#b04cd67880ptu" id="13c9ccb2b6ghh">onAuthInfoExpired</a>dipicu untuk menunjukkan bahwa autentikasi telah kedaluwarsa. Pada titik ini, Anda harus membuat ulang token dan kemudian memanggiljoinChanneluntuk bergabung kembali ke channel.
Parameter
Nama | Tipe | Deskripsi |
authInfo | AliRtcAuthInfo *_Nonnull | Informasi autentikasi. |
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
refreshAuthInfoWithToken
Memperbarui informasi autentikasi.
- (int)refreshAuthInfoWithToken:(NSString *_Nonnull)token;Metode ini memperbarui token. Token kedaluwarsa setelah periode tertentu, dan SDK akan gagal terhubung ke server setelah kedaluwarsa.
Baik API ini maupun
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6a4495191bmd" id="eb171f6dc0n9p">refreshAuthInfo</a>digunakan untuk memperbarui informasi autentikasi. API ini memperbarui token untuk bergabung ke channel dengan parameter tunggal, sedangkanrefreshAuthInfomemperbarui token untuk bergabung ke channel dengan parameter ganda. Untuk informasi lebih lanjut tentang pembuatan token, lihat Autentikasi Token.Jika token tidak diperbarui tepat waktu, ini memicu
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#b04cd67880ptu" id="3fd3c64767aq8">onAuthInfoExpired</a>untuk memberi tahu bahwa autentikasi telah kedaluwarsa, pada titik mana Anda perlu memanggiljoinChanneluntuk bergabung kembali ke channel.
Kapan Harus Menghubungi
Kami merekomendasikan membuat ulang token di server Anda dan memanggil metode ini dengan token baru dalam kasus berikut:
Ketika Anda menerima callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6766cdfb40z1a" id="b1dbfcb71d5ys">onAuthInfoWillExpire</a> yang melaporkan bahwa informasi autentikasi akan segera kedaluwarsa.
Parameter
Nama | Tipe | Deskripsi |
token | NSString *_Nonnull | Informasi autentikasi untuk input parameter tunggal. |
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
publishLocalAudioStream
Menentukan apakah akan menerbitkan track audio.
- (int)publishLocalAudioStream:(BOOL)enable;Metode ini mengontrol apakah akan menerbitkan audio yang diambil secara lokal. Secara default, SDK menerbitkan audio. Jika Anda tidak ingin menerbitkan audio secara default, panggil publishLocalAudioStream(false) sebelum bergabung ke channel.
Kapan Harus Menelepon
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel. Memanggilnya sebelum bergabung memodifikasi konfigurasi default dan berlaku saat bergabung.
Callback terkait
Ketika status ingest stream audio lokal berubah, klien lokal memicu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#86b2d8735bm71" id="e5ef180ba6e2i">onAudioPublishStateChanged</a> untuk melaporkan status ingest terbaru, dan klien remote memicu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6da9cf330aoer" id="299ef35806ttb">onRemoteTrackAvailableNotify</a> untuk melaporkan perubahan pada stream audio dan video pengguna remote.
Parameter
Nama | Tipe | Deskripsi |
enable | boolean |
|
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
isLocalAudioStreamPublished
Memeriksa apakah track audio diterbitkan.
- (BOOL)isLocalAudioStreamPublished;Deskripsi Pengembalian
YES menunjukkan bahwa push diizinkan. NO menunjukkan bahwa push tidak diizinkan.
setDefaultSubscribeAllRemoteAudioStreams
Menetapkan perilaku default untuk menerima stream audio.
- (int)setDefaultSubscribeAllRemoteAudioStreams:(BOOL)sub;Metode ini mengonfigurasi apakah sistem berlangganan ke track audio pengguna remote secara default. Pengaturan ini memengaruhi perilaku langganan untuk pengguna yang bergabung ke channel nanti. Kecuali Anda memiliki persyaratan khusus, atur ini ke true.
Kapan Harus Menghubungi
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel.
Sebelum bergabung:
SDK berlangganan ke track audio pengguna remote secara default ketika bergabung ke channel. Untuk mengubah perilaku ini, panggil metode ini sebelum bergabung.
Setelah bergabung:
Jika Anda ingin menghentikan langganan default, Anda dapat memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="a467e60e4eyhk">setDefaultSubscribeAllRemoteAudioStreams</a>(false). Sistem tidak akan berlangganan ke stream audio dari pengguna yang bergabung ke channel nanti.Setelah Anda menghentikan langganan default, jika Anda ingin melanjutkan berlangganan ke stream audio pengguna tertentu, panggil API
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#c8249fb568gms" id="9806dd9a750pf">subscribeRemoteAudioStream</a>. Jika Anda ingin melanjutkan berlangganan untuk beberapa pengguna, panggil beberapa kali.Setelah Anda menghentikan langganan default, memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="9507d6d3121uh">setDefaultSubscribeAllRemoteAudioStreams</a>(true)hanya melanjutkan stream audio pengguna yang bergabung ke channel setelahnya, dan tidak berlangganan ke stream audio pengguna remote yang telah bergabung saat langganan dihentikan.
Parameter
Nama | Tipe | Deskripsi |
sub | BOOL |
|
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
subscribeRemoteAudioStream
Berlangganan atau berhenti berlangganan track audio pengguna remote tertentu.
- (int)subscribeRemoteAudioStream:(NSString *_Nonnull)uid sub:(BOOL)sub;Gunakan antarmuka ini untuk menghentikan atau melanjutkan stream audio dari pengguna remote tertentu. Untuk sebagian besar skenario, atur parameter ini ke true.
SDK berlangganan secara default ke stream audio dari semua pengguna remote ketika Anda bergabung ke sesi. Untuk memodifikasi perilaku ini, Anda dapat memanggil <a baseurl="t2309850_v10_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="044cc0f710rfg">setDefaultSubscribeAllRemoteAudioStreams</a>(false) sebelum Anda bergabung ke sesi untuk membatalkan konfigurasi default ini.
Parameter
Nama | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna remote. |
sub | BOOL |
|
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
subscribeAllRemoteAudioStreams
Berlangganan atau berhenti berlangganan track audio semua pengguna remote.
- (int)subscribeAllRemoteAudioStreams:(BOOL)sub;Metode ini adalah sakelar utama untuk berlangganan ke track audio remote. Kami merekomendasikan menyetelnya ke YES. Menyetelnya ke NO menyebabkan hal berikut:
Track audio remote di sesi saat ini tidak lagi berlangganan.
Pengguna baru yang bergabung nanti tidak berlangganan.
Anda tidak dapat menggunakan
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#c8249fb568gms" id="846b0dd501epf">subscribeRemoteAudioStream</a>untuk mengontrol secara individual stream audio pengguna tertentu.
Untuk melanjutkan langganan, panggil metode ini lagi dengan parameter sub diatur ke YES.
Secara default, SDK berlangganan ke stream audio dari semua pengguna remote ketika Anda bergabung ke sesi. Untuk memodifikasi perilaku ini, Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#8b515d9855osk" id="86e8c09213k9y">setDefaultSubscribeAllRemoteAudioStreams</a>(false) sebelum Anda bergabung ke sesi untuk menonaktifkan konfigurasi default ini.
Parameter
Nama | Tipe | Deskripsi |
sub | BOOL |
|
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
publishLocalVideoStream
Menentukan apakah akan menerbitkan track video.
- (int)publishLocalVideoStream:(BOOL)enable;Metode ini mengontrol penerbitan video yang diambil secara lokal.
Secara default, SDK menerbitkan stream video lokal. Untuk menonaktifkan fitur ini, panggil publishLocalVideoStream(false) sebelum Anda bergabung ke channel.
Kapan Harus Menelepon
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel.
Jika Anda memanggil metode ini sebelum bergabung ke channel, metode ini memodifikasi konfigurasi default, dan pengaturan tersebut berlaku ketika Anda bergabung ke channel.
Callback terkait
Ketika status pengambilan aliran audio lokal berubah, klien lokal memicu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#bd67711e63tnk" id="f966292202q3d">onVideoPublishStateChanged</a> untuk melaporkan status terbaru pengambilan aliran audio. Sementara itu, klien jarak jauh memicu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#6da9cf330aoer" id="2fdc208ccczr1">onRemoteTrackAvailableNotify</a> untuk melaporkan perubahan pada aliran audio dan video pengguna jarak jauh.
Parameter
Nama | Jenis | Deskripsi |
enable | boolean |
|
isLocalVideoStreamPublished
Memeriksa apakah track video diterbitkan.
- (BOOL)isLocalVideoStreamPublished;Deskripsi pengembalian
Nilai YES menunjukkan bahwa track video diterbitkan. Nilai NO menunjukkan bahwa track video tidak diterbitkan.
setDefaultSubscribeAllRemoteVideoStreams
Anda dapat menetapkan apakah menerima stream video secara default.
- (int)setDefaultSubscribeAllRemoteVideoStreams:(BOOL)sub;Secara default, SDK berlangganan ke track video pengguna remote. Gunakan metode ini untuk mengubah perilaku tersebut.
SDK berlangganan ke track audio dan video pengguna remote secara default ketika bergabung ke channel. Untuk mengubah perilaku ini, panggil metode ini sebelum bergabung ke channel.
Kapan Harus Menghubungi
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel.
Sebelum bergabung:
Anda dapat menggunakan metode ini untuk menonaktifkan langganan default.
Setelah bergabung:
Untuk menonaktifkan langganan bawaan, panggil
setDefaultSubscribeAllRemoteVideoStreams(false). Setelah itu, Anda tidak akan lagi secara otomatis berlangganan aliran audio pengguna yang bergabung ke saluran.Setelah menghentikan langganan default, Anda dapat memanggil antarmuka subscribeRemoteVideoStream untuk melanjutkan langganan aliran audio pengguna tertentu. Untuk melanjutkan langganan beberapa pengguna, panggil antarmuka ini satu kali untuk setiap pengguna.
Setelah Anda menghentikan langganan default, pemanggilan setDefaultSubscribeAllRemoteVideoStreams(false) hanya akan memulihkan aliran audio untuk pengguna yang bergabung ke saluran setelahnya.
Parameter
Nama | Tipe | Deskripsi |
sub | boolean |
|
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
subscribeRemoteVideoStream
Hentikan atau lanjutkan berlangganan ke stream video dari pengguna remote.
- (int)subscribeRemoteVideoStream:(NSString *_Nonnull)uid track:(AliRtcVideoTrack)track sub:(BOOL)sub;Anda dapat berlangganan atau berhenti berlangganan stream video pengguna tertentu.
Secara default, SDK berlangganan ke stream video dari semua pengguna remote ketika Anda bergabung ke rapat. Untuk menonaktifkan konfigurasi default ini, panggil <a baseurl="t2309850_v10_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="97d89be88bvan">setDefaultSubscribeAllRemoteVideoStreams</a>(false) sebelum Anda bergabung ke rapat.
Kapan Harus Memanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel.
Deskripsi
Nama | Tipe | Deskripsi |
uid | NSString * | ID pengguna, ditetapkan secara unik oleh AppServer. |
track | Jenis stream video. | |
sub | BOOL | Apakah berlangganan. |
subscribeAllRemoteVideoStreams
Berlangganan atau berhenti berlangganan track video semua pengguna remote.
Metode ini bertindak sebagai sakelar utama untuk langganan ke stream video remote. Jika diatur ke NO, metode ini menghentikan langganan ke semua stream video remote di sesi saat ini dan mencegah pengguna baru yang bergabung nanti untuk berlangganan—bahkan jika setDefaultSubscribeAllRemoteVideoStreams:YES diatur.
- (int)subscribeAllRemoteVideoStreams:(BOOL)sub;Metode ini berfungsi sebagai sakelar utama untuk berlangganan ke stream video remote. Menyetel sub ke false menyebabkan:
Semua stream video remote di sesi saat ini berhenti berlangganan.
Pengguna baru yang bergabung nanti tidak akan berlangganan juga (bahkan jika pengaturan langganan default
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="0464849a17dks">setDefaultSubscribeAllRemoteVideoStreams</a>diaktifkan).Anda tidak dapat menggunakan
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#1cc7ef76fdawz" id="498e782f414zz">subscribeRemoteVideoStream</a>untuk mengontrol aliran audio secara individual untuk pengguna tertentu.
Untuk melanjutkan langganan, panggil metode ini lagi dengan sub diatur ke true.
Secara default, SDK berlangganan ke stream video semua pengguna remote ketika Anda bergabung ke rapat. Untuk mengubah perilaku ini, Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#a975297480yoj" id="317fa38ecf6ya">setDefaultSubscribeAllRemoteVideoStreams</a> sebelum Anda bergabung ke rapat untuk menonaktifkan konfigurasi default ini.
Parameter
Nama | Tipe | Deskripsi |
sub | BOOL |
|
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
subscribeRemoteMediaStream[1/2]
Hentikan atau lanjutkan stream media dari pengguna remote tertentu.
- (int)subscribeRemoteMediaStream:(NSString *_Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack subVideo:(BOOL)subVideo subAudio:(BOOL)subAudio;Antarmuka ini menggabungkan stream audio dan video remote yang berlangganan.
Related API operations
Tidak seperti subscribeRemoteMediaStream[2/2], antarmuka ini menggunakan dua parameter Boolean—subVideo dan subAudio—untuk mengontrol apakah berlangganan ke stream video dan audio remote, dan parameter videoTrack menentukan stream video mana yang akan ditarik.
Catatan: Dalam API ini, AliRtcVideoTrackNo dari AliRtcVideoTrack tidak valid, dan menyetelnya tidak berpengaruh.
Parameter
Parameter | Tipe | Deskripsi |
uid | String | ID pengguna remote. |
videoTrack | Jenis stream video. | |
subVideo | boolean | Menentukan apakah berlangganan ke track video pengguna remote. Nilai valid:
|
subAudio | boolean | Menentukan apakah berlangganan ke track audio pengguna remote. Nilai valid:
|
Deskripsi respons
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
subscribeRemoteMediaStream[2/2]
Anda dapat menghentikan atau melanjutkan stream media dari pengguna remote tertentu.
- (int)subscribeRemoteMediaStream:(NSString *_Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack audioTrack:(AliRtcAudioTrack)audioTrack;Antarmuka ini menggabungkan stream audio dan video remote yang berlangganan.
Operasi ini menggunakan videoTrack dan audioTrack untuk mengomunikasikan status yang diinginkan ke kit pengembangan perangkat lunak.
API Terkait
Tidak seperti subscribeRemoteMediaStream[1/2], antarmuka ini menggunakan parameter videoTrack dan audioTrack untuk menentukan status langganan yang diinginkan ke SDK dalam satu panggilan. Misalnya:
Untuk berlangganan ke stream kamera dan mikrofon, atur
videoTrackkeAliRtcVideoTrackCameradanaudioTrackkeAliRtcAudioTrackMicsaat Anda memanggil metode tersebut.Jika Anda ingin berhenti berlangganan dari stream kamera tetapi tetap menggunakan mikrofon, atur
AliRtcVideoTrackNodanAliRtcAudioTrackMicke parametervideoTrackdanaudioTrackmasing-masing saat Anda memanggil metode tersebut lagi.Jika Anda ingin membatalkan semua track, atur videoTrack dan audioTrack ke
AliRtcVideoTrackNodanAliRtcAudioTrackNomasing-masing saat Anda memanggilnya lagi.Untuk berlangganan ke stream kamera dan berbagi layar, atur videoTrack ke
AliRtcVideoTrackBoth. Audio bekerja dengan cara yang sama.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString * | ID pengguna remote. |
videoTrack | Jenis stream video. | |
audioTrack | Jenis stream audio. |
Deskripsi pengembalian
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
subscribeRemoteDestChannelStream
Berlangganan atau berhenti berlangganan stream media pengguna remote tertentu lintas channel.
- (int)subscribeRemoteDestChannelStream:(NSString *_Nonnull)channelId uid:(NSString *_Nonnull)uid track:(AliRtcVideoTrack)track subAudio:(BOOL)subAudio sub:(BOOL)sub;Parameter
Parameter | Tipe | Deskripsi |
channelId | String | ID channel remote. |
uid | String | ID pengguna remote. |
track | Track video yang ingin Anda berlangganan. | |
sub_audio | boolean | Menentukan apakah berlangganan ke track audio pengguna remote. Nilai valid:
|
sub | boolean | Menghentikan atau melanjutkan langganan lintas channel ke stream pengguna tertentu. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
subscribeRemoteDestChannelAllStream
Berlangganan ke semua stream pengguna di channel target.
- (int)subscribeRemoteDestChannelAllStream:(NSString *_Nonnull)channelId track:(AliRtcVideoTrack)track subAudio:(BOOL)subAudio sub:(BOOL)sub;Parameter
Nama | Tipe | Deskripsi |
channelId | NSString * | Channel target. |
videotrack | Jenis stream video. | |
audioTrack | Jenis stream audio. | |
subAudio | BOOL | Apakah berlangganan ke stream audio. |
sub | BOOL | Apakah berlangganan ke stream video pengguna di channel remote. |
Nilai kembali
0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
setRemoteAudioVolume
Anda dapat mengatur volume audio remote.
- (int)setRemoteAudioVolume:(NSString *_Nonnull)uid volume:(NSInteger)volume;UID harus diatur setelah pengguna bergabung ke channel. Jika tidak, operasi akan gagal.
Parameter
Nama | Tipe | Deskripsi |
uid | NSString * | ID pengguna, ditetapkan secara unik oleh AppServer. |
volume | NSInteger | Volume pemutaran. Rentang valid: [0..100]. 0 berarti dibisukan. 100 berarti volume asli. |
Nilai kembali
Nilai 0 menunjukkan keberhasilan. Nilai non-nol menunjukkan kegagalan.
muteLocalMic
Hentikan atau lanjutkan transmisi data audio lokal.
- (int)muteLocalMic:(BOOL)mute mode:(AliRtcMuteLocalAudioMode)mode;Membisukan mengirimkan frame audio kosong. Pengambilan dan pengkodean audio tetap berjalan.
Kapan harus memanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel.
Callback terkait
Setelah panggilan berhasil, pengguna remote memicu callback <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3189c59d9fipb" id="1579c3523779c">onUserAudioMuted</a> untuk menunjukkan apakah pengguna dibisukan.
Parameter
Nama | Tipe | Deskripsi |
mute | BOOL |
|
mode | Mode membisukan. Default: membisukan semua.
|
Nilai kembali
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
muteRemoteAudioPlaying
Anda dapat menghentikan atau melanjutkan pemutaran audio remote.
- (int)muteRemoteAudioPlaying:(NSString *_Nonnull)uid mute:(BOOL)mute;- (int)muteRemoteAudioPlaying:(NSString *_Nonnull)uid mute:(BOOL)mute;- (int)muteRemoteAudioPlaying:(NSString *_Nonnull)uid mute:(BOOL)mute;API ini menghentikan atau melanjutkan pemutaran audio dari pengguna remote tertentu tetapi tidak memengaruhi penarikan atau decoding stream audio remote. Untuk berhenti berlangganan dari stream audio pengguna, panggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#c8249fb568gms" id="dd9dbbad0bkni">subscribeRemoteAudioStream</a>.
Kapan Harus Menghubungi
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel.
Parameter
Nama | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna remote. |
mute | BOOL |
|
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
muteAllRemoteAudioPlaying
Anda dapat menghentikan atau melanjutkan semua pemutaran audio remote.
- (int)muteAllRemoteAudioPlaying:(BOOL)mute;API ini menghentikan atau melanjutkan pemutaran semua audio remote.
Metode ini hanya menghentikan pemutaran. Penarikan dan decoding stream tidak terpengaruh.
Kapan dipanggil
Anda dapat mengonfigurasi pengaturan ini sebelum atau setelah bergabung ke channel.
Parameter
Nama | Tipe | Deskripsi |
mute | BOOL |
|
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
startAudioCapture[1/2]
Memulai pengumpulan audio.
- (void)startAudioCapture;Metode ini memulai pengambilan audio. Anda dapat memanggil metode ini sebelum bergabung ke channel untuk memulai pengambilan audio lebih awal. Jika Anda tidak memanggil metode ini, SDK secara otomatis mengelola perangkat pengambilan audio. Setelah Anda memanggil stopAudioCapture untuk menghentikan pengambilan audio, Anda dapat memanggil metode ini lagi untuk memulainya kembali.
Kapan Harus Menghubungi
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel.
Metode terkait
API startAudioCapture[2/2] mengontrol apakah perangkat pengambilan audio tetap aktif setelah Anda meninggalkan rapat, berdasarkan parameter yang ditentukan.
Callback terkait
Setelah Anda memanggil metode ini, SDK memicu callback onLocalAudioStateChanged untuk melaporkan perubahan status pengambilan audio lokal.
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
startAudioCapture[2/2]
Memulai pengumpulan audio.
- (void)startAudioCapture:(BOOL)keepAlive;Menonaktifkan pengambilan mikrofon setelah dibisukan.
Metode ini memulai pengambilan audio. Anda dapat memanggilnya sebelum bergabung ke channel untuk memulai pengambilan audio lebih awal. Jika Anda tidak memanggil metode ini, SDK secara otomatis mengelola perangkat pengambilan audio.
Kapan harus memanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel.
Metode terkait
Dibandingkan dengan startAudioCapture[1/2], metode ini memungkinkan Anda mengontrol apakah perangkat pengambilan tetap aktif setelah meninggalkan channel menggunakan parameter keepAlive.
Callback terkait
Setelah memanggil metode ini untuk mengubah status pengambilan audio lokal, Anda dapat memperoleh pembaruan status melalui callback onLocalAudioStateChanged.
Parameter
Parameter | Tipe | Deskripsi |
keepAlive | boolean | Status perangkat pengumpulan audio setelah Anda meninggalkan channel. Nilai valid:
|
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
stopAudioCapture
Menghentikan pengumpulan audio.
- (void)stopAudioCapture;Setelah Anda memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#3103c368bexf8" id="ddef64f9b93zq">startAudioCapture</a> untuk mengaktifkan pengambilan audio dari perangkat audio, Anda dapat memanggil metode ini untuk menghentikan pengambilan audio.
Callback terkait
Setelah memanggil metode ini untuk memodifikasi status pengambilan audio lokal, Anda dapat mengambil perubahan status melalui callback onLocalAudioStateChanged.
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
enableSpeakerphone
Menetapkan headset atau speaker sebagai perangkat output audio. Metode ini hanya berlaku untuk iOS.
- (int)enableSpeakerphone:(BOOL)enable;Metode ini menetapkan perangkat pemutaran audio menjadi speaker atau headset setelah Anda bergabung ke channel. Jika Anda tidak memanggil metode ini, SDK menggunakan rute audio default.
SDK mendefinisikan urutan prioritas internal untuk routing audio dan beralih secara otomatis berdasarkan periferal yang terhubung: Wired headset > Bluetooth headset > User setting > Default setting. Oleh karena itu, metode ini tidak berpengaruh ketika periferal terhubung. Untuk informasi lebih lanjut, lihat Pengaturan routing audio.
Kapan Harus Menghubungi
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel.
Metode terkait
Metode <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#83be8cc066qqq" id="f8de149ef8so0">setDefaultAudioRoutetoSpeakerphone</a> memodifikasi pengaturan routing audio default dan menetapkan perangkat output audio saat ini.
Parameter
Nama | Tipe | Deskripsi |
enable | BOOL |
|
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
isEnableSpeakerphone
Memeriksa apakah perangkat output audio saat ini adalah headset atau speaker. Metode ini hanya berlaku untuk iOS.
- (BOOL)isEnableSpeakerphone;Deskripsi Pengembalian
Nilai YES menunjukkan bahwa perangkat output audio saat ini adalah speaker. Nilai NO menunjukkan bahwa perangkat output audio saat ini adalah headset.
enableAudioVolumeIndication
Tetapkan interval callback volume dan faktor penghalusan.
- (int)enableAudioVolumeIndication:(NSInteger)interval smooth:(NSInteger)smooth reportVad:(NSInteger)reportVad;Metode ini mengaktifkan SDK untuk secara berkala melaporkan informasi volume untuk pengguna lokal yang menerbitkan dan pengguna remote dengan volume instan tertinggi.
Kapan Harus Menghubungi
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel.
Callback terkait
Setelah Anda berhasil memanggil metode ini, jika ada pengguna yang menerbitkan di channel, SDK memicu callback berikut pada interval yang dikonfigurasi:
SDK melaporkan volume untuk pengguna yang berbicara melalui callback onAudioVolumeCallback. Frekuensi callback bergantung pada parameter interval.
Untuk deteksi aktivitas suara, ketika pembicara aktif terdeteksi, SDK melaporkan UID mereka melalui callback onActiveSpeaker.
Parameter
Nama | Tipe | Deskripsi |
interval | NSInteger | Interval deteksi volume. Satuan: milidetik. Nilai harus lebih besar atau sama dengan 10. Kami merekomendasikan mengatur parameter ini ke nilai antara 300 hingga 500. Jika nilainya kurang dari atau sama dengan 0, indikator untuk menunjukkan volume dan pembicara dinonaktifkan. |
smooth | NSInteger | Faktor penghalusan. Nilai valid: 0 hingga 9. Nilai yang lebih besar menunjukkan tingkat penghalusan yang lebih tinggi. Nilai yang lebih kecil menunjukkan tingkat penghalusan yang lebih rendah tetapi performa real-time yang lebih baik. Kami merekomendasikan mengatur nilai ke 3. |
reportVad | NSInteger | Sakelar yang digunakan untuk mendeteksi pembicara. Nilai valid:
|
Nilai kembali
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
enableEarBack
Anda dapat mengaktifkan pemantauan in-ear.
- (int)enableEarBack:(BOOL)enable;Metode ini mengaktifkan atau menonaktifkan pemantauan in-ear. Untuk hasil optimal, kami merekomendasikan mengaktifkan pemantauan in-ear ketika menggunakan headphone kabel atau Bluetooth.
Kapan dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel.
Deskripsi Parameter
Nama | Jenis | Deskripsi |
enable | BOOL |
|
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
setEarBackVolume
Mengatur volume pemantauan in-ear.
- (int)setEarBackVolume:(NSInteger)volume;Antarmuka ini mengatur volume pemantauan in-ear. Antarmuka ini baru berlaku setelah Anda mengaktifkan pemantauan in-ear dengan memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#bd665d0f894ux" id="b0fa866c9bcuq">enableEarBack</a>.
Kapan dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel.
Parameter
Nama | Tipe | Deskripsi |
volume | NSInteger | Nilainya harus berada dalam rentang 0 hingga 100. Nilai default adalah 100. |
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
startAudioPlayer
Memulai pemutaran audio.
- (void)startAudioPlayer;Anda dapat memanggil metode ini untuk memulai pemutaran audio lebih awal. Jika Anda tidak memanggil metode ini, SDK secara otomatis mulai memutar setelah Anda berlangganan ke stream audio.
stopAudioPlayer
Menghentikan pemutaran audio.
- (void)stopAudioPlayer;Panggil metode ini untuk menghentikan pemutaran audio.
setPlayoutVolume
Menetapkan volume pemutaran.
- (int)setPlayoutVolume:(NSInteger)volume;Parameter
Nama | Tipe | Deskripsi |
volume | Volume | Rentang: [0..400]. [0..100] adalah rentang volume asli. [100..400] memperbesar volume. |
Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan, sedangkan nilai lainnya menunjukkan kegagalan.
setRecordingVolume
Menetapkan volume rekaman.
- (int)setRecordingVolume:(NSInteger)volume;Parameter
Nama | Tipe | Deskripsi |
volume | NSInteger | Rentang: [0..400]. [0..100] adalah rentang volume asli. [100..400] memperbesar volume. |
Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
playAudioFileTest
Memutar file audio.
- (int)playAudioFileTest:(NSString *_Nonnull)filePath;Anda dapat memanggil metode ini sebelum bergabung ke channel.
Parameter
Parameter | Tipe | Deskripsi |
filePath | NSString *_Nonnull | Jalur file audio yang akan diputar. |
Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
stopAudioFileTest
Menghentikan pemutaran file audio.
- (int)stopAudioFileTest;Anda harus memanggil metode ini sebelum memanggil joinChannel.
Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
startAudioCaptureTest
Aktifkan deteksi perangkat pengambilan audio sebelum panggilan.
- (void)startAudioCaptureTest;Anda hanya dapat memanggil metode ini sebelum joinChannel. Setiap upaya memanggilnya setelah itu akan gagal.
stopAudioCaptureTest
Deteksi perangkat pengumpulan audio sebelum mengakhiri panggilan.
- (void)stopAudioCaptureTest;Anda harus memanggil metode ini sebelum memanggil joinChannel. Jika tidak, panggilan metode gagal.
setDefaultAudioRoutetoSpeakerphone
Menetapkan rute audio default ke speaker. Secara default, audio diputar melalui speaker.
- (int)setDefaultAudioRouteToSpeakerphone:(BOOL)defaultToSpeakerphone;Metode ini mengonfigurasi perangkat rute audio default sebelum Anda bergabung ke channel. Anda dapat mengarahkan audio ke headset atau speaker. SDK menggunakan speaker secara default. Untuk mengubah perilaku ini, panggil metode ini sebelum bergabung ke channel.
SDK mendefinisikan urutan prioritas tetap untuk routing audio dan melakukan alih otomatis berdasarkan status koneksi periferal saat ini. Urutan prioritas adalah sebagai berikut: wired headset > Bluetooth headset > user settings > default settings. Oleh karena itu, jika tidak ada periferal yang terhubung dan Anda belum mengonfigurasi routing audio melalui <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#f7d0d8b64fzkz" id="30798b686b5qk">enableSpeakerphone</a>, SDK menerapkan pengaturan default.
Untuk informasi lebih lanjut tentang routing audio, lihat Pengaturan routing audio.
Perangkat seluler biasanya mendukung dua rute audio: headset dan speaker:
Ketika menggunakan headset, suara lebih pelan dan memerlukan pegangan ponsel dekat telinga Anda. Ini memberikan privasi yang lebih baik dan cocok untuk panggilan telepon.
Ketika menggunakan speaker, suara lebih keras dan dapat didengar tanpa memegang ponsel ke telinga Anda. Ini memungkinkan operasi hands-free.
Metode terkait
API ini memodifikasi pengaturan routing audio default. API <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#f7d0d8b64fzkz" id="6001aa98ebapw">enableSpeakerphone</a> menetapkan perangkat routing audio saat ini.
Kapan dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel.
Parameter
Nama | Jenis | Deskripsi |
defaultToSpeakerphone | BOOL | Apakah akan mengarahkan audio ke speaker. YES untuk speaker. NO untuk headset. |
Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
setAudioEffectVoiceChangerMode
Menetapkan mode perubahan suara.
- (int)setAudioEffectVoiceChangerMode:(AliRtcAudioEffectVoiceChangerMode)mode;Parameter
Nama | Tipe | Deskripsi |
mode | Mode perubahan suara. Nilai default: AliRtcSdk_AudioEffect_Voice_Changer_OFF. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
setAudioEffectPitchValue
Menetapkan pitch audio.
- (int)setAudioEffectPitchValue:(double)value;Parameter
Nama | Jenis | Deskripsi |
value | double | Nilai pitch. Nilai valid: 0,5 hingga 2,0. Nilai default adalah 1,0, yang menunjukkan bahwa pitch tetap sama. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
setAudioEffectReverbMode
Menetapkan mode gema.
- (int)setAudioEffectReverbMode:(AliRtcAudioEffectReverbMode)mode;Parameter
Nama | Type | Deskripsi |
mode | Mode gema. Nilai default: AliRtcAudioEffectReverb_Off. |
Deskripsi respons
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
setAudioEffectReverbParamType
Anda dapat menetapkan jenis efek gema dan parameter spesifik.
- (int)setAudioEffectReverbParamType:(AliRtcAudioEffectReverbParamType)type value:(float)value;Parameter
Nama | Jenis | Deskripsi |
type | Pola gema untuk efek suara. | |
value | float | Menentukan nilai parameter. |
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
setAudioEffectBeautifyMode
Menetapkan mode efek pemercantik suara yang telah ditentukan sebelumnya.
- (int)setAudioEffectBeautifyMode:(AliRtcAudioEffectBeautifyMode)mode;Metode ini mengonfigurasi mode pemercantik suara bawaan di SDK. Cocok untuk skenario seperti streaming langsung suara, karaoke, dan aplikasi sosial berbasis suara di mana peningkatan kualitas suara diperlukan. Memilih mode pemercantik yang berbeda mengubah karakteristik vokal yang dirasakan—misalnya, meningkatkan kekayaan atau kejernihan—untuk meningkatkan pengalaman mendengar bagi pengguna remote.
Kapan Harus Menghubungi
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel.
Parameter
Parameter | Tipe | Deskripsi |
mode | Mode efek pemercantik suara. Lihat definisi enumerasi untuk detailnya. |
Deskripsi Pengembalian
0: Berhasil.
Bukan nol: Gagal.
setAudioEffectEqualizationParam
Menetapkan parameter equalizer audio (EQ) untuk menyesuaikan gain pada pita frekuensi yang ditentukan.
- (int)setAudioEffectEqualizationParam:(AliRtcAudioEffectEqualizationBandFrequency)bandIndex gain:(float)gain;Metode ini menerapkan penyesuaian equalizer grafis ke sinyal suara atau audio yang diambil secara lokal. Anda dapat menyesuaikan gain dalam desibel (dB) untuk sepuluh pita frekuensi tetap guna menyesuaikan kualitas nada. Metode ini cocok untuk mengoptimalkan kejernihan ucapan, meningkatkan kualitas suara, dan mengurangi noise.
Equalizer mendukung penyesuaian spektrum penuh dari 31 Hz hingga 16 kHz di sepuluh pita frekuensi standar. Gain untuk setiap pita dapat disesuaikan secara independen dari -15 dB hingga 15 dB. Gain default adalah 0 dB, yang menunjukkan tidak ada penguatan atau redaman.
Batasan
Anda harus mengaktifkan pemercantik suara dengan memanggil
setAudioEffectBeautifyModesebelum menggunakan equalizer.
Parameter
Parameter | Tipe | Deskripsi |
bandIndex | Indeks pita frekuensi, sesuai dengan frekuensi tengah (31 Hz hingga 16 kHz). | |
gain | float | Nilai gain dalam dB. Rentang valid: [-15, 15]. |
Deskripsi pengembalian
0: Berhasil.
Bukan nol: Gagal.
addExternalAudioStream
Menambahkan track audio eksternal.
- (int)addExternalAudioStream:(AliRtcExternalAudioStreamConfig *_Nonnull)config;Untuk menambahkan stream audio eksternal, ikuti langkah-langkah berikut:
Panggil antarmuka
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#d71bbfd2f242b" id="c310321e9eu35">addExternalAudioStream</a>untuk menambahkan stream audio eksternal dan mengambil ID-nya.Panggil pushExternalAudioStream untuk memasukkan data audio ke dalam stream.
Ketika panggilan berakhir, panggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#282d70095duaw" id="16f621608d94x">removeExternalAudioStream</a>untuk menghapus stream audio eksternal.
Untuk menerbitkan audio yang diambil secara kustom di channel, lihat Pengambilan audio kustom.
Parameter
Nama | Jenis | Deskripsi |
config | AliRtcExternalAudioStreamConfig | Konfigurasi track audio eksternal. |
Deskripsi pengembalian
Nilai lebih besar dari 0 menunjukkan bahwa panggilan berhasil dan merupakan ID track audio eksternal. Nilai kurang dari atau sama dengan 0 menunjukkan bahwa panggilan gagal.
pushExternalAudioStream
Mengimpor data audio eksternal.
- (int)pushExternalAudioStream:(int)streamId rawData:(AliRtcAudioFrame * _Nonnull)audioFrame;Metode ini memasukkan data audio ke stream yang ditentukan. Ikuti langkah-langkah berikut:
Panggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#d71bbfd2f242b" id="0a353f7272shu">addExternalAudioStream</a>untuk menambahkan stream audio eksternal dan mendapatkan ID stream audio eksternal.Panggil metode ini untuk memasukkan data audio ke dalam stream yang dibuat.
Ketika panggilan berakhir, Anda perlu memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#282d70095duaw" id="a9ebc8d599dz4">removeExternalAudioStream</a>untuk menghapus stream audio eksternal.
Untuk menerbitkan audio yang diambil secara kustom di channel, lihat Pengambilan audio kustom.
Parameter
Nama | Tipe | Deskripsi |
streamId | int | ID track audio eksternal. |
audioFrame | AliRtcAudioFrame | Data audio. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
setExternalAudioStream:publishVolume
Atur volume untuk ingest stream audio eksternal.
- (int)setExternalAudioStream:(int)streamId
publishVolume:(int)publishVolume;Parameter
Nama | Tipe | Deskripsi |
streamId | int | ID track audio eksternal. |
publishVolume | int | Volume audio eksternal untuk ingest stream. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
getExternalAudioStreamPublishVolume
Memeriksa volume audio eksternal untuk ingest stream.
- (int)getExternalAudioStreamPublishVolume:(int)streamId;Parameter
Nama | Tipe | Deskripsi |
streamId | int | ID track audio eksternal. |
Deskripsi Pengembalian
Nilai volume yang valid berkisar dari 0 hingga 100. Nilai kurang dari 0 menunjukkan bahwa panggilan gagal.
setExternalAudioStream:playoutVolume
Menetapkan volume pemutaran audio eksternal.
- (int)setExternalAudioStream:(int)streamId
playoutVolume:(int)playoutVolume;Parameter
Nama | Tipe | Deskripsi |
streamId | int | ID track audio eksternal. |
playoutVolume | int | Volume pemutaran. |
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
getExternalAudioStreamPlayoutVolume
Memeriksa volume pemutaran audio eksternal.
- (int)getExternalAudioStreamPlayoutVolume:(int)streamId;Parameter
Nama | Tipe | Deskripsi |
streamId | int | ID track audio eksternal. |
Deskripsi respons
Nilai volume yang valid berkisar dari 0 hingga 100. Nilai kurang dari 0 menunjukkan bahwa panggilan gagal.
removeExternalAudioStream
Hapus stream eksternal (audio).
- (int)removeExternalAudioStream:(int)streamId;Metode ini menghapus stream audio eksternal untuk streamId yang ditentukan dan merupakan pasangan dari metode addExternalAudioStream.
Kapan Harus Menghubungi
Untuk menggunakan fitur input audio kustom, panggil metode addExternalAudioStream untuk menambahkan stream audio dan mendapatkan ID stream audio eksternal, lalu panggil antarmuka pushExternalAudioStream untuk mendorong data audio Anda ke SDK. Ketika Anda ingin menghentikan input audio kustom, panggil metode yang sesuai untuk menghapus stream audio eksternal dan melepaskan resource.
Parameter
Nama | Tipe | Deskripsi |
streamId | int | ID stream audio eksternal. |
Nilai kembali
0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
getAudioFileInfo
Mengambil informasi file audio.
- (int)getAudioFileInfo:(NSString *_Nonnull)filePath;Antarmuka asinkron. Anda dapat mengambil informasi file audio menggunakan {@link onAudioFileInfo:errorCode:}.
Parameter
Nama | Tipe | Deskripsi |
filePath | NSString * | Jalur file. |
startAudioAccompanyWithFile
Anda dapat memulai pencampuran akompanimen.
- (int)startAudioAccompanyWithFile:(NSString *_Nonnull)filePath config:(AliRtcAudioAccompanyConfig *_Nonnull)config;Metode ini bersifat asinkron. Untuk memantau status pemutar, gunakan callback onAudioAccompanyStateChanged.
Parameter
Nama | Tipe | Deskripsi |
filePath | NSString * | Jalur file. |
config | Konfigurasi akompanimen. |
Nilai kembali
0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
stopAudioAccompany
Menghentikan pencampuran akompanimen audio.
- (int)stopAudioAccompany;Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
setAudioAccompanyVolume
Atur volume akompanimen.
- (int)setAudioAccompanyVolume:(NSInteger)volume;Anda dapat mengatur volume pemutaran lokal dan volume ingest stream untuk akompanimen.
Parameter
Nama | Type | Deskripsi |
volume | NSInteger | Volume akompanimen. Rentang valid: [0, 100]. |
Nilai kembali
0 berhasil; sisanya gagal.
setAudioAccompanyPublishVolume
Menetapkan volume penerbitan akompanimen audio.
- (int)setAudioAccompanyPublishVolume:(NSInteger)volume;Metode ini menetapkan volume stream yang diterbitkan.
Parameter
Nama | Tipe | Deskripsi |
volume | NSInteger | Volume akompanimen. Rentang valid: [0, 100]. |
Nilai kembali
Mengembalikan 0 pada keberhasilan. Kode kesalahan dikembalikan pada kegagalan.
getAudioAccompanyPublishVolume
Anda dapat mengambil tingkat volume untuk menerbitkan akompanimen audio.
- (int)getAudioAccompanyPublishVolume;Nilai kembali
Nilai dalam rentang [0, 100] menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
setAudioAccompanyPlayoutVolume
Menetapkan volume pemutaran lokal untuk akompanimen.
- (int)setAudioAccompanyPlayoutVolume:(NSInteger)volume;Parameter
Nama | Tipe | Deskripsi |
volume | NSInteger | Volume akompanimen. Rentang valid: [0, 100]. |
Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
getAudioAccompanyPlayoutVolume
Anda dapat mengambil volume pemutaran lokal akompanimen.
- (int)getAudioAccompanyPlayoutVolume;Nilai kembali
Nilai dalam rentang 0 hingga 100 menunjukkan keberhasilan, sedangkan nilai lainnya menunjukkan kegagalan.
pauseAudioAccompany
Jeda pencampuran akompanimen audio.
- (int)pauseAudioAccompany;Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
resumeAudioAccompany
Lanjutkan pencampuran akompanimen audio.
- (int)resumeAudioAccompany;Nilai kembali
0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
getAudioAccompanyDuration
Mengambil durasi file akompanimen dalam milidetik.
- (int)getAudioAccompanyDuration;Nilai kembali
Mengembalikan durasi file akompanimen dalam milidetik jika berhasil (>= 0). Mengembalikan nilai kurang dari 0 jika operasi gagal.
getAudioAccompanyCurrentPosition
Ambil kemajuan pemutaran file akompanimen dalam milidetik.
- (int)getAudioAccompanyCurrentPosition;Nilai kembali
Nilai 0 atau lebih besar menunjukkan posisi pemutaran saat ini dalam milidetik. Nilai negatif menunjukkan kegagalan.
setAudioAccompanyPosition
Menetapkan posisi pemutaran file akompanimen.
- (int)setAudioAccompanyPosition:(int)pos;Parameter
Nama | Tipe | Deskripsi |
pos | int | Posisi bilah kemajuan dalam milidetik. |
Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
preloadAudioEffectWithSoundId
Memuat awal efek suara.
- (int)preloadAudioEffectWithSoundId:(NSInteger)soundId filePath:(NSString *_Nonnull)filePath;Parameter
Nama | Tipe | Deskripsi |
soundId | NSInteger | ID yang ditetapkan oleh pengguna untuk efek suara. |
filePath | NSString *_Nonnull | Jalur efek suara. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
unloadAudioEffectWithSoundId
Menghapus efek suara yang telah dimuat sebelumnya.
- (int)unloadAudioEffectWithSoundId:(NSInteger)soundId;Parameter
Nama | Tipe | Deskripsi |
soundId | NSInteger | ID yang ditetapkan oleh pengguna untuk efek suara. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
playAudioEffectWithSoundId
Memulai pemutaran efek suara.
- (int)playAudioEffectWithSoundId:(NSInteger)soundId filePath:(NSString *_Nonnull)filePath cycles:(NSInteger)cycles publish:(BOOL)publish;Parameter
Nama | Tipe | Deskripsi |
soundId | NSInteger | ID yang ditetapkan oleh pengguna untuk efek suara. |
filePath | NSString *_Nonnull | Jalur efek suara. |
cycles | NSInteger | Jumlah loop pemutaran. Anda dapat mengatur parameter ini ke -1 atau bilangan bulat positif. |
publish | BOOL | Publikasikan? |
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
stopAudioEffectWithSoundId
Menghentikan pemutaran efek suara.
- (int)stopAudioEffectWithSoundId:(NSInteger)soundId;Parameter
Nama | Tipe | Deskripsi |
soundId | NSInteger | ID yang ditetapkan oleh pengguna untuk efek suara. |
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
stopAllAudioEffects
Menghentikan pemutaran semua efek suara.
- (int)stopAllAudioEffects;Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
pauseAudioEffectWithSoundId
Jeda pemutaran efek suara.
- (int)pauseAudioEffectWithSoundId:(NSInteger)soundId;Parameter
Nama | Tipe | Deskripsi |
soundId | NSInteger | ID yang ditetapkan oleh pengguna untuk efek suara. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
pauseAllAudioEffects
Jeda pemutaran semua efek suara.
- (int)pauseAllAudioEffects;Deskripsi respons
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
resumeAudioEffectWithSoundId
Melanjutkan pemutaran efek suara.
- (int)resumeAudioEffectWithSoundId:(NSInteger)soundId;Parameter
Nama | Type | Deskripsi |
soundId | NSInteger | ID yang ditetapkan oleh pengguna untuk efek suara. |
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
resumeAllAudioEffects
Melanjutkan pemutaran semua efek suara.
- (int)resumeAllAudioEffects;Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
setAudioEffectPublishVolumeWithSoundId
Menetapkan volume efek suara untuk ingest stream.
- (int)setAudioEffectPublishVolumeWithSoundId:(NSInteger)soundId volume:(NSInteger)volume;Parameter
Nama | Tipe | Deskripsi |
soundId | NSInteger | ID yang ditetapkan oleh pengguna untuk efek suara. |
volume | NSInteger | Volume audio campuran. Nilai valid: 0 hingga 100. Nilai default: 50. |
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
getAudioEffectPublishVolumeWithSoundId
Memeriksa volume efek suara untuk ingest stream.
- (int)getAudioEffectPublishVolumeWithSoundId:(NSInteger)soundId;Parameter
Nama | Jenis | Deskripsi |
soundId | NSInteger | ID yang ditetapkan oleh pengguna untuk efek suara. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
setAllAudioEffectsPublishVolume
Menetapkan volume untuk mencampur semua efek suara ke dalam ingest stream.
- (int)setAllAudioEffectsPublishVolume:(NSInteger)volume;Parameter
Nama | Tipe | Deskripsi |
volume | NSInteger | Volume audio campuran. Nilai valid: 0 hingga 100. Nilai default: 50. |
Deskripsi respons
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
setAudioEffectPlayoutVolumeWithSoundId
Menetapkan volume efek suara untuk pemutaran lokal.
- (int)setAaudioEffectPlayoutVolumeWithSoundId:(NSInteger)soundId volume:(NSInteger)volume;Parameter
Nama | Tipe | Deskripsi |
soundId | NSInteger | ID yang ditetapkan oleh pengguna untuk efek suara. |
volume | NSInteger | Volume audio campuran. Nilai valid: 0 hingga 100. Nilai default: 50. |
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
getAudioEffectPlayoutVolumeWithSoundId
Memeriksa volume efek suara untuk pemutaran lokal.
- (int)getAudioEffectPlayoutVolumeWithSoundId:(NSInteger)soundId;Parameter
Nama | Tipe | Description |
soundId | NSInteger | ID yang ditetapkan oleh pengguna untuk efek suara. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
setAllAudioEffectsPlayoutVolume
Anda dapat mengatur volume pemutaran lokal semua efek suara.
- (int)setAllAudioEffectsPlayoutVolume:(NSInteger)volume;Parameter
Nama | Tipe | Deskripsi |
volume | NSInteger | Volume audio campuran. Nilai valid: 0 hingga 100. Nilai default: 50. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
startRecord
Memulai perekaman file media.
- (BOOL)startRecord:(AliRtcRecordType)recordType recordFormat:(AliRtcRecordFormat)recordFormat filePath:(NSString*)filePath audioConfig:(AliRtcRecordAudioConfig*)audioConfig videoConfig:(AliRtcRecordVideoConfig*)videoConfig;Parameter
Parameter | Tipe | Deskripsi |
recordType | Jenis perekaman. | |
recordFormat | Format perekaman. | |
filePath | NSString * | Nama file dan jalur untuk perekaman. |
audioConfig | Konfigurasi audio. | |
videoConfig | Konfigurasi video. |
Deskripsi pengembalian
Nilai TRUE menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
Saat merekam stream video, panggil metode ini hanya setelah ingest stream berhasil (
onVideoPublishStateChanged). Metode ini merekam stream video yang dikodekan secara lokal dan menyimpannya ke perangkat.Saat merekam stream audio, metode ini merekam campuran audio lokal dan remote.
stopRecord
Menghentikan perekaman file media.
- (void)stopRecord Parameter
Tidak ada.
setLocalViewConfig
Menetapkan tampilan rendering dan parameter gambar untuk pratinjau lokal.
- (int)setLocalViewConfig:(AliVideoCanvas *_Nullable)viewConfig forTrack:(AliRtcVideoTrack)track;Metode ini menetapkan tampilan pratinjau lokal. Ketika Anda memanggilnya, stream video lokal diikat ke tampilan tampilan dan mode rendering, mode cermin, serta sudut rotasi untuk tampilan pengguna lokal dikonfigurasi. Ini hanya memengaruhi pratinjau lokal—bukan ingest stream. Untuk mengonfigurasi tampilan pengguna remote, panggil setRemoteViewConfig.
Jika parameter
viewdalam AliVideoCanvas: rendering canvas kosong, rendering berhenti.Untuk mengatur ulang parameter renderMode dari AliVideoCanvas: rendering canvas selama pemutaran, ubah hanya parameter renderMode dan pertahankan semua parameter lainnya tidak berubah.
Untuk mengatur ulang parameter mirrorMode dari AliVideoCanvas: rendering canvas selama pemutaran, ubah hanya parameter mirrorMode dan pertahankan semua parameter lainnya tidak berubah.
Kami merekomendasikan memanggil startPreview() secara eksplisit untuk memulai pratinjau lokal.
Kapan Menghubungi
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel.
Deskripsi Parameter
Nama | Tipe | Deskripsi |
viewConfig | *_Nullable | Konfigurasi rendering, termasuk tampilan rendering dan mode rendering. |
track | Jenis track video. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
setCameraCapturerConfiguration
Mengatur preferensi pengumpulan Kamera.
- (int)setCameraCapturerConfiguration:(AliRtcCameraCapturerConfiguration* _Nonnull)config;Metode ini mengonfigurasi preferensi pengambilan kamera, seperti arah kamera dan laju frame.
Kapan harus memanggil
Anda harus mengatur ini sebelum mengaktifkan kamera. Misalnya, sebelum:
startPreview
joinChannel (Bergabung ke Channel)
Parameter
Nama | Tipe | Deskripsi |
config | AliRtcCameraCapturerConfiguration * _Nonnull | Preferensi pengumpulan kamera. Nilai default properti terkait:
"-1" menunjukkan menggunakan pengaturan default SDK. |
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
enableLocalVideo
Menonaktifkan atau mengaktifkan kembali pengumpulan video lokal.
- (int)enableLocalVideo:(BOOL)enable;Metode ini mengaktifkan atau menonaktifkan pengambilan video lokal. Ketika dinonaktifkan, pratinjau lokal dan ingest stream tidak menampilkan video. Namun, menerima video remote tetap tidak terpengaruh. Jika Anda menonaktifkan pengambilan kamera lokal, pratinjau lokal dan ingest stream membeku pada frame terakhir.
Pengambilan video lokal diaktifkan secara default di SDK.
Kapan Memanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel.
Callback terkait
Setelah Anda berhasil memanggil metode ini, callback onUserVideoEnabled memberi tahu pengguna remote.
Parameter
Nama | Tipe | Deskripsi |
enable | BOOL | Nilai YES mengaktifkan kembali pengumpulan video lokal. Nilai NO menonaktifkan pengumpulan video lokal. Nilai default: YES. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
muteLocalCamera
Hentikan atau lanjutkan transmisi data video lokal.
- (int)muteLocalCamera:(BOOL)mute forTrack:(AliRtcVideoTrack)track;Panggil metode ini untuk mengirim frame hitam saat menerbitkan. Pratinjau lokal tetap menampilkan secara normal. Modul pengambilan, pengkodean, dan transmisi tetap aktif, hanya mengirim frame hitam.
Metode ini hanya mengontrol apakah frame hitam dikirim pada track video tertentu. Metode ini tidak menghentikan pengambilan video atau transmisi data. Untuk menonaktifkan pengambilan, gunakan metode enableLocalVideo. Untuk menghentikan transmisi data video, gunakan metode publishLocalVideoStream.
Deskripsi Parameter
Nama | Tipe | Deskripsi |
mute | BOOL | YES mengirim frame hitam untuk data video. NO, nilai default, melanjutkan operasi normal. |
track | Jenis track video yang ingin Anda ubah status penerbitannya. |
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
setRemoteViewConfig
Menetapkan tampilan rendering dan parameter gambar untuk track video pengguna remote.
- (int)setRemoteViewConfig:(AliVideoCanvas *_Nullable)canvas uid:(NSString *_Nonnull)uid forTrack:(AliRtcVideoTrack)track;Metode ini menempelkan tampilan tampilan untuk stream video pengguna remote tertentu dan menetapkan properti untuk tampilan lokalnya, seperti mode rendering, mode cermin, dan sudut rotasi. Ini hanya memengaruhi gambar video yang dilihat oleh pengguna lokal. Untuk menetapkan tampilan pratinjau lokal, Anda dapat memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#fea843803078q" id="b6f22fe87a2es">setLocalViewConfig</a>.
Jika parameter
viewdari AliVideoCanvas: rendering canvas null, rendering berhenti.Untuk mengatur ulang nilai renderMode dari AliVideoCanvas: rendering canvas selama pemutaran, ubah hanya nilai renderMode dan pertahankan parameter lainnya tidak berubah.
Untuk mengatur ulang nilai mirrorMode dari AliVideoCanvas: rendering canvas selama pemutaran, ubah hanya nilai mirrorMode dan pertahankan parameter lainnya tidak berubah.
Kapan Harus Menghubungi
Kami merekomendasikan memanggil metode ini ketika Anda menerima callback onRemoteTrackAvailableNotify, yang dipicu ketika video pengguna remote tersedia.
Parameter
Nama | Tipe | Deskripsi |
canvas | *_Nullable | Konfigurasi rendering, termasuk tampilan rendering dan mode rendering. |
uid | NSString *_Nonnull | ID pengguna. |
track | Jenis track video yang akan dikonfigurasi. |
Deskripsi respons
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
isCameraOn
Memeriksa apakah kamera menyala.
- (BOOL)isCameraOn;Deskripsi respons
Nilai YES menunjukkan bahwa kamera menyala. Nilai NO menunjukkan bahwa kamera dimatikan.
setVideoEncoderConfiguration
Menetapkan properti pengkodean video.
- (void)setVideoEncoderConfiguration:(AliRtcVideoEncoderConfiguration* _Nonnull)config;Metode ini menetapkan parameter pengkodean stream video, seperti resolusi, laju frame, bitrate, dan orientasi. Kami merekomendasikan memanggil metode ini untuk semua skenario video.
Semua parameter yang dikonfigurasi memiliki rentang valid. Jika Anda menentukan nilai yang tidak valid, SDK secara otomatis menyesuaikannya.
Kapan dipanggil
Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel. Untuk menetapkan properti pengkodean stream kamera sekali per sesi, kami merekomendasikan memanggilnya sebelum bergabung.
Batasan
Baik metode ini maupun setVideoMirrorMode mengontrol pencerminan stream video. Kami merekomendasikan hanya menggunakan salah satunya. Menggunakan keduanya dapat menyebabkan efek cermin tumpang tindih, yang mengakibatkan perilaku yang tidak benar.
Parameter
Nama | Tipe | Deskripsi |
config | AliRtcVideoEncoderConfiguration * _Nonnull | Properti pengkodean yang telah ditentukan sebelumnya. Nilai default:
-1 berarti menggunakan default internal SDK. |
setVideoDecoderConfiguration
Menetapkan properti decoding video.
- (void)setVideoDecoderConfiguration:(AliRtcVideoDecoderConfiguration* _Nonnull)config;Metode ini menetapkan parameter decoding video untuk stream kamera.
Kapan Harus Menghubungi
Anda dapat memanggil metode ini sebelum rapat dimulai.
Parameter
Nama | Jenis | Deskripsi |
config | AliRtcVideoDecoderConfiguration * _Nonnull | Properti decoding yang telah ditentukan sebelumnya. Nilai default:
"-1" menunjukkan menggunakan pengaturan default SDK. |
switchCamera
Beralih antara kamera depan dan belakang. Secara default, kamera depan digunakan. Metode ini hanya berlaku untuk iOS.
- (int)switchCamera;Metode ini mengontrol apakah kamera depan atau belakang digunakan. Anda dapat beralih kamera secara dinamis selama runtime aplikasi berdasarkan perangkat keras yang tersedia tanpa me-restart stream video atau mengonfigurasi ulang sumber video.
Kapan harus memanggil
Anda hanya dapat memanggil metode ini setelah kamera berhasil dihidupkan.
Batasan
Metode ini hanya didukung pada platform iOS dan Android.
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
getCurrentCameraDirection
Memeriksa jenis kamera saat ini. Secara default, kamera depan digunakan. Metode ini hanya berlaku untuk iOS.
- (AliRtcCameraDirection)getCurrentCameraDirection;Deskripsi pengembalian
Mengembalikan enumerasi arah kamera.
startPreview
Memulai pratinjau lokal. Kamera secara otomatis dihidupkan.
- (int)startPreview;API ini mengaktifkan pratinjau video lokal dan secara otomatis membuka kamera. Untuk menghentikan pratinjau lokal, panggil API `stopPreview`.
leaveChannel meninggalkan channel dan secara otomatis menghentikan pratinjau lokal. Jika Anda tidak mendorong stream kamera, kamera secara otomatis dimatikan.
Kapan Harus Menghubungi
Sebelum memanggil metode ini, Anda dapat mengatur tampilan pratinjau menggunakan setLocalViewConfig. Jika tidak, pratinjau gagal—tetapi ingest stream tetap tidak terpengaruh.
Anda dapat memanggil metode ini sebelum joinChannel untuk memulai pratinjau lebih awal. Kamera mulai secara otomatis.
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
stopPreview
Menghentikan pratinjau lokal.
- (int)stopPreview;Metode ini menghentikan pratinjau video lokal dan menonaktifkan kamera. Setelah dihentikan, pratinjau lokal membeku pada frame terakhir. Ingest stream tidak terpengaruh.
leaveChannel secara otomatis menghentikan pratinjau lokal. Jika Anda tidak menerbitkan stream kamera, kamera juga secara otomatis dimatikan.
Kapan Harus Menghubungi
Anda dapat memanggil metode ini untuk menghentikan pratinjau.
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
setCameraZoom
Mengatur zoom kamera.
- (int)setCameraZoom:(float)zoom;Parameter
Nama | Type | Deskripsi |
zoom | float | Tingkat zoom. Rentang: dari 1 hingga faktor zoom maksimum yang didukung kamera. |
Nilai kembali
Mengembalikan 0 pada keberhasilan. Nilai lainnya menunjukkan kegagalan.
GetCameraMaxZoomFactor
Mengambil faktor zoom kamera maksimum.
- (float)GetCameraMaxZoomFactor;Nilai kembali
Faktor zoom kamera maksimum.
GetCurrentZoom
Memperoleh tingkat zoom kamera saat ini.
- (float)GetCurrentZoom;Nilai kembali
Tingkat zoom kamera saat ini.
SetExposure
Anda dapat mengatur tingkat eksposur kamera.
- (int)SetExposure:(float)exposure;Parameter
Nama | Tipe | Deskripsi |
exposure | float | Tingkat eksposur. |
Nilai kembali
0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
GetCurrentExposure
Anda dapat memperoleh eksposur kamera.
- (float)GetCurrentExposure;Nilai kembali
Tingkat eksposur kamera.
GetMinExposure
Peroleh eksposur kamera minimum
- (float)GetMinExposure;nilai kembali
Tingkat eksposur minimum untuk kamera.
GetMaxExposure
Mengambil tingkat eksposur kamera maksimum.
- (float)GetMaxExposure;Nilai kembali
Tingkat eksposur kamera maksimum.
setCameraFlash
Anda dapat mengatur sakelar flash kamera.
- (int)setCameraFlash:(BOOL)flash;Parameter
Nama | Tipe | Deskripsi |
flash | BOOL | Apakah akan mengaktifkan flash. |
Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
isCameraFocusPointSupported
Memeriksa apakah fokus manual didukung.
- (BOOL)isCameraFocusPointSupported;Nilai kembali
Mengembalikan TRUE jika fokus manual didukung, dan FALSE sebaliknya.
isCameraExposurePointSupported
Apakah kamera mendukung pengaturan titik eksposur?
- (BOOL)isCameraExposurePointSupported;Nilai kembali
TRUE menunjukkan bahwa pengaturan titik eksposur didukung. FALSE menunjukkan bahwa itu tidak didukung.
setCameraFocusPoint
Mengatur titik fokus manual untuk kamera.
- (int)setCameraFocusPoint:(CGPoint)point;Parameter
Nama | Tipe | Deskripsi |
point | CGPoint | Koordinat titik fokus. Tetap aktif sampai diubah. |
Nilai kembali
Mengembalikan 0 pada keberhasilan. Nilai lainnya menunjukkan kegagalan.
setCameraExposurePoint
Atur nilai eksposur pada titik yang ditentukan.
- (int)setCameraExposurePoint:(CGPoint)point;Parameter
Nama | Tipe | Deskripsi |
point | CGPoint | Koordinat titik fokus. Tetap aktif sampai diubah. |
Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
isCameraAutoFocusFaceModeSupported
Apakah kamera mendukung fokus wajah?
- (BOOL)isCameraAutoFocusFaceModeSupported;Nilai kembali
Nilai TRUE menunjukkan bahwa fokus otomatis wajah didukung, dan nilai FALSE menunjukkan bahwa tidak didukung.
setCameraAutoFocusFaceModeEnabled
Anda dapat mengaktifkan atau menonaktifkan fokus otomatis wajah.
- (BOOL)setCameraAutoFocusFaceModeEnabled:(BOOL)enable;Parameter
Nama | Tipe | Deskripsi |
point | CGPoint | Koordinat titik fokus. Tetap aktif sampai diubah. |
Nilai kembali
Nilai kembali TRUE menunjukkan keberhasilan. Nilai kembali FALSE menunjukkan kegagalan.
setVideoMirrorMode
Atur mode pencerminan video.
- (int)setVideoMirrorMode:(AliRtcVideoPipelineMirrorMode)mirrorMode;Menetapkan apakah akan menerapkan pencerminan ke pratinjau lokal dan stream video yang diterbitkan.
Metode ini memiliki prioritas lebih tinggi daripada setLocalViewConfig dan setVideoEncoderConfiguration, dan kami merekomendasikan menggunakannya untuk mengonfigurasi pencerminan.
Kapan dipanggil
Anda dapat memanggil metode ini secara dinamis sebelum atau setelah bergabung ke channel. SDK menyimpan status dan menerapkan pencerminan selama pratinjau atau pengkodean (ingest stream).
Batasan
Metode ini tumpang tindih dengan setLocalViewConfig dan setVideoEncoderConfiguration, keduanya mendukung parameter mirrorMode. Kami merekomendasikan hanya menggunakan metode ini.
Parameter
Nama | Tipe | Deskripsi |
mirrorMode | Jenis pencerminan. |
SetCapturePipelineScaleMode
Anda dapat mengatur mode penskalaan untuk tautan video.
-(void)setCapturePipelineScaleMode:(AliRtcCapturePipelineScaleMode)mode;Menentukan apakah data video diskalakan selama pengambilan atau selama pengkodean. Misalnya, jika resolusi pengambilan berbeda dari resolusi pengkodean, pengaturan ini menentukan apakah data pratinjau cocok dengan data ingest stream.
Mode penskalaan default adalah penskalaan langsung selama pengambilan. Anda harus mengatur API ini sebelum aktivasi kamera—sebelum startPreview atau joinChannel.
Kapan Dipanggil
Anda harus mengatur metode ini sebelum memulai kamera—misalnya, sebelum memanggil startPreview atau joinChannel.
Parameter
Nama | Tipe | Deskripsi |
mode | Jenis penskalaan. |
Nilai kembali
Nilai 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
registerVideoFrameWithObserver
Mendaftarkan observer output data video.
- (void)registerVideoFrameWithObserver:(id<AliRtcVideoFrameDelegate> _Nullable)observer;Anda dapat menggunakan metode ini untuk mendaftarkan objek yang mengekspor data video. Untuk membatalkan pendaftaran, panggil unregisterVideoSampleWithObserver.
Kapan Harus Menghubungi
Untuk memperoleh data video mentah (seperti format YUV atau RGBA) pada berbagai tahap, Anda dapat memanggil antarmuka ini untuk mendaftarkan monitor data video.
Callback terkait
Setelah Anda berhasil mendaftarkan observer output data video, SDK memicu callback yang Anda implementasikan ketika menangkap setiap frame video. Terapkan callback berikut sesuai kebutuhan:
onCaptureVideoSample: Callback untuk data video yang diambil secara lokal.
onRemoteVideoSample: Callback untuk data video remote.
onPreEncodeVideoSample: Callback untuk data video lokal sebelum pengkodean.
Parameter
Nama | Tipe | Deskripsi |
observer | Observer output data video. |
unregisterVideoSampleWithObserver
Anda dapat membatalkan objek output data video.
- (void)unregisterVideoSampleWithObserver:(id<AliRtcVideoFrameDelegate> _Nullable)observer;Antarmuka ini berkorelasi dengan antarmuka <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#9a3437ab16j1w" id="f524bad30a6ys">registerVideoSampleObserver</a> dan membatalkan pendaftaran objek output data video.
Parameter
Nama | Tipe | Deskripsi |
observer | Objek output untuk data video. |
registerLocalVideoTextureObserver
Mendaftarkan observer tekstur OpenGL untuk video kamera lokal.
- (void)registerLocalVideoTextureObserver:(id<AliRtcTextureDelegate> _Nullable)observer;Untuk mengambil data video mentah, panggil registerVideoSampleObserver. Untuk mengambil data tekstur internal, panggil metode ini. Untuk membatalkan pendaftaran observer, panggil unRegisterLocalVideoTextureObserver.
Metode ini hanya berlaku untuk video kamera lokal.
Setelah Anda berhasil mendaftarkan observer tekstur OpenGL untuk video kamera lokal, SDK memicu callback onTextureCreate, onTextureUpdate, dan onTextureDestroy.
Callback terkait
Setelah Anda berhasil mendaftarkan observer tekstur OpenGL untuk video kamera lokal, SDK memicu callback yang Anda implementasikan di AliRtcTextureObserver setiap kali frame video diambil. Anda dapat menerapkan callback berikut sesuai kebutuhan:
onTextureCreate: Callback ini dipicu ketika SDK membuat konteks OpenGL internalnya.
onTextureUpdate: Callback ini dipicu setelah setiap frame video diunggah ke tekstur OpenGL. Ketika observer tekstur eksternal terdaftar, Anda dapat memproses tekstur dan mengembalikan ID tekstur yang telah diproses. Nilai kembali harus merupakan ID tekstur yang valid. Jika tidak ada pemrosesan yang dilakukan, kembalikan textureId input.
onTextureDestroy: Callback ini dipicu ketika SDK menghancurkan konteks OpenGL internalnya.
Parameter
Nama | Tipe | Deskripsi |
observer | Observer tekstur OpenGL. |
unregisterLocalVideoTextureObserver
Membatalkan pendaftaran observer tekstur OpenGL untuk video kamera lokal.
- (void)unregisterLocalVideoTextureObserver:(id<AliRtcTextureDelegate> _Nullable)observer;Metode ini berkorelasi dengan registerLocalVideoTextureObserver dan menangani pembatalan pendaftarannya.
Parameter
Nama | Tipe | Deskripsi |
observer | Observer tekstur OpenGL. |
snapshotVideo
Mengambil snapshot dari video.
- (int)snapshotVideo:(NSString*_Nullable)userId type:(AliRtcVideoTrack)type;Parameter
Nama | Tipe | Deskripsi |
userId | NSString * | ID pengguna. Nilai nil atau "" mewakili pengguna lokal. |
type | Jenis stream video hanya mendukung {@link AliRtcVideoTrack::AliRtcVideoTrackCamera} dan {@link AliRtcVideoTrack::AliRtcVideoTrackScreen}. |
Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
setExternalVideoSource
Menentukan apakah akan mengaktifkan sumber video eksternal.
- (int)setExternalVideoSource:(BOOL)enable sourceType:(AliRtcVideoSource)type renderMode:(AliRtcRenderMode)renderMode;Parameter
Nama | Tipe | Deskripsi |
enable | BOOL | YES menunjukkan bahwa fitur diaktifkan. NO menunjukkan bahwa fitur dinonaktifkan. |
type | Jenis stream | |
renderMode | Mode rendering. |
pushExternalVideoFrame
Mengimpor data video eksternal.
- (int)pushExternalVideoFrame:(AliRtcVideoDataSample *_Nonnull)frame sourceType:(AliRtcVideoSource)type;Parameter
Nama | Tipe | Deskripsi |
frame | *_Nonnull | Frame data |
type | Jenis stream |
Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
startPublishLiveStreamWithURL
Memulai streaming langsung yang direlay.
- (int)startPublishLiveStreamWithURL:(NSString *_Nonnull)streamURL liveTranscoding:(AliRtcLiveTranscodingParam *_Nonnull)trancoding;Parameter
Nama | Tipe | Deskripsi |
streamUrl | NSString * | Jalur ingest. |
transcoding | * | Parameter untuk streaming langsung yang direlay. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
updatePublishLiveStreamWithURL
Memperbarui parameter untuk streaming langsung yang direlay.
- (int)updatePublishLiveStreamWithURL:(NSString *_Nonnull)streamURL liveTranscoding:(AliRtcLiveTranscodingParam *_Nonnull)trancoding;Parameter
Nama | Type | Deskripsi |
streamUrl | NSString * | Jalur ingest. |
transcoding | * | Parameter untuk streaming langsung yang direlay. |
Nilai Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
stopPublishLiveStreamWithURL
Hentikan streaming langsung bypass.
- (int)stopPublishLiveStreamWithURL:(NSString *_Nonnull)streamURL;Parameter
Nama | Tipe | Deskripsi |
streamUrl | NSString *_Nonnull | Jalur ingest. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
GetPublishLiveStreamStateWithURL
Memeriksa status streaming langsung yang direlay.
- (AliRtcLiveTranscodingState)GetPublishLiveStreamStateWithURL:(NSString *_Nonnull)streamURL;Parameter
Parameter | Tipe | Deskripsi |
streamURL | NSString * | Jalur ingest. |
Deskripsi pengembalian
Status streaming langsung yang direlay dikembalikan.
startLastmileDetect
Memulai pengujian kualitas jaringan.
- (int)startLastmileDetect:(AliRtcNetworkQualityProbeConfig *_Nonnull)config;Parameter
Parameter | Tipe | Deskripsi |
config | Parameter Konfigurasi Probe |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
stopLastmileDetect
Menghentikan pengujian kualitas jaringan.
- (int)stopLastmileDetect;Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
sendMediaExtensionMsg
Menetapkan parameter mode gema.
- (int)sendMediaExtensionMsg:(NSData *_Nonnull)data repeatCount:(int)repeatCount delay:(int)delay isKeyFrame:(bool)isKeyFrame;SDK mendukung pengiriman dan penerimaan pesan ekstensi media. SDK mengirimkan pesan menggunakan protokol Supplemental Enhancement Information (SEI). Penerima dapat memperoleh pesan dengan mendengarkan callback onMediaExtensionMsgReceived.
Contoh kasus penggunaan umum meliputi:
Anda dapat menggunakan pesan ekstensi media untuk mengirim timestamp guna menghitung latensi jaringan end-to-end atau untuk sinkronisasi dengan logika bisnis lainnya.
Anda dapat menggunakan pesan ekstensi media untuk mengirim informasi deskriptif, dengan muatan hingga 4 KB. Untuk muatan kecil, gunakan JSON atau string biasa.
Kapan dipanggil
Panggil metode ini setelah ingest stream dimulai.
Batasan
Pesan ekstensi media menggunakan kembali saluran data audio-video. Oleh karena itu, Anda harus mengontrol frekuensi dan ukuran pesan. Batasan berikut berlaku:
Jumlah maksimum pesan per detik sama dengan pengaturan frames per second (FPS) dalam profil. Karena pesan SEI disematkan dalam stream H.264 atau H.265, pengkodean frame video diperlukan untuk melampirkan data ekstensi.
Untuk menghindari memengaruhi kualitas transmisi media, ukuran badan pesan dibatasi hingga 4 KB. Batasan ini cocok untuk muatan kecil.
Anda dapat menggunakan fungsi sendMediaExtensionMsg. Parameter repeatCount menentukan redundansi pesan kustom. Jika parameter ini lebih besar dari 1, pesan dikirim beberapa kali.
Untuk mencegah kehilangan paket menyebabkan kehilangan pesan, pengguna lain di channel juga menerima pesan duplikat. Anda harus menghapus duplikatnya.
Pelanggan dalam sesi streaming langsung yang direlay juga menerima pesan kustom.
Hanya satu MediaExtensionMsg yang dapat dikirimkan sekaligus. Beberapa panggilan ke sendMediaExtensionMsg menyebabkan data dari panggilan baru menimpa data dari panggilan sebelumnya.
Callback terkait
Ketika penerbit mengirim pesan ekstensi media, pelanggan menerima pesan tersebut melalui callback onMediaExtensionMsgReceived.
Deskripsi Parameter
Nama | Jenis | Deskripsi |
data | NSData * | Konten pesan ekstensi. Panjang maksimum: 4 KB. |
repeatCount | int | Jumlah pengulangan. Digunakan untuk redundansi guna mencegah kehilangan message akibat packet loss. Nilai -1 berarti percobaan ulang tanpa batas kecuali jika sendMediaExtensionMsg lain dipanggil. |
delay | int | Delay dalam milidetik sebelum pengiriman. Delay aktual mungkin sedikit lebih lama karena SEI dilampirkan ke aliran H.264/H.265 yang telah dikodekan. |
isKeyFrame | bool | Apakah SEI hanya akan disambungkan ke keyframe. Atur ke true untuk menyambungkan SEI hanya ke keyframe. |
Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
sendMediaExtensionMsgEx
Informasi ekstensi media dikirimkan dan diimplementasikan di lapisan bawah menggunakan SEI.
- (int)sendMediaExtensionMsgEx:(NSData *_Nonnull)data repeatCount:(int)repeatCount delay:(int)delay isKeyFrame:(bool)isKeyFrame payloadType:(int)payloadType;SDK mendukung pengiriman dan penerimaan pesan ekstensi media. Metode ini mengirimkan pesan menggunakan protokol Supplemental Enhancement Information (SEI). Penerima dapat memperoleh pesan dengan mendengarkan callback onMediaExtensionMsgReceived. Jika payloadType adalah 5, metode ini berfungsi identik dengan sendMediaExtensionMsg.
Contoh kasus penggunaan umum meliputi:
Anda dapat menggunakan pesan ekstensi media untuk mengirim timestamp guna menghitung latensi jaringan end-to-end atau untuk sinkronisasi dengan logika bisnis lainnya.
Anda dapat menggunakan pesan ekstensi media untuk mengirim informasi deskriptif. Data hingga 4 KB dapat dikirim. Untuk muatan kecil, gunakan JSON atau string biasa.
Kapan Harus Menghubungi
Anda dapat memanggil setelah memulai ingest stream.
Batasan Panggilan
Pesan ekstensi media menggunakan kembali saluran data audio-video. Oleh karena itu, Anda harus mengontrol frekuensi dan ukuran pesan-pesan ini. Batasannya adalah:
Jumlah maksimum pesan per detik sama dengan pengaturan frames per second (FPS) dalam profil. Karena pesan SEI disematkan dalam stream H.264 atau H.265, pengkodean frame video diperlukan untuk melampirkan data ekstensi.
Untuk menghindari memengaruhi kualitas transmisi media, ukuran badan pesan dibatasi hingga 4 KB. Batasan ini cocok untuk muatan kecil.
Parameter repeatCount dari fungsi sendMediaExtensionMsg menentukan redundansi pesan. Nilai lebih besar dari 1 memicu beberapa transmisi.
Untuk mencegah kehilangan pesan akibat kehilangan paket, pengguna lain di channel juga menerima pesan duplikat. Anda harus menghapus duplikatnya.
Pelanggan dalam sesi streaming langsung yang direlay juga menerima pesan kustom.
Hanya satu MediaExtensionMsg yang dapat dikirimkan sekaligus. Beberapa panggilan ke sendMediaExtensionMsg menimpa data sebelumnya.
Parameter
Nama | Tipe | Deskripsi |
data | NSData * | Konten pesan ekstensi. Panjang maksimum: 4 KB. |
repeatCount | int | Jumlah pengulangan. Digunakan untuk redundansi guna mencegah kehilangan pesan akibat kehilangan paket. -1 berarti percobaan tak terbatas kecuali sendMediaExtensionMsg lain dipanggil. |
delay | int | Keterlambatan dalam milidetik sebelum mengirim. Keterlambatan aktual mungkin sedikit lebih lama karena SEI dilampirkan ke stream H.264/H.265 yang dikodekan. |
isKeyFrame | bool | Apakah SEI hanya akan disambungkan ke keyframe. Atur ke true untuk menyambungkan SEI hanya ke keyframe. |
payloadType | int | Tipe. Gunakan 5 untuk muatan berbasis UUID. Rentang valid: [5, 100..254]. |
Deskripsi Pengembalian
0: Berhasil.
< 0: Gagal. Mengembalikan kode kesalahan.
ERR_INNER (-1): Kesalahan internal SDK. Kemungkinan penyebab: SDK belum diinisialisasi atau dihancurkan sebelum panggilan.
onConnectionStatusChange
Callback yang dipanggil ketika status koneksi jaringan berubah.
- (void)onConnectionStatusChange:(AliRtcConnectionStatus)status reason:(AliRtcConnectionStatusChangeReason)reason;Parameter
Parameter | Tipe | Deskripsi |
status | Status saat ini. | |
reason | Alasan spesifik untuk perubahan status. |
onLocalDeviceException
Callback yang dipanggil ketika terjadi pengecualian perangkat lokal. Perhatikan callback ini.
- (void)onLocalDeviceException:(AliRtcLocalDeviceType)deviceType exceptionType:(AliRtcLocalDeviceExceptionType)exceptionType message:(NSString *_Nullable)msg;Parameter
Parameter | Tipe | Deskripsi |
deviceType | AliRtcLocalDeviceType | Jenis perangkat. |
exceptionType | AliRtcLocalDeviceExceptionType | Jenis pengecualian perangkat. |
msg | NSString | Informasi yang dibawa dalam pengecualian. |
onAuthInfoWillExpire
Callback yang dipanggil ketika autentikasi pengguna akan segera kedaluwarsa. Autentikasi kedaluwarsa 30 detik setelah Anda menerima callback ini. Perhatikan callback ini.
- (void)onAuthInfoWillExpire;Callback ini menunjukkan bahwa autentikasi pengguna akan segera kedaluwarsa. Setelah menerimanya, autentikasi kedaluwarsa dalam 30 detik. Anda harus menghasilkan token baru dan memperbarui autentikasi menggunakan salah satu metode berikut:
Panggil API
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#e6a4495191bmd" id="918ba91977wi6">refreshAuthInfo</a>untuk memperbarui informasi autentikasi.Panggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="ad8235d30dprb">leaveChannel</a>untuk meninggalkan channel saat ini, lalu panggiljoinChanneluntuk bergabung kembali ke channel.
Kondisi Pemicu
SDK memicu callback ini 30 detik sebelum autentikasi kedaluwarsa. Setelah Anda menerimanya, perbarui autentikasi segera.
onAuthInfoExpired
Pengguna memanggil API yang memerlukan autentikasi, dan server mengembalikan tanggapan yang telah kedaluwarsa.
- (void)onAuthInfoExpired;Callback ini menunjukkan bahwa autentikasi pengguna telah kedaluwarsa. Untuk melanjutkan sesi, hasilkan token baru di server Anda dan perbarui autentikasi menggunakan salah satu metode berikut:
Panggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#449873b819cz2" id="21390e77a1307">leaveChannel</a>untuk meninggalkan channel saat ini, lalu panggiljoinChanneluntuk bergabung kembali ke channel.
Ketika dipicu
Callback ini dipicu ketika autentikasi pengguna kedaluwarsa.
onJoinChannelResult
Callback ini melaporkan hasil bergabung ke channel. Fungsionalitasnya setara dengan operasi blocking metode joinChannel. Anda dapat menggunakan pendekatan mana pun untuk menangani event yang terjadi setelah bergabung ke channel.
- (void)onJoinChannelResult:(int)result channel:(NSString *_Nonnull)channel elapsed:(int) elapsed;Kondisi pemicu
Callback ini dipicu ketika aplikasi Anda memanggil metode joinChannel. Callback ini melaporkan apakah operasi berhasil atau gagal dan mengembalikan informasi terkait, termasuk latensi bergabung.
Parameter
Parameter | Tipe | Deskripsi |
result | int | Hasil permintaan untuk bergabung ke channel. Nilai 0 menunjukkan bahwa permintaan berhasil. Nilai selain 0 menunjukkan permintaan gagal dan kode kesalahan dikembalikan. |
channel | NSString *_Nonnull | ID channel. |
elapsed | int | Jumlah waktu yang dikonsumsi untuk bergabung ke channel. |
onLeaveChannelResult
Callback ini dipanggil setelah Anda memanggil leaveChannel. Jika Anda memanggil destroy segera setelah leaveChannel, callback ini tidak dipicu.
- (void)onLeaveChannelResult:(int)result stats:(AliRtcStats)stats;Parameter
Parameter | Tipe | Deskripsi |
result | int | Hasil permintaan untuk meninggalkan channel. Nilai 0 menunjukkan bahwa permintaan berhasil. Nilai selain 0 menunjukkan permintaan gagal dan kode kesalahan dikembalikan. |
stats | Statistik sesi di dalam channel. |
onRemoteUserOffLineNotify
Callback yang dipanggil ketika pengguna remote offline.
- (void)onRemoteUserOffLineNotify:(NSString *_Nonnull)uid offlineReason:(AliRtcUserOfflineReason)reason;Callback ini memberi tahu pengguna lokal ketika pengguna remote keluar dari channel karena alasan apa pun. Callback ini dipicu ketika pengguna remote menjadi offline.
Kondisi pemicu
Callback ini dipicu ketika pengguna remote keluar dari channel.
Streamer remote memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#892915dd4edcy" id="78b1952ad5lwp">setClientRole</a>untuk beralih ke peran viewer (AliRtcClientRoleLive), dan callback dipicu.Sistem mendeteksi bahwa tidak ada data yang diterima dari streamer remote dalam periode waktu yang lama dan menganggap mereka offline.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID unik pengguna yang ditetapkan oleh AppServer. |
reason | Alasan mengapa pengguna remote menjadi offline. |
onRemoteUserOnLineNotify
Callback yang dipanggil ketika pengguna remote online.
- (void)onRemoteUserOnLineNotify:(NSString *_Nonnull)uid elapsed:(int)elapsed;Metode ini dipicu ketika pengguna remote bergabung ke channel.
Kondisi pemicu
Pengguna remote berhasil bergabung ke channel.
Setelah pengguna lokal bergabung ke channel, mereka menerima callback bergabung untuk pengguna yang sudah berada di channel untuk menampilkan pengguna yang telah bergabung sebelumnya.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID unik pengguna yang ditetapkan oleh AppServer. |
elapsed | int | Jumlah waktu yang dikonsumsi bagi pengguna remote untuk bergabung ke channel. |
onRemoteTrackAvailableNotify
Callback yang dipanggil ketika stream pengguna remote berubah.
- (void)onRemoteTrackAvailableNotify:(NSString *_Nonnull)uid audioTrack:(AliRtcAudioTrack)audioTrack videoTrack:(AliRtcVideoTrack)videoTrack;Callback ini dipicu ketika status penerbitan pengguna remote berubah. Anda dapat menggunakannya untuk memantau apakah pengguna remote menerbitkan stream audio dan video serta memperbarui UI sesuai dengan menampilkan atau menyembunyikan media mereka.
Callback ini melaporkan status penerbitan pengguna remote. Untuk mengidentifikasi stream mana yang berhenti, bandingkan status sebelum dan sesudah callback dipicu.
Kondisi pemicu
Callback ini dipicu dalam kasus berikut:
Pengguna remote berpindah dari tidak menerbitkan ke menerbitkan audio dan/atau video.
Pengguna remote berpindah dari menerbitkan ke tidak menerbitkan audio dan/atau video.
Dalam mode interaktif, pengguna remote memanggil setClientRole untuk beralih dari viewer ke streamer saat menerbitkan stream.
Misalnya, callback ini tidak dipicu jika pengguna remote menonaktifkan ingest stream video:
Jika pengguna remote mulai menerbitkan video kamera (status penerbitan: tanpa video → hanya kamera), callback ini mengembalikan
AliRtcVideoTrackCamera, menunjukkan bahwa stream kamera pengguna remote tersedia.Jika pengguna yang sama kemudian juga menerbitkan berbagi layar (status penerbitan: hanya kamera → kamera + berbagi layar), callback ini mengembalikan
AliRtcVideoTrackBoth, menunjukkan bahwa stream kamera dan berbagi layar tersedia.Jika pengguna berhenti menerbitkan video kamera tetapi terus berbagi layar (status penerbitan: kamera + berbagi layar → hanya berbagi layar), callback ini mengembalikan
AliRtcVideoTrackScreen, menunjukkan bahwa hanya stream berbagi layar yang tersedia.Jika pengguna berhenti menerbitkan berbagi layar (status penerbitan: hanya berbagi layar → tanpa video), callback ini mengembalikan
AliRtcVideoTrackNo, menunjukkan bahwa tidak ada stream video yang tersedia.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID unik pengguna yang ditetapkan oleh AppServer. |
audioTrack | Stream audio diperbarui mengikuti perubahan pengguna remote. | |
videoTrack | Stream video diperbarui setelah pengguna remote melakukan perubahan. |
onBye
Callback yang dipanggil ketika pengguna dipaksa keluar dari channel.
- (void)onBye:(int)code;Callback ini dipicu ketika pengguna terputus atau sesi berakhir. Pengembang dapat menggunakan parameter code untuk mengidentifikasi penyebab dan menanganinya secara tepat.
Kondisi Pemicu
Pengguna diputus oleh server.
Sesi berakhir (server menghentikan channel).
Pengguna terputus secara pasif. Klien harus mencoba pemulihan atau koneksi ulang sesi.
Parameter
Parameter | Tipe | Deskripsi |
code | int | Jenis pesan. Nilai valid:
|
onAudioPublishStateChanged
Callback yang dipanggil ketika status ingest stream untuk track audio berubah.
- (void)onAudioPublishStateChanged:(AliRtcPublishState)oldState newState:(AliRtcPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;Callback ini memantau perubahan status penerbitan audio pengguna lokal.
Kondisi pemicu
Callback ini dipicu ketika status penerbitan audio pengguna berubah—misalnya:
Hentikan ingest stream.
Anda dapat memanggil
<a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#892915dd4edcy" id="81771ef0798we">setClientRole</a>untuk beralih ke viewer.
Parameter
Parameter | Jenis | Deskripsi |
oldState | Status ingest stream sebelumnya. | |
newStat | Status ingest stream saat ini. | |
elapseSinceLastState | NSInteger | Waktu yang berlalu untuk perubahan tersebut. Satuan: milidetik. |
channel | NSString *_Nonnull | ID channel. |
onAudioSubscribeStateChanged
Callback yang dipanggil ketika status langganan ke track audio berubah.
- (void)onAudioSubscribeStateChanged:(NSString *_Nonnull)uid oldState:(AliRtcSubscribeState)oldState newState:(AliRtcSubscribeState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;Callback ini memberi tahu pengguna lokal ketika status langganan ke stream audio pengguna remote berubah. Anda dapat menggunakannya untuk melacak perubahan status langganan untuk stream kamera pengguna remote tertentu dan interval waktu antar status.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna yang status langganannya berubah. |
oldState | Status langganan sebelumnya. | |
newState | Status langganan saat ini. | |
elapseSinceLastState | NSInteger | Waktu yang berlalu untuk perubahan tersebut. Satuan: milidetik. |
channel | NSString *_Nonnull | ID channel. |
onUserAudioMuted
Callback yang dipanggil ketika pengguna membisukan track audio.
- (void)onUserAudioMuted:(NSString *_Nonnull)uid audioMuted:(BOOL)isMute;Parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna yang membisukan track audio. |
isMute | BOOL | Nilai YES menunjukkan bahwa track audio dibisukan. Nilai NO menunjukkan bahwa track audio tidak dibisukan. |
onUserAudioInterruptedBegin
Callback yang dipanggil ketika track audio pengguna terganggu. Misalnya, track audio dapat diambil alih ketika pengguna melakukan panggilan telepon.
- (void)onUserAudioInterruptedBegin:(NSString *_Nonnull)uid;Parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna yang track audionya terganggu. |
onUserAudioInterruptedEnded
Callback yang dipanggil ketika gangguan track audio pengguna berakhir. Callback ini berpasangan dengan callback onUserAudioInterruptedBegin.
- (void)onUserAudioInterruptedEnded:(NSString *_Nonnull)uid;Parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna yang track audionya terganggu. |
onVideoPublishStateChanged
Callback yang dipanggil ketika status ingest stream untuk track video berubah.
- (void)onVideoPublishStateChanged:(AliRtcPublishState)oldState newState:(AliRtcPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;Callback ini memantau perubahan status penerbitan video pengguna lokal.
Parameter
Parameter | Tipe | Deskripsi |
oldState | Status ingest stream sebelumnya. | |
newState | Status ingest stream saat ini. | |
elapseSinceLastState | NSInteger | Waktu yang berlalu untuk perubahan tersebut. Satuan: milidetik. |
channel | NSString *_Nonnull | ID channel. |
onVideoSubscribeStateChanged
Callback yang dipanggil ketika status langganan ke track video berubah.
- (void)onVideoSubscribeStateChanged:(NSString *_Nonnull)uid oldState:(AliRtcSubscribeState)oldState newState:(AliRtcSubscribeState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;Callback ini memberi tahu pengguna lokal tentang perubahan status langganan ke stream kamera pengguna remote. Callback ini menyediakan status langganan baru dan waktu yang berlalu antara perubahan status.
Callback terkait
Stream video mencakup stream kamera dan stream berbagi layar. Callback ini dipicu oleh perubahan langganan ke stream kamera. Perubahan langganan ke stream berbagi layar memicu callback onScreenShareSubscribeStateChanged.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna yang status langganannya berubah. |
oldState | Status langganan sebelumnya. | |
newState | Status langganan saat ini. | |
elapseSinceLastState | NSInteger | Waktu yang berlalu untuk perubahan tersebut. Satuan: milidetik. |
channel | NSString *_Nonnull | ID channel. |
onUserVideoMuted
Notifikasi pembisuan video pengguna.
- (void)onUserVideoMuted:(NSString *_Nonnull)uid videoMuted:(BOOL)isMute;Parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna yang menjalankan muteVideo. |
isMute | BOOL | Nilai YES menunjukkan bahwa frame hitam dikirimkan untuk track video. Nilai NO menunjukkan bahwa track video diterbitkan secara normal. |
onUserVideoEnabled
Notifikasi dikirim ketika pengambilan video lokal dinonaktifkan atau diaktifkan kembali.
- (void)onUserVideoEnabled:(NSString *_Nullable)uid videoEnabled:(BOOL)isEnable;Parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna yang menjalankan operasi. |
isMute | BOOL | Nilai YES menunjukkan bahwa pengambilan track kamera diaktifkan. Nilai NO menunjukkan bahwa pengambilan track kamera dinonaktifkan. |
onUserWillResignActive
Callback yang dipanggil ketika pengguna remote beralih aplikasi ke latar belakang.
- (void)onUserWillResignActive:(NSString *_Nonnull)uid;Parameter
Parameter | Type | Deskripsi |
uid | NSString *_Nonnull | ID pengguna yang beralih aplikasi ke latar belakang. |
onUserWillBecomeActive
Callback yang dipanggil ketika pengguna remote beralih aplikasi kembali ke latar depan.
- (void)onUserWillBecomeActive:(NSString *_Nonnull)uid;Parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna yang beralih aplikasi kembali ke latar depan. |
onRtcStats
Callback untuk statistik real-time. Callback ini dipicu setiap dua detik.
- (void)onRtcStats:(AliRtcStats)stats;Parameter
Parameter | Type | Deskripsi |
stats | Callback data |
onRtcLocalVideoStats
Statistik performa video lokal (pembaruan dipicu setiap 2 detik).
- (void)onRtcLocalVideoStats:(AliRtcLocalVideoStats *_Nonnull)localVideoStats;Parameter
Parameter | Tipe | Deskripsi |
localVideoStats | Statistik video lokal. |
onRtcRemoteVideoStats
Statistik performa video remote, yang dipicu setiap 2 s.
- (void)onRtcRemoteVideoStats:(AliRtcRemoteVideoStats *_Nonnull)remoteVideoStats;Parameter
Parameter | Type | Deskripsi |
remoteVideoStats | Statistik video remote. |
onRtcLocalAudioStats
Statistik audio lokal (dipicu setiap 2 detik).
- (void)onRtcLocalAudioStats:(AliRtcLocalAudioStats *_Nonnull)localAudioStats;Parameter
Parameter | Type | Deskripsi |
localAudioStats | Statistik audio lokal. |
onRtcRemoteAudioStats
Callback ini menyediakan statistik audio remote dan dipicu setiap dua detik.
- (void)onRtcRemoteAudioStats:(AliRtcRemoteAudioStats *_Nonnull)remoteAudioStats;Parameter
Parameter | Tipe | Deskripsi |
remoteAudioStats | Statistik audio remote. |
onMediaExtensionMsgReceived
Anda telah menerima callback yang berisi informasi ekstensi media.
- (void)onMediaExtensionMsgReceived:(NSString *_Nonnull)uid payloadType:(int)payloadType message:(NSData *_Nonnull)data;Setelah satu peserta mengirim pesan ekstensi media menggunakan metode sendMediaExtensionMsg, peserta lain menerima data melalui callback ini.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString | ID pengguna. |
payloadType | int | Jenis muatan. |
message | NSData * | Pesan ekstensi media. |
onAudioRouteChanged
Callback ini dipanggil ketika rute audio berubah dan hanya berlaku untuk Android dan iOS.
- (void)onAudioRouteChanged:(AliRtcAudioRouteType)routing;Parameter
Parameter | Tipe | Deskripsi |
routing | Jenis rute. |
onSnapshotComplete
Callback yang dipanggil ketika operasi snapshot selesai.
- (void)onSnapshotComplete:(NSString*_Nullable)uid videoTrack:(AliRtcVideoTrack)videoTrack image:(UIImage* _Nullable)image success:(BOOL)success;Parameter
Parameter | Tipe | Deskripsi |
image | UIImage * | Jenis gambar. |
success | BOOL | Apakah operasi berhasil. |
onLocalAudioStateChanged
Terjadi ketika status perangkat pengambilan audio lokal berubah.
- (void)onLocalAudioStateChanged:(AliRtcLocalAudioStateType)state message:(NSString *_Nullable)msg;Callback ini melaporkan hasil memanggil startAudioCapture dan stopAudioCapture.
Parameter
Parameter | Tipe | Deskripsi |
state | Status perangkat, bertipe AliRtcLocalAudioStateType. | |
msg | NSString * | Deskripsi perubahan status perangkat. |
onLocalVideoStateChanged
Callback untuk status perangkat pengambilan video lokal.
- (void)onLocalVideoStateChanged:(AliRtcLocalVideoStateType)state message:(NSString *_Nullable)msg;Parameter
Parameter | Tipe | Deskripsi |
state | Status perangkat, bertipe AliRtcLocalVideoStateType. | |
msg | NSString * | Deskripsi perubahan status perangkat. |
onRemoteUserSubscribedDataChannel
Callback yang dipanggil ketika Anda dapat mulai mengirim pesan Saluran Data.
- (void)onRemoteUserSubscribedDataChannel:(NSString *_Nonnull)uid;Callback ini dipicu ketika pengguna remote berlangganan ke Saluran Data. Callback ini memberi tahu pengguna lokal bahwa pengguna remote yang ditentukan siap menerima pesan kustom. Anda dapat dengan aman memanggil sendDataChannelMessage untuk mengirim data pada titik ini. Callback ini sangat penting untuk pengiriman pesan yang andal karena mencegah kehilangan paket atau kegagalan yang terjadi ketika pesan dikirim sebelum target pengguna berlangganan ke Saluran Data.
Callback ini dipicu hanya dalam skenario AI.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString * | ID pengguna. |
onDataChannelMessage
Callback ini menangani pesan saluran data.
- (void)onDataChannelMessage:(NSString *_Nonnull)uid controlMsg:(AliRtcDataChannelMsg*_Nonnull)controlMsg;SDK ARTC mendukung pengiriman dan penerimaan pesan kustom bersama dengan data audio dan video. Callback ini menerima pesan kustom tersebut. Untuk detail penggunaan, lihat Pengiriman dan penerimaan pesan kustom.
Dalam skenario interaktif, streamer dapat mengirim dan menerima pesan, sedangkan viewer hanya dapat menerima pesan.
Fitur ini dinonaktifkan secara default. Untuk mengaktifkannya, panggil
setParametersetelah membuat engine untuk mengatur{"data":{"enablePubDataChannel":true,"enableSubDataChannel":true}}.
Ketika dipicu
Callback ini dipicu setelah pengirim memanggil sendDataChannelMessage untuk mengirim pesan kustom dan penerima telah mengaktifkan saluran data.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString * | ID pengguna. |
controlMsg | Pesan saluran data. |
onScreenSharePublishStateChanged
Callback ini dipanggil ketika status ingest stream untuk berbagi layar berubah.
- (void)onScreenSharePublishStateChanged:(AliRtcPublishState)oldState newState:(AliRtcPublishState)newState elapseSinceLastState:(NSInteger)elapseSinceLastState channel:(NSString *_Nonnull)channel;Parameter
Parameter | Tipe | Deskripsi |
oldState | Hasil probing. 0 berarti berhasil. -1 berarti gagal karena kualitas jaringan buruk. | |
newState | Status penerbitan sebelumnya. | |
newState | Status penerbitan baru. | |
elapseSinceLastState | NSInteger | Interval waktu antar perubahan status, dalam milidetik. |
channel | NSString * | ID channel saat ini. |
onCapturedAudioFrame
Callback untuk pengumpulan data mentah.
- (BOOL)onCapturedAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;Callback ini mengambil data audio mentah yang diambil oleh perangkat saat ini. Callback ini dinonaktifkan secara default. Untuk menerima data ini:
Anda dapat mengaktifkan callback ini menggunakan enableAudioFrameObserver(true, audioSource, config). Parameter config memungkinkan Anda mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.
Anda dapat memanggil registerAudioFrameObserver untuk mendaftarkan penerima data audio.
Antarmuka ini mendukung pengaturan laju sampel, jumlah saluran suara, dan mode baca/tulis.
Anda dapat menghindari anomali audio dengan tidak melakukan operasi yang memakan waktu di dalam callback ini.
Antarmuka ini mendukung pengaturan laju sampel dan jumlah saluran suara.
Antarmuka ini mendukung mode baca/tulis.
Batasan
Jangan lakukan operasi yang memakan waktu di dalam callback ini. Melakukannya dapat menyebabkan anomali audio.
Parameter
Parameter | Tipe | Deskripsi |
frame | Frame video. |
Nilai kembali
true: Operasi berhasil.
onProcessCapturedAudioFrame
Callback ini mengirimkan data audio setelah pemrosesan 3A.
- (BOOL)onProcessCapturedAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;Anda dapat mengambil data audio setelah pemrosesan 3A menggunakan callback ini. Ini dinonaktifkan secara default. Untuk mengaktifkannya:
Panggil enableAudioFrameObserver(true, audioSource, config). Parameter config memungkinkan Anda mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.
Panggil registerAudioFrameObserver untuk mendaftarkan penerima data audio.
Antarmuka ini mendukung pengaturan laju sampel, jumlah saluran suara, dan mode baca/tulis.
Jangan lakukan operasi yang memakan waktu di dalam callback ini karena hal itu dapat menyebabkan anomali audio.
Antarmuka ini mendukung pengaturan laju sampel dan jumlah saluran suara.
Antarmuka ini mendukung mode baca/tulis.
Batasan
Jangan lakukan operasi yang memakan waktu di dalam callback ini karena hal itu dapat menyebabkan anomali audio.
Parameter
Parameter | Tipe | Deskripsi |
frame | Frame video. |
Nilai kembali
true: Berhasil.
onPublishAudioFrame
Callback data ingest stream.
- (BOOL)onPublishAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;Callback ini mengambil data audio yang sedang diterbitkan. Ini dinonaktifkan secara default. Untuk mengambil data ini:
Anda dapat mengaktifkan callback ini menggunakan enableAudioFrameObserver(true, audioSource, config). Parameter config memungkinkan Anda mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.
Anda dapat memanggil registerAudioFrameObserver untuk mendaftarkan penerima data audio.
Antarmuka ini mendukung konfigurasi laju sampel dan jumlah saluran suara, tetapi hanya dalam mode read-only.
Anda sebaiknya tidak melakukan operasi yang memakan waktu di dalam callback ini karena hal itu dapat menyebabkan anomali audio.
Antarmuka ini mendukung konfigurasi laju sampel dan jumlah saluran suara.
Antarmuka ini mendukung mode baca/tulis.
Batasan
Hindari melakukan operasi yang memakan waktu di dalam callback ini. Hal ini dapat menyebabkan anomali audio.
Parameter
Parameter | Tipe | Deskripsi |
frame | Frame video. |
Nilai kembali
true: Operasi berhasil.
onPlaybackAudioFrame
Callback untuk data pemutaran audio.
- (BOOL)onPlaybackAudioFrame:(AliRtcAudioFrame* _Nonnull)frame;Callback ini mengambil data pemutaran audio. Ini dinonaktifkan secara default. Untuk memperoleh data ini:
Aktifkan callback ini menggunakan enableAudioFrameObserver(true, audioSource, config). Parameter config memungkinkan Anda mengatur laju sampel, jumlah saluran suara, dan mode baca/tulis.
Panggil registerAudioFrameObserver untuk mendaftarkan penerima data audio.
Antarmuka ini mendukung pengaturan laju sampel, jumlah saluran suara, dan mode baca/tulis.
Jangan lakukan operasi yang memakan waktu di dalam callback ini. Melakukannya dapat menyebabkan anomali audio.
Antarmuka ini mendukung pengaturan laju sampel dan jumlah saluran suara.
Antarmuka ini mendukung mode baca/tulis.
Batasan
Jangan lakukan operasi yang memakan waktu di dalam callback ini. Melakukannya dapat menyebabkan anomali audio.
Parameter
Parameter | Jenis | Deskripsi |
frame | Frame video. |
Nilai kembali
true: Berhasil.
onRemoteUserAudioFrame
Callback ini mengirimkan data audio dari stream audio pengguna remote.
- (BOOL)onRemoteUserAudioFrame:(NSString *_Nullable)uid frame:(AliRtcAudioFrame* _Nonnull)frame;Callback ini dinonaktifkan secara default. Untuk mengambil data audio pengguna remote:
Aktifkan callback dengan memanggil enableAudioFrameObserver(true, audioSource, config). Parameter config memungkinkan Anda menentukan laju sampel, jumlah saluran suara, dan mode baca/tulis.
Panggil registerAudioFrameObserver untuk mendaftarkan penerima data audio.
Antarmuka ini tidak mendukung pengaturan laju sampel atau jumlah saluran suara, tetapi mendukung konfigurasi mode baca/tulis.
Hindari melakukan operasi yang memakan waktu di dalam callback ini karena hal itu dapat menyebabkan anomali audio.
Antarmuka ini does not support pengaturan laju sampel atau jumlah saluran suara.
Antarmuka ini mendukung konfigurasi mode baca/tulis.
Batasan
Hindari melakukan operasi yang memakan waktu di dalam callback ini karena hal itu dapat menyebabkan anomali audio.
Parameter
Parameter | Jenis | Deskripsi |
frame | Frame video. |
Nilai kembali
true: Operasi berhasil.
onDestroyCompletion
Callback yang melepaskan engine DPI. Engine dilepaskan sepenuhnya hanya setelah callback ini dieksekusi.
- (void)onDestroyCompletion;Callback ini menunjukkan bahwa instans SDK engine telah dihancurkan, dan Anda dapat membuat instans baru.
Tunggu callback onDestroyCompletion sebelum memanggil metode lainnya. Ini mencegah thread utama terblokir.
Kondisi Pemicu
Ketika pengguna memanggil destroy[2/2], callback ini dipicu setelah penghancuran engine selesai.
onTextureCreate
Callback untuk pembuatan konteks OpenGL.
- (void)onTextureCreate:(void *_Nullable)context;SDK memicu callback ini saat membuat konteks OpenGL internalnya.
Kondisi pemicu
Callback ini dipicu ketika SDK membuat konteks OpenGL internalnya. Anda dapat menginisialisasi resource terkait di dalam callback ini.
Parameter
Parameter | Tipe | Deskripsi |
context | void * | Konteks OpenGL. |
onTextureUpdate
Callback pembaruan tekstur OpenGL.
- (int)onTextureUpdate:(int)textureId width:(int)width height:(int)height videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;Callback ini dipicu setelah setiap frame video diunggah ke tekstur OpenGL. Ketika observer tekstur OpenGL eksternal terdaftar, Anda dapat memproses tekstur dan mengembalikan ID tekstur yang telah diproses.
Callback harus mengembalikan ID tekstur yang valid. Jika tidak ada pemrosesan, kembalikan textureId input.
Kondisi pemicu
Callback ini dipicu setelah setiap frame video diunggah ke tekstur OpenGL. Ketika observer tekstur OpenGL eksternal terdaftar, Anda dapat memproses tekstur dan mengembalikan ID tekstur yang telah diproses.
Parameter
Parameter | Tipe | Deskripsi |
textureId | int | Konteks OpenGL. |
width | int | Lebar video. |
height | int | Tinggi video. |
videoSample | Data frame video. |
Nilai kembali
Mengembalikan ID tekstur baru atau ID tekstur asli. Mengembalikan nilai negatif menunjukkan tidak ada pembaruan ID tekstur.
onTextureDestory
Callback penghancuran untuk konteks OpenGL.
- (void)onTextureDestory;Callback ini dipicu ketika SDK menghancurkan konteks OpenGL internalnya.
Kondisi Pemicu
Callback ini dipicu ketika SDK menghancurkan konteks OpenGL internalnya. Anda dapat membersihkan resource terkait di sini.
onCaptureVideoSample
Callback ini melaporkan frame video yang diambil.
- (BOOL)onCaptureVideoSample:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;Callback ini mengambil frame video mentah, seperti data YUV, dari kamera lokal. Anda dapat menggunakan callback ini untuk menerapkan logika pemrosesan video khusus, seperti menambahkan filter, watermark, atau transkode. Anda kemudian dapat memutuskan apakah akan mengirimkan kembali data yang telah diproses ke SDK untuk pengkodean dan rendering. Kembalikan true untuk menulis kembali data video yang telah diproses ke SDK.
Ketika dipicu
Setelah Anda memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#9a3437ab16j1w" id="6c93b9cf8e771">registerVideoSampleObserver</a> untuk mendaftarkan observer data video, SDK menangkap frame video yang sesuai.
Parameter
Parameter | Tipe | Deskripsi |
videoSource | Jenis stream video. | |
videoSample | Data video mentah. |
Nilai kembali
Ya, Anda dapat menulis kembali data video yang telah diproses ke SDK, tetapi ini hanya didukung untuk format I420 dan CVPixelBuffer pada iOS dan macOS.
Tidak: Jangan tulis balik ke SDK.
onPreEncodeVideoSample
Callback ini dipicu sebelum data video lokal dikodekan.
- (BOOL)onPreEncodeVideoSample:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;
Callback ini memungkinkan Anda mengambil data video mentah, seperti data dalam format YUV, sebelum SDK mengkodekan frame video. Anda dapat menggunakan data ini untuk menerapkan logika pemrosesan khusus, seperti menambahkan watermark, menyesuaikan warna, atau transkode. Anda kemudian dapat memutuskan apakah akan mengembalikan data yang telah diproses ke SDK untuk pengkodean selanjutnya.
Parameter
Parameter | Type | Deskripsi |
videoSource | Jenis stream video. | |
videoSample | Data video mentah. |
Nilai kembali
YES: Data video yang telah diproses dikembalikan ke SDK. Ini efektif hanya untuk data dalam format I420 dan CVPixelBuffer pada iOS dan macOS.
Tidak, Anda tidak perlu menulis balik ke SDK.
onRemoteVideoSample
Callback untuk data video remote.
- (BOOL)onRemoteVideoSample:(NSString *_Nonnull)uid videoSource:(AliRtcVideoSource)videoSource videoSample:(AliRtcVideoDataSample *_Nonnull)videoSample;Callback ini mengambil data frame video mentah (seperti format YUV) dari pengguna remote. Anda dapat menggunakannya untuk menerapkan logika pemrosesan khusus—misalnya, menambahkan filter, watermark, atau transkode—dan memutuskan apakah akan mengembalikan data yang telah diproses ke SDK untuk rendering.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString * | ID pengguna. |
videoSource | Jenis stream video. | |
videoSample | Data video mentah. |
Nilai kembali
YES: Tulis kembali data video yang telah diproses ke SDK (hanya efektif untuk I420 dan CVPixelBuffer pada iOS/macOS).
NO: Jangan tulis balik ke SDK.
onGetVideoFormatPreference
Format output data video.
- (AliRtcVideoFormat)onGetVideoFormatPreference;Aplikasi dapat mengembalikan format data video yang disukai. Nilai default adalah AliRtcYUV420.
Nilai kembali
Format output video yang disukai.
onGetVideoObservedFramePosition
Posisi tempat data video dioutputkan.
- (NSInteger)onGetVideoObservedFramePosition;Nilai kembali
Posisi output video yang disukai. Untuk informasi lebih lanjut, lihat AliRtcVideoObserPosition.
onAudioEffectFinished
Callback yang dipanggil ketika pemutaran lokal efek suara berakhir.
- (void)onAudioEffectFinished:(int)soundId;Parameter
Parameter | Jenis | Deskripsi |
soundId | int | ID efek suara. |
onAudioVolumeCallback
Melaporkan volume audio, status suara, dan UID pengguna yang berlangganan.
- (void)onAudioVolumeCallback:(NSArray <AliRtcUserVolumeInfo *> *_Nullable)array totalVolume:(int)totalVolume;Callback ini mengambil data frame video pengguna remote. Anda dapat menggunakan callback ini untuk menerapkan logika pemrosesan kustom—misalnya, menambahkan filter atau watermark—dan memutuskan apakah akan mengembalikan data yang telah diproses ke SDK untuk rendering.
Parameter
Parameter | Tipe | Deskripsi |
array | NSArray <AliRtcUserVolumeInfo *> *_Nullable | Array berisi informasi volume untuk setiap pengguna, termasuk UID, status pembicaraan, dan volume:
|
totalVolume | int | Volume setelah audio dicampur. Nilai valid: 0 hingga 255. Jika callback ini dikembalikan ke pengguna lokal, nilai parameter ini menunjukkan volume setelah audio pengguna lokal dicampur. Jika callback ini dikembalikan ke pengguna remote, nilai parameter ini menunjukkan volume setelah audio dari semua pembicara dicampur. |
onActiveSpeaker
Callback yang dipanggil ketika pengguna berbicara.
- (void)onActiveSpeaker:(NSString *_Nonnull)uid;Setelah Anda berhasil memanggil <a baseurl="t2309850_v9_0_0.xdita" data-node="4087266" data-root="16090" data-tag="xref" href="#85b41ef251dg0" id="a41de41e279og">enableAudioVolumeIndication</a>, SDK terus-menerus memantau pengguna remote dengan volume audio tertinggi, melacak jumlah kali pengguna tersebut diidentifikasi sebagai memiliki volume audio tertinggi. Selama periode waktu saat ini, pengguna remote dengan hitungan tertinggi dianggap sebagai pengguna paling aktif.
Kondisi Pemicu
Callback ini dipicu ketika channel berisi dua pengguna atau lebih dan setidaknya satu pengguna remote sedang berbicara secara aktif.
Jika pengguna remote paling aktif tetap sama, SDK tidak memicu callback
onActiveSpeakerlagi.Jika pembicara remote paling aktif berubah, SDK memicu callback ini lagi dan melaporkan UID pembicara aktif baru.
Parameter
Parameter | Tipe | Deskripsi |
uid | NSString *_Nonnull | ID pengguna yang sedang berbicara. |
onPublishLiveStreamStateChanged
Callback yang dipanggil ketika status streaming langsung yang direlay berubah.
- (void)onPublishLiveStreamStateChanged:(NSString *_Nonnull)streamURL state:(AliRtcLiveTranscodingState)state errCode:(AliRtcTrascodingLiveStreamErrorCode)errCode;Parameter
Parameter | Tipe | Deskripsi |
streamURL | NSString * | Jalur ingest. |
state | Status. | |
errCode | Kode kesalahan. |
onPublishTaskStateChanged
Callback yang dipanggil ketika status tugas streaming langsung yang direlay berubah.
- (void)onPublishTaskStateChanged:(NSString *_Nonnull)streamURL state:(AliRtcTrascodingLiveTaskStatus)state;Parameter
Parameter | Tipe | Deskripsi |
streamURL | NSString * | Jalur ingest. |
state | Status. |
onNetworkQualityChanged
Callback yang dipanggil ketika kualitas jaringan berubah.
- (void)onNetworkQualityChanged:(NSString *_Nonnull)uid
upNetworkQuality:(AliRtcNetworkQuality)upQuality
downNetworkQuality:(AliRtcNetworkQuality)downQuality;Parameter
Parameter | Tipe | Deskripsi |
uid | NSString* | ID pengguna. Nilai kosong untuk parameter ini menunjukkan pengguna lokal. |
upQuality | Status jaringan upstream. | |
downQuality | Status jaringan downstream. |
onLastmileDetectResultWithQuality
Callback untuk hasil pengujian kualitas jaringan.
- (void)onLastmileDetectResultWithQuality:(AliRtcNetworkQuality)networkQuality;Parameter
Parameter | Type | Deskripsi |
networkQuality | Kualitas jaringan. |
onLastmileDetectResultWithBandWidth
Callback yang dipanggil untuk mengembalikan hasil pengujian kualitas jaringan.
- (void)onLastmileDetectResultWithBandWidth:(int)code result:(AliRtcNetworkQualityProbeResult* _Nonnull)result;Parameter
Parameter | Tipe | Deskripsi |
code | int | Nilai 0 menunjukkan bahwa uji berhasil. Nilai -1 menunjukkan bahwa uji gagal dan jaringan buruk. |
result | Kualitas jaringan. |
onOccurError
Jika terjadi kesalahan di engine, aplikasi diberi tahu melalui callback ini.
- (void)onOccurError:(int)error message:(NSString *_Nonnull)message;Parameter
Parameter | Tipe | Deskripsi |
error | int | Jenis kesalahan. Lihat AliRtcErrorCode. |
message | NSString * | Deskripsi kesalahan. |
onFirstAudioPacketSentWithTimecost
Dipicu ketika paket audio pertama dikirim.
- (void)onFirstAudioPacketSentWithTimecost:(AliRtcAudioTrack)track timeCost:(int)timeCost;Parameter
Parameter | Tipe | Deskripsi |
track | Track tersebut. | |
timeCost | int | Waktu yang dibutuhkan untuk mengirim paket. |
onFirstVideoFrameReceivedWithUid
Callback ini dipanggil ketika frame video pertama diterima.
- (void)onFirstVideoFrameReceivedWithUid:(NSString *_Nonnull)uid
videoTrack:(AliRtcVideoTrack)videoTrack
timeCost:(int)timeCost;Parameter
Parameter | Tipe | Deskripsi |
uid | NSString * | ID pengguna. |
videoTrack | Label stream video. | |
timeCost | int | Biaya waktu dalam milidetik. |
onFirstVideoPacketSentWithVideoTrack
Callback untuk paket video pertama yang dikirim.
- (void)onFirstVideoPacketSentWithVideoTrack:(AliRtcVideoTrack)videoTrack
timeCost:(int)timeCost;Parameter
Parameter | Tipe | Deskripsi |
videoTrack | Label stream video. | |
timeCost | int | Biaya waktu dalam milidetik. |
onFirstAudioPacketReceivedWithUid
Callback ini dipanggil ketika paket audio pertama diterima.
- (void)onFirstAudioPacketReceivedWithUid:(NSString *_Nonnull)uid
track:(AliRtcAudioTrack)track
timeCost:(int)timeCost;Parameter
Parameter | Jenis | Deskripsi |
uid | NSString * | ID pengguna. |
videoTrack | Label stream audio. | |
timeCost | int | Biaya waktu dalam milidetik. |
onFirstRemoteAudioDecodedWithUid
Terjadi ketika frame audio remote pertama didekodekan.
- (void)onFirstRemoteAudioDecodedWithUid:(NSString *_Nonnull)uid track:(AliRtcAudioTrack)track elapsed:(int)elapsed;Parameter
Parameter | Tipe | Deskripsi |
uid | NSString * | ID pengguna. |
track | Label stream audio. | |
elapsed | int | Waktu yang dibutuhkan dalam satuan milidetik. |
onFirstRemoteVideoFrameDrawn
Callback ini dipanggil ketika frame video pertama dari pengguna remote dirender.
- (void)onFirstRemoteVideoFrameDrawn:(NSString *_Nonnull)uid videoTrack:(AliRtcVideoTrack)videoTrack width:(int)width height:(int)height elapsed:(int)elapsed;Parameter
Parameter | Tipe | Deskripsi |
uid | NSString * | ID pengguna. |
videoTrack | Label stream audio. | |
width | int | Lebar. |
height | int | Tinggi. |
elapsed | int | Latensi total dalam milidetik antara pengguna lokal bergabung ke channel dan callback ini dipicu. |
onFirstLocalVideoFrameDrawn
Pesan ini dipicu ketika pratinjau mulai menampilkan frame video pertama.
- (void)onFirstLocalVideoFrameDrawn:(int)width height:(int)height elapsed:(int)elapsed;Parameter
Parameter | Tipe | Deskripsi |
width | int | Lebar video pratinjau lokal. |
height | int | Tinggi video pratinjau lokal. |
elapsed | int | Latensi total dalam milidetik antara pengguna lokal bergabung ke channel dan callback ini dipicu. |
onTestAudioVolumeCallback
Callback ini melaporkan volume audio selama pengujian pengambilan sebelum panggilan.
- (void)onTestAudioVolumeCallback:(int)volume;Parameter
Parameter | Tipe | Deskripsi |
volume | int | Volume. Rentang: [0..100]. |
onAudioAccompanyStateChanged
Callback yang dipanggil ketika status pemutaran akompanimen lokal berubah.
- (void)onAudioAccompanyStateChanged:(AliRtcAudioAccompanyStateCode)playState
errorCode:(AliRtcAudioAccompanyErrorCode)errorCode;Parameter
Parameter | Tipe | Deskripsi |
playState | Status pemutaran akompanimen. | |
errorCode | Kode kesalahan. |
onRemoteAudioAccompanyStarted
Callback ini dipicu ketika pengguna remote mulai memutar akompanimen musik.
- (void)onRemoteAudioAccompanyStarted:(NSString *_Nonnull)uid;Parameter
Parameter | Jenis | Deskripsi |
uid | NSString * | ID pengguna. |
onRemoteAudioAccompanyFinished
Callback ini dipanggil ketika pengguna remote selesai memutar akompanimen audio.
- (void)onRemoteAudioAccompanyFinished:(NSString *_Nonnull)uid;Parameter
Parameter | Tipe | Deskripsi |
uid | NSString * | ID pengguna. |
setParameter
Mengatur parameter kustom.
- (int)setParameter:(NSString * _Nonnull)param;Parameter
Parameter | Type | Deskripsi |
param | String | Parameter kustom. |
getParameter
Memeriksa parameter kustom.
- (NSString * _Nonnull)getParameter:(NSString * _Nonnull)param;Parameter
Parameter | Tipe | Deskripsi |
param | String | Parameter kustom. |
enableAudioFrameObserver
Mengonfigurasi pengaturan callback audio.
- (int)enableAudioFrameObserver:(bool)enable audioSource: (AliRtcAudioSource)audioSource config:(AliRtcAudioFrameObserverConfig*_Nullable)config;Metode ini mengaktifkan atau menonaktifkan callback untuk jenis data audio tertentu, memungkinkan pengembang mengambil frame audio mentah dan terkodekan. Secara default, callback ini dinonaktifkan. Untuk mengaktifkannya, panggil metode ini.
Untuk mengaktifkan callback data audio untuk AliRtcAudioSource tertentu, Anda juga harus memanggil registerAudioFrameObserver untuk menentukan penerima data audio.
Kapan harus memanggil
Anda dapat memanggil metode ini untuk mengaktifkan pengambilan frame audio.
Parameter
Parameter | Tipe | Deskripsi |
enable | bool | Menentukan apakah akan mengizinkan callback. |
audioSource | Jenis sumber data callback. | |
config | AliRtcAudioFrameObserverConfig | Pengaturan parameter callback. |
registerAudioFrameObserver
Mendaftarkan callback audio.
- (int)registerAudioFrameObserver:(id<AliRtcAudioFrameDelegate> _Nullable)observer;Metode ini mendaftarkan objek yang menerima data callback audio.
Kapan harus memanggil
Anda dapat memanggil metode ini ketika aplikasi Anda memerlukan SDK untuk memicu callback onCapturedAudioFrame, onProcessCapturedAudioFrame, onPublishAudioFrame, onPlaybackAudioFrame, atau onRemoteUserAudioFrame guna mengambil data audio. Untuk membatalkan pendaftaran, panggil metode ini lagi dengan nil.
Batasan
Anda harus memanggil enableAudioFrameObserver untuk mengaktifkan callback untuk AliRtcAudioSource tertentu. Jika tidak, observer yang disediakan tidak akan menerima data.
Parameter
Parameter | Tipe | Deskripsi |
observer | AliRtcAudioFrameDelegate | Callback audio. |
registerVideoSampleObserver
Mendaftarkan objek yang digunakan untuk mengekspor data video.
- (void)registerVideoSampleObserver;unRegisterVideoSampleObserver
Anda dapat membatalkan pendaftaran output data video.
- (void)unregisterVideoSampleObserver;setLogDirPath
Mengatur jalur untuk menyimpan file log SDK.
Kami merekomendasikan agar Anda memanggil metode ini sebelum memanggil semua metode lainnya untuk menghindari kehilangan log. Sebelum memanggil metode ini, pastikan jalur yang ditentukan oleh parameter logDirPath ada dan file log dapat ditulis ke jalur tersebut.
+ (int)setLogDirPath:(NSString *_Nullable)logDirPath;Parameter
Nama | Jenis | Deskripsi |
logDirPath | NSString *_Nullable | Jalur mutlak untuk menyimpan file log SDK.
|
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
setLogLevel
Mengatur tingkat log.
- (void)setLogLevel:(AliRtcLogLevel)logLevel;Parameter
Nama | Tipe | Deskripsi |
logLevel | Tingkat log. Nilai default: AliRtcLogLevelInfo. |
setAudioSessionOperationRestriction
Menentukan apakah SDK memiliki izin untuk mengontrol AVAudioSession.
- (int)setAudioSessionOperationRestriction:(AliRtcAudioSessionOperationRestriction)restriction;Parameter
Nama | Type | Deskripsi |
restriction | Izin kontrol SDK. Nilai default: AliRtcAudioSessionOperationRestrictionNone. |
setDeviceOrientationMode
Anda dapat mengatur orientasi perangkat.
- (int)setDeviceOrientationMode:(AliRtcOrientationMode)mode;Parameter
Nama | Tipe | Deskripsi |
mode | Orientasi perangkat. |
Nilai kembali
Nilai kembali 0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
getNetworkTime
Mengambil timestamp timeline.
-(long long)getNetworkTime;Nilai kembali
Timestamp.
sendDataChannelMessage
-(int) sendDataChannelMessage:(AliRtcDataChannelMsg* _Nonnull)controlMsg;SDK ARTC mendukung pengiriman dan penerimaan pesan kustom bersama dengan data audio dan video. Antarmuka ini memungkinkan Anda mengirim pesan real-time—seperti instruksi kontrol, data sinkronisasi, atau pesan bisnis—selama transmisi audio dan video. Untuk informasi lebih lanjut, lihat Pengiriman dan penerimaan pesan kustom.
Saluran pesan kustom dinonaktifkan secara default. Untuk menggunakan fitur ini, Anda dapat memanggil API
setParameteruntuk mengaktifkan saluran pesan kustom dengan mengatur{"data":{"enablePubDataChannel":true,"enableSubDataChannel":true}}. Anda dapat mengaktifkannya sebelum atau setelah bergabung ke channel.Pesan dapat berupa data apa saja—seperti teks.
Callback terkait
Setelah pengirim berhasil mengaktifkan saluran pesan kustom, mereka dapat memanggil metode ini untuk mengirim pesan. Penerima menerima pesan melalui callback
onDataChannelMessage.
Batasan
Streamer dapat mengirim dan menerima pesan. Viewer hanya dapat menerima pesan.
Anda harus memanggil setParameter untuk mengaktifkan saluran pesan kustom.
Batasan transmisi data adalah:
Bitrate maksimum: 30 KB/s.
Maksimum 60 paket per detik. Setiap paket dibatasi hingga 1 KB.
Parameter
Nama | Tipe | Deskripsi |
controlMsg | Pesan kontrol akompanimen. |
Nilai kembali
0 menunjukkan keberhasilan. Nilai lainnya menunjukkan kegagalan.
startScreenShare
Anda dapat memulai berbagi layar dan stream audio.
- (int)startScreenShare:(NSString * _Nonnull)appGroup
mode:(AliRtcScreenShareMode)mode;Parameter
Nama | Deskripsi |
appGroup | Nama paket aplikasi. Contoh: @"group.com.aliyun.rtc.demo" |
mode | Jenis berbagi layar. Untuk informasi lebih lanjut, lihat AliRtcScreenShareMode. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
startScreenShare
Anda dapat memulai berbagi layar stream video.
Metode ini akan dihentikan. Kami merekomendasikan menggunakan startScreenShare (baru).
- (int)startScreenShare;Deskripsi pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
stopScreenShare
Menghentikan stream berbagi layar dan stream audio terkait.
- (int)stopScreenShare;Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
isScreenSharePublished
Memeriksa apakah stream berbagi layar sedang diingest.
- (BOOL)isScreenSharePublished;Deskripsi Pengembalian
true: Stream berbagi layar sedang diingest. false: Tidak ada stream berbagi layar yang sedang diingest.
setScreenShareEncoderConfiguration
Mengatur konfigurasi encoder berbagi layar.
- (void)setScreenShareEncoderConfiguration:(AliRtcScreenShareEncoderConfiguration* _Nonnull)config;Metode ini mengonfigurasi properti pengkodean video untuk berbagi layar, seperti resolusi, laju frame, bitrate, dan orientasi. Semua parameter memiliki rentang valid. Jika Anda menentukan nilai yang tidak valid, SDK secara otomatis menyesuaikannya menjadi nilai yang valid. Anda dapat memanggil metode ini sebelum atau setelah bergabung ke channel. Untuk mengonfigurasi pengkodean berbagi layar sekali per sesi, Anda dapat memanggilnya sebelum bergabung.
Parameter
Nama | Tipe | Deskripsi |
config | Parameter pengkodean video berbagi layar, seperti resolusi, laju frame, bitrate, dan orientasi. Semua parameter memiliki rentang valid. Jika Anda menentukan nilai yang tidak valid, SDK secara otomatis menyesuaikannya. |
setAudioShareAppVolume
Mengatur volume stream audio bersama.
- (int)setAudioShareAppVolume:(int)volume;Parameter
Nama | Deskripsi |
volume | Volume. Nilai valid: 0 hingga 100. Nilai default: 50. |
Deskripsi Pengembalian
Nilai 0 menunjukkan bahwa panggilan berhasil. Nilai selain 0 menunjukkan bahwa panggilan gagal.
setGlobalEnvironment
Anda dapat mengatur lingkungan global.
- (BOOL) setGlobalEnvironment:(AlivcGlobalEnv)env;Metode ini menentukan lingkungan runtime global SDK dan terutama menentukan ke mana log dan data instrumentasi dikirim.
Jika diatur ke daratan Tiongkok, log dan instrumentasi dikirim ke pusat data daratan Tiongkok.
Jika diatur ke luar Tiongkok, data diarahkan ke pusat data luar negeri (seperti Singapura).
Kapan Harus Menghubungi
Kami merekomendasikan memanggil ini pada awal inisialisasi aplikasi.
Batasan
Pengaturan ini berlaku secara global dan hanya memerlukan satu kali panggilan.
Panggilan berulang akan menimpa pengaturan lingkungan sebelumnya. Mengubah lingkungan secara dinamis dapat memengaruhi koneksi atau sesi yang sudah ada, sehingga jangan ubah saat proses berjalan.
Contoh Panggilan
var sdkEnv: AlivcGlobalEnv = .DEFAULT
let sdkEnvResult = AlivcBase.environmentManager.setGlobalEnvironment(self.sdkEnv)
"Set RTC environment to: \(sdkEnv) result: \(sdkEnvResult)".printLog()AlivcGlobalEnv env = AlivcGlobalEnv_DEFAULT;
AlivcBase.EnvironmentManager.globalEnvironment = env;Parameter
Parameter | Tipe | Deskripsi |
env |
| Menentukan lingkungan global. Mendukung nilai enumerasi berikut: |
Nilai kembali
Mengembalikan kode hasil int.
0: Operasi berhasil.Nilai selain
0menunjukkan kegagalan.