API 概览
本文档适用于 QNWebRTC 4.x 版本的 SDK,并不向下兼容。
QNWebRTC 4.x 是在 2.x 的基础上进行了 API 的重构和优化,从而使使用者能够更加高效的接入,所以新接入的用户推荐使用最新版本的 SDK。
老用户也可以继续使用 QNWebRTC 2.x 版本,我们也会持续在此版本上进行问题修复和版本更迭,但是后续的一些新功能有可能并不会在 2.x 版本上提供。
QNRTC
初始化
方法 | 描述 |
---|---|
createClient | 创建 QNRTCClient 对象 |
创建 Track
方法 | 描述 |
---|---|
createCameraVideoTrack | 通过摄像头采集的视频创建一个视频轨道 |
createMicrophoneAudioTrack | 通过麦克风采集的音频创建一个音频轨道 |
createScreenVideoTrack | 创建用于屏幕共享的视频轨道 |
createMicrophoneAndCameraTracks | 同时采集麦克风音频和摄像头视频轨道 |
createBufferSourceAudioTrack | 通过外部音频数据创建一个音频轨道 |
createCustomAudioTrack | 创建一个自定义的音频轨道 |
createCustomVideoTrack | 创建一个自定义的视频轨道 |
传输模式
方法 | 描述 |
---|---|
setTransportPolicy | 设置传输模式 |
QNRTCClient
QNRTCClient 提供和房间相关的一系列的方法,通过它我们可以实现加入房间,在房间内发布或者订阅相应的音视频轨道等操作。核心方法如下:
核心方法
方法 | 描述 |
---|---|
join | 加入房间 |
leave | 离开房间 |
publish | 发布本地 Track |
unpublish | 取消发布本地 Track |
subscribe | 订阅远端 Track |
unsubscribe | 取消订阅远端 Track |
sendMessage | 发送自定义消息 |
转推 CDN
方法 | 描述 |
---|---|
startDirectLiveStreaming | 开启单路转推 |
stopDirectLiveStreaming | 停止单路转推 |
startTranscodingLiveStreaming | 开启合流转推 |
stopTranscodingLiveStreaming | 停止合流转推 |
setTranscodingLiveStreamingTracks | 新增、更新合流转推的 Tracks |
removeTranscodingLiveStreamingTracks | 删除合流转推的 Tracks |
跨房连麦
方法 | 描述 |
---|---|
setClientMode | 设置跨房连麦场景 |
setClientRole | 设置互动直播场景下的用户角色 |
startMediaRelay | 开始跨房媒体转发 |
updateMediaRelay | 更新跨房媒体转发 |
stopMediaRelay | 停止跨房媒体转发 |
QNLocalTrack 类
QNLocalTrack 是本地创建的一个音视或者视频轨道,可以通过 QNRTC 来创建各种类型的音视频轨道,例如麦克风采集的音频轨道,摄像头采集的视频轨道,或者屏幕采集的视频轨道等等,我们真正用到的是它所衍生的子类。
以 QNLocalTrack 为基类,向下衍生的子类如下:
Hierarchy
-
本地音频轨道 描述 QNMicrophoneAudioTrack 以麦克风采集到的音频数据为数据源创建的音频轨道,通过 QNRTC.createMicrophoneAudioTrack 创建。 QNBufferSourceAudioTrack 以外部导入的音频数据为数据源创建的音频轨道,通过 QNRTC.createBufferSourceAudioTrack 创建。 QNCustomAudioTrack 通过自定义的 MediaStreamTrack 对象创建的音频轨道,通过 QNRTC.createCustomAudioTrack 创建。 本地视频轨道 描述 QNCameraVideoTrack 以摄像头采集到的视频数据为数据源创建的视频轨道,通过 QNRTC.createCameraVideoTrack 创建。 QNScreenVideoTrack 以屏幕采集到的视频数据为数据源创建的视频轨道,通过 QNRTC.createScreenVideoTrack 创建。 QNCustomVideoTrack 通过自定义的 MediaStreamTrack 对象创建的音频轨道,通过 QNRTC.createCameraVideoTrack 创建。
QNRemoteTrack 类
QNRemoteTrack 是远端用户创建的音视频轨道,本地用户可以通过房间中的事件回调获取。其衍生的子类如下:
Hierarchy
-
远端音视频轨道 描述 QNRemoteVideoTrack 远端用户发布的音频轨道。 QNRemoteAudioTrack 远端用户发布的视频轨道。
QNRTCClientEvent
QNRTCClient 继承于 EventEmitter,通过监听一系列事件,触发对应回调函数,例如:
client.on('user-joined', function(remoteUserID, userData) {
console.log('user-joined', remoteUserID, userData)
})
-
事件 描述 user-joined 用户加入房间 user-left 用户离开房间 user-published 用户发布 Tracks user-unpublished 用户取消发布 Tracks connection-state-changed 与房间的连接状态改变 message-received 收到自定义消息 user-reconnecting 远端用户重连中 user-reconnected 远端用户重连成功 direct-livestreaming-state-changed 单路转推状态变化 transcoding-livestreaming-state-changed 合流转推状态变化
文档反馈
(如有产品使用问题,请 提交工单)
QNRTC 提供 SDK 的入口方法,可以通过它进行 SDK 的初始化,各个类型 Track 的创建等操作。其核心方法如下: