日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Web連麥互動SDK接口說明

本文介紹Web連麥互動SDK相關接口說明。

基礎類

類名

描述

AlivcLivePusher

推流功能類。

說明

通過window.AlivcLivePush.AlivcLivePusher進行訪問

AlivcLivePlayer

拉流抽象接口。

說明

通過window.AlivcLivePush.AlivcLivePlayer進行訪問

推流基礎接口

AlivcLivePusher

目錄

API

描述

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

獲取直播trace 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; H264 解碼是否支持
    // checkResult.detail.isH264EncodeSupported: boolean; H264 編碼是否支持
    // checkResult.detail.isWebRTCSupported: boolean; WebRTC 是否支持
  • checkScreenShareSupported:靜態方法,檢測是否支持屏幕分享。

    /**
     * 檢查當前環境是否支持屏幕共享
     * @returns {boolean}
     */
    const isScreenShareSupported = AlivcLivePusher.checkScreenShareSupported();
  • init:初始化推流參數。

    /**
     * 初始化 RTC Engine
     * @param config 配置,各個參數均可選傳入
     * config.resolution: AlivcResolutionEnum; 分辨率
     * config.fps: AlivcFpsEnum; 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 實例將不可用
    pusher.destroy()
  • startPreview:開始預覽。

    /**
     * 開始預覽畫面
     * @param {string | HTMLVideoElement} elementOrId 預覽的 Video 節點或 Id
     * @param {boolean} secondary 可選參數,默認預覽主流,是否為預覽輔流
     * @return {Promise<MediaStream>}
     */
    const stream = pusher.startPreview(elementOrId);
  • stopPreview:結束預覽。

    /**
     * 停止預覽畫面
     * @param {string | HTMLVideoElement} 可選 elementOrId 停止預覽的 Video 節點或 Id,不傳則停止所有預覽
     */
    pusher.stopPreview(elementOrId);
  • startPush:開始推流

    /**
     * 開始推流
     * @param {string} url 推流 Url 格式示例:artc://live.aliyun.com/push/....
     * @return {Promise}
     */
    await pusher.startPush(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:獲取直播trace ID

    /**
     * 獲取直播trace 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

數值,數字越大層級越靠上

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

接口列表

API

描述

startPlay

開始播放音視頻流。

playAnotherElement

在另一個video節點播放音視頻流。

stopPlay

停止播放視頻流。

pauseAudioPlaying

暫停播放音頻流。

pauseVideoPlaying

暫停播放視頻流。

resumeAudioPlaying

恢復播放音頻流。

resumeVideoPlaying

恢復播放視頻流。

destroy

釋放拉流。

詳情

  • startPlay:開始播放音視頻流

    /**
     * 開始播放音視頻流
     * @param url 播放 url 格式參考:artc://live.aliyun.com/play/...
     * @param elementOrId 播放的媒體(Video/Audio)標簽或Id
     * @param secondaryElementOrId (可選)輔流播放 媒體(Video/Audio)標簽或Id
     * @return {Promise<AlivcLivePlayInfo>} 可以通過 AlivcLivePlayInfo 監聽相關事件
     */
    const playInfo = await player.startPlay(url, elementOrId, secondaryElementOrId);
    重要
  • playAnotherElement:在另一個video節點播放音視頻流

    /**
     * 在另一個video節點播放音視頻流
     * @param elementOrId 播放的媒體(Video/Audio)標簽或Id
     * @param secondary (可選)是否播放輔流,默認播放主流
     */
    player.playAnotherElement(elementOrId);
  • stopPlay:停止播放視頻流

    /**
     * 停止播放視頻流
     * @param elementOrId 播放的媒體(Video/Audio)標簽或Id,可選,不傳則停止所有播放
     * @return {Promise} 
     */
    await player.stopPlay(elementOrId);
  • pauseAudioPlaying:暫停播放音頻流

    /**
     * 暫停播放音頻流
     */
    player.pauseAudioPlaying();
  • pauseVideoPlaying:暫停播放視頻流

    /**
     * 暫停播放視頻流
     */
    player.pauseVideoPlaying();
  • resumeAudioPlaying:恢復播放音頻流

    /**
     * 恢復播放音頻流
     */
    player.resumeAudioPlaying();
  • resumeVideoPlaying:恢復播放視頻流

    /**
     * 恢復播放視頻流
     */
    player.resumeVideoPlaying();
  • destroy:釋放拉流

    /**
     * 釋放拉流,釋放后 player 將不可用
     */
    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);
});