milletlovemouse / rtc-client

SDK based on browser WebRTC API encapsulation for building video call applications

Home Page:https://www.npmjs.com/package/@houwx/rtc-client

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RTCClient()

Syntax

new RTCClient(options)

Parameters

options

  • configuration: RTCConfiguration
  • constraints: MediaStreamConstraints
  • socketConfig:
    • host: 域名或者ip
    • port?: 端口
import RTCClient from 'rtc-client';

const host = 'https://127.0.0.1'
const port = 3000

const rtc = new RTCClient({
  configuration: {
    iceServers: [
      {
        urls: `turn:stun.l.google.com:19302`,
        username: "webrtc",
        credential: "turnserver",
      },
    ],
  },
  constraints: {
    audio: true,
    video: true
  },
  socketConfig: {
    host,
    port,
  }
})

Instance methods

on(type: string, listener: function): void

绑定event事件

off(type: string, listener: function): void

解除绑定event事件

shareDisplayMedia(): Promise

开启视频共享

cancelShareDisplayMedia(): void

取消视频共享

join(data: { username: string, roomname: string }): void

加入房间

leave(): void

离开房间

getDevicesInfoList(): Promise<MediaDeviceInfo[]>

获取设备列表

getVideoDeviceInfo(): Promise

获取当前使用的视频输入设备信息

getAudioDeviceInfo(): Promise

获取当前使用的音频输入设备信息

channelSendMesage(): void

使用RTCDataChannel数据通道发送消息

replaceTrack(deviceId: string, kind: 'video' | 'audio'): void

切换设备媒体轨道

replaceVideoTrack(deviceId: string): void

切换视频媒体轨道

replaceAudioTrack(deviceId: string): void

切换音频媒体轨道

deviceSwitch(state: boolean, kind: 'video' | 'audio'): void

切换设备状态

disableAudio(): void

禁用麦克风

enableAudio(): void

启用麦克风

disableVideo(): void

禁用摄像头

enableVideo(): void

启用摄像头

getLocalStream(): Promise

获取本地媒体流

getDisplayStream(): Promise

获取共享屏幕媒体流

close(): void

关闭rtcclient实例

Events

connectorInfoListChange

当与连接的客户端列表发生改变或者更新时触发

rtc.on('connectorInfoListChange', (data) => {
  console.log('onConnectorInfoListChange', data);
})

displayStreamChange

当共享屏幕媒体流发生变化时触发

rtc.on('displayStreamChange', async (stream) => {
  displayStream = stream
})

localStreamChange

当本地媒体流发生变化时触发

rtc.on('localStreamChange', async (stream) => {
  localStream = stream
})

message

当RTCDataChannel数据通道接收到数据时触发

rtc.on('message', async (message: MessageItem) =>{
  message.isSelf = false
  messageList.push(message)
  console.log(message);
})

About

SDK based on browser WebRTC API encapsulation for building video call applications

https://www.npmjs.com/package/@houwx/rtc-client

License:MIT License


Languages

Language:TypeScript 97.5%Language:JavaScript 2.5%