Mudu.Room 直播间组件
获取直播间名字
// 返回直播间名字,类型为string
var roomName = Mudu.Room.GetName()
获取直播状态
// 返回直播状态,类型为number: `1`为正在直播,`0`为不在直播
// 当频道为多流频道时,返回主流画面的直播状态
var roomLiveStatus = Mudu.Room.GetLiveStatus()
获取直播间浏览量
// 返回直播间浏览量,类型为number整数
var roomViewNum = Mudu.Room.GetViewNum()
sdk初始化完成后,直播间浏览量数据大约会在1分钟左右更新一次
获取直播间视频地址
// 返回直播间视频地址,类型为string
var roomPlayAddr = Mudu.Room.GetPlayAddr(streamType)
- streamType说明 (1.17.4及以后的版本支持流类型选择参数):
名称 | 说明 | 类型 |
---|---|---|
streamType | 流类型 | 'flash','h5' |
不传入参数:保留之前逻辑,PC端自动选择flash,移动端自动选择h5
获取直播间直播地址列表
// 返回直播画面对应的playlist,类型为array
var playlist = Mudu.Room.GetPlayAddrList(stream_id)
// 返回值可直接作为 player.load(roomPlayAddr) 的参数使用
参数说明:如不传入stream_id参数,多流频道默认返回主画面的直播流playlist,其他频道返回默认流playlist
返回值说明:返回值playlist按照指定线路返回可直接给播放器使用的配置
名称 | 说明 | 类型 |
---|---|---|
isLive | 配置播放器切换到播放直播流交互 | 固定为true |
image | 播放器背景图 | string |
sources | 播放源(多分辨率线路可能存在多个播放源,播放器可自动按照配置加载切换线路交互按钮) | Array |
注意:区分isLive与流状态live_status:
- live_status - 当前流是否在推流状态
- isLive - 配置播放器切换到直播流交互
- 在使用player组件的过程中,如果尝试加载直播流,则应将 isLive 固定设为 true 传给播放器
获取视频回看配置
// 返回视频回看配置
var trailer = Mudu.Room.GetTrailer(stream_id)
参数说明:如不传入stream_id参数,多流频道默认返回主画面的回放配置,其他频道返回默认回放配置
- trailer 说明
名称 | 说明 | 类型 |
---|---|---|
video_id | 视频id | string | |
open | 是否开启视频回看 | boolean |
m3u8 | 视频回看的视频地址 | string |
trailer_img | 视频回看的视频封面 | string |
GetStreamList() 获取频道直播画面流列表
// 返回画面流数组 streamItem[]
var roomPlayAddrList = Mudu.Room.GetStreamList()
返回值streamItem[],单个streamItem说明:
名称 | 说明 | 类型 |
---|---|---|
stream_id | 流id | string |
name | 直播画面名称 | string |
is_main | 是否为主画面 | boolean | |
live_status | 推流状态 | boolean |
通过 stream_id 可配合 Mudu.Room.GetPlayAddrList(stream_id)
、Mudu.Room.GetTrailer(stream_id)
方法获取指定直播画面的直播、点播配置
获取直播流(多流频道默认返回主流数据)
// 返回直播流配置数据(原始配置数据)
var list = Mudu.Room.GetPlayList()
此接口返回的原始数据在使用前需要自行解析,建议直接使用 Mudu.Room.GetPlayAddrList(stream_id) 方法,获取按照播放器组件可用的格式配置好的数据。
获取当前频道是否有多个线路或分辨率可提供切换
// 返回直播间视频地址,类型为boolean
var roomHasMultiStreamLine = Mudu.Room.HasMultiStreamLine()
获取频道当前的列表直播配置
// 返回列表直播配置
var listliveConfig = Mudu.Room.GetListLiveConfig();
- listliveConfig属性说明
名称 | 说明 | 类型 |
---|---|---|
inUse | 频道当前是否使用列表直播 | boolean |
address | 当前的列表直播拉流地址 | string |
注意:当加载播放器配置时设置的 isLive 属性为 true 时,sdk会自动根据当前频道是否开启列表直播选择加载列表直播的拉流地址,无需额外配置。
获取直播间自定义菜单
// 返回直播间自定义菜单, 类型为Array
Mudu.Room.GetMenus();
- 单个menu说明
名称 | 说明 | 类型 |
---|---|---|
id | menu唯一id | number |
act_id | menu所属频道id | number |
type | menu的类型(1为聊天互动, 2为图文, 3为视频, 4为话题互动, 5为榜单,6照片直播,7问答,8商品管理,9文档, 12页面嵌入) | number |
name | menu的名称 | string |
order | menu的顺序,小的排前面 | number |
rich_text_url | 图文menu的详细信息地址 | string |
photo_live_url | 照片直播地址 | string |
ranks | 榜单menu详细信息 | array |
videos | 详细视频列表信息列表,仅当type为3时存在 | array |
embedded_link | 页面嵌入地址 | string |
- 贡献榜字段说明(menu.type为5,menu.ranks为贡献榜&分享榜配置数据)
名称 | 说明 | 类型 |
---|---|---|
is_display | 贡献榜是否显示(true为显示,false为不显示) | boolean |
title | 贡献榜名称 | string |
limit | 贡献榜名称 | number |
type | 贡献榜为2 | number |
- 分享榜字段说明
名称 | 说明 | 类型 |
---|---|---|
is_display | 分享榜是否显示(true为显示,false为不显示) | boolean |
title | 分享榜名称 | string |
limit | 分享榜名称 | number |
type | 分享榜为1 | number |
- videos 格式
名称 | 说明 | 类型 |
---|---|---|
video_id | 视频id | string |
video_name | 视频名称 | string |
video_duration | 视频时长 | number |
video_thumb | 视频封面 | string |
获取视频地址
// 传入视频id, promise中返回视频地址 Mudu.Room.GetVideoInfo(video_id)
示例
Mudu.Room.GetVideoInfo(video_id).then(response => { console.log(response) })
response格式
名称 | 说明 | 类型 |
---|---|---|
url | 视频地址 | string |
获取直播间自定义广告栏
// 返回直播间自定义广告栏, 类型为Array
var ads = Mudu.Room.GetBanners();
- 单个banner说明
名称 | 说明 | 类型 |
---|---|---|
id | banner唯一id | number |
act_id | banner所属频道id | number |
type | banner的类型(1为文字, 2为图片) | number |
text | banner文字 | string |
img | banner图片地址 | string |
href | banner链接地址 | string |
display_view_num | 是否显示手机端评论数(1为显示, 0为不显示) | number |
display_link | 是否显示文字链接(预留字段,暂未使用) | number |
获取直播间主题名称
// 返回直播间主题名称, 类型为string: 目前有两个值(default, tech)
var activeTheme = Mudu.Room.GetActiveTheme()
获取直播间主题配置
// 返回直播间主题配置,类型为Array
var themes = Mudu.Room.GetThemes()
若返回空数组: 则需要在
频道管理
->基础设置
->观看页主题设置
提交保存一下
- 单个theme说明
名称 | 说明 | 类型 |
---|---|---|
id | theme唯一id | number |
name | theme的名称, 对应上面Mudu.Room.GetActiveTheme 返回的值 |
string |
banner | theme的顶部图片 | string |
bg_color | theme的观看页背景色 | string |
footer | theme的页脚信息 | string |
cover_img | theme的频道图标 | string |
act_id | theme所属频道id | string |
Room.StreamEvent 事件
Room.StreamEvent事件会在直播流状态改变时(通常是后台开始直播或者关闭直播)被触发
Mudu.MsgBus.On(
// 事件名,值为Room.StreamEvent
'Room.StreamEvent',
// 事件处理函数,参数类型为object
function (msg) {
const data = JSON.parse(msg)
const message = data.event == 1 ? '开始直播' : '停止直播'
console.log(`${data.stream} 线路${message}`)
}
)
- data字段说明
名称 | 说明 | 类型 |
---|---|---|
stream | 推流状态变更画面的stream id(多流频道依此区分发生变更的流线路) | string |
event | 开启还是关闭推流 | number,开启为1, 关闭为0 |
Room.ListLiveConfig 事件
Room.ListLiveConfig 事件会在列表直播配置变更时触发
Mudu.MsgBus.On(
// 事件名,值为Room.ListLiveConfig
'Room.ListLiveConfig',
// 事件处理函数,参数类型为object
function (config) {
const message =
console.log(`列表直播${config.inUse ? '开启' : '关闭'},拉流地址为:${config.address}`)
}
)