首页
产品
帮助文档
博客
控制台

mrtc web sdk

API

目录

  1. Mrtc.Broadcaster 推流端
  2. Mrtc.Player 播放端
  3. MrtcMixer 混流推流端
  4. MixerElement 混流元素基类
  5. ElementCamera 混流摄像头元素
  6. ElementScreen 混流屏幕元素
  7. ElementVideo 混流视频元素
  8. ElementAudio 混流音频元素
  9. ElementImage 混流图片元素
  10. ElementFont 混流字体元素
  11. ElementMic 混流麦克风元素
  12. InteracitveClient 互动直播类
  13. InteracitveMixClient 互动直播混流类

Mrtc.Broadcaster

constructor(videoContainer, streamParams)

streamParams 详细说明

Name 类型 描述 默认值
type string 推流类型: camerascreenscreen_and_micscreen_audio_and_micscreen_and_camera
audioDeviceId string 音频设备的设备id
videoDeviceId string 视频设备的设备id
bitrate integer 码率 1500

推流类型说明

type 描述
camera 摄像头包含麦克风
screen 屏幕共享包含系统声音或者页面声音
screen_and_mic 屏幕共享加麦克风声音
screen_audio_and_mic 屏幕共享包含系统声音或者页面声音混上麦克风声音
screen_and_camera 屏幕共享加摄像头,摄像头位于右下角,加上麦克风声音
.startPreview(streamParams) 开始预览
.startPublishUsePreview(mrtc_addr) 开始预览后才能调用推流预览的画面
.startPublish(mrtc_addr, streamParams) 开始推流,是前面两个方法的合体版
.stopPublish() 停止推流,停止推流后可以重新推流
.getStreamParams() 获取视频参数
.setStreamParams(streamParams) 设置视频参数 内部使用Object.assign

切换接口说明

切换过程中不中断原有推流 使用方法: switchToCamera().then(成功回调).catch(失败回调)

.switchToCamera() 从当前推流状态切换到摄像头推流(如果屏幕推流不包含音频,切换到摄像头直播时,也将不包含音频)
.switchToScreen() 从当前推流状态切换到共享屏幕
.switchToScreenAndMic() 从当前推流状态切换到共享屏幕和麦克风声音
.switchToScreenAudioAndMic() 从当前推流状态切换到共享屏幕和系统声音混合麦克风声音 (1.2.1版本支持)
.switchToScreenAndCamera() 从当前推流状态切换到共享屏幕和摄像头
.setVideoMute(isMute) 设置关闭视频或者开启视频
.setMute(isMute) 设置关闭声音或者开启声音
.configBitrate(bitrate) 设置码率,单位为kbps
.on(event, cb) 订阅消息
.once(event, cb) 单次点阅消息
.off(id) 取消订阅

事件id事件说明

id 描述
error 错误消息
published 推流成功
.getPublishStats() 返回推流端状态object

推流端状态说明

key 描述
videoBitrate 推流视频码率(kbps)
audioBitrate 推流音频码率(kbps)
videoCodec 视频编码格式
audioCodec 音频编码格式
candidateType 使用传输类型 [host(直连),relay(tun), rflx(stun)]

Mrtc.Player

constructor(mrtc_url, videoContainer, [playerConfig])

playerConfig 详细说明

Name 类型 描述 默认值
height string 播放器高度 100%
width string 播放器宽度 100%
autoReconnect boolean 播放器是否自动重连 false
autoplay boolean 播放器是否自动播放 true
volume number 播放器音量, 值为[0, 1] 0.5
.startPlay() 开始播放
.stopPlay() 停止播放,停止后可以再次调用startPlay播放
.pausePlay() 暂停播放
.getVolume() 获取播放器音量
.setVolume(vol) 设置播放器音量
.on(event, cb) 订阅消息
.once(event, cb) 单次定阅消息
.off(id) 取消订阅

事件id事件说明

id 描述
error 错误消息
stream_ready 拉流成功 返回一个MediaStream对象
.getPlayerStats() 返回推流端状态object

播放端状态说明

key 描述
videoBitrate 播放视频码率(kbps)
audioBitrate 播放音频码率(kbps)
videoPacketLostRate 视频丢帧率
audioPacketLostRate 音频丢帧率
videoCodec 视频编码格式
audioCodec 音频编码格式
candidateType 使用传输类型

MrtcMixer

MrtcSdk(1.1版本支持)

constructor(canvasContainer, streamParams)

streamParams 详细说明

