QNRTCClient
- setAutoSubscribe
- join[1/2]
- join[2/2]
- leave
- publish[1/4]
- publish[2/4]
- publish[3/4]
- publish[4/4]
- unpublish[1/2]
- unpublish[2/2]
- subscribe[1/2]
- subscribe[2/2]
- unsubscribe[1/2]
- unsubscribe[2/2]
- sendMessage[1/2]
- sendMessage[2/2]
- getConnectionState
- setLiveStreamingListener
- startLiveStreaming[1/2]
- startLiveStreaming[2/2]
- stopLiveStreaming[1/2]
- stopLiveStreaming[2/2]
- setTranscodingLiveStreamingTracks
- removeTranscodingLiveStreamingTracks
- setRemoteTracksMixedAudioListener
- getPublishedTracks
- getRemoteUser
- getRemoteUsers
- setNetworkQualityListener
- getUserNetworkQuality
- getRemoteVideoTrackStats
- getRemoteAudioTrackStats
- getLocalVideoTrackStats
- getLocalAudioTrackStats
- setClientRole
- startMediaRelay
- updateMediaRelay
- stopMediaRelay
- enableAudioVolumeIndication
- void setAutoSubscribe(boolean autoSubscribe)
-
设置是否启用自动订阅
当开启此选项后,房间内有任意用户新发布 Track 的时候,会自动订阅此路 Track,订阅成功后,会触发 QNClientEventListener.onSubscribed 回调
Parameters-
autoSubscribe: boolean
是否自动订阅
-
- void join(String token)
-
加入房间
接口调用成功后,将会触发 QNClientEventListener.onConnectionStateChanged 回调
请确保在 QNConnectionState.DISCONNECTED 状态下调用该接口加入房间,否则接口调用无效
Parameters-
token: String
房间 Token
RoomToken 建议通过您的服务端生成,签算方式可参考 RoomToken 签发服务。
若您的服务端还没有实现相关代码,可参考管理实时音视频文档在 portal 上生成临时的 token,需要注意 UserID 不可重复。
-
- void join(String token, String userData)
-
加入房间
接口调用成功后,将会触发 QNClientEventListener.onConnectionStateChanged 回调
请确保在 QNConnectionState.DISCONNECTED 状态下调用该接口加入房间,否则接口调用无效
Parameters-
token: String
房间 Token
RoomToken 建议通过您的服务端生成,签算方式可参考 RoomToken 签发服务。
若您的服务端还没有实现相关代码,可参考管理实时音视频文档在 portal 上生成临时的 token,需要注意 UserID 不可重复。
-
userData: String
用户信息
-
- void leave()
-
离开房间
成功离开房间后,会触发 QNClientEventListener.onConnectionStateChanged 回调,回调状态为 QNConnectionState.DISCONNECTED,QNConnectionDisconnectedInfo 回调 Reason 为 LEAVE
- void publish(QNLocalTrack... tracks)
-
发布本地 Track,若想获取发布结果,可调用 publish(QNPublishResultCallback, QNLocalTrack...) 接口
Parameters-
tracks: QNLocalTrack...
要发布的本地 Track
-
- void publish(List<QNLocalTrack> trackList)
-
发布本地 Track 列表,若想获取发布结果,可调用 publish(QNPublishResultCallback, List<QNLocalTrack>) 接口
Parameters-
trackList: List<QNLocalTrack>
要发布的本地 Track 列表
-
- void publish(QNPublishResultCallback callback, QNLocalTrack... tracks)
-
发布本地 Track,并设置发布结果回调
Parameters-
callback: QNPublishResultCallback
发布结果回调接口
-
tracks: QNLocalTrack...
要发布的本地 Track
-
- publish(QNPublishResultCallback callback, List<QNLocalTrack> trackList)
-
发布本地 Track 列表,并设置发布结果回调
Parameters-
callback: QNPublishResultCallback
发布结果回调接口
-
tracks: List<QNLocalTrack>
要发布的本地 Track 列表
-
- void unpublish(QNLocalTrack... tracks)
-
取消发布本地 Track
Parameters-
tracks: QNLocalTrack...
要取消发布的本地 Track
-
- void unpublish(List<QNLocalTrack> trackList)
-
取消发布本地 Track 列表
Parameters-
trackList: List<QNLocalTrack>
要取消发布的本地 Track 列表
-
- void subscribe(QNRemoteTrack... tracks)
-
订阅远端 Track,订阅成功后,会触发 QNClientEventListener.onSubscribed 回调
Parameters-
tracks: QNRemoteTrack...
要订阅的远端 Track
-
- void subscribe(List<QNRemoteTrack> trackList)
-
订阅远端 Track 列表,订阅成功后,会触发 QNClientEventListener.onSubscribed 回调
Parameters-
trackList: List<QNRemoteTrack>
要订阅的远端 Track 列表
-
- void unsubscribe(QNRemoteTrack... tracks)
-
取消订阅远端 Track
Parameters-
tracks: QNRemoteTrack...
要取消订阅的远端 Track
-
- void unsubscribe(List<QNRemoteTrack> trackList)
-
取消订阅远端 Track 列表
Parameters-
trackList: List<QNRemoteTrack>
要取消订阅的远端 Track 列表
-
- void sendMessage(String messageId, String message)
-
发送自定义消息给所有用户,发送成功后,会触发远端用户的 QNClientEventListener.onMessageReceived 回调接口
Parameters-
messageId: String
自定义消息 ID
-
message: String
自定义消息 内容
-
- void sendMessage(List<String> users, String messageId, String message)
-
发送自定义消息到指定用户群,发送成功后,会触发远端用户的 QNClientEventListener.onMessageReceived 回调接口
Parameters-
users: List<String>
用户 ID 列表
-
messageId: String
自定义消息 ID
-
message: String
自定义消息 内容
-
- QNConnectionState getConnectionState()
-
获取当前房间连接状态
Returns QNConnectionState
- void setLiveStreamingListener(QNLiveStreamingListener listener)
-
设置 CDN 转推监听接口
Parameters-
listener: QNLiveStreamingListener
转推监听接口
-
- void startLiveStreaming(QNDirectLiveStreamingConfig config)
-
开始单路 CDN 转推
成功开启转推后,会触发 QNLiveStreamingListener.onStarted 回调,出错会触发 QNLiveStreamingListener.onError 回调
Parameters-
config: QNDirectLiveStreamingConfig
单路转推配置
-
- void startLiveStreaming(QNTranscodingLiveStreamingConfig config)
-
开始合流转码 CDN 转推
成功开启转推后,会触发 QNLiveStreamingListener.onStarted 回调,出错会触发 QNLiveStreamingListener.onError 回调
Parameters-
config: QNTranscodingLiveStreamingConfig
合流转推配置
-
- void stopLiveStreaming(QNDirectLiveStreamingConfig config)
-
停止单路 CDN 转推
成功停止转推后,会触发 QNLiveStreamingListener.onStopped 回调,出错会触发 QNLiveStreamingListener.onError 回调
Parameters-
config: QNDirectLiveStreamingConfig
单路 CDN 转推配置
-
- void stopLiveStreaming(QNTranscodingLiveStreamingConfig config)
-
停止合流转码 CDN 转推
成功停止转推后,会触发 QNLiveStreamingListener.onStopped 回调,出错会触发 QNLiveStreamingListener.onError 回调
Parameters-
config: QNTranscodingLiveStreamingConfig
合流转推配置
-
- void setTranscodingLiveStreamingTracks(String streamID, List<QNTranscodingLiveStreamingTrack> transcodingTracks)
-
新增、更新合流转推布局配置
成功更新合流布局后,会触发 QNLiveStreamingListener.onTranscodingTracksUpdated 回调,出错会触发 QNLiveStreamingListener.onError 回调
新增 Track 布局以及对已有的 Track 的合流布局进行更新均可通过该接口实现,只需修改 transcodingTracks 对应的 Track 内容即可。
Parameters-
streamID: String
合流任务 streamID
-
transcodingTracks: List<QNTranscodingLiveStreamingTrack>
待新增、更新的合流转推布局配置
-
- void removeTranscodingLiveStreamingTracks(String streamID, List<QNTranscodingLiveStreamingTrack> transcodingTracks)
-
移除合流转推布局配置
成功更新合流布局后,会触发 QNLiveStreamingListener.onTranscodingTracksUpdated 回调,出错会触发 QNLiveStreamingListener.onError 回调
Parameters-
streamID: String
合流任务 streamID
-
transcodingTracks: List<QNTranscodingLiveStreamingTrack>
待移除合流转推布局配置
-
- void setRemoteTracksMixedAudioListener(QNAudioFrameListener listener)
-
设置监听远端所有音频 Track 混合后的音频数据
Parameters-
listener: QNAudioFrameListener
音频数据监听接口
-
- QNRemoteUser getRemoteUser(String userID)
-
获取对应 ID 的远端用户
可通过获取到的 QNRemoteUser 对象进一步获取远端用户已发布的音视频 Track 列表及其订阅信息
Parameters-
userID: String
远端用户 ID
Returns QNRemoteUser -
- List<QNRemoteUser> getRemoteUsers()
-
获取房间内所有的远端用户
可通过获取到的 QNRemoteUser 对象进一步获取远端用户已发布的音视频 Track 列表及其订阅信息
Returns List<QNRemoteUser>
- void setNetworkQualityListener(QNNetworkQualityListener listener)
-
设置当前应用网络质量监听
Parameters-
listener: QNNetworkQualityListener
网络质量监听接口
-
- Map<String, QNNetworkQuality> getUserNetworkQuality()
-
获取当前订阅的远端用户网络质量
获取到的 Map 为当前订阅的远端用户 UserID 及其当前网络质量 QNNetworkQuality 的一一对应
Returns Map<String, QNNetworkQuality>
- Map<String, QNRemoteVideoTrackStats> getRemoteVideoTrackStats()
-
获取已订阅的远端视频轨道统计信息
获取到的 Map 为当前订阅的视频 TrackID 及其质量统计信息 QNRemoteVideoTrackStats 的一一对应
Returns Map<String, QNRemoteVideoTrackStats>
- Map<String, QNRemoteAudioTrackStats> getRemoteAudioTrackStats()
-
获取已订阅的远端音频轨道统计信息
获取到的 Map 为当前订阅的音频 TrackID 及其质量统计信息 QNRemoteAudioTrackStats 的一一对应
Returns Map<String, QNRemoteAudioTrackStats>
- Map<String, List<QNLocalVideoTrackStats>> getLocalVideoTrackStats()
-
获取已发布的近端视频轨道统计信息
获取到的 Map 为当前发布的视频 TrackID 及其质量统计信息 List<QNLocalVideoTrackStats> 的一一对应,其中,List<QNLocalVideoTrackStats> 对应已发布的不同 QNTrackProfile 的视频质量统计
Returns Map<String, List<QNLocalVideoTrackStats>>
- Map<String, QNLocalAudioTrackStats> getLocalAudioTrackStats()
-
获取已发布的近端音频轨道统计信息
获取到的 Map 为当前发布的音频 TrackID 及其质量统计信息 QNLocalAudioTrackStats 的一一对应
Returns Map<String, QNLocalAudioTrackStats>
- void setClientRole(QNClientRole clientRole, QNClientRoleResultCallback callback)
-
设置互动直播场景下的用户角色,可支持设置的角色为主播 QNClientRole.BROADCASTER 和观众 QNClientRole.AUDIENCE
该方法在加入频道前后均可调用
注意:该方法仅适用于直播场景 QNClientMode.LIVE
Parameters-
clientRole: QNClientRole
角色类型
-
callback: QNClientRoleResultCallback
回调接口
-
- void startMediaRelay(QNMediaRelayConfiguration configuration, QNMediaRelayResultCallback callback)
-
开启跨房媒体转发
如果已经开启,则调用失败
当所有目标房间跨房媒体转发都失败,则本次跨房媒体转发请求视为失败,使用跨房媒体转发功能需要再次调用此方法
当有任意一个目标或多个目标房间媒体转发成功,则本次跨房媒体转发请求视为成功,具体每个房间的状态参考回调结果
注意:该方法仅适用于互动直播场景中角色类型为主播的用户
Parameters-
configuration: QNMediaRelayConfiguration
跨房媒体转发配置
-
callback: QNMediaRelayResultCallback
跨房媒体转发回调接口
-
- void updateMediaRelay(QNMediaRelayConfiguration configuration, QNMediaRelayResultCallback callback)
-
更新跨房媒体转发
成功开启跨房媒体转发后,如果您希望将流转发到多个目标房间,或退出当前正在转发的房间,可以调用该方法
此方法为全量更新,正在跨房媒体转发中却未被包含在参数 configuration 中的房间,将停止媒体转发
注意:调用此方法前必须确保已经成功开启跨房媒体转发,否则将调用失败;该方法仅适用互动直播场景中角色类型为主播的用户
Parameters-
configuration: QNMediaRelayConfiguration
跨房媒体转发配置
-
callback: QNMediaRelayResultCallback
回调接口
-
- void stopMediaRelay(QNMediaRelayResultCallback callback)
-
停止跨房媒体转发
如果未开启,则调用失败
注意:此方法会停止在所有目标房间中的媒体转发;该方法仅适用互动直播场景中角色类型为主播的用户
Parameters-
callback: QNMediaRelayResultCallback
回调接口
-
- enableAudioVolumeIndication(int intervalMs)
-
开启语音音量监测
参数为指定音量提示的时间间隔,≤ 0: 禁用音量提示功能,> 0: 指定数值的音量提示间隔,单位为 ms,最小取值为 100ms。
开启音量监测后,房间内的音频音量将会通过 QNClientEventListener.onUserVolumeIndication 回调进行通知,其中,本地用户的音量信息中,userID 字段将保留为空
Parameters-
intervalMs: int
语音音量回调的间隔时间
-