1.1.13 • Published 3 years ago

test-zj999 v1.1.13

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

H5-API

import { JRTCClient } from 'test-zj999'

1.JRTCClient 

init(JRTCInitParams)

const JWebrtc = JRTCClient.init(JRTCInitParams:{ appId: string }) 参数:initParam 返回:  JRTCClient实例 JRTCInitParams: 

参数类型说明
appIdstringappId

getPeerId()

JWebrtc.getPeerId(userInfo: UserInfo) 参数: UserInfo 说明:获取peerId, 返回用户 {peerId} 注:后期废弃

参数说明是否必填
userIduserIdY
userNameuserNameN
temporary是否是临时用户Y

setVideoEncodingParam()

JWebrtc.setVideoEncodingParam(resolution: string) 设置分辨率 参数: resolution

参数说明是否必填
resolutionresolution nhd(640360)、hd(1280720)、fhd(1920*1080)Y

setAudioCodecOptions()

JWebrtc.setSudioCodecOptions(isStereo: Boolean) 参数: isStereo 是否开启立体声:true开启,false关闭 返回:无

getVideoTrack()

JWebrtc.getVideoTrack() 参数: 无 说明:获取视频track 返回:videoTrack

getAudioTrack()

JWebrtc.getAudioTrack() 参数: 无 说明:获取音频track 返回:audioTrack

getScreenTrack()

JWebrtc.getScreenTrack() 说明: 获取屏幕共享track 参数: 无 返回:screenTrack

createRoom()

JWebrtc.createRoom(roomInfo: RoomInfo) 说明:创建房间 返回:roomId

参数类型是否必填
roomNamestringN
peerIdstringY
templateIdnumberY
limitPeopleintY
expireModeIdintY
expireTimedate: 过期类型为: 设定某个时间过期, expireTime必填Y

enterRoom()

JWebrtc.enterRoom(enterRoomInfo) 说明:进入房间成功, 会返回一个ROOM对象: JRTCRoom, 参数:enterRoomInfo Object如下

参数类型是否必填说明
appIdstringY应用ID,控制台获取
tokenstringY用户生成token,生成方式参见XXXX取
userIdstring or numberY用户Id
noncestringY令牌随机码,用户生成
timeStampstringY令牌过期时间,用户生成
roomIdnumberYroomId
peerIdstringYpeerId
nicknamestringNnickname
subscribeTypestringN大房间模式下,音频订阅模式: 1 固定订阅 2 普通订阅 。 默认为 1

exitRoom()

JWebrtc.exitRoom(roomId: string, peerId: string) 说明:退出房间 参数: roomId、peerId 返回:无

initBroadcast()

JWebrtc.initBroadcast(initBroadcastParams:{ appId: string, token: string, peerId: string | number, userName: string}) 说明:消息大厅初始化,初始化成功后, 会返回一个Msg对象: JRTCMsg, initBroadcastParams: 

参数类型是否必填说明
appIdstringY应用ID,控制台获取
tokenstringY用户生成token,生成方式参见XXXX取
peerIdstringYpeerId
userNamestringY用户昵称

错误监听

JWebrtc.on('onError', (err) => {}) 说明:错误事件,返回 { errorCode: XXX, message: XXXX} 错误信息参考:

类型errorCodemessage说明
鉴权错误12000 'Authentication failure.'鉴权错误
网络错误11000network_error网络已断开
音频错误10001audio device not found未找到音频设备
10003audio device not allowed浏览器禁用音频设备
10005audio device not readable系统禁用音频设备
视频错误10002video device not found未找到视频设备
10004video device not allowed浏览器禁用视频设备
10006video device not readable系统禁用视频设备
屏幕共享10010"unknown screenshare error"屏幕共享未知错误
10011screenshare not allowed屏幕共享被禁用
10012screenshare ended屏幕共享已取消
其它错误10007"constraints " + e.constraint + " error" OverConstrainedError无法满足要求错误
1e4e.message : "device unknown error"未知错误

2.JRTCRoom

initBroadcast 调用JWebrtc.enterRoom 进入房间成功, 会返回一个ROOM对象: JRTCRoom, 1. 可通过JRTCRoom来进行房间内操作 2. 可直接通过调用JRTCRoom = await 也可在加入房间成功后,调用JRTCRoom = JWebrtc.JWebrtc.getRoomObj() 来获取enterRoom(XXXX)加入房间成功后的返回值来获取

publishVideoStream()

const { track, streamId } = await JRTCRoom.publishVideoStream(videoTrack) 说明:发布视频流 参数: videoTrack 返回:track及streamId

