このトピックでは、Web向けコストリーミング SDK が提供するメソッドについて説明します。
基本クラス
クラス | 説明 | ||||||
AlivcLivePusher | アップストリーミング用のクラスです。 説明 window.AlivcLivePush.AlivcLivePusher を使用してクラスにアクセスできます。 | ||||||
AlivcLivePlayer | ストリームフェッチング用のクラスです。 説明 window.AlivcLivePush.AlivcLivePlayer を使用してクラスにアクセスできます。 | ||||||
AlivcLivePusher - アップストリーミング関連のメソッドを提供
メソッド一覧
メソッド | 説明 | ||||||
カメラを照会します。これは静的メソッドです。 | |||||||
マイクを照会します。これは静的メソッドです。 | |||||||
再生デバイスを照会します。これは静的メソッドです。 | |||||||
WebRTC の要件が満たされているかどうかを確認します。これは静的メソッドです。 | |||||||
画面共有がサポートされているかどうかを確認します。これは静的メソッドです。 | |||||||
アップストリーミング パラメーターを初期化します。 | |||||||
アップストリーミング インスタンスを解放します。 | |||||||
プレビューを開始します。 | |||||||
プレビューを停止します。 | |||||||
アップストリーミングを開始します。 | |||||||
アップストリーミングを再開します。 | |||||||
再接続してアップストリーミングを続行します。 | |||||||
アップストリーミングを停止します。 | |||||||
マイクをオンにするか、別のマイクに切り替えます。 | |||||||
マイクをオフにします。 | |||||||
マイクのデバイス ID を照会します。 | |||||||
カメラをオンにするか、別のカメラに切り替えます。 | |||||||
カメラをオフにします。 | |||||||
カメラのデバイス ID を照会します。 | |||||||
画面共有を開始します。 | |||||||
画面共有を停止します。 | |||||||
カスタムセカンダリストリームのアップストリーミングを開始します。 | |||||||
カスタムセカンダリストリームのアップストリーミングを停止します。 | |||||||
ストリームをミュートまたはミュート解除します。(アップストリーミングは停止しません。) | |||||||
ストリームを表示または非表示にします。(アップストリーミングは停止しません。) | |||||||
最後に報告されたアップストリーミング統計情報を照会します。 | |||||||
アップストリーミング URL を照会します。 | |||||||
チャネル ID を照会します。 | |||||||
ユーザー ID を照会します。 | |||||||
ストリームリレーとミキシングのレイアウトを更新します。 | |||||||
解像度を照会します。 | |||||||
解像度を更新します。 | |||||||
フレームレートを照会します。 | |||||||
フレームレートを更新します。 | |||||||
現在のストリームの MediaStream 情報を照会します。 | |||||||
トレース ID を照会します。 | |||||||
画面トラックの幅、高さ、ビットレート、およびフレームレートを設定します。 | |||||||
詳細
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
| ||||||
mixStreams | AlivcLiveMixStream[]: 混合ストリームに含まれる各ストリームのレイアウトの詳細。 | ||||||
AlivcLiveMixStream
パラメーター一覧
パラメーター | 説明 | ||||||
userId | ストリームミキシングを実行するユーザーの ID を示す文字列。 | ||||||
x | ストリームミキシングが開始される x 軸に沿ったピクセル数を示す数値。 | ||||||
y | ストリームミキシングが開始される y 軸に沿ったピクセル数を示す数値。 | ||||||
width | 混合ストリームの幅を示す数値。 | ||||||
height | 混合ストリームの高さを示す数値。 | ||||||
zOrder | 階層レベルを示す数値。値が大きいほど、レベルが高くなります。 | ||||||
sourceType | ビデオソースのタイプを示す数値です。 有効な値:
デフォルト値: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: オーディオおよびビデオストリームの再生を開始します。
/** * オーディオおよびビデオストリームの再生を開始します。 * @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);重要コストリーミングに使用するストリーミング URL を指定する必要があります。コストリーミング用 URL の生成方法については、「コストリーミング URL ジェネレーター」をご参照ください。
通常の視聴者は、Web 用 ApsaraVideo Player SDK を使用してストリームを再生できます。詳細については、「Web プレーヤーへのクイックアクセス」をご参照ください。
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); //日本語コメントを追加
});