すべてのプロダクト
Search
ドキュメントセンター

ApsaraVideo Live:Web向けコストリーミング SDK が提供するメソッド

最終更新日:Apr 18, 2025

このトピックでは、Web向けコストリーミング SDK が提供するメソッドについて説明します。

基本クラス

クラス

説明

AlivcLivePusher

アップストリーミング用のクラスです。

説明

window.AlivcLivePush.AlivcLivePusher を使用してクラスにアクセスできます。

AlivcLivePlayer

ストリームフェッチング用のクラスです。

説明

window.AlivcLivePush.AlivcLivePlayer を使用してクラスにアクセスできます。

AlivcLivePusher - アップストリーミング関連のメソッドを提供

メソッド一覧

メソッド

説明

getCameras

カメラを照会します。これは静的メソッドです。

getMicrophones

マイクを照会します。これは静的メソッドです。

getPlayoutDevices

再生デバイスを照会します。これは静的メソッドです。

checkSystemRequirements

WebRTC の要件が満たされているかどうかを確認します。これは静的メソッドです。

checkScreenShareSupported

画面共有がサポートされているかどうかを確認します。これは静的メソッドです。

init

アップストリーミング パラメーターを初期化します。

destroy

アップストリーミング インスタンスを解放します。

startPreview

プレビューを開始します。

stopPreview

プレビューを停止します。

startPush

アップストリーミングを開始します。

restartPush

アップストリーミングを再開します。

reconnectPush

再接続してアップストリーミングを続行します。

stopPush

アップストリーミングを停止します。

startMicrophone

マイクをオンにするか、別のマイクに切り替えます。

stopMicrophone

マイクをオフにします。

getCurrentMicDeviceId

マイクのデバイス ID を照会します。

startCamera

カメラをオンにするか、別のカメラに切り替えます。

stopCamera

カメラをオフにします。

getCurrentCameraDeviceId

カメラのデバイス ID を照会します。

startScreenShare

画面共有を開始します。

stopScreenShare

画面共有を停止します。

startCustomStream

カスタムセカンダリストリームのアップストリーミングを開始します。

stopCustomStream

カスタムセカンダリストリームのアップストリーミングを停止します。

mute

ストリームをミュートまたはミュート解除します。(アップストリーミングは停止しません。)

muteVideo

ストリームを表示または非表示にします。(アップストリーミングは停止しません。)

getLivePushStatsInfo

最後に報告されたアップストリーミング統計情報を照会します。

getPushUrl

アップストリーミング URL を照会します。

getChannelId

チャネル ID を照会します。

getUserId

ユーザー ID を照会します。

setLiveMixTranscodingConfig

ストリームリレーとミキシングのレイアウトを更新します。

getResolution

解像度を照会します。

changeResolution

解像度を更新します。

getFps

フレームレートを照会します。

changeFps

フレームレートを更新します。

getPublishMediaStream

現在のストリームの MediaStream 情報を照会します。

getLiveTraceId

トレース ID を照会します。

updateScreenVideoProfile

画面トラックの幅、高さ、ビットレート、およびフレームレートを設定します。

