全部产品
Search
文档中心

ApsaraVideo Live:Metode yang disediakan oleh SDK co-streaming untuk Web

更新时间:Jul 06, 2025

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

getCameras

Mengquery kamera. Ini adalah metode statis.

getMicrophones

Mengquery mikrofon. Ini adalah metode statis.

getPlayoutDevices

Mengquery perangkat pemutaran. Ini adalah metode statis.

checkSystemRequirements

Memeriksa apakah persyaratan untuk WebRTC terpenuhi. Ini adalah metode statis.

checkScreenShareSupported

Memeriksa apakah berbagi layar didukung. Ini adalah metode statis.

init

Menginisialisasi parameter ingest aliran.

destroy

Melepaskan instance ingest aliran.

startPreview

Memulai pratinjau.

stopPreview

Menghentikan pratinjau.

startPush

Memulai ingest aliran.

restartPush

Memulai ulang ingest aliran.

reconnectPush

Menghubungkan ulang dan melanjutkan ingest aliran.

stopPush

Menghentikan ingest aliran.

startMicrophone

Menghidupkan mikrofon atau beralih ke mikrofon lain.

stopMicrophone

Mematikan mikrofon.

getCurrentMicDeviceId

Mengquery ID perangkat mikrofon.

startCamera

Menghidupkan kamera atau beralih ke kamera lain.

stopCamera

Mematikan kamera.

getCurrentCameraDeviceId

Mengquery ID perangkat kamera.

startScreenShare

Memulai berbagi layar.

stopScreenShare

Menghentikan berbagi layar.

startCustomStream

Memulai ingest aliran sekunder kustom.

stopCustomStream

Menghentikan ingest aliran sekunder kustom.

mute

Membisukan atau membatalkan pembisuan aliran. (Ingest aliran tidak dihentikan.)

muteVideo

Menampilkan atau menghentikan penampilan aliran. (Ingest aliran tidak dihentikan.)

getLivePushStatsInfo

Mengquery statistik ingest aliran yang dilaporkan terakhir.

getPushUrl

Mengquery URL ingest.

getChannelId

Mengquery ID saluran.

getUserId

Mengquery ID pengguna.

setLiveMixTranscodingConfig

Memperbarui tata letak untuk relay dan pencampuran aliran.

getResolution

Mengquery resolusi.

changeResolution

Memperbarui resolusi.

getFps

Mengquery laju frame.

changeFps

Memperbarui laju frame.

getPublishMediaStream

Mengquery informasi MediaStream dari aliran saat ini.

getLiveTraceId

Mengquery ID jejak.

updateScreenVideoProfile

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);
    Penting

    Anda 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

  • AlivcLiveTranscodingCropModeCrop: Nilai ini menunjukkan mode pemotongan.

  • AlivcLiveTranscodingCropModeFill: Nilai ini menunjukkan mode padding.

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:

  • 0: Kamera

  • 1: Berbagi layar

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

startPlay

Memulai pemutaran aliran audio dan video.

playAnotherElement

Memutar aliran audio dan video pada node lain.

stopPlay

Menghentikan pemutaran aliran audio dan video.

pauseAudioPlaying

Menghentikan sementara pemutaran aliran audio.

pauseVideoPlaying

Menghentikan sementara pemutaran aliran video.

resumeAudioPlaying

Melanjutkan pemutaran aliran audio.

resumeVideoPlaying

Melanjutkan pemutaran aliran video.

destroy

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);
    Penting
    • Anda 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);
});