publishAudioStream()

const { track, streamId } = await JRTCRoom.publishAudioStream(audioTrack) 说明:发布音频 参数: audioTrack 返回:track及streamId

unPublishStream()

JRTCRoom.unPublishStream(streamId) 说明:取消发布 参数: streamId 返回:无

subscribeStreams()

JRTCRoom.subscribeStreams(streamIds: string[]) 说明:订阅流,订阅成功如果产生新的消费者需手动监听streamSubscribed 参数: streamIds: string[] 返回:无 监听:streamSubscribed,返回peerInfo, peerInfo信息如下 JRTCRoom.on('StreamSubscribed', ({ streamInfo}) => {  console.log(stream}) Info)

参数说明
peerId用户Id
nickName昵称
audioTrackaudioTrack
videoTrackvideoTrack

unSubscribeStreams()

JRTCRoom.unSubscribeStreams(streamIds: string[]) 说明:取消订阅 参数: streamIds: string[] 返回:无

pausePublish()

JRTCRoom.pausePublish(streamId) 说明:暂停发布 参数: streamId 返回:无

resumePublish()

JRTCRoom.resumePublish(streamId) 说明:恢复发布 参数: streamId 返回:无

pauseSubscribe()

JRTCRoom.pauseSubscribe(streamId) 说明:暂停订阅 参数: streamId 返回:无

resumeSubscribe()

JRTCRoom.resumeSubscribe(streamId) 说明:恢复订阅 参数: streamId 返回:无

sendMessage()

JRTCRoom.sendMessaage({msg: string, peerId?: string}) 说明:发送消息,可发送给指定人,可发送消息到房间 参数:msg: 消息体, peerId: 指定peerId 返回:无

changeNickName()

JRTCRoom.changeNickName(nickName: string) 说明:修改昵称 参数: nickName 返回:无 监听:NickNameUpdate, 返回  {roomId: string, peerId: string, nickName: string}

enableStreamStat()

JRTCRoom.enableStreamStat(isStat, intervalSec) 说明: 监控接口 参数:

参数说明类型
isStat是否开启监控boolean
interValSec几秒获取一次监控信息number

返回:{ JRTCNetStats, JRTCLocalStreamStats, JRTCRemoteStreamStats }

参数说明类型
JRTCNetStats基本信息{localIp:XX,serverIp: XX}
JRTCLocalStreamStats本地流信息{peerId: XX,streamId: XX,kind: XX,rtt: XX,netLoss: XX,frameWidth: XX,frameHeight: XX,fps: XX}
JRTCRemoteStreamStats 远端流信息{ peerId: XX,streamId: XX,kind: XX,jitterBufferDelay: XX,netLoss: XX,jitterBufferDelay: XX,netLoss: XX,frameWidth: XX,frameHeight: XX,fps: XX}

getFixedAudioConsumers()

JRTCRoom.getFixedAudioConsumers() 说明:如果房间为大房间,可获取大房间固定音频, 可自行订阅 参数: 无 返回:fixedAudioConsumerList fixedAudioConsumerList:

参数说明
streamId流ID
kind媒体类型
track音频track

会控相关接口

removePeer

JRTCRoom.removePeer(targetPeerId, appData) 说明:移除指定用户 参数说明:

参数类型是否必须说明
targetPeerIdstringY移除目标用户ID
appDataObjectN, 默认为 {}自定义参数

muteAudio

JRTCRoom.muteAudio({targetPeerId, appData}) 说明:广播 房间内全局静音/指定用户静音 参数说明:

参数类型是否必须说明
targetPeerIdstringN目标用户ID,如果传入targetPeerId则为指定用户操作,不传则是对房间全局操作
appDataObjectN ,默认为 {}自定义参数

closeVideo

JRTCRoom.closeVideo()

说明:广播 房间内全局关闭视频/关闭指定用户视频

参数说明:同muteAudio

forbidChat

JRTCRoom.forbidChat(appData) 说明:广播房间禁言 参数说明:

参数类型是否必须说明
appDataObjectN ,默认为 {}自定义参数

unForbidChat

JRTCRoom.unForbidChat() 说明:广播房间解除禁言 参数:同forbidChat

customSignal

JRTCRoom.customSignal() 说明:广播用户自定义信令 参数说明:

参数类型是否必须说明
eventNamestringY自定义信令名称
targetPeerIdstringN目标用户ID
appDataObjectN ,默认为 {}自定义参数

JRTCRoom房间内消息监听

UserJoinedRoom

JRTCRoom.on('UserJoinRoom', (data: {peerId:  string, nickName: string}) => {})