詳細

  • getCameras: カメラを照会します。これは静的メソッドです。

    /**
     * カメラを照会します。
     * @return {Promise<MediaDeviceInfo[]>}
     */
    const cameras = await AlivcLivePusher.getCameras();
  • getMicrophones: マイクを照会します。これは静的メソッドです。

    /**
     * マイクを照会します。
     * @return {Promise<MediaDeviceInfo[]>}
     */
    const microphones = await AlivcLivePusher.getMicrophones();
  • getPlayoutDevices: 再生デバイスを照会します。これは静的メソッドです。

    /**
     * 再生デバイスを照会します。
     * @return {Promise<MediaDeviceInfo[]>}
     */
    const playoutDevices = await AlivcLivePusher.getPlayoutDevices();
  • checkSystemRequirements: WebRTC の要件が満たされているかどうかを確認します。これは静的メソッドです。

    /**
     * WebRTC の要件が満たされているかどうかを確認します。
     * @param {('sendonly' | 'recvonly' | 'sendrecv')} [direction]
     * @return {Promise<CheckResult>}
     */
    const checkResult = await AlivcLivePusher.checkSystemRequirements();
    // checkResult.support: boolean; 要件が満たされているかどうかを示します。
    // checkResult.detail.isBrowserSupported: boolean; ブラウザがサポートされているかどうかを示します。
    // checkResult.detail.isH264DecodeSupported: boolean; H.264 デコードがサポートされているかどうかを示します。
    // checkResult.detail.isH264EncodeSupported: boolean; H.264 エンコードがサポートされているかどうかを示します。
    // checkResult.detail.isWebRTCSupported: boolean; WebRTC がサポートされているかどうかを示します。
  • checkScreenShareSupported: 画面共有がサポートされているかどうかを確認します。これは静的メソッドです。

    /**
     * 画面共有がサポートされているかどうかを確認します。
     * @returns {boolean}
     */
    const isScreenShareSupported = AlivcLivePusher.checkScreenShareSupported();
  • init: アップストリーミング パラメーターを初期化します。

    /**
     * RTC エンジンを初期化します。
     * @param config パラメーターを設定します。すべてのパラメーターはオプションです。
     * config.resolution: AlivcResolutionEnum; 解像度。
     * config.fps: AlivcFpsEnum; フレームレート。単位:1 秒あたりのフレーム数(FPS)。
     * config.logLevel: LogLevel; ログレベル。デフォルト値:ERROR。
     * config.connectRetryCount: number; 最大再接続試行回数。
     * config.audio: boolean; 音声を有効にするかどうかを指定します。
     * config.audioId: string; デフォルトのオーディオデバイスの ID。
     * config.video: boolean; カメラをオンにするかどうかを指定します。
     * config.cameraId: string; デフォルトのカメラのデバイス ID。
     * config.screen: boolean; 画面共有を有効にするかどうかを指定します。
     */
    const pusher = new AlivcLivePush.AlivcLivePusher();
    pusher.init({
      resolution: AlivcLivePush.AlivcResolutionEnum.RESOLUTION_720P
    });
  • destroy: アップストリーミング インスタンスを解放します。

    // アップストリーミング インスタンスを解放します。解放後はインスタンスを使用できません。
    pusher.destroy()
  • startPreview: プレビューを開始します。

    /**
     * ビデオプレビューを開始します。
     * @param {string | HTMLVideoElement} elementOrId ビデオが存在するノードまたはビデオの ID。
     * @param {boolean} secondary セカンダリストリームをプレビューするかどうかを指定します。このパラメーターはオプションです。デフォルトでは、プライマリストリームのみがプレビューされます。
     * @return {Promise<MediaStream>}
     */
    const stream = pusher.startPreview(elementOrId);
  • stopPreview: プレビューを停止します。

    /**
     * ビデオプレビューを停止します。
     * @param {string | HTMLVideoElement} elementOrId ビデオが存在するノードまたはビデオの ID。このパラメーターはオプションです。このパラメーターを指定しない場合、すべてのビデオのプレビューが停止されます。
     */
    pusher.stopPreview(elementOrId);
  • startPush: アップストリーミングを開始します。

    /**
     * アップストリーミングを開始します。
     * @param {string} url アップストリーミング URL。例:artc://live.aliyun.com/push/....
     * @return {Promise}
     */
    await pusher.startPush(url);
    重要

    コストリーミングに使用するアップストリーミング URL を指定する必要があります。コストリーミング用 URL の生成方法については、「コストリーミング URL ジェネレーター」をご参照ください。

  • restartPush: 現在のアップストリーミング URL を使用してアップストリーミングを再開します。

    /**
     * 現在のアップストリーミング URL を使用してアップストリーミングを再開します。
     * @return {Promise}
     */
    await pusher.restartPush();
  • reconnectPush: 再接続してアップストリーミングを続行します。

    /**
     * 再接続してアップストリーミングを続行します。
     * @param {string} url 新しいアップストリーミング URL。例:artc://live.aliyun.com/push/....
     * @return {Promise}
     */
    await pusher.reconnectPush(url);
  • stopPush: アップストリーミングを停止します。

    /**
     * アップストリーミングを停止します。
     * @return {Promise}
     */
    await pusher.stopPush(url);
  • startMicrophone: マイクをオンにするか、別のマイクに切り替えます。

    /**
     * マイクをオンにするか、別のマイクに切り替えます。
     * @param {string} deviceId マイクのデバイス ID。このパラメーターはオプションです。
     * @return {Promise}
     */
    await pusher.startMicrophone(deviceId);
  • stopMicrophone: マイクをオフにします。

    /**
     * マイクをオフにします。
     * @return {Promise}
     */
    await pusher.stopMicrophone();
  • getCurrentMicDeviceId: マイクのデバイス ID を照会します。

    /**
     * マイクのデバイス ID を照会します。
     * @return {string | undefined} マイクのデバイス ID。
     */
    const micId = pusher.getCurrentMicDeviceId();
  • startCamera: カメラをオンにするか、別のカメラに切り替えます。

    /**
     * カメラをオンにするか、別のカメラに切り替えます。
     * @param {string} deviceId カメラのデバイス ID。このパラメーターはオプションです。
     * @return {Promise}
     */
    await pusher.startCamera(deviceId);
  • stopCamera: カメラをオフにします。

    /**
     * カメラをオフにします。
     * @return {Promise}
     */
    await pusher.stopCamera();
  • getCurrentCameraDeviceId: カメラのデバイス ID を照会します。

    /**
     * カメラのデバイス ID を照会します。
     * @return {string | undefined} カメラのデバイス ID。
     */
    const cameraId = pusher.getCurrentCameraDeviceId();
  • startScreenShare: 画面共有を開始します。

    /**
     * 画面共有を開始します。
     * @return {Promise}
     */
    await pusher.startScreenShare();
  • stopScreenShare: 画面共有を停止します。

    /**
     * 画面共有を停止します。
     * @return {Promise}
     */
    await pusher.stopScreenShare();
  • startCustomStream: カスタムセカンダリストリームのアップストリーミングを開始します。

    /**
     * カスタムセカンダリストリームのアップストリーミングを開始します。
     * @param mediaStream カスタムセカンダリストリーム。
     * @return {Promise<MediaStream>}
     */
    await pusher.startCustomStream(mediaStream);
  • stopCustomStream: カスタムセカンダリストリームのアップストリーミングを停止します。

    /**
     * カスタムセカンダリストリームのアップストリーミングを停止します。
     * @return {Promise<void>}
     */
    await pusher.stopCustomStream();
  • mute: ストリームをミュートまたはミュート解除します。(アップストリーミングは停止しません。)

    /**
     * ストリームをミュートまたはミュート解除します。
     * @param {boolean} ストリームをミュートするかどうかを指定します。
     * @returns {boolean} ミュートまたはミュート解除の結果。
     */
    pusher.mute(true);
  • muteVideo: ストリームを表示または非表示にします。(アップストリーミングは停止しません。)

    /**
     * ストリームを表示または非表示にします。
     * @param mute ビデオデータの送信を停止するかどうかを指定します。有効な値:true および false。
     * @returns 操作が成功したかどうかを示します。
     */
    pusher.muteVideo(true);
  • getLivePushStatsInfo: 最後に報告されたアップストリーミング統計情報を照会します。

    /**
     * 最後に報告されたアップストリーミング統計情報を照会します。
     * @return {StatsInfo} アップストリーミング統計情報。
     */
    const statsInfo = pusher.getLivePushStatsInfo();
  • getPushUrl: アップストリーミング URL を照会します。

    /**
     * アップストリーミング URL を照会します。
     * @return {string | undefined} 現在のアップストリーミング URL。
     */
    const url = pusher.getPushUrl();
  • getChannelId: チャネル ID を照会します。

    /**
     * チャネル ID を照会します。
     * @return {string | undefined} 現在のチャネル ID。
     */
    const channelId = pusher.getChannelId();
  • getUserId: ユーザー ID を照会します。

    /**
     * ユーザー ID を照会します。
     * @return {string | undefined} 現在のユーザー ID。
     */
    const userId = pusher.getUserId();
  • setLiveMixTranscodingConfig: ストリームリレーとミキシングのレイアウトを更新します。

    /**
     * ストリームリレーとミキシングのレイアウトを更新します。
     * @param {AlivcLiveTranscodingConfig} config このパラメーターはオプションです。このパラメーターを指定しない場合、ストリームリレーとミキシングは停止されます。詳細については、AlivcLiveTranscodingConfig クラスの詳細を確認してください。
     * @return {Promise} 操作の結果。
     */
    const response = await pusher.setLiveMixTranscodingConfig(config);
  • getResolution: 解像度を照会します。

    /**
     * 解像度を照会します。
     * @return {AlivcResolutionEnum | undefined} 解像度。
     */
    const resolution = pusher.getResolution();
  • changeResolution: 解像度を更新します。

    /**
     * 解像度を更新します。
     * @param resolutionEnum 使用する解像度。このパラメーターを Custom に設定する場合は、カスタム解像度を指定します。
     * @param width 幅。カスタム解像度を指定する場合は必須です。
     * @param height 高さ。カスタム解像度を指定する場合は必須です。
     * @param bitrate 最大ビットレート。
     * @return {Promise}
     */
    await pusher.changeResolution(AlivcResolutionEnum.RESOLUTION_720P);
  • getFps: フレームレートを照会します。

    /**
     * フレームレートを照会します。
     * @return {AlivcFpsEnum | undefined} 現在のフレームレート。
     */
    const fps = pusher.getFps();
  • changeFps: フレームレートを更新します。

    /**
     * フレームレートを更新します。
     * @param {AlivcFpsEnum} fps 使用するフレームレート。
     * @return {Promise}
     */
    await pusher.changeFps(AlivcFpsEnum.FPS_30);
  • getPublishMediaStream: 現在のストリームの MediaStream 情報を照会します。

    /**
     * 現在のストリームの MediaStream 情報を照会します。
     * @return {MediaStream | undefined} ストリームの MediaStream 情報。
     */
    const mediaStream = pusher.getPublishMediaStream();
  • getLiveTraceId: トレース ID を照会します。

    /**
     * トレース ID を照会します。
     * @return {string} TraceId
     */
     pusher.getLiveTraceId();
  • updateScreenVideoProfile: 画面トラックの幅、高さ、ビットレート、およびフレームレートを設定します。

    /**
     * 画面トラックの幅、高さ、ビットレート、およびフレームレートを設定します。(ブラウザの制約により、指定された幅と高さは適用されません。)
     * @param width 
     * @param height 
     * @param rate 
     * @param fps 
     * @return {Promise}
     */
    await pusher.updateScreenVideoProfile(width,height,rate,fps);

