Topik ini menjelaskan metode-metode yang disediakan oleh SDK co-streaming untuk Web.
Kelas dasar
Kelas | Deskripsi | ||||||
AlivcLivePusher | Kelas untuk ingest aliran. Catatan Anda dapat mengakses kelas ini dengan menggunakan window.AlivcLivePush.AlivcLivePusher. | ||||||
AlivcLivePlayer | Kelas untuk menarik aliran. Catatan Anda dapat mengakses kelas ini dengan menggunakan window.AlivcLivePush.AlivcLivePlayer. | ||||||
AlivcLivePusher - menyediakan metode terkait ingest aliran
Daftar Metode
Metode | Deskripsi | ||||||
Mengquery kamera. Ini adalah metode statis. | |||||||
Mengquery mikrofon. Ini adalah metode statis. | |||||||
Mengquery perangkat pemutaran. Ini adalah metode statis. | |||||||
Memeriksa apakah persyaratan untuk WebRTC terpenuhi. Ini adalah metode statis. | |||||||
Memeriksa apakah berbagi layar didukung. Ini adalah metode statis. | |||||||
Menginisialisasi parameter ingest aliran. | |||||||
Melepaskan instance ingest aliran. | |||||||
Memulai pratinjau. | |||||||
Menghentikan pratinjau. | |||||||
Memulai ingest aliran. | |||||||
Memulai ulang ingest aliran. | |||||||
Menghubungkan ulang dan melanjutkan ingest aliran. | |||||||
Menghentikan ingest aliran. | |||||||
Menghidupkan mikrofon atau beralih ke mikrofon lain. | |||||||
Mematikan mikrofon. | |||||||
Mengquery ID perangkat mikrofon. | |||||||
Menghidupkan kamera atau beralih ke kamera lain. | |||||||
Mematikan kamera. | |||||||
Mengquery ID perangkat kamera. | |||||||
Memulai berbagi layar. | |||||||
Menghentikan berbagi layar. | |||||||
Memulai ingest aliran sekunder kustom. | |||||||
Menghentikan ingest aliran sekunder kustom. | |||||||
Membisukan atau membatalkan pembisuan aliran. (Ingest aliran tidak dihentikan.) | |||||||
Menampilkan atau menghentikan penampilan aliran. (Ingest aliran tidak dihentikan.) | |||||||
Mengquery statistik ingest aliran yang dilaporkan terakhir. | |||||||
Mengquery URL ingest. | |||||||
Mengquery ID saluran. | |||||||
Mengquery ID pengguna. | |||||||
Memperbarui tata letak untuk relay dan pencampuran aliran. | |||||||
Mengquery resolusi. | |||||||
Memperbarui resolusi. | |||||||
Mengquery laju frame. | |||||||
Memperbarui laju frame. | |||||||
Mengquery informasi MediaStream dari aliran saat ini. | |||||||
Mengquery ID jejak. | |||||||
Mengonfigurasi lebar, tinggi, bitrate, dan laju frame dari trek layar. | |||||||
Rincian
getCameras: Mengquery kamera. Ini adalah metode statis.
/** * Query kamera. * @return {Promise<MediaDeviceInfo[]>} */ const cameras = await AlivcLivePusher.getCameras();getMicrophones: Mengquery mikrofon. Ini adalah metode statis.
/** * Query mikrofon. * @return {Promise<MediaDeviceInfo[]>} */ const microphones = await AlivcLivePusher.getMicrophones();getPlayoutDevices: Mengquery perangkat pemutaran. Ini adalah metode statis.
/** * Query perangkat pemutaran. * @return {Promise<MediaDeviceInfo[]>} */ const playoutDevices = await AlivcLivePusher.getPlayoutDevices();checkSystemRequirements: Memeriksa apakah persyaratan untuk WebRTC terpenuhi. Ini adalah metode statis.
/** * Periksa apakah persyaratan untuk WebRTC terpenuhi. * @param {('sendonly' | 'recvonly' | 'sendrecv')} [direction] * @return {Promise<CheckResult>} */ const checkResult = await AlivcLivePusher.checkSystemRequirements(); // checkResult.support: boolean; Menunjukkan apakah persyaratan terpenuhi. // checkResult.detail.isBrowserSupported: boolean; Menunjukkan apakah browser didukung. // checkResult.detail.isH264DecodeSupported: boolean; Menunjukkan apakah dekode H.264 didukung. // checkResult.detail.isH264EncodeSupported: boolean; Menunjukkan apakah enkode H.264 didukung. // checkResult.detail.isWebRTCSupported: boolean; Menunjukkan apakah WebRTC didukung.checkScreenShareSupported: Memeriksa apakah berbagi layar didukung. Ini adalah metode statis.
/** * Periksa apakah berbagi layar didukung. * @returns {boolean} */ const isScreenShareSupported = AlivcLivePusher.checkScreenShareSupported();init: Menginisialisasi parameter ingest aliran.
/** * Inisialisasi mesin RTC. * @param config Konfigurasikan parameter. Semua parameter bersifat opsional. * config.resolution: AlivcResolutionEnum; Resolusi. * config.fps: AlivcFpsEnum; Laju frame. Satuan: frame per detik (FPS). * config.logLevel: LogLevel; Tingkat log. Nilai default: ERROR. * config.connectRetryCount: number; Jumlah maksimum percobaan penyambungan ulang. * config.audio: boolean; Menentukan apakah audio diaktifkan. * config.audioId: string; ID perangkat audio default. * config.video: boolean; Menentukan apakah kamera dihidupkan. * config.cameraId: string; ID perangkat kamera default. * config.screen: boolean; Menentukan apakah berbagi layar diaktifkan. */ const pusher = new AlivcLivePush.AlivcLivePusher(); pusher.init({ resolution: AlivcLivePush.AlivcResolutionEnum.RESOLUTION_720P });destroy: Melepaskan instance ingest aliran.
// Lepaskan instance ingest aliran. Anda tidak dapat menggunakan instance setelah melepaskannya. pusher.destroy()startPreview: Memulai pratinjau.
/** * Mulai pratinjau video. * @param {string | HTMLVideoElement} elementOrId Node tempat video berada atau ID video. * @param {boolean} secondary Menentukan apakah akan menampilkan pratinjau aliran sekunder. Parameter ini opsional. Secara default, hanya aliran utama yang ditampilkan dalam pratinjau. * @return {Promise<MediaStream>} */ const stream = pusher.startPreview(elementOrId);stopPreview: Menghentikan pratinjau.
/** * Hentikan pratinjau video. * @param {string | HTMLVideoElement} elementOrId Node tempat video berada atau ID video. Parameter ini opsional. Jika parameter ini tidak ditentukan, pratinjau untuk semua video dihentikan. */ pusher.stopPreview(elementOrId);startPush: Memulai ingest aliran.
/** * Mulai ingest aliran. * @param {string} url URL ingest. Contoh: artc://live.aliyun.com/push/.... * @return {Promise} */ await pusher.startPush(url);PentingAnda harus menentukan URL ingest yang digunakan untuk co-streaming. Untuk informasi tentang cara menghasilkan URL untuk co-streaming, lihat Pembuat URL Co-streaming.
restartPush: Menggunakan URL ingest saat ini untuk memulai ulang ingest aliran.
/** * Gunakan URL ingest saat ini untuk memulai ulang ingest aliran. * @return {Promise} */ await pusher.restartPush();reconnectPush: Menyambungkan ulang dan melanjutkan ingest aliran.
/** * Sambungkan ulang dan lanjutkan ingest aliran. * @param {string} url URL ingest baru. Contoh: artc://live.aliyun.com/push/.... * @return {Promise} */ await pusher.reconnectPush(url);stopPush: Menghentikan ingest aliran.
/** * Hentikan ingest aliran. * @return {Promise} */ await pusher.stopPush(url);startMicrophone: Menghidupkan mikrofon atau beralih ke mikrofon lain.
/** * Hidupkan mikrofon atau beralih ke mikrofon lain. * @param {string} deviceId ID perangkat mikrofon. Parameter ini opsional. * @return {Promise} */ await pusher.startMicrophone(deviceId);stopMicrophone: Mematikan mikrofon.
/** * Matikan mikrofon. * @return {Promise} */ await pusher.stopMicrophone();getCurrentMicDeviceId: Mengquery ID perangkat mikrofon.
/** * Query ID perangkat mikrofon. * @return {string | undefined} ID perangkat mikrofon. */ const micId = pusher.getCurrentMicDeviceId();startCamera: Menghidupkan kamera atau beralih ke kamera lain.
/** * Hidupkan kamera atau beralih ke kamera lain. * @param {string} deviceId ID perangkat kamera. Parameter ini opsional. * @return {Promise} */ await pusher.startCamera(deviceId);stopCamera: Mematikan kamera.
/** * Matikan kamera. * @return {Promise} */ await pusher.stopCamera();getCurrentCameraDeviceId: Mengquery ID perangkat kamera.
/** * Query ID perangkat kamera. * @return {string | undefined} ID perangkat kamera. */ const cameraId = pusher.getCurrentCameraDeviceId();startScreenShare: Memulai berbagi layar.
/** * Mulai berbagi layar. * @return {Promise} */ await pusher.startScreenShare();stopScreenShare: Menghentikan berbagi layar.
/** * Hentikan berbagi layar. * @return {Promise} */ await pusher.stopScreenShare();startCustomStream: Memulai ingest aliran sekunder kustom.
/** * Mulai ingest aliran sekunder kustom. * @param mediaStream Aliran sekunder kustom. * @return {Promise<MediaStream>} */ await pusher.startCustomStream(mediaStream);stopCustomStream: Menghentikan ingest aliran sekunder kustom.
/** * Hentikan ingest aliran sekunder kustom. * @return {Promise<void>} */ await pusher.stopCustomStream();mute: Membisukan atau membatalkan pembisuan aliran. (Ingest aliran tidak dihentikan.)
/** * Bisukan atau batalkan pembisuan aliran. * @param {boolean} Tentukan apakah akan membisukan aliran. * @returns {boolean} Hasil pembisuan atau pembatalan pembisuan. */ pusher.mute(true);muteVideo: Menampilkan atau menghentikan penampilan aliran. (Ingest aliran tidak dihentikan.)
/** * Tampilkan atau hentikan penampilan aliran. * @param mute Tentukan apakah akan menghentikan pengiriman data video. Nilai valid: true dan false. * @returns Menunjukkan apakah operasi berhasil. */ pusher.muteVideo(true);getLivePushStatsInfo: Mengquery statistik ingest aliran yang dilaporkan terakhir.
/** * Query statistik ingest aliran yang dilaporkan terakhir. * @return {StatsInfo} Statistik ingest aliran. */ const statsInfo = pusher.getLivePushStatsInfo();getPushUrl: Mengquery URL ingest.
/** * Query URL ingest. * @return {string | undefined} URL ingest saat ini. */ const url = pusher.getPushUrl();getChannelId: Mengquery ID saluran.
/** * Query ID saluran. * @return {string | undefined} ID saluran saat ini. */ const channelId = pusher.getChannelId();getUserId: Mengquery ID pengguna.
/** * Query ID pengguna. * @return {string | undefined} ID pengguna saat ini. */ const userId = pusher.getUserId();setLiveMixTranscodingConfig: Memperbarui tata letak untuk relay dan pencampuran aliran.
/** * Perbarui tata letak untuk relay dan pencampuran aliran. * @param {AlivcLiveTranscodingConfig} config Parameter ini opsional. Jika Anda tidak menentukan parameter ini, relay dan pencampuran aliran dihentikan. Untuk informasi lebih lanjut, periksa detail tentang kelas AlivcLiveTranscodingConfig. * @return {Promise} Hasil operasi. */ const response = await pusher.setLiveMixTranscodingConfig(config);getResolution: Mengquery resolusi.
/** * Query resolusi. * @return {AlivcResolutionEnum | undefined} Resolusi. */ const resolution = pusher.getResolution();changeResolution: Memperbarui resolusi.
/** * Perbarui resolusi. * @param resolutionEnum Resolusi yang ingin Anda gunakan. Jika Anda menetapkan parameter ini ke Custom, tentukan resolusi kustom. * @param width Lebar, diperlukan ketika Anda menentukan resolusi kustom. * @param height Tinggi, diperlukan ketika Anda menentukan resolusi kustom. * @param bitrate Bitrate maksimum. * @return {Promise} */ await pusher.changeResolution(AlivcResolutionEnum.RESOLUTION_720P);getFps: Mengquery laju frame.
/** * Query laju frame. * @return {AlivcFpsEnum | undefined} Laju frame saat ini. */ const fps = pusher.getFps();changeFps: Memperbarui laju frame.
/** * Perbarui laju frame. * @param {AlivcFpsEnum} fps Laju frame yang ingin Anda gunakan. * @return {Promise} */ await pusher.changeFps(AlivcFpsEnum.FPS_30);getPublishMediaStream: Mengquery informasi MediaStream dari aliran saat ini.
/** * Query informasi MediaStream dari aliran saat ini. * @return {MediaStream | undefined} Informasi MediaStream dari aliran. */ const mediaStream = pusher.getPublishMediaStream();getLiveTraceId: Mengquery ID jejak.
/** * Query ID jejak. * @return {string} TraceId */ pusher.getLiveTraceId();updateScreenVideoProfile: Mengonfigurasi lebar, tinggi, bitrate, dan laju frame dari trek layar.
/** * Konfigurasikan lebar, tinggi, bitrate, dan laju frame dari trek layar. (Karena kendala browser, lebar dan tinggi yang ditentukan tidak diterapkan.) * @param width * @param height * @param rate * @param fps * @return {Promise} */ await pusher.updateScreenVideoProfile(width,height,rate,fps);
AlivcLiveTranscodingConfig
Daftar Parameter
Parameter | Deskripsi | ||||||
width | Nilai numerik yang menunjukkan lebar aliran yang direlay. | ||||||
height | Nilai numerik yang menunjukkan tinggi aliran yang direlay. | ||||||
backgroundColor | Nilai heksadesimal yang menunjukkan warna latar belakang. Contoh: 0x000000. | ||||||
cropMode | AlivcLiveTranscodingCropModeEnum
| ||||||
mixStreams | AlivcLiveMixStream[]: Detail tentang tata letak setiap aliran yang termasuk dalam aliran campuran. | ||||||
AlivcLiveMixStream
Daftar Parameter
Parameter | Deskripsi | ||||||
userId | String yang menunjukkan ID pengguna yang melakukan pencampuran aliran. | ||||||
x | Nilai numerik yang menunjukkan jumlah piksel sepanjang sumbu x dari mana pencampuran aliran dimulai. | ||||||
y | Nilai numerik yang menunjukkan jumlah piksel sepanjang sumbu y dari mana pencampuran aliran dimulai. | ||||||
width | Nilai numerik yang menunjukkan lebar aliran campuran. | ||||||
height | Nilai numerik yang menunjukkan tinggi aliran campuran. | ||||||
zOrder | Nilai numerik yang menunjukkan level hierarki. Semakin besar nilainya, semakin tinggi levelnya. | ||||||
sourceType | Nilai numerik yang menunjukkan jenis sumber video. Nilai valid:
Nilai default: 0. | ||||||
AlivcLivePusher.info
Event | Deskripsi | ||||||
bye | Menunjukkan bahwa penonton meninggalkan ruangan. Penonton mungkin telah didorong keluar oleh penonton lain atau ditendang oleh streamer. | ||||||
pushstatistics | Callback untuk statistik data aliran yang diingest. Callback ini dikembalikan setiap 2 detik. | ||||||
Kode Contoh:
pusher.info.on('bye', (_code, reason) => {
// console.log ('Anda telah meninggalkan ruangan. Alasan: ${reason}');
});
pusher.info.on('pushstatistics', _stat => {
// console.log(_stat);
});AlivcLivePusher.error
Event | Deskripsi | ||||||
system | Menunjukkan kesalahan sistem. | ||||||
sdk | Menunjukkan kesalahan internal SDK. | ||||||
Kode Contoh:
pusher.error.on('system', error => {
// console.log(error);
});
pusher.error.on('sdk', error => {
// console.log(error);
});AlivcLivePusher.network
Event | Deskripsi | ||||||
connectionlost | Menunjukkan pemutusan koneksi. | ||||||
networkrecovery | Menunjukkan pemulihan jaringan. | ||||||
reconnectstart | Menunjukkan bahwa penyambungan ulang dimulai. | ||||||
reconnectfail | Menunjukkan bahwa penyambungan ulang gagal. | ||||||
reconnectsucceed | Menunjukkan bahwa penyambungan ulang berhasil. | ||||||
Kode Contoh:
pusher.network.on('connectionlost', () => {
// console.log ('Terjadi pengecualian jaringan, yang mengakibatkan pemutusan.');
});AlivcLivePlayer - menyediakan metode terkait penarikan aliran
Daftar Metode
Metode | Deskripsi | ||||||
Memulai pemutaran aliran audio dan video. | |||||||
Memutar aliran audio dan video pada node lain. | |||||||
Menghentikan pemutaran aliran audio dan video. | |||||||
Menghentikan sementara pemutaran aliran audio. | |||||||
Menghentikan sementara pemutaran aliran video. | |||||||
Melanjutkan pemutaran aliran audio. | |||||||
Melanjutkan pemutaran aliran video. | |||||||
Melepaskan instance penarikan aliran. | |||||||
Rincian
startPlay: Memulai pemutaran aliran audio dan video.
/** * Mulai pemutaran aliran audio dan video. * @param url URL streaming. Contoh: artc://live.aliyun.com/play/... * @param elementOrId Label atau ID dari sumber media. * @param secondaryElementOrId Label atau ID dari sumber media aliran sekunder. * @return {Promise<AlivcLivePlayInfo>} Anda dapat menggunakan AlivcLivePlayInfo untuk mendengarkan event terkait. */ const playInfo = await player.startPlay(url, elementOrId, secondaryElementOrId);PentingAnda harus menentukan URL streaming yang digunakan untuk co-streaming. Untuk informasi tentang cara menghasilkan URL untuk co-streaming, lihat Pembuat URL Co-streaming.
Penonton biasa dapat menggunakan ApsaraVideo Player SDK untuk Web untuk memutar aliran. Untuk informasi lebih lanjut, lihat Akses Cepat ke Pemain Web.
playAnotherElement: Memutar aliran audio dan video pada node lain.
/** * Putar aliran audio dan video pada node lain. * @param elementOrId Label atau ID dari sumber media. * @param secondary Menentukan apakah akan memutar aliran sekunder. Parameter ini opsional. Secara default, hanya aliran utama yang diputar. */ player.playAnotherElement(elementOrId);stopPlay: Menghentikan pemutaran aliran audio dan video.
/** * Hentikan pemutaran aliran audio dan video. * @param elementOrId Label atau ID dari sumber media. Parameter ini opsional. Jika Anda tidak menentukan parameter ini, pemutaran semua sumber media dihentikan. * @return {Promise} */ await player.stopPlay(elementOrId);pauseAudioPlaying: Menghentikan sementara pemutaran aliran audio.
/** * Hentikan sementara pemutaran aliran audio. */ player.pauseAudioPlaying();pauseVideoPlaying: Menghentikan sementara pemutaran aliran video.
/** * Hentikan sementara pemutaran aliran video. */ player.pauseVideoPlaying();resumeAudioPlaying: Melanjutkan pemutaran aliran audio.
/** * Lanjutkan pemutaran aliran audio. */ player.resumeAudioPlaying();resumeVideoPlaying: Melanjutkan pemutaran aliran video.
/** * Lanjutkan pemutaran aliran video. */ player.resumeVideoPlaying();destroy: Melepaskan instance penarikan aliran.
/** * Lepaskan instance penarikan aliran. Anda tidak dapat menggunakan instance setelah melepaskannya. */ player.destroy();
AlivcLivePlayInfo
Event | Deskripsi | ||||||
canplay | Menunjukkan event canplay. | ||||||
userleft | Menunjukkan bahwa pengguna jarak jauh meninggalkan ruangan. | ||||||
statistics | Menunjukkan statistik pemutaran. | ||||||
update | Memperbarui aliran jarak jauh. | ||||||
Kode Contoh:
playInfo.on('statistics', _stat => {
// console.log(_stat);
});
playInfo.on('userleft', () => {
// console.log ('Pengguna jarak jauh meninggalkan ruangan.');
});
playInfo.on('canplay', function () {
// console.log ('Aliran jarak jauh dapat diputar.');
});
playInfo.on('update', function (previousStatus) {
// console.log(previousStatus.mediaStream);
// console.log(previousStatus.secondaryMediaStream);
});