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}`)
    }
)

results matching ""

    No results matching ""