AlivcLiveTranscodingConfig

パラメーター一覧

パラメーター

説明

width

リレーされるストリームの幅を示す数値。

height

リレーされるストリームの高さを示す数値。

backgroundColor

背景色を示す 16 進数値。例:0x000000。

cropMode

AlivcLiveTranscodingCropModeEnum

  • AlivcLiveTranscodingCropModeCrop: この値はトリミングモードを示します。

  • AlivcLiveTranscodingCropModeFill: この値はパディングモードを示します。

mixStreams

AlivcLiveMixStream[]: 混合ストリームに含まれる各ストリームのレイアウトの詳細。

AlivcLiveMixStream

パラメーター一覧

パラメーター

説明

userId

ストリームミキシングを実行するユーザーの ID を示す文字列。

x

ストリームミキシングが開始される x 軸に沿ったピクセル数を示す数値。

y

ストリームミキシングが開始される y 軸に沿ったピクセル数を示す数値。

width

混合ストリームの幅を示す数値。

height

混合ストリームの高さを示す数値。

zOrder

階層レベルを示す数値。値が大きいほど、レベルが高くなります。

sourceType

ビデオソースのタイプを示す数値です。

有効な値:

  • 0: カメラ

  • 1: 画面共有

デフォルト値:0。

AlivcLivePusher.info

