API参考

优质
小牛编辑
139浏览
2023-12-01
  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)
  • videoContainer : 播放器挂载的dom
  • streamParams: 推流参数, object类型

streamParams 详细说明

Name类型描述默认值
typestring推流类型: camerascreenscreen_and_micscreen_audio_and_micscreen_and_camera
audioDeviceIdstring音频设备的设备id
videoDeviceIdstring视频设备的设备id
bitrateinteger码率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])
  • mrtc_url : mrtc播放地址
  • videoContainer : 播放器挂载的dom
  • playerConfig : 播放器初始化配置

playerConfig 详细说明

Name类型描述默认值
heightstring播放器高度100%
widthstring播放器宽度100%
autoReconnectboolean播放器是否自动重连false
autoplayboolean播放器是否自动播放true
volumenumber播放器音量, 值为[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)
  • videoContainer : 混流画布容器,容器大小就是推流分辨率大小, container大小一定要固定
  • streamParams: 推流参数, object类型

streamParams 详细说明

Name类型描述默认值
bitrateinteger码率1500
widthinteger1280
heightinteger720

参数中的宽和高为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