human: 如何处理七牛云的实时音视频QNRTCClient

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 > Android >QNRTCClient

#  QNRTCClient

最近更新时间: 2023-10-25 14:48:26

RTC 核心类，包含加入房间，离开房间，订阅、发布 Track，获取统计信息等功能

Index

Core Methods

  * 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

Core Methods

setAutoSubscribe

  * void setAutoSubscribe(boolean autoSubscribe)
  * 设置是否启用自动订阅

当开启此选项后，房间内有任意用户新发布 Track 的时候，会自动订阅此路 Track，订阅成功后，会触发
[QNClientEventListener.onSubscribed](https://developer.qiniu.com/rtc/8684/QNRTCClient/8643)
回调

Parameters

    * autoSubscribe: boolean 

是否自动订阅

join[1/2]

  * void join(String token)
  * 加入房间

接口调用成功后，将会触发
[QNClientEventListener.onConnectionStateChanged](https://developer.qiniu.com/rtc/8684/QNRTCClient/8643)
回调

> 请确保在
> [QNConnectionState.DISCONNECTED](https://developer.qiniu.com/rtc/8684/QNRTCClient/8645)
> 状态下调用该接口加入房间，否则接口调用无效

Parameters

    * token: String 

房间 Token

[RoomToken](https://developer.qiniu.com/rtc/quick_start/9909/the-rtc-basic-
concept#room_token) 建议通过您的服务端生成，签算方式可参考 [RoomToken
签发服务](https://developer.qiniu.com/rtc/development_guidelines/8813/roomToken)。

若您的服务端还没有实现相关代码，可参考[管理实时音视频](https://developer.qiniu.com/rtc/9858/applist#4)文档在
[portal](https://portal.qiniu.com/rtn/app) 上生成临时的 token，需要注意 UserID 不可重复。

join[2/2]

  * void join(String token, String userData)
  * 加入房间

接口调用成功后，将会触发
[QNClientEventListener.onConnectionStateChanged](https://developer.qiniu.com/rtc/8684/QNRTCClient/8643)
回调

> 请确保在
> [QNConnectionState.DISCONNECTED](https://developer.qiniu.com/rtc/8684/QNRTCClient/8645)
> 状态下调用该接口加入房间，否则接口调用无效

Parameters

    * token: String 

房间 Token

[RoomToken](https://developer.qiniu.com/rtc/quick_start/9909/the-rtc-basic-
concept#room_token) 建议通过您的服务端生成，签算方式可参考 [RoomToken
签发服务](https://developer.qiniu.com/rtc/development_guidelines/8813/roomToken)。

若您的服务端还没有实现相关代码，可参考[管理实时音视频](https://developer.qiniu.com/rtc/9858/applist#4)文档在
[portal](https://portal.qiniu.com/rtn/app) 上生成临时的 token，需要注意 UserID 不可重复。

    * userData: String 

用户信息

leave

  * void leave()
  * 离开房间

成功离开房间后，会触发
[QNClientEventListener.onConnectionStateChanged](https://developer.qiniu.com/rtc/8684/QNRTCClient/8643)
回调，回调状态为 QNConnectionState.DISCONNECTED，QNConnectionDisconnectedInfo 回调 Reason
为 LEAVE

publish[1/4]

  * void publish([QNLocalTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8662/QNLocalTrack)... tracks)
  * 发布本地 Track，若想获取发布结果，可调用 [publish(QNPublishResultCallback, QNLocalTrack...)](https://developer.qiniu.com/rtc/8684/QNRTCClient/8684) 接口

Parameters

    * tracks: [QNLocalTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8662/QNLocalTrack)... 

要发布的本地 Track

publish[2/4]

  * void publish(List<[QNLocalTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8662/QNLocalTrack)> trackList)
  * 发布本地 Track 列表，若想获取发布结果，可调用 [publish(QNPublishResultCallback, List<QNLocalTrack>)](https://developer.qiniu.com/rtc/8684/QNRTCClient/undefined) 接口

Parameters

    * trackList: List<[QNLocalTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8662/QNLocalTrack)>

要发布的本地 Track 列表

publish[3/4]

  * void publish([QNPublishResultCallback](https://developer.qiniu.com/rtc/8684/QNRTCClient/8673/QNPublishResultCallback) callback, [QNLocalTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8662/QNLocalTrack)... tracks)
  * 发布本地 Track，并设置发布结果回调

Parameters

    * callback: [QNPublishResultCallback](https://developer.qiniu.com/rtc/8684/QNRTCClient/8673/QNPublishResultCallback)

发布结果回调接口

    * tracks: [QNLocalTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8662/QNLocalTrack)... 

要发布的本地 Track

publish[4/4]

  * publish([QNPublishResultCallback](https://developer.qiniu.com/rtc/8684/QNRTCClient/8673/QNPublishResultCallback) callback, List<[QNLocalTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8662/QNLocalTrack)> trackList)
  * 发布本地 Track 列表，并设置发布结果回调

Parameters

    * callback: [QNPublishResultCallback](https://developer.qiniu.com/rtc/8684/QNRTCClient/8673/QNPublishResultCallback)

发布结果回调接口

    * tracks: List<[QNLocalTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8662/QNLocalTrack)>

要发布的本地 Track 列表

unpublish[1/2]

  * void unpublish([QNLocalTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8662/QNLocalTrack)... tracks)
  * 取消发布本地 Track

Parameters

    * tracks: [QNLocalTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8662/QNLocalTrack)... 

要取消发布的本地 Track

unpublish[2/2]

  * void unpublish(List<[QNLocalTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8662/QNLocalTrack)> trackList)
  * 取消发布本地 Track 列表

Parameters

    * trackList: List<[QNLocalTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8662/QNLocalTrack)>

要取消发布的本地 Track 列表

subscribe[1/2]

  * void subscribe([QNRemoteTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8676/QNRemoteTrack)... tracks)
  * 订阅远端 Track，订阅成功后，会触发 [QNClientEventListener.onSubscribed](https://developer.qiniu.com/rtc/8684/QNRTCClient/8643) 回调

Parameters

    * tracks: [QNRemoteTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8676/QNRemoteTrack)... 

要订阅的远端 Track

subscribe[2/2]

  * void subscribe(List<[QNRemoteTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8676/QNRemoteTrack)> trackList)
  * 订阅远端 Track 列表，订阅成功后，会触发 [QNClientEventListener.onSubscribed](https://developer.qiniu.com/rtc/8684/QNRTCClient/8643) 回调

Parameters

    * trackList: List<[QNRemoteTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8676/QNRemoteTrack)>

要订阅的远端 Track 列表

unsubscribe[1/2]

  * void unsubscribe([QNRemoteTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8676/QNRemoteTrack)... tracks)
  * 取消订阅远端 Track

Parameters

    * tracks: [QNRemoteTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8676/QNRemoteTrack)... 

要取消订阅的远端 Track

unsubscribe[2/2]

  * void unsubscribe(List<[QNRemoteTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8676/QNRemoteTrack)> trackList)
  * 取消订阅远端 Track 列表

Parameters

    * trackList: List<[QNRemoteTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8676/QNRemoteTrack)>

要取消订阅的远端 Track 列表

sendMessage[1/2]

  * void sendMessage(String messageId, String message)
  * 发送自定义消息给所有用户，发送成功后，会触发远端用户的 [QNClientEventListener.onMessageReceived](https://developer.qiniu.com/rtc/8684/QNRTCClient/8643) 回调接口

Parameters

    * messageId: String 

自定义消息 ID

    * message: String 

自定义消息 内容

sendMessage[2/2]

  * void sendMessage(List<String> users, String messageId, String message)
  * 发送自定义消息到指定用户群，发送成功后，会触发远端用户的 [QNClientEventListener.onMessageReceived](https://developer.qiniu.com/rtc/8684/QNRTCClient/8643) 回调接口

Parameters

    * users: List<String>

用户 ID 列表

    * messageId: String 

自定义消息 ID

    * message: String 

自定义消息 内容

getConnectionState

  * [QNConnectionState](https://developer.qiniu.com/rtc/8684/QNRTCClient/8645/QNConnectionState) getConnectionState()
  * 获取当前房间连接状态

Returns
[QNConnectionState](https://developer.qiniu.com/rtc/8684/QNRTCClient/8645/QNConnectionState)

setLiveStreamingListener

  * void setLiveStreamingListener([QNLiveStreamingListener](https://developer.qiniu.com/rtc/8684/QNRTCClient/8658/QNLiveStreamingListener) listener)
  * 设置 CDN 转推监听接口

Parameters

    * listener: [QNLiveStreamingListener](https://developer.qiniu.com/rtc/8684/QNRTCClient/8658/QNLiveStreamingListener)

转推监听接口

startLiveStreaming[1/2]

  * void startLiveStreaming([QNDirectLiveStreamingConfig](https://developer.qiniu.com/rtc/8684/QNRTCClient/8651/QNDirectLiveStreamingConfig) config)
  * 开始单路 CDN 转推

成功开启转推后，会触发
[QNLiveStreamingListener.onStarted](https://developer.qiniu.com/rtc/8684/QNRTCClient/8658)
回调，出错会触发
[QNLiveStreamingListener.onError](https://developer.qiniu.com/rtc/8684/QNRTCClient/8658)
回调

Parameters

    * config: [QNDirectLiveStreamingConfig](https://developer.qiniu.com/rtc/8684/QNRTCClient/8651/QNDirectLiveStreamingConfig)

单路转推配置

startLiveStreaming[2/2]

  * void startLiveStreaming([QNTranscodingLiveStreamingConfig](https://developer.qiniu.com/rtc/8684/QNRTCClient/8696/QNTranscodingLiveStreamingConfig) config)
  * 开始合流转码 CDN 转推

成功开启转推后，会触发
[QNLiveStreamingListener.onStarted](https://developer.qiniu.com/rtc/8684/QNRTCClient/8658)
回调，出错会触发
[QNLiveStreamingListener.onError](https://developer.qiniu.com/rtc/8684/QNRTCClient/8658)
回调

Parameters

    * config: [QNTranscodingLiveStreamingConfig](https://developer.qiniu.com/rtc/8684/QNRTCClient/8696/QNTranscodingLiveStreamingConfig)

合流转推配置

stopLiveStreaming[1/2]

  * void stopLiveStreaming([QNDirectLiveStreamingConfig](https://developer.qiniu.com/rtc/8684/QNRTCClient/8651/QNDirectLiveStreamingConfig) config)
  * 停止单路 CDN 转推

成功停止转推后，会触发
[QNLiveStreamingListener.onStopped](https://developer.qiniu.com/rtc/8684/QNRTCClient/8658)
回调，出错会触发
[QNLiveStreamingListener.onError](https://developer.qiniu.com/rtc/8684/QNRTCClient/8658)
回调

Parameters

    * config: [QNDirectLiveStreamingConfig](https://developer.qiniu.com/rtc/8684/QNRTCClient/8651/QNDirectLiveStreamingConfig)

单路 CDN 转推配置

stopLiveStreaming[2/2]

  * void stopLiveStreaming([QNTranscodingLiveStreamingConfig](https://developer.qiniu.com/rtc/8684/QNRTCClient/8696/QNTranscodingLiveStreamingConfig) config)
  * 停止合流转码 CDN 转推

成功停止转推后，会触发
[QNLiveStreamingListener.onStopped](https://developer.qiniu.com/rtc/8684/QNRTCClient/8658)
回调，出错会触发
[QNLiveStreamingListener.onError](https://developer.qiniu.com/rtc/8684/QNRTCClient/8658)
回调

Parameters

    * config: [QNTranscodingLiveStreamingConfig](https://developer.qiniu.com/rtc/8684/QNRTCClient/8696/QNTranscodingLiveStreamingConfig)

合流转推配置

setTranscodingLiveStreamingTracks

  * void setTranscodingLiveStreamingTracks(String streamID, List<[QNTranscodingLiveStreamingTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8698/QNTranscodingLiveStreamingTrack)> transcodingTracks)
  * 新增、更新合流转推布局配置

成功更新合流布局后，会触发
[QNLiveStreamingListener.onTranscodingTracksUpdated](https://developer.qiniu.com/rtc/8684/QNRTCClient/8658)
回调，出错会触发
[QNLiveStreamingListener.onError](https://developer.qiniu.com/rtc/8684/QNRTCClient/8658)
回调

> 新增 Track 布局以及对已有的 Track 的合流布局进行更新均可通过该接口实现，只需修改 transcodingTracks 对应的 Track
> 内容即可。

Parameters

    * streamID: String 

合流任务 streamID

    * transcodingTracks: List<[QNTranscodingLiveStreamingTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8698/QNTranscodingLiveStreamingTrack)>

待新增、更新的合流转推布局配置

removeTranscodingLiveStreamingTracks

  * void removeTranscodingLiveStreamingTracks(String streamID, List<[QNTranscodingLiveStreamingTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8698/QNTranscodingLiveStreamingTrack)> transcodingTracks)
  * 移除合流转推布局配置

成功更新合流布局后，会触发
[QNLiveStreamingListener.onTranscodingTracksUpdated](https://developer.qiniu.com/rtc/8684/QNRTCClient/8658)
回调，出错会触发
[QNLiveStreamingListener.onError](https://developer.qiniu.com/rtc/8684/QNRTCClient/8658)
回调

Parameters

    * streamID: String 

合流任务 streamID

    * transcodingTracks: List<[QNTranscodingLiveStreamingTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8698/QNTranscodingLiveStreamingTrack)>

待移除合流转推布局配置

setRemoteTracksMixedAudioListener

  * void setRemoteTracksMixedAudioListener([QNAudioFrameListener](https://developer.qiniu.com/rtc/8684/QNRTCClient/8630/QNAudioFrameListener) listener)
  * 设置监听远端所有音频 Track 混合后的音频数据

Parameters

    * listener: [QNAudioFrameListener](https://developer.qiniu.com/rtc/8684/QNRTCClient/8630/QNAudioFrameListener)

音频数据监听接口

getPublishedTracks

  * List<[QNTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8693/QNTrack)> getPublishedTracks()
  * 获取所有已经发布的本地 Track

Returns
List<[QNTrack](https://developer.qiniu.com/rtc/8684/QNRTCClient/8693/QNTrack)>

getRemoteUser

  * [QNRemoteUser](https://developer.qiniu.com/rtc/8684/QNRTCClient/8677/QNRemoteUser) getRemoteUser(String userID)
  * 获取对应 ID 的远端用户

可通过获取到的
[QNRemoteUser](https://developer.qiniu.com/rtc/8684/QNRTCClient/8677/QNRemoteUser)
对象进一步获取远端用户已发布的音视频 Track 列表及其订阅信息

Parameters

    * userID: String 

远端用户 ID

Returns
[QNRemoteUser](https://developer.qiniu.com/rtc/8684/QNRTCClient/8677/QNRemoteUser)

getRemoteUsers

  * List<[QNRemoteUser](https://developer.qiniu.com/rtc/8684/QNRTCClient/8677/QNRemoteUser)> getRemoteUsers()
  * 获取房间内所有的远端用户

可通过获取到的
[QNRemoteUser](https://developer.qiniu.com/rtc/8684/QNRTCClient/8677/QNRemoteUser)
对象进一步获取远端用户已发布的音视频 Track 列表及其订阅信息

Returns
List<[QNRemoteUser](https://developer.qiniu.com/rtc/8684/QNRTCClient/8677/QNRemoteUser)>

setNetworkQualityListener

  * void setNetworkQualityListener([QNNetworkQualityListener](https://developer.qiniu.com/rtc/8684/QNRTCClient/8671/QNNetworkQualityListener) listener)
  * 设置当前应用网络质量监听

Parameters

    * listener: QNNetworkQualityListener 

网络质量监听接口

getUserNetworkQuality

  * Map<String, [QNNetworkQuality](https://developer.qiniu.com/rtc/8684/QNRTCClient/8670/QNNetworkQuality)> getUserNetworkQuality()
  * 获取当前订阅的远端用户网络质量

> 获取到的 Map 为当前订阅的远端用户 UserID 及其当前网络质量
> [QNNetworkQuality](https://developer.qiniu.com/rtc/8684/QNRTCClient/8670/QNNetworkQuality)
> 的一一对应

Returns Map<String,
[QNNetworkQuality](https://developer.qiniu.com/rtc/8684/QNRTCClient/8670/QNNetworkQuality)>

getRemoteVideoTrackStats

  * Map<String, [QNRemoteVideoTrackStats](https://developer.qiniu.com/rtc/8684/QNRTCClient/8681/QNRemoteVideoTrackStats)> getRemoteVideoTrackStats()
  * 获取已订阅的远端视频轨道统计信息

> 获取到的 Map 为当前订阅的视频 TrackID 及其质量统计信息
> [QNRemoteVideoTrackStats](https://developer.qiniu.com/rtc/8684/QNRTCClient/8681/QNRemoteVideoTrackStats)
> 的一一对应

Returns Map<String,
[QNRemoteVideoTrackStats](https://developer.qiniu.com/rtc/8684/QNRTCClient/8681/QNRemoteVideoTrackStats)>

getRemoteAudioTrackStats

  * Map<String, [QNRemoteAudioTrackStats](https://developer.qiniu.com/rtc/8684/QNRTCClient/8675/QNRemoteAudioTrackStats)> getRemoteAudioTrackStats()
  * 获取已订阅的远端音频轨道统计信息

> 获取到的 Map 为当前订阅的音频 TrackID 及其质量统计信息
> [QNRemoteAudioTrackStats](https://developer.qiniu.com/rtc/8684/QNRTCClient/8675/QNRemoteAudioTrackStats)
> 的一一对应

Returns Map<String,
[QNRemoteAudioTrackStats](https://developer.qiniu.com/rtc/8684/QNRTCClient/8675/QNRemoteAudioTrackStats)>

getLocalVideoTrackStats

  * Map<String, List<[QNLocalVideoTrackStats](https://developer.qiniu.com/rtc/8684/QNRTCClient/8664/QNLocalVideoTrackStats)>> getLocalVideoTrackStats()
  * 获取已发布的近端视频轨道统计信息

> 获取到的 Map 为当前发布的视频 TrackID 及其质量统计信息
> List<[QNLocalVideoTrackStats](https://developer.qiniu.com/rtc/8684/QNRTCClient/8664/QNLocalVideoTrackStats)>
> 的一一对应，其中，List<[QNLocalVideoTrackStats](https://developer.qiniu.com/rtc/8684/QNRTCClient/8664/QNLocalVideoTrackStats)>
> 对应已发布的不同
> [QNTrackProfile](https://developer.qiniu.com/rtc/api/10056/QNTrackProfile)
> 的视频质量统计

Returns Map<String,
List<[QNLocalVideoTrackStats](https://developer.qiniu.com/rtc/8684/QNRTCClient/8664/QNLocalVideoTrackStats)>>

getLocalAudioTrackStats

  * Map<String, [QNLocalAudioTrackStats](https://developer.qiniu.com/rtc/8684/QNRTCClient/8661/QNLocalAudioTrackStats)> getLocalAudioTrackStats()
  * 获取已发布的近端音频轨道统计信息

> 获取到的 Map 为当前发布的音频 TrackID 及其质量统计信息
> [QNLocalAudioTrackStats](https://developer.qiniu.com/rtc/8684/QNRTCClient/8661/QNLocalAudioTrackStats)
> 的一一对应

Returns Map<String,
[QNLocalAudioTrackStats](https://developer.qiniu.com/rtc/8684/QNRTCClient/8661/QNLocalAudioTrackStats)>

setClientRole

  * void setClientRole([QNClientRole](https://developer.qiniu.com/rtc/8684/QNRTCClient/10163/QNClientRole) clientRole, [QNClientRoleResultCallback](https://developer.qiniu.com/rtc/8684/QNRTCClient/10164/QNClientRoleResultCallback) callback)
  * 设置互动直播场景下的用户角色，可支持设置的角色为主播 [QNClientRole.BROADCASTER](https://developer.qiniu.com/rtc/8684/QNRTCClient/10163) 和观众 [QNClientRole.AUDIENCE](https://developer.qiniu.com/rtc/8684/QNRTCClient/10163)

该方法在加入频道前后均可调用

> 注意：该方法仅适用于直播场景
> [QNClientMode.LIVE](https://developer.qiniu.com/rtc/8684/QNRTCClient/10162)

Parameters

    * clientRole: [QNClientRole](https://developer.qiniu.com/rtc/8684/QNRTCClient/10163/QNClientRole)

角色类型

    * callback: [QNClientRoleResultCallback](https://developer.qiniu.com/rtc/8684/QNRTCClient/10164/QNClientRoleResultCallback)

回调接口

startMediaRelay

  * void startMediaRelay([QNMediaRelayConfiguration](https://developer.qiniu.com/rtc/8684/QNRTCClient/10165/QNMediaRelayConfiguration) configuration, [QNMediaRelayResultCallback](https://developer.qiniu.com/rtc/8684/QNRTCClient/10167/QNMediaRelayResultCallback) callback)
  * 开启跨房媒体转发

如果已经开启，则调用失败

当所有目标房间跨房媒体转发都失败，则本次跨房媒体转发请求视为失败，使用跨房媒体转发功能需要再次调用此方法

当有任意一个目标或多个目标房间媒体转发成功，则本次跨房媒体转发请求视为成功，具体每个房间的状态参考回调结果

> 注意：该方法仅适用于互动直播场景中角色类型为主播的用户

Parameters

    * configuration: [QNMediaRelayConfiguration](https://developer.qiniu.com/rtc/8684/QNRTCClient/10165/QNMediaRelayConfiguration)

跨房媒体转发配置

    * callback: [QNMediaRelayResultCallback](https://developer.qiniu.com/rtc/8684/QNRTCClient/10167/QNMediaRelayResultCallback)

跨房媒体转发回调接口

updateMediaRelay

  * void updateMediaRelay([QNMediaRelayConfiguration](https://developer.qiniu.com/rtc/8684/QNRTCClient/10165/QNMediaRelayConfiguration) configuration, [QNMediaRelayResultCallback](https://developer.qiniu.com/rtc/8684/QNRTCClient/10167/QNMediaRelayResultCallback) callback)
  * 更新跨房媒体转发

成功开启跨房媒体转发后，如果您希望将流转发到多个目标房间，或退出当前正在转发的房间，可以调用该方法

此方法为全量更新，正在跨房媒体转发中却未被包含在参数 configuration 中的房间，将停止媒体转发

> 注意：调用此方法前必须确保已经成功开启跨房媒体转发，否则将调用失败；该方法仅适用互动直播场景中角色类型为主播的用户

Parameters

    * configuration: [QNMediaRelayConfiguration](https://developer.qiniu.com/rtc/8684/QNRTCClient/10165/QNMediaRelayConfiguration)

跨房媒体转发配置

    * callback: [QNMediaRelayResultCallback](https://developer.qiniu.com/rtc/8684/QNRTCClient/10167/QNMediaRelayResultCallback)

回调接口

stopMediaRelay

  * void stopMediaRelay([QNMediaRelayResultCallback](https://developer.qiniu.com/rtc/8684/QNRTCClient/10167/QNMediaRelayResultCallback) callback)
  * 停止跨房媒体转发

如果未开启，则调用失败

> 注意：此方法会停止在所有目标房间中的媒体转发；该方法仅适用互动直播场景中角色类型为主播的用户

Parameters

    * callback: [QNMediaRelayResultCallback](https://developer.qiniu.com/rtc/8684/QNRTCClient/10167/QNMediaRelayResultCallback)

回调接口

enableAudioVolumeIndication

  * enableAudioVolumeIndication(int intervalMs)
  * 开启语音音量监测

参数为指定音量提示的时间间隔，≤ 0: 禁用音量提示功能，> 0: 指定数值的音量提示间隔，单位为 ms，最小取值为 100ms。

> 开启音量监测后，房间内的音频音量将会通过
> [QNClientEventListener.onUserVolumeIndication](https://developer.qiniu.com/rtc/8684/QNRTCClient/8643)
> 回调进行通知，其中，本地用户的音量信息中，userID 字段将保留为空

Parameters

    * intervalMs: int 

语音音量回调的间隔时间

以上内容是否对您有帮助？