1.构造函数 new SimpleWebRTC(options)
#url
#socketio
#connection
#debug
#localVideoEl
#remoteVideoEl
#autoRequestMedia
#enableDataChannels
#autoRemoveVideos
#adjustPeerVolume
#peerVolumeWhenSpeaking
#media
#receiveMedia
RTCPeerConnection选项。默认为{ offerToReceiveAudio: 1, offerToReceiveVideo: 1 }
#localVideo
本地视频流选项。默认为{
autoplay: true, // 自动开始video流
mirror: true, // for UX
muted: true // 把video流静音防止回声
}
#logger
2.字段
#capabilities
webrtcSupport对象,表示浏览器支持的功能。
#config
传给构造器的配置选项
#connection
socket信令连接
#webrtc
WebRTC会话。
3.事件
#connectionReady
信令connection触发connect事件时候被触发。
返回session id。
#createdPeer
有三个触发时点
1)加入一个已经存在peers的房间对每一个peer都触发一次(并开始peer)
2)当一个新的peer加入到房间(接收到offer)
3)共享桌面时,对每一个peer都触发一次(并开始peer)
*开始peer,peer.start(), 调用RTCPeerConnection的createOffer,触发并监听offer,送出type=offer的数据。
返回peer,表示一个peer对象,和peer连接相关。
#stunservers
当信令connection触发相同的事件时触发。
返回stunservers参数
#turnservers
当信令connection触发相同的事件时触发。
返回turnservers参数
#localScreenAdded
开始共享桌面被触发时触发该事件。
返回el,包含本地桌面流的元素。
#leftRoom
成功离开当前房间后触发。结束所有peer,并终止本地桌面流。
#videoAdded
增加一个peer流时触发。
返回videoEl,跟增加的流相关联的video元素。peer,跟增加的流相关联的peer
#videoRemoved
移除一个peer流时触发。
返回videoEl,跟移除的流相关联的video元素。peer,跟移除的流相关联的peer
4.方法
#createRoom(name, callback)
在socket连接上触发create事件,并携带name参数。如果提供回调函数的话,在监听处调用该函数。
#joinRoom(name, callback)
在socket连接上触发join事件加入房间name。当socket连接监听join事件时生成roomDescription,回调函数通过callback(err, roomDescription)调用。
#startLocalVideo()
使用media选项开始本地媒体。media选项由构造时传入的config提供。
#testReadiness()
测试socket连接是否已OK并且(本地)媒体流是否已准备好。
都OK的话,触发readyToCall事件。
#mute()
使所有peer的本地音频流静音。(停止传送音频流)
#unmute()
解除所有peer的本地音频流静音。(恢复传送音频流)
#pauseVideo()
对所有peer停止传送视频流。
#resumeVideo()
恢复对所有peer传送视频流。
#pause()
对所有peer停止传送音频流和视频流。
#resume()
恢复对所有peer传送音频流和视频流。
#sendToAll(messageType, payload)
通过信令通道对房间里的所有peer广播一条信息。
messageType:信息的类别key。payload:任意值或对象。
#sendDirectlyToAll(channelLabel, messageType, payload)
通过数据通道对房间里的所有peer广播一条信息。
channelLabel:数据通道的标签。其他参数同sendToAll函数。
#getPeers(sessionId, type)
返回所有指定sessionId和类别的peer。
#shareScreen(callback)
(localmedia)对浏览器发起捕捉桌面请求,成功之后触发localScreen事件。
webrtc监听到该事件之后,对所有类型是video的peer,生成一个类型是screen的peer。
触发localScreenAdded事件,socket连接触发shareScreen事件。
#getLocalScreen
返回本地桌面流。
#stopScreenShare()
停止本地桌面共享流,并从房间里移除该流(peer.end())。
#stopLocalVideo()
停止所有本地媒体流。
#setVolumeForAll(volume)
对所有peer设定音量。
volume,音量,0到1.
#leaveRoom()
离开当前加入的房间,停止所有peer连接和本地桌面共享。
socket连接触发leave事件。
*停止peer:peer.end(),调用RTCPeerConnection.close()
#disconnect()
调用socket连接的disconnect方法,并删除该连接。
内部方法
#handlePeersStreamAdded(peer)
把媒体流关联到DOM上,和一些其他的设定。触发videoAdded事件。
#handlePeerStreamRemoved(peer)
从DOM上删除video容器,触发videoRemoved事件。
#getDomId(peer)
取得和参数peer关联的DOM Id。
#getEl(idOrEl)
取得元素,参数可以是元素或者元素的id。
#getLocalVideoContainer()
取得本地video元素。
#getRemoteVideoContainer()
取得remote video元素。