Name 类型 描述 默认值
bitrate integer 码率 1500
width integer 1280
height integer 720

参数中的宽和高为canvas的宽高

.startPublish(mrtc_addr, streamParams) 开始推流,是前面两个方法的合体版
.stopPublish() 停止推流,停止推流后可以重新推流
.getStreamParams() 获取视频参数
.setStreamParams(streamParams) 设置视频参数 内部使用Object.assign
.setVideoMute(isMute) 设置关闭视频或者开启视频
.setMute(isMute) 设置关闭声音或者开启声音
.configBitrate(bitrate) 设置码率,单位为kbps
.fillColor(color) 给混流画布填充背景色,color为16进制字符串,如#ff0000
.startPreviewAudio() 预览混流后的声音
.stopPreviewAudio() 停止预览混流声音
.on(event, cb) 订阅消息
.once(event, cb) 单次订阅消息
.off(id) 取消订阅

事件id事件说明

id 描述
error 错误消息
published 推流成功
element-event 元素事件

元素事件类型

type 描述
add 元素添加
delete 元素删除
move-before 元素移动
move-top 元素置顶
move-bottom 元素置底
focus 元素焦点变化
.addElement(element) 添加元素对象, element对象继承至MixerElement, 返回元素id
.removeElement(id) 根据id删除元素对象
.moveBeforeElement(id, beforeId) 移动元素id移动到元素beforeId之前
.moveAfterElement(id, afterId) 移动元素id移动到元素afterId之后
.setFullScreen(id) 将元素id设置成全屏,与内置canvas大小相同
.moveToTop(id) 将元素置顶
.moveToBottom(id) 将元素置底
.getMixedStream() 获取混流后的流对象MediaStream
.setElementParams(id, params) 重新设置元素属性,不支持font和image
.getElementParams(id) 返回设置的params,不支持font,image
.getElementById(id) 根据elementid找到element对象

MixerElement

MrtcSdk(1.1版本支持)

混流元素对象都继承自MixerElement类,MixerElement类不能生成对象,通过子类创建对象。

MixerElement 方法

.setPosition(x, y) 设置元素在画布上的位置
.getPosition() 获取元素在画布上的位置
.setSize(width, height) 设置元素大小
.getSize() 获取元素大小
.setFillMode(fillMode) 设置元素填充方式

元素填充方式

type 描述
scale_to_fill 拉升填充指定的大小
scale_aspect_fit 保持图片内容的纵横比例,来适应指定的大小
scale_aspect_fill 用图片内容来填充视图的大小,多余得部分可以被修剪掉来填充整个视图边界,居中显示

ElementCamera

constructor(params) params默认是{audioMute: false, videoMute: false}表示音视频屏蔽情况
.loadSrc(params) 异步函数, 加载摄像头元素 params可以设置摄像头;videoDeviceId
.setVideoMute(value) 屏蔽视频 value为布尔值 true 为屏蔽视频、 false 为不屏蔽
.getVideoMute() 获取视频屏蔽状态
.setAudioMute(value) 屏蔽音频 value为布尔值 true 为屏蔽音频、 false 为不屏蔽
.getAudioMute() 获取音频屏蔽状态

ElementScreen 共享桌面窗口

constructor(params) params默认是{audioMute: false, videoMute: false}表示音视频屏蔽情况
.loadSrc() 异步函数, 加载共享桌面
.setVideoMute(value) 屏蔽视频 value为布尔值 true 为屏蔽视频、 false 为不屏蔽
.getVideoMute() 获取视频屏蔽状态
.setAudioMute(value) 屏蔽音频 value为布尔值 true 为屏蔽音频、 false 为不屏蔽
.getAudioMute() 获取音频屏蔽状态

ElementVideo

constructor(params) params默认是{audioMute: false, videoMute: false}表示音视频屏蔽情况
.loadSrc(url) 返回promise,加载视频
.getVideoUrl() 获取视频地址
.setVideoMute(value) 屏蔽视频 value为布尔值 true 为屏蔽视频、 false 为不屏蔽
.getVideoMute() 获取视频屏蔽状态
.setAudioMute(value) 屏蔽音频 value为布尔值 true 为屏蔽音频、 false 为不屏蔽
.getAudioMute() 获取音频屏蔽状态

ElementAudio

constructor(params) params默认是{audioMute: false}表示音频屏蔽情况
.loadSrc(url) 返回promise, 加载音频
.getAudioUrl() 获取音频地址
.setAudioMute(value) 屏蔽音频 value为布尔值 true 为屏蔽音频、 false 为不屏蔽
.getAudioMute() 获取音频屏蔽状态