イベント

説明

bye

視聴者がルームから退出したことを示します。視聴者は他の視聴者によって追い出されたか、ストリーマーによって追い出された可能性があります。

pushstatistics

アップストリーミングされたストリームに関するデータ統計のコールバック。このコールバックは 2 秒ごとに返されます。

サンプルコード:

pusher.info.on('bye', (_code, reason) => {
  // console.log ('あなたはルームから退出しました。理由:${reason}'); //日本語コメントを追加
});
pusher.info.on('pushstatistics', _stat => {
  // console.log(_stat); //日本語コメントを追加
});

AlivcLivePusher.error

イベント

説明

system

システムエラーを示します。

sdk

SDK 内部エラーを示します。

サンプルコード:

pusher.error.on('system', error => {
  // console.log(error); //日本語コメントを追加
});
pusher.error.on('sdk', error => {
  // console.log(error); //日本語コメントを追加
});

AlivcLivePusher.network

イベント

説明

connectionlost

切断を示します。

networkrecovery

ネットワークの回復を示します。

reconnectstart

再接続が開始されたことを示します。

reconnectfail

再接続が失敗したことを示します。

reconnectsucceed

再接続が成功したことを示します。

サンプルコード:

pusher.network.on('connectionlost', () => {
  // console.log ('ネットワーク例外が発生し、切断されました。'); //日本語コメントを追加
});

