七牛实时音视频云 微信小程序 SDK

七牛实时音视频云 微信小程序 SDK

Android SDK 文档

iOS SDK 文档

Windows SDK 文档

Web SDK 文档

RTN 文档

  • 文档

›API参考

开始

  • SDK 概述
  • 开发准备
  • 快速开始

API参考

  • 模块

模块

// esModule
import * as QNRTC from 'pili-rtc-wxapp'

// CommonJS
const QNRTC = require('pili-rtc-wxapp')

QNRTC

QNRTC.RoomSession

  QNRTC 的静态属性。

QNRTC.log

  QNRTC 的静态属性。 可以用于设置日志的开关。

QNRTC.version

  QNRTC 的静态属性, 符合 semver 规范的 string,如 1.0.0。


RoomSession

核心类 RoomSession

RoomSession ⇐ EventEmitter

构造函数 new RoomSession()

  导出类
 继承: EventEmitter

users

表示房间当前的用户列表。如果没有加入房间,将会返回空列表。

  RoomSession 实例的属性

属性:

PropertyTypeDescription
usersuser[]user列表
user.playeridString加入房间的用户ID
user.playerdataString用户自定义 userData

tracks

表示房间中当前所有其他人的 TrackInfo。

  RoomSession 实例的属性

属性:

PropertyTypeDescription
trackstrack[]track列表
track.kindString只有2种可能的值,audio或者video。标记这个Track是音频轨还是视频轨
track.masterBoolean该Track是否为master
track.mutedBoolean表示这Track当前是不是出于静音或者黑屏状态
track.playeridString发布这个Track的用户ID
track.tagStringtag是在这个Track被采集时用户自己指定的,用来标示区分不同的Track
track.trackidStringTrack的ID

  RoomSession 实例的属性

joinRoomWithToken(token, userData)

加入房间。

  RoomSession 实例的方法

参数:

ParamTypeDescription
tokenString参见 RoomToken 签发服务
userDataString | undefined用户的额外信息

返回值: Promise<void>

publish()

获取rtmp推流地址。

  RoomSession 实例的方法

返回值: String

subscribe(userId)

获取rtmp拉流地址。

  RoomSession 实例的方法

参数:

ParamTypeDescription
userIdString请求加入房间的用户 ID,需满足正则 ^[a-zA-Z0-9_-]{3,50}$

返回值: String

getSubscribeAddressList(userId)

获取rtmp拉流地址列表。

  RoomSession 实例的方法

参数:

ParamTypeDescription
userIdString请求加入房间的用户 ID,需满足正则 ^[a-zA-Z0-9_-]{3,50}$

返回值: object[]

object的具体格式为:

ParamTypeDescription
urlStringrtmp拉流地址
masterBoolean为true表示以该拉流地址为主,存在audio和video。为false只能存在video

muteTracks(tracks)

将本地已经发布的 track 对象静音或取消静音,这个静音动作会广播给全房间,其他用户可以通过 mute-tracks 事件来感知。

  RoomSession 实例的方法

参数:

ParamTypeDescription
trackstrack[]track 列表,每个列表项内会有一个 trackid 和 muted
track.trackidString设置静音状态的 trackid
track.mutedBoolean是否静音。为 true 表示静音,为 false 表示取消静音

注意:视频 track 和音频 track 都可以设置静音,静音的本质是保留数据通道但不发送数据。当音频 track 静音时会听不到声音,视频 track 静音时视频画面不会再更新。

createMergeJob(options)

创建合流任务。有 publish 权限才能发送此消息。

  RoomSession 实例的方法

参数:

ParamTypeDescription
publishUrlString合流发布地址
idString合流任务ID,由客户端设置,不可为空,若已存在相同的 id 和 job,更新 job 相关信息,但不会清除合流信息
stretchModeString画面填充方式(包括水印)。aspectFill 在保持长宽比的前提下,缩放视频,使其充满容器(默认);aspectFit 在保持长宽比的前提下,缩放视频,使其在容器内完整显示,边缘部分填充黑色;scaleToFit 缩放视频,使其填充满容器,可能导致拉伸变形
watermarkswatermark[]水印配置,为可选项
watermark.urlString水印图片地址
watermark.hNumber水印高度
watermark.wNumber水印宽度
watermark.xNumber水印横轴偏移
watermark.yNumber水印纵轴偏移
backgroundObject背景图片配置,为可选项
background.urlString背景图片地址
background.hNumber背景图片高度
background.wNumber背景图片宽度
background.xNumber背景图片横轴偏移
background.yNumber背景图片纵轴偏移
audioOnlyBoolean为 true 时,服务端会按照默认方式处理height,width,fps,kbps,stretchMode这些参数
kbpsString码率,指的是平均码率,真实码率是波动的
fpsString帧率
maxRateString最高码率,为可选项
minRateString最低码率,为可选项
holdLastFrameBoolean是否保留 track 断开连接前最后一帧,默认值是 false
widthNumber输出画面的宽度
heightNumber输出画面的高度

