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
语音音量回调的间隔时间
 
 -