AlivcLivePlayer - ストリームフェッチング関連のメソッドを提供ストリームプルの関連メソッド

メソッド一覧

メソッド

説明

startPlay

オーディオおよびビデオストリームの再生を開始します。

playAnotherElement

別のノードでオーディオおよびビデオストリームを再生します。

stopPlay

オーディオおよびビデオストリームの再生を停止します。

pauseAudioPlaying

オーディオストリームの再生を一時停止します。

pauseVideoPlaying

ビデオストリームの再生を一時停止します。

resumeAudioPlaying

オーディオストリームの再生を再開します。

resumeVideoPlaying

ビデオストリームの再生を再開します。

destroy

ストリームフェッチング インスタンスを解放します。

詳細

  • startPlay: オーディオおよびビデオストリームの再生を開始します。

    /**
     * オーディオおよびビデオストリームの再生を開始します。
     * @param url ストリーミング URL。例:artc://live.aliyun.com/play/...
     * @param elementOrId メディアリソースのラベルまたは ID。
     * @param secondaryElementOrId セカンダリストリームのメディアリソースのラベルまたは ID。
     * @return {Promise<AlivcLivePlayInfo>} AlivcLivePlayInfo を使用して関連イベントをリッスンできます。
     */
    const playInfo = await player.startPlay(url, elementOrId, secondaryElementOrId);
    重要
  • playAnotherElement: 別のノードでオーディオおよびビデオストリームを再生します。

    /**
     * 別のノードでオーディオおよびビデオストリームを再生します。
     * @param elementOrId メディアリソースのラベルまたは ID。
     * @param secondary セカンダリストリームを再生するかどうかを指定します。このパラメーターはオプションです。デフォルトでは、プライマリストリームのみが再生されます。
     */
    player.playAnotherElement(elementOrId);
  • stopPlay: オーディオおよびビデオストリームの再生を停止します。

    /**
     * オーディオおよびビデオストリームの再生を停止します。
     * @param elementOrId メディアリソースのラベルまたは ID。このパラメーターはオプションです。このパラメーターを指定しない場合、すべてのメディアリソースの再生が停止されます。
     * @return {Promise} 
     */
    await player.stopPlay(elementOrId);
  • pauseAudioPlaying: オーディオストリームの再生を一時停止します。

    /**
     * オーディオストリームの再生を一時停止します。
     */
    player.pauseAudioPlaying();
  • pauseVideoPlaying: ビデオストリームの再生を一時停止します。

    /**
     * ビデオストリームの再生を一時停止します。
     */
    player.pauseVideoPlaying();
  • resumeAudioPlaying: オーディオストリームの再生を再開します。

    /**
     * オーディオストリームの再生を再開します。
     */
    player.resumeAudioPlaying();
  • resumeVideoPlaying: ビデオストリームの再生を再開します。

    /**
     * ビデオストリームの再生を再開します。
     */
    player.resumeVideoPlaying();
  • destroy: ストリームフェッチング インスタンスを解放します。

    /**
     * ストリームフェッチング インスタンスを解放します。解放後はインスタンスを使用できません。
     */
    player.destroy();

AlivcLivePlayInfo

イベント

説明

canplay

canplay イベントを示します。

userleft

リモートユーザーがルームから退出したことを示します。

statistics

再生統計情報を示します。

update

リモートストリームを更新します。

サンプルコード:

playInfo.on('statistics', _stat => {
  // console.log(_stat); //日本語コメントを追加
});
playInfo.on('userleft', () => {
  // console.log ('リモートユーザーがルームから退出しました。'); //日本語コメントを追加
});
playInfo.on('canplay', function () {
  // console.log ('リモートストリームを再生できます。'); //日本語コメントを追加
});
playInfo.on('update', function (previousStatus) {
  // console.log(previousStatus.mediaStream); //日本語コメントを追加
  // console.log(previousStatus.secondaryMediaStream); //日本語コメントを追加
});