返回值: Promise<MergeJobRes>

updateMergeTracks(options)

更新合流中的 tracks (包含添加和删除操作)。

  RoomSession 实例的方法

参数:

ParamTypeDescription
idString合流 ID
addtrack[]在合流中添加的 track
removetrack[]从合流中删除的 track
track.trackidString媒体 trackid
track.hNumbertrack 高度
track.wNumbertrack 宽度
track.xNumbertrack 横轴偏移
track.yNumbertrack 纵轴偏移
track.zNumbertrack 深度偏移
stretchModeString画面填充方式(为可选值)。为空时继承 createMergeJob 中 stretchMode 的值。不为空时,有三个可选值:aspectFill / aspectFit / scaleToFit。aspectFill 在保持长宽比的前提下,缩放视频,使其充满容器;aspectFit 在保持长宽比的前提下,缩放视频,使其在容器内完整显示,边缘部分填充黑色;scaleToFit 缩放视频,使其填充满容器,可能导致拉伸变形

返回值: Promise<UpdateTracksRes>

addMergeTracks(options, jobid)

在合流中添加 tracks 。

  RoomSession 实例的方法

参数:

ParamTypeDescription
jobidString合流 ID
optionstrack[]在合流中添加的 track
track.trackidString媒体 trackid
track.hNumbertrack 高度
track.wNumbertrack 宽度
track.xNumbertrack 横轴偏移
track.yNumbertrack 纵轴偏移
track.zNumbertrack 深度偏移
stretchModeString画面填充方式(为可选值)。为空时继承 createMergeJob 中 stretchMode 的值。不为空时,有三个可选值:aspectFill / aspectFit / scaleToFit。aspectFill 在保持长宽比的前提下,缩放视频,使其充满容器;aspectFit 在保持长宽比的前提下,缩放视频,使其在容器内完整显示,边缘部分填充黑色;scaleToFit 缩放视频,使其填充满容器,可能导致拉伸变形

返回值: Promise<UpdateTracksRes>

removeMergeTracks(options, jobid)

在合流中删除 tracks 。

  RoomSession 实例的方法

参数:

ParamTypeDescription
jobidString合流 ID
optionstrack[]在合流中删除的 track
track.trackidString媒体 trackid
track.hNumbertrack 高度
track.wNumbertrack 宽度
track.xNumbertrack 横轴偏移
track.yNumbertrack 纵轴偏移
track.zNumbertrack 深度偏移
stretchModeString画面填充方式(为可选值)。为空时继承 createMergeJob 中 stretchMode 的值。不为空时,有三个可选值:aspectFill / aspectFit / scaleToFit。aspectFill 在保持长宽比的前提下,缩放视频,使其充满容器;aspectFit 在保持长宽比的前提下,缩放视频,使其在容器内完整显示,边缘部分填充黑色;scaleToFit 缩放视频,使其填充满容器,可能导致拉伸变形

返回值: Promise<UpdateTracksRes>

stopMerge(jobid)

停止合流。

  RoomSession 实例的方法

参数:

ParamTypeDescription
jobidString停止合流的 jobid

返回值: Promise<StopTracksRes>

sendMessage(target, text)

发送自定义消息。

  RoomSession 实例的方法

参数:

ParamTypeDescription
targetString[]消息发送对象,不指定则发送给房间内所有人
textString消息内容

返回值: Promise<endMessageRes>

leaveRoom()

离开房间。

  RoomSession 实例的方法

on('user-join', user => any)

监听事件 user-join

回调参数:

ParamTypeDescription
userObject用户信息
user.playeridString加入房间的用户ID
user.playerdataString用户自定义 userData

on('user-leave', user => any)

监听事件 user-leave

回调参数:

ParamTypeDescription
userObject用户信息
user.playeridString加入房间的用户ID

on('track-add', tracks => any)

监听事件 track-add

回调参数:

ParamTypeDescription
trackstrack[]track list
trackObjecttrack 信息
user.trackidStringtrackid
user.playeridString用户ID
user.kind"audio" | "video"kind
user.tagStringtag

on('track-remove', tracks => any)

监听事件 track-remove

回调参数:

ParamTypeDescription
trackstrack[]track list
trackObjecttrack 信息
user.trackidStringtrackid
user.playeridString用户ID
user.kind"audio" | "video"kind
user.tagStringtag

on('local-track-add', tracks => any)

监听事件 local-track-add

回调参数:

ParamTypeDescription
trackstrack[]local track list
trackObjecttrack 信息
user.trackidStringtrackid
user.playeridString用户ID
user.kind"audio" | "video"kind
user.tagStringtag