ElementImage

constructor(params) params默认是{visible: true}是否可见
.loadSrc(url) 返回promise, 加载图片
.loadImage(image) 直接替换加载好的图片
.getImageUrl() 获取图片地址
.setVisible(value) 设置是否显示图片, value为布尔值, true为显示,false为隐藏
.getVisible() 获取显示专题

ElementFont

constructor(params) params默认是{visible: true}是否可见
.constructor(fontParams) 创建是设置字体属性,fontParams为object
.setFont(fontParams) 重新设置字体属性
.getFont() 获取字体属性,返回fontParams
.setVisible(value) 设置是否显示字体, value为布尔值, true为显示,false为隐藏
.getVisible() 获取显示字体

fontParams

key 描述
text 文本
style 字体样式
variant 字体变体
weight 字体粗斜体
size 大小
family 字体族
color 颜色

ElementMic

constructor(params) params默认是{audioMute: false}表示音频屏蔽情况
.loadSrc(params) 异步函数, 加载摄像头元素 params设置麦克风设备id;audioDeviceId
.setAudioMute(value) 屏蔽音频 value为布尔值 true 为屏蔽音频、 false 为不屏蔽
.getAudioMute() 获取音频屏蔽状态

InteracitveClient

MrtcSdk(1.2版本支持)

constructor(serverHost, container, streamParams)传入互动直播地址、本地预览容器dom、本地设备参数,同Broadcaster
join(channel, role, password) 加入房间
leave(channel, role) 离开房间
playClient(role, container) 播放房间内的连麦者
setPlayerVolume(role, volume) 设置角色的声音
getPlayerVolume(role, volume) 获取角色的声音
stopClient(role) 关闭连麦者
startPushRtmp(rtmp, channel, role, password) 设置rtmp地址
.getStreamParams() 获取视频参数
.setStreamParams(streamParams) 设置视频参数 内部使用Object.assign
.startPreviewAudio() 预览混流后的声音
.stopPreviewAudio() 停止预览混流声音

切换接口说明

切换过程中不中断原有推流 使用方法: switchToCamera().then(成功回调).catch(失败回调)

.switchToCamera() 从当前推流状态切换到摄像头推流(如果屏幕推流不包含音频,切换到摄像头直播时,也将不包含音频)
.switchToScreen() 从当前推流状态切换到共享屏幕
.switchToScreenAndMic() 从当前推流状态切换到共享屏幕和麦克风声音
.switchToScreenAndCamera() 从当前推流状态切换到共享屏幕和摄像头
.setVideoMute(isMute) 设置关闭视频或者开启视频
.setMute(isMute) 设置关闭声音或者开启声音
.configBitrate(bitrate) 设置码率,单位为kbps
.on(event, cb) 订阅消息
.once(event, cb) 单次点阅消息
.off(id) 取消订阅

事件id事件说明

id 描述 内容
error 错误消息 错误内容
published 推流成功
publisher_list 房间内的成员列表 role、status
publish_event 成员推流事件 role、status
unpublish_event 成员停止推流事件 role、status

InteracitveMixClient

MrtcSdk(1.2版本支持)

constructor(serverHost, container, streamParams)传入互动直播地址、本地预览容器dom、本地设备参数,同Broadcaster
join(channel, role, password) 加入房间
leave(channel, role) 离开房间
playClient(role, container) 播放房间内的连麦者
setPlayerVolume(role, volume) 设置角色的声音
getPlayerVolume(role, volume) 获取角色的声音
stopClient(role) 关闭连麦者
startPushRtmp(rtmp, channel, role, password)设置rtmp地址
.getStreamParams() 获取视频参数
.setStreamParams(streamParams) 设置视频参数 内部使用Object.assign
.setVideoMute(isMute) 设置关闭视频或者开启视频
.setMute(isMute) 设置关闭声音或者开启声音
.configBitrate(bitrate) 设置码率,单位为kbps
.fillColor(color) 给混流画布填充背景色,color为16进制字符串,如#ff0000
.startPreviewAudio() 预览混流后的声音
.stopPreviewAudio() 停止预览混流声音
.on(event, cb) 订阅消息
.once(event, cb) 单次点阅消息
.off(id) 取消订阅

事件id事件说明

id 描述 内容
error 错误消息 错误内容
published 推流成功
publisher_list 房间内的成员列表 role、status
publish_event 成员推流事件 role、status
unpublish_event 成员停止推流事件 role、status