说明:加入房间

UserLeavedRoom

JRTCRoom.on('UserLeaveRoom', (data: {peerId:  string, nickName: string}) => {})

说明:离开房间

NickNameUpdated

JRTCRoom.on('NickNameUpdate', (data: {roomId: string, peerId:  string, nickName: string}) => {})

说明:用户修改昵称

MessageRecived

JRTCRoom.on('MessageRecived', (data: {peerId: string, nickName: string, msg: string}) => {})

说明:有成员发送消息时

参数说明
peerId发送者id
nickName发送者昵称
msg消息体

StreamPublished

JRTCRoom.on('StreamPublished', (streamsInfo: streamInfo[]) => {
let streamIds = streamInfos.map(streamInfo => streamInfo.streamId);
      console.log('StreamPublished', streamIds)
      JRTCRoom.subscribeStreams(streamIds) // 可选择订阅
    })

说明:有新流发布 streamsInfo:,已发布流数组 streamInfo[]: streamInfo信息如下:

参数说明
peerId用户Id
streamId流ID
kind流类型
streamName流名称

StreamUnpublished

JRTCRoom.on('StreamUnpublished', (streamInfo: StreamInfo) => {
      console.log('StreamUnpulished', streamInfo) // 返回取消发布的流信息
    })

说明:当有成员取消音频或视频发布时 StreamInfo: 

参数说明
peerId用户Id
streamId流ID
kind流类型

StreamPaused

JRTCRoom.on('StreamPaused', (streamInfo: StreamInfo) => {
      console.log('StreamPaused', streamInfo) // // 返回目标消费信息
    })

说明:当有成员暂停音频或视频发布时,返回StreamInfo信息如下

参数说明
roomId房间ID
peerId暂停流发布的用户Id
streamId流ID
kind流类型

StreamResumed

JRTCRoom.on('StreamResumed', (streamInfo: StreamInfo) => {
      console.log('StreamResumed', streamInfo) // 返回目标消费信息
    })

说明:当有成员恢复音频或视频发布时,返回StreamInfo信息如下

参数 说明
参数说明
roomId房间ID
peerId恢复流发布的用户Id
streamId流ID
kind流类型

会控相关监听

UserRemoved

JRTCRoom.on('UserRemoved', (data: {peerId:  string, nickName: string}) => {})

说明:某个用户被移出房间

AudioMuted

JRTCRoom.on('AudioMuted', (data: {peerId:  string, nickName: string}) => {})

说明:某个用户被静音

RoomAudioMuted

JRTCRoom.on('RoomAudioMuted', (data: {peerId:  string, nickName: string}) => {})

说明:房间被静音

VideoClosed

JRTCRoom.on('VideoClosed', (data: {peerId:  string, nickName: string}) => {})

说明:某个用户视频被关闭

RoomVideoClosed

JRTCRoom.on('RoomVideoClosed', (data: {peerId:  string, nickName: string}) => {})

说明:房间被关闭所有视频

RoomChatForbidden

JRTCRoom.on('RoomChatForbidden', (data: {peerId:  string, nickName: string}) => {})

说明:房间禁止所有文字聊天

RoomChatUnForbidden

JRTCRoom.on('RoomChatForbiddenlosed', (data: {peerId:  string, nickName: string}) => {})

说明:房间取消禁言

SignalCustom

JRTCRoom.on('RoomChatForbiddenlosed', (data: {peerId:  string, nickName: string, eventName}) => {})
说明:用户自定义信令

3. JRTCMsg

  1. 如若开启消息大厅模式:通过JRTCMsg对象来发送和监听大厅消息
  2. 消息大厅初始化成功后, 会返回一个Msg实例: 也可在initBroadcast成功后通过调用 JRTCMsg = JWebrtc.getMsgObj() 来获取JRTCMsg对象JRTCMsg

sendMessage()

JRTCMsg.sendMessage({msg: string, peerId?: string}) 说明:发送消息,可发送给指定人,可发送广播消息 参数:msg: 消息内容, peerId: 指定peerId 返回:无

JRTCMsg消息大厅消息监听

BroadcastMessageRecived

JRTCMsg .on('BroadcastMessageRecived', (data) => {})

data: {requestId: XXXXX, peerId: string, data: string}
参数说明
requestIdrequestId
peerId发送者ID
data消息内容

说明:收到大厅消息,广播消息或单聊消息

1.1.13

3 years ago

1.1.12

3 years ago

1.1.11

3 years ago

1.1.8

3 years ago

1.1.10

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.1.0

3 years ago

1.0.0

3 years ago

0.4.9-beta

3 years ago