on('local-track-remove', tracks => any)

监听事件 local-track-remove

回调参数:

ParamTypeDescription
trackstrack[]local track list
trackObjecttrack 信息
user.trackidStringtrackid
user.playeridString用户ID
user.kind"audio" | "video"kind
user.tagStringtag

on('mute-tracks', tracks => any)

监听事件 mute-tracks

回调参数:

ParamTypeDescription
trackstrack[]mute track list
track.trackidString远端用户发生静音状态的 trackid
track.mutedBoolean远端用户的静音状态,为 true 表示静音,为 false 表示取消静音

on('message-recv', msgData => any)

监听事件 message-recv

回调参数:

ParamTypeDescription
messagesmessage[]message list
messageObjectmessage 信息
message.msgidString消息唯一ID
message.playeridString消息发送者ID
message.typeString消息类型,当前支持 normal 和 notify 类型(notify 类型为服务端通知消息,此时 playerid 为空)
message.textString消息内容
message.msgtsString消息时间戳
message.msgsnString当前消息序列号

on('merge-job-create', (newMergeJob, mergeJobs) => any)

监听事件 merge-job-create

回调参数:

ParamTypeDescription
mergeJobsmergeJob[]所有的合流任务
newMergeJobmergeJob新创建的合流任务
mergeJob.idString合流任务的 ID
mergeJob.publishUrlString合流任务的发布url

on('merge-update', (updatedMergeJob, mergeJobs) => any)

监听事件 merge-update

回调参数:

ParamTypeDescription
mergeJobsmergeJob[]所有的合流任务
updatedMergeJobmergeJob更新后的合流任务
mergeJob.idString合流任务的 ID
mergeJob.publishUrlString合流任务的发布url

on('merge-stop', (stopedMergeJob, mergeJobs) => any)

监听事件 merge-stop

回调参数:

ParamTypeDescription
mergeJobsmergeJob[]所有的合流任务
newMergeJobmergeJob停止的合流任务
mergeJob.idString合流任务的 ID
mergeJob.publishUrlString合流任务的发布url

on('connecting', () => any)

监听事件 connecting,收到此事件表示sdk正在重连

on('connected', () => any)

监听事件 connected,收到此事件表示sdk重连成功。此时应该调用重新推流和拉流的API

on('disconnect', (res) => any)

与房间断开链接房间。 res.code 为 10006 时表示被踢出房间。 回调参数:

ParamTypeDescription
codeNumber错误码
dataObject信息
data.userIdString | undefined踢人的用户,只有 code 为 10006 时存在

on('error', () => any)

监听事件 error,收到此事件表示 sdk 重连发生错误离开房间,一般是超时,此时应该重新走 joinRoomWithToken。

off(event , callback)

ParamTypeDescription
eventString事件名
callbackFunction回调函数

log

日志对象

setLevel(level)

通过该方法设置 SDK 打印 log 的等级,一共有 4 个等级 disable warning debug log 设置为 disable 后将不会打印数据, 默认为 log

  log 对象的方法

参数:

ParamTypeDescription
levelStringlog 的等级

返回值: void

← 快速开始
  • QNRTC.RoomSession
  • QNRTC.log
  • QNRTC.version
  • RoomSession ⇐ EventEmitter
    • users
    • tracks
    • joinRoomWithToken(token, userData)
    • publish()
    • subscribe(userId)
    • getSubscribeAddressList(userId)
    • muteTracks(tracks)
    • createMergeJob(options)
    • updateMergeTracks(options)
    • addMergeTracks(options, jobid)
    • removeMergeTracks(options, jobid)
    • stopMerge(jobid)
    • sendMessage(target, text)
    • leaveRoom()
    • on('user-join', user => any)
    • on('user-leave', user => any)
    • on('track-add', tracks => any)
    • on('track-remove', tracks => any)
    • on('local-track-add', tracks => any)
    • on('local-track-remove', tracks => any)
    • on('mute-tracks', tracks => any)
    • on('message-recv', msgData => any)
    • on('merge-job-create', (newMergeJob, mergeJobs) => any)
    • on('merge-update', (updatedMergeJob, mergeJobs) => any)
    • on('merge-stop', (stopedMergeJob, mergeJobs) => any)
    • on('connecting', () => any)
    • on('connected', () => any)
    • on('disconnect', (res) => any)
    • on('error', () => any)
    • off(event , callback)
    • setLevel(level)
七牛实时音视频云 微信小程序 SDK
文档
快速开始API 参考
其他平台
QiniuRTN iOS SDKQiniuRTN Android SDKQiniuRTN Windows SDKQiniuRTN Web SDKQiniuRTN
更多
GitHubStar
Copyright © 2022 Qiniu Hermes Team