class bytertc::IRTCRoomEventHandler
cpp音视频房间事件回调接口
virtual void bytertc::IRTCRoomEventHandler::onRoomStateChanged(
const char* room_id,
const char* uid,
int state,
const char* extra_info)
cpp房间状态改变回调,加入房间、异常退出房间、发生房间相关的警告或错误时会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 房间 ID。 |
| uid | const char* | 用户 ID。 |
| state | int | 房间状态码。 • 0: 加入房间成功。 • !0: 加入房间失败、异常退房、发生房间相关的警告或错误。具体原因参看 ErrorCode 及 WarningCode。 |
| extra_info | const char* | 额外信息,如 {"elapsed":1187,"join_type":0}。join_type表示加入房间的类型,0为首次进房,1为重连进房。elapsed表示加入房间耗时,即本地用户从调用 joinRoom 到加入房间成功所经历的时间间隔,单位为 ms。 |
virtual void bytertc::IRTCRoomEventHandler::onStreamStateChanged(
const char* room_id,
const char* uid,
int state,
const char* extra_info)
cpp流状态改变回调,发生流相关的警告或错误时会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 房间 ID。 |
| uid | const char* | 用户 ID。 |
| state | int | 流状态码,参看 ErrorCode 及 WarningCode。 |
| extra_info | const char* | 附加信息,目前为空。 |
virtual void bytertc::IRTCRoomEventHandler::onLeaveRoom(
const RtcRoomStats& stats)
cpp离开房间成功回调。
用户调用 leaveRoom 方法后,SDK 会停止所有的发布订阅流,并在释放所有与通话相关的音视频资源后,通过此回调通知用户离开房间成功。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const RtcRoomStats& | 保留参数,目前为空。 |
注意
virtual void bytertc::IRTCRoomEventHandler::onRoomWarning(
int warn)
cppDeprecated since 3.41 and will be deleted in 3.51, use onRoomStateChanged and onStreamStateChanged instead.
SDK 发生警告回调。
SDK 内部遇到可恢复错误时,在尝试自动恢复的同时,会通过此回调通知用户。此回调事件仅用作通知。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| warn | int | 警告码,参看 WarningCode。 |
virtual void bytertc::IRTCRoomEventHandler::onRoomError(
int err)
cppDeprecated since 3.41 and will be deleted in 3.51, use onRoomStateChanged and onStreamStateChanged instead.
SDK 发生错误回调。
SDK 内部遇到不可恢复错误时,会通过此回调通知 App,需要 App 根据错误码进行操作或提示用户。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| err | int | 错误码,参看 ErrorCode。 |
virtual void bytertc::IRTCRoomEventHandler::onTokenWillExpire()
cppToken 进房权限过期前 30 秒将触发该回调。
收到该回调后,你需调用 updateToken 更新 Token 进房权限。
注意
若未能及时更新 Token 进房权限导致其过期实效: + 用户此时尝试进房会收到 onRoomStateChanged 回调,提示错误码为 -1000 Token 过期;
-1009 Token 过期,同时远端用户会收到 onUserLeave 回调,提示原因为 2 Token 进房权限过期。virtual void bytertc::IRTCRoomEventHandler::onPublishPrivilegeTokenWillExpire()
cppToken 发布权限过期前 30 秒将触发该回调。
收到该回调后,你需调用 updateToken 更新 Token 发布权限。
注意
若收到该回调后未及时更新 Token,Token 发布权限过期后: + 此时尝试发布流会收到 onStreamStateChanged 回调,提示错误码为 -1002 没有发布权限;
-1002 没有发布权限,同时远端用户会收到 onUserUnpublishStream/onUserUnpublishScreen 回调,提示原因为 6 发流端发布权限过期。virtual void bytertc::IRTCRoomEventHandler::onSubscribePrivilegeTokenWillExpire()
cppToken 订阅权限过期前 30 秒将触发该回调。
收到该回调后,你需调用 updateToken 更新 Token 订阅权限有效期。
注意
若收到该回调后未及时更新 Token,Token 订阅权限过期后,尝试新订阅流会失败,已订阅的流会取消订阅,并且会收到 onStreamStateChanged 回调,提示错误码为 -1003 没有订阅权限。
virtual void bytertc::IRTCRoomEventHandler::onRoomStats(
const RtcRoomStats& stats)
cpp房间内通话统计信息回调。
用户进房开始通话后,每 2s 收到一次本回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const RtcRoomStats& | 当前 RtcEngine 统计数据,详见 RtcRoomStats |
virtual void bytertc::IRTCRoomEventHandler::onRemoteStreamStats(
const RemoteStreamStats& stats)
cpp本地订阅的远端音/视频流数据统计以及网络质量回调。
本地用户订阅流成功后,SDK 会周期性(2s)的通过此回调事件通知用户订阅的流在此次统计周期内的质量统计信息,包括:发送音视频比特率、发送帧率、编码帧率,网络质量等。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const RemoteStreamStats& | 当前 RtcEngine 统计数据,详见 RemoteStreamStats |
virtual void bytertc::IRTCRoomEventHandler::onUserJoined(
const UserInfo& user_info,
int elapsed)
cpp远端可见用户加入房间,或房内隐身用户切换为可见的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_info | const UserInfo& | 用户信息,详见 UserInfo |
| elapsed | int | 保留字段,无意义。 |
virtual void bytertc::IRTCRoomEventHandler::onUserLeave(
const char* uid,
UserOfflineReason reason)
cpp远端用户离开房间,或切至不可见时,本地用户会收到此事件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 离开房间,或切至不可见的的远端用户 ID。 |
| reason | UserOfflineReason | 用户离开房间的原因,详见 UserOfflineReason。 • 0: 远端用户调用 leaveRoom 主动退出房间。 • 1: 远端用户因 Token 过期或网络原因等掉线。 详细信息请参看连接状态提示 • 2: 远端用户调用 setUserVisibility 切换至不可见状态。 • 3: 服务端调用 OpenAPI 将远端用户踢出房间。 |
virtual void bytertc::IRTCRoomEventHandler::onStreamRemove(
const MediaStreamInfo& stream,
StreamRemoveReason reason)
cppDeprecated since 3.36 and will be deleted in 3.51, use onUserUnpublishStream and onUserUnpublishScreen instead.
房间内的远端用户停止发布音视频流时,本地用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream | const MediaStreamInfo& | 流的属性。参看 MediaStreamInfo 。 |
| reason | StreamRemoveReason | 远端流移除的原因。参看 StreamRemoveReason 。 |
virtual void bytertc::IRTCRoomEventHandler::onStreamAdd(
const MediaStreamInfo& stream)
cppDeprecated since 3.36 and will be deleted in 3.51, use onUserPublishStream and onUserPublishScreen instead.
房间内的用户发布新的音视频流时,房间内的其他用户会收到此回调。包括移除后又重新发布的流。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream | const MediaStreamInfo& | 流属性,参看 MediaStreamInfo 。 |
virtual void bytertc::IRTCRoomEventHandler::onUserPublishStream(
const char* uid,
MediaStreamType type)
cpp房间内新增远端摄像头/麦克风采集的媒体流的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 远端流发布用户的用户 ID。 |
| type | MediaStreamType | 远端媒体流的类型,参看 MediaStreamType。 |
注意
当房间内的远端用户调用 publishStream 成功发布由摄像头/麦克风采集的媒体流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 subscribeStream 订阅此流。
virtual void bytertc::IRTCRoomEventHandler::onUserUnpublishStream(
const char* uid,
MediaStreamType type,
StreamRemoveReason reason)
cpp房间内远端摄像头/麦克风采集的媒体流移除的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 移除的远端流发布用户的用户 ID。 |
| type | MediaStreamType | 移除的远端流类型,参看 MediaStreamType。 |
| reason | StreamRemoveReason | 远端流移除的原因,参看 StreamRemoveReason。 |
注意
收到该回调通知后,你可以自行选择是否调用 unsubscribeStream 取消订阅此流。
virtual void bytertc::IRTCRoomEventHandler::onUserPublishScreen(
const char* uid,
MediaStreamType type)
cpp房间内新增远端屏幕共享音视频流的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 远端流发布用户的用户 ID。 |
| type | MediaStreamType | 远端媒体流的类型,参看 MediaStreamType。 |
注意
当房间内的远端用户调用 publishScreen 成功发布来自屏幕共享的音视频流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 subscribeScreen 订阅此流。(Linux 不支持)
virtual void bytertc::IRTCRoomEventHandler::onUserUnpublishScreen(
const char* uid,
MediaStreamType type,
StreamRemoveReason reason)
cpp房间内远端屏幕共享音视频流移除的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 移除的远端流发布用户的用户 ID。 |
| type | MediaStreamType | 移除的远端流类型,参看 MediaStreamType。 |
| reason | StreamRemoveReason | 远端流移除的原因,参看 StreamRemoveReason。 |
注意
收到该回调通知后,你可以自行选择是否调用 unsubscribeScreen 取消订阅此流。
virtual void bytertc::IRTCRoomEventHandler::onStreamSubscribed(
SubscribeState state_code,
const char* user_id,
const SubscribeConfig& info)
cpp关于订阅媒体流状态改变的回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state_code | SubscribeState | 订阅媒体流状态,参看 SubscribeState |
| user_id | const char* | 流发布用户的用户 ID |
| info | const SubscribeConfig& | 流的属性,参看 SubscribeConfig |
注意
本地用户收到该回调的时机包括:
virtual void bytertc::IRTCRoomEventHandler::onRoomMessageReceived(
const char* uid,
const char* message)
cpp接收到房间内广播消息的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 消息发送者 ID |
| message | const char* | 收到的消息内容 |
注意
同一房间内其他用户调用 sendRoomMessage 发送广播消息时会收到该回调。
virtual void bytertc::IRTCRoomEventHandler::onRoomBinaryMessageReceived(
const char* uid,
int size,
const uint8_t* message)
cpp收到房间内广播二进制消息的回调。
房间内其他用户调用 sendRoomBinaryMessage 发送广播二进制消息时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 消息发送者 ID |
| size | int | 收到的二进制消息长度 |
| message | const uint8_t* | 收到的二进制消息内容 |
注意
同一房间内其他用户调用 sendRoomBinaryMessage 发送二进制广播消息时会收到该回调。
virtual void bytertc::IRTCRoomEventHandler::onUserMessageReceived(
const char* uid,
const char* message)
cpp收到来自房间中其他用户通过 sendUserMessage 发来的点对点文本消息时,会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 消息发送者 ID 。 |
| message | const char* | 收到的文本消息内容。 |
注意
virtual void bytertc::IRTCRoomEventHandler::onUserBinaryMessageReceived(
const char* uid,
int size,
const uint8_t* message)
cpp收到来自房间中其他用户通过 sendUserBinaryMessage 发来的点对点二进制消息时,会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 消息发送者 ID 。 |
| size | int | 消息长度 |
| message | const uint8_t* | 收到的二进制消息内容。 |
virtual void bytertc::IRTCRoomEventHandler::onUserMessageSendResult(
int64_t msgid,
int error)
cpp向房间内单个用户发送文本或二进制消息后(P2P),消息发送方会收到该消息发送结果回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| msgid | int64_t | 本条消息的 ID。 |
| error | int | 文本或二进制消息发送结果,详见 UserMessageSendResult |
注意
virtual void bytertc::IRTCRoomEventHandler::onRoomMessageSendResult(
int64_t msgid,
int error)
cpp调用 sendRoomMessage 或 sendRoomBinaryMessage 向房间内群发文本或二进制消息后,消息发送方会收到该消息发送结果回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| msgid | int64_t | 本条消息的 ID |
| error | int | 消息发送结果 详见 RoomMessageSendResult |
virtual void bytertc::IRTCRoomEventHandler::onVideoStreamBanned(
const char* uid,
bool banned)
cpp通过调用服务端 BanUserStream/UnbanUserStream 方法禁用/解禁指定房间内指定用户视频流的发送时,触发此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 被禁用/解禁的视频流用户 ID |
| banned | bool | 视频流发送状态 • true: 视频流发送被禁用 • false: 视频流发送被解禁 |
注意
virtual void bytertc::IRTCRoomEventHandler::onAVSyncStateChange(
AVSyncState state)
cpp发布端调用 setMultiDeviceAVSync 后音视频同步状态发生改变时,会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | AVSyncState | 音视频同步状态,参看 AVSyncState。 |
virtual void bytertc::IRTCRoomEventHandler::onAudioStreamBanned(
const char* uid,
bool banned)
cpp通过调用服务端 BanUserStream/UnbanUserStream 方法禁用/解禁指定房间内指定用户音频流的发送时,触发此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 被禁用/解禁的音频流用户 ID |
| banned | bool | 音频流发送状态 • true: 音频流发送被禁用 • false: 音频流发送被解禁 |
注意
virtual void bytertc::IRTCRoomEventHandler::onForwardStreamStateChanged(
ForwardStreamStateInfo* infos,
int info_count)
cpp跨房间媒体流转发状态和错误回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| infos | ForwardStreamStateInfo* | 跨房间媒体流转发目标房间信息数组,详见 ForwardStreamStateInfo |
| info_count | int | 数组长度,代表目标房间数 |
virtual void bytertc::IRTCRoomEventHandler::onForwardStreamEvent(
ForwardStreamEventInfo* infos,
int info_count)
cpp跨房间媒体流转发事件回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| infos | ForwardStreamEventInfo* | 跨房间媒体流转发目标房间事件数组,详见 ForwardStreamEventInfo |
| info_count | int | 数组长度,代表目标房间数 |
virtual void bytertc::IRTCRoomEventHandler::onNetworkQuality(
const NetworkQualityStats& localQuality,
const NetworkQualityStats* remoteQualities,
int remoteQualityNum)
cpp加入房间并发布或订阅流后, 以每 2 秒一次的频率,报告本地用户和已订阅的远端用户的上下行网络质量信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| localQuality | const NetworkQualityStats& | 本端网络质量,详见 NetworkQualityStats。 |
| remoteQualities | const NetworkQualityStats* | 已订阅用户的网络质量,详见 NetworkQualityStats。 |
| remoteQualityNum | int | remoteQualities 数组长度 |
注意
更多通话中的监测接口,详见通话中质量监测。
class bytertc::IRTCVideoEventHandler
cpp音视频引擎事件回调接口
virtual void bytertc::IRTCVideoEventHandler::onWarning(
int warn)
cpp发生警告回调。
SDK 运行时出现了警告。SDK 通常会自动恢复,警告信息可以忽略。
你可能需要干预.
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| warn | int | 警告标识码,详见:WarningCode |
virtual void bytertc::IRTCVideoEventHandler::onError(
int err)
cpp发生错误回调。
SDK 运行时出现了网络或媒体相关的错误,且无法自动恢复时触发此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| err | int | 错误标识码,参看 ErrorCode |
virtual void bytertc::IRTCVideoEventHandler::onAudioMixingStateChanged(
int mix_id,
bytertc::AudioMixingState state,
bytertc::AudioMixingError error)
cpp音频混音文件播放状态改变时回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mix_id | int | 混音 ID 使用 IAudioMixingManager 相关接口时传入的唯一 ID。 |
| state | bytertc::AudioMixingState | 混音状态 其混音状态可参考: AudioMixingState。 |
| error | bytertc::AudioMixingError | 错误码 详见 AudioMixingError |
注意
此回调会被触发的时机汇总如下:
virtual void bytertc::IRTCVideoEventHandler::onAudioMixingPlayingProgress(
int mix_id,
int64_t progress)
cpp混音音频文件播放进度回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mix_id | int | 混音 ID |
| progress | int64_t | 当前混音音频文件播放进度,单位毫秒 |
注意
调用 setAudioMixingProgressInterval 将时间间隔设为大于 0 的值后,或调用 startAudioMixing 将 AudioMixingConfig 中的时间间隔设为大于 0 的值后,SDK 会按照设置的时间间隔回调该事件。
virtual void bytertc::IRTCVideoEventHandler::onLogReport(
const char* log_type,
const char* log_content)
cpp上报日志时回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| log_type | const char* | 事件类型。目前类型固定为 "live_webrtc_monitor_log"。 |
| log_content | const char* | 端监控日志内容。 |
virtual void bytertc::IRTCVideoEventHandler::onConnectionStateChanged(
bytertc::ConnectionState state)
cppSDK 与信令服务器连接状态改变回调。连接状态改变时触发。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | bytertc::ConnectionState | 当前 SDK 与信令服务器的连接状态,详见 ConnectionState。 |
注意
更多信息参见 连接状态提示。
virtual void bytertc::IRTCVideoEventHandler::onNetworkTypeChanged(
bytertc::NetworkType type)
cppSDK 当前网络连接类型改变回调。当 SDK 的当前网络连接类型发生改变时回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | bytertc::NetworkType | SDK 当前的网络连接类型,详见:NetworkType 。 |
virtual void bytertc::IRTCVideoEventHandler::onSimulcastSubscribeFallback(
const RemoteStreamSwitch& event)
cpp音视频流因网络环境变化等原因发生回退,或从回退中恢复时,触发该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| event | const RemoteStreamSwitch& | 音视频流发生变化的信息。参看 RemoteStreamSwitch。 |
virtual void bytertc::IRTCVideoEventHandler::onPerformanceAlarms(
bytertc::PerformanceAlarmMode mode,
const char* room_id,
bytertc::PerformanceAlarmReason reason,
const bytertc::SourceWantedData& data)
cpp本地未开启发布性能回退,检测到设备性能不足时,收到此回调。
本地开启发布性能回退,因设备性能/网络原因,造成发布性能回退/恢复时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mode | bytertc::PerformanceAlarmMode | 指示本地是否开启发布回退功能。参看 PerformanceAlarmMode • 当发布端未开启发布性能回退时,mode 值为 kPerformanceAlarmModeNormal。 • 当发布端开启发布性能回退时,mode 值为 kPerformanceAlarmModeSimulcast。 |
| room_id | const char* | • 未开启发布性能回退时,room_id 为空 • 开启发布性能回退时,room_id 是告警影响的房间 ID。 |
| reason | bytertc::PerformanceAlarmReason | 告警原因,参看 PerformanceAlarmReason |
| data | const bytertc::SourceWantedData& | 性能回退相关数据,详见 SourceWantedData。 |
virtual void bytertc::IRTCVideoEventHandler::onMediaDeviceStateChanged(
const char* device_id,
bytertc::MediaDeviceType device_type,
bytertc::MediaDeviceState device_state,
bytertc::MediaDeviceError device_error)
cppDeprecated since 3.37 and will be deleted in 3.51, use onAudioDeviceStateChanged and onVideoDeviceStateChanged instead.
媒体设备状态回调。提示音频采集、音频播放、摄像头视频采集、屏幕视频采集四种媒体设备的状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | const char* | 设备 ID 采集屏幕视频流时,设备 ID 为固定字符串 screen_capture_video |
| device_type | bytertc::MediaDeviceType | 设备类型,详见 MediaDeviceType |
| device_state | bytertc::MediaDeviceState | 设备状态,详见 MediaDeviceState |
| device_error | bytertc::MediaDeviceError | 设备错误类型,详见 MediaDeviceError |
virtual void bytertc::IRTCVideoEventHandler::onAudioDeviceStateChanged(
const char* device_id,
bytertc::RTCAudioDeviceType device_type,
bytertc::MediaDeviceState device_state,
bytertc::MediaDeviceError device_error)
cpp音频设备状态回调。提示音频采集、音频播放等设备设备的状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | const char* | 设备 ID。 |
| device_type | bytertc::RTCAudioDeviceType | 设备类型,详见 RTCAudioDeviceType |
| device_state | bytertc::MediaDeviceState | 设备状态,详见 MediaDeviceState |
| device_error | bytertc::MediaDeviceError | 设备错误类型,详见 MediaDeviceError |
virtual void bytertc::IRTCVideoEventHandler::onVideoDeviceStateChanged(
const char* device_id,
bytertc::RTCVideoDeviceType device_type,
bytertc::MediaDeviceState device_state,
bytertc::MediaDeviceError device_error)
cpp视频频设备状态回调。提示摄像头视频采集、屏幕视频采集等设备的状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | const char* | 设备 ID。采集屏幕共享流时,设备 ID 为固定字符串 screen_capture_video |
| device_type | bytertc::RTCVideoDeviceType | 设备类型,详见 RTCVideoDeviceType |
| device_state | bytertc::MediaDeviceState | 设备状态,详见 MediaDeviceState |
| device_error | bytertc::MediaDeviceError | 设备错误类型,详见 MediaDeviceError |
virtual void bytertc::IRTCVideoEventHandler::onMediaDeviceWarning(
const char* device_id,
bytertc::MediaDeviceType device_type,
bytertc::MediaDeviceWarning device_warning)
cppDeprecated since 3.37 and will be deleted in 3.51, use onAudioDeviceWarning and onVideoDeviceWarning instead.
媒体设备警告回调。媒体设备包括:音频采集设备、音频渲染设备、和视频采集设备。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | const char* | 设备 ID |
| device_type | bytertc::MediaDeviceType | 详见 MediaDeviceType |
| device_warning | bytertc::MediaDeviceWarning | 详见 MediaDeviceWarning |
virtual void bytertc::IRTCVideoEventHandler::onAudioDeviceWarning(
const char* device_id,
bytertc::RTCAudioDeviceType device_type,
bytertc::MediaDeviceWarning device_warning)
cpp音频设备警告回调。音频设备包括音频采集设备和音频渲染设备。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | const char* | 设备 ID |
| device_type | bytertc::RTCAudioDeviceType | 详见 RTCAudioDeviceType |
| device_warning | bytertc::MediaDeviceWarning | 详见 MediaDeviceWarning |
virtual void bytertc::IRTCVideoEventHandler::onVideoDeviceWarning(
const char* device_id,
bytertc::RTCVideoDeviceType device_type,
bytertc::MediaDeviceWarning device_warning)
cpp视频设备警告回调,包括视频采集设备等。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | const char* | 设备 ID |
| device_type | bytertc::RTCVideoDeviceType | 详见 RTCVideoDeviceType |
| device_warning | bytertc::MediaDeviceWarning | 详见 MediaDeviceWarning |
virtual void bytertc::IRTCVideoEventHandler::onSysStats(
const bytertc::SysStats& stats)
cpp周期性(2s)发出回调,报告当前 CPU 与内存的相关信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const bytertc::SysStats& | 包含当前 CPU 与内存相关信息的结构体。详见 SysStats。 |
virtual void bytertc::IRTCVideoEventHandler::onCreateRoomStateChanged(
const char* room_id,
int error_code)
cpp创建房间失败回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 房间 ID。 |
| error_code | int | 创建房间错误码,具体原因参看 ErrorCode。 |
virtual void bytertc::IRTCVideoEventHandler::onHttpProxyState(
int state)
cppHTTP 代理连接状态改变时,收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | int | 当前 HTTP 代理连接状态,详见 HttpProxyState |
virtual void bytertc::IRTCVideoEventHandler::onHttpsProxyState(
int state)
cppHTTPS 代理连接状态改变时,收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | int | 当前 HTTPS 代理连接状态,详见 HttpProxyState |
virtual void bytertc::IRTCVideoEventHandler::onSocks5ProxyState(
int state,
const char* cmd,
const char* proxy_address,
const char* local_address,
const char* remote_address)
cppSOCKS5 代理状态改变时,收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | int | SOCKS5 代理连接状态 |
| cmd | const char* | 代理连接的每一步操作命令 |
| proxy_address | const char* | 代理地址信息 |
| local_address | const char* | 当前连接使用的本地地址 |
| remote_address | const char* | 远端的连接地址 |
virtual void bytertc::IRTCVideoEventHandler::onRecordingStateUpdate(
StreamIndex type,
RecordingState state,
RecordingErrorCode error_code,
RecordingInfo info)
cpp获取本地录制状态回调。
该回调由 startFileRecording 或 stopFileRecording 触发。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | StreamIndex | 录制流的流属性,参看 StreamIndex |
| state | RecordingState | 录制状态,参看 RecordingState |
| error_code | RecordingErrorCode | 录制错误码,参看 RecordingErrorCode |
| info | RecordingInfo | 录制文件的详细信息,参看 RecordingInfo |
virtual void bytertc::IRTCVideoEventHandler::onRecordingProgressUpdate(
StreamIndex type,
RecordingProgress process,
RecordingInfo info)
cpp本地录制进度回调。
该回调由 startFileRecording 触发,录制状态正常时,系统每秒钟都会通过该回调提示录制进度。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | StreamIndex | 录制流的流属性,参看 StreamIndex |
| process | RecordingProgress | 录制进度,参看 RecordingProgress |
| info | RecordingInfo | 录制文件的详细信息,参看 RecordingInfo |
virtual void bytertc::IRTCVideoEventHandler::onAudioRecordingStateUpdate(
AudioRecordingState state,
AudioRecordingErrorCode error_code)
cpp调用 startAudioRecording 或 stopAudioRecording 改变音频文件录制状态时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | AudioRecordingState | 录制状态,参看 AudioRecordingState |
| error_code | AudioRecordingErrorCode | 录制错误码,参看 AudioRecordingErrorCode |
virtual void bytertc::IRTCVideoEventHandler::onLoginResult(
const char* uid,
int error_code,
int elapsed)
cpp登录结果回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 登录用户 ID |
| error_code | int | 登录结果 详见 LoginErrorCode。 |
| elapsed | int | 从调用 login 接口开始到返回结果所用时长 单位为 ms。 |
注意
调用 login 后,会收到此回调。
virtual void bytertc::IRTCVideoEventHandler::onLogout()
cpp登出结果回调
注意
调用 logout 后,会收到此回调。
virtual void bytertc::IRTCVideoEventHandler::onServerParamsSetResult(
int error)
cpp设置应用服务器参数的返回结果
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| error | int | 设置结果 • 返回 200,设置成功 • 返回其他,设置失败,详见 UserMessageSendResult |
注意
调用 setServerParams 后,会收到此回调。
virtual void bytertc::IRTCVideoEventHandler::onGetPeerOnlineStatus(
const char* peer_user_id,
int status)
cpp查询对端或本端用户登录状态的返回结果
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| peer_user_id | const char* | 需要查询的用户 ID |
| status | int | 查询的用户登录状态 详见 USER_ONLINE_STATUS. |
注意
必须先调用 getPeerOnlineStatus,才能收到此回调。
virtual void bytertc::IRTCVideoEventHandler::onUserMessageReceivedOutsideRoom(
const char* uid,
const char* message)
cpp收到房间外用户调用 sendUserMessageOutsideRoom 发来的文本消息时,会收到此回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 消息发送者 ID |
| message | const char* | 收到的文本消息内容 |
virtual void bytertc::IRTCVideoEventHandler::onUserBinaryMessageReceivedOutsideRoom(
const char* uid,
int size,
const uint8_t* message)
cpp收到房间外用户调用 sendUserBinaryMessageOutsideRoom 发来的二进制消息时,会收到此回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 消息发送者 ID |
| size | int | 二进制消息长度 |
| message | const uint8_t* | 收到的二进制消息内容 |
virtual void bytertc::IRTCVideoEventHandler::onUserMessageSendResultOutsideRoom(
int64_t msgid,
int error)
cpp给房间外指定的用户发送消息的回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| msgid | int64_t | 本条消息的 ID 所有的 P2P 和 P2Server 消息共用一个 ID 序列。 |
| error | int | 消息发送结果 详见 UserMessageSendResult。 |
注意
当调用 sendUserMessageOutsideRoom 或 sendUserBinaryMessageOutsideRoom 发送消息后,会收到此回调。
virtual void bytertc::IRTCVideoEventHandler::onServerMessageSendResult(
int64_t msgid,
int error,
const bytertc::ServerACKMsg& msg)
cpp给应用服务器发送消息的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| msgid | int64_t | 本条消息的 ID。 所有的 P2P 和 P2Server 消息共用一个 ID 序列。 |
| error | int | 消息发送结果,详见 UserMessageSendResult。 |
| msg | int64_t | 应用服务器收到 HTTP 请求后,在 ACK 中返回的信息。消息不超过 64 KB。 |
注意
本回调为异步回调。当调用 sendServerMessage 或 sendServerBinaryMessage 接口发送消息后,会收到此回调。
virtual void bytertc::IRTCVideoEventHandler::onSEIMessageReceived(
RemoteStreamKey stream_key,
const uint8_t* message,
int length)
cpp收到通过调用 sendSEIMessage 发送带有 SEI 消息的视频帧时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_key | RemoteStreamKey | 包含 SEI 发送者的用户名,所在的房间名和媒体流,参看 RemoteStreamKey |
| message | const uint8_t* | 收到的 SEI 消息内容 |
| length | int | 收到的 SEI 消息长度 |
virtual void bytertc::IRTCVideoEventHandler::onSEIStreamUpdate(
const RemoteStreamKey& key,
SEIStreamEventType type)
cpp黑帧视频流发布状态回调。
在语音通话场景下,本地用户调用 sendSEIMessage 通过黑帧视频流发送 SEI 数据时,流的发送状态会通过该回调通知远端用户。
你可以通过此回调判断携带 SEI 数据的视频帧为黑帧,从而不对该视频帧进行渲染。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | const RemoteStreamKey& | 远端流信息,参看 RemoteStreamKey。 |
| type | SEIStreamEventType | 黑帧视频流状态,参看 SEIStreamEventType |
virtual void bytertc::IRTCVideoEventHandler::onRemoteAudioPropertiesReport(
const RemoteAudioPropertiesInfo* audio_properties_infos,
int audio_properties_info_number,
int total_remote_volume)
cpp远端用户进房后,本地调用 enableAudioPropertiesReport,根据设置的 interval 值,本地会周期性地收到此回调,了解订阅的远端用户的音频信息。
远端用户的音频包括使用 RTC SDK 内部机制/自定义机制采集的麦克风音频和屏幕音频。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_properties_infos | const RemoteAudioPropertiesInfo* | 远端音频信息,其中包含音频流属性、房间 ID、用户 ID ,详见 RemoteAudioPropertiesInfo。 |
| audio_properties_info_number | int | 数组长度 |
| total_remote_volume | int | 所有订阅的远端流的总音量,范围是 [0,255]。 • [0,25] 接近无声; • [25,75] 为低音量; • [76,204] 为中音量; • [205,255] 为高音量。 |
virtual void bytertc::IRTCVideoEventHandler::onLocalAudioPropertiesReport(
const LocalAudioPropertiesInfo * audio_properties_infos,
int audio_properties_info_number)
cpp调用 enableAudioPropertiesReport 后,根据设置的 interval 值,你会周期性地收到此回调,了解本地音频的相关信息。
本地音频包括使用 RTC SDK 内部机制采集的麦克风音频,屏幕音频和本地混音音频信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_properties_infos | const LocalAudioPropertiesInfo* | 本地音频信息,详见 LocalAudioPropertiesInfo 。 |
| audio_properties_info_number | int | 数组长度 |
virtual void bytertc::IRTCVideoEventHandler::onAudioPlaybackDeviceTestVolume(
int volume)
cpp回调音频设备测试时的播放音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音频设备测试播放音量。单位:毫秒。推荐设置为 200 ms。范围:[0,255] |
注意
调用 startAudioPlaybackDeviceTest 或 startAudioDeviceRecordTest,开始播放音频文件或录音时,将开启该回调。本回调为周期性回调,回调周期由上述接口的 interval 参数指定。
virtual void bytertc::IRTCVideoEventHandler::onAudioDeviceVolumeChanged(
bytertc::RTCAudioDeviceType device_type,
int volume,
bool muted)
cpp音频设备音量改变回调。当通过系统设置,改变音频设备音量或静音状态时,触发本回调。本回调无需手动开启。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_type | bytertc::RTCAudioDeviceType | 设备类型,包括麦克风和扬声器,参阅 RTCAudioDeviceType。 |
| volume | int | 音量值,[0, 255]。当 volume 变为 0 时,muted 会变为 True。注意:在 Windows 端,当麦克风 volume 变为 0 时,muted 值不变。 |
| muted | bool | 是否禁音状态。扬声器被设置为禁音时,muted 为 True,但 volume 保持不变。 |
virtual void bytertc::IRTCVideoEventHandler::onLocalAudioStateChanged(
LocalAudioStreamState state,
LocalAudioStreamError error)
cppDeprecated since 3.50 and will be deleted in 3.55, use onAudioDeviceStateChanged instead.
本地音频流的状态发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | LocalAudioStreamState | 本地音频设备的状态,详见: LocalAudioStreamState |
| error | LocalAudioStreamError | 本地音频状态改变时的错误码,详见:LocalAudioStreamError |
virtual void bytertc::IRTCVideoEventHandler::onUserStartAudioCapture(
const char* room_id,
const char* user_id)
cpp房间内的用户调用 startAudioCapture 开启音频采集时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 开启音频采集的远端用户所在的房间 ID |
| user_id | const char* | 开启音频采集的远端用户 ID |
virtual void bytertc::IRTCVideoEventHandler::onUserStopAudioCapture(
const char* room_id,
const char* user_id)
cpp房间内的用户调用 stopAudioCapture 关闭音频采集时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 关闭音频采集的远端用户所在的房间 ID |
| user_id | const char* | 关闭音频采集的远端用户 ID |
virtual void bytertc::IRTCVideoEventHandler::onActiveSpeaker(
const char* room_id,
const char* uid)
cpp调用 enableAudioPropertiesReport 后,根据设置的 config.interval,你会周期性地收到此回调,获取房间内的最活跃用户信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 房间 ID |
| uid | const char* | 最活跃用户(ActiveSpeaker)的用户 ID |
virtual void bytertc::IRTCVideoEventHandler::onStreamSyncInfoReceived(
RemoteStreamKey stream_key,
SyncInfoStreamType stream_type,
const uint8_t* data,
int32_t length)
cpp音频流同步信息回调。可以通过此回调,在远端用户调用 sendStreamSyncInfo 发送音频流同步消息后,收到远端发送的音频流同步信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_key | RemoteStreamKey | 远端流信息,详见 RemoteStreamKey 。 |
| stream_type | SyncInfoStreamType | 媒体流类型,详见 SyncInfoStreamType 。 |
| data | const uint8_t* | 消息内容。 |
| length | int32_t | 消息长度。 |
virtual void bytertc::IRTCVideoEventHandler::onNetworkDetectionResult(
NetworkDetectionLinkType type,
NetworkQuality quality,
int rtt,
double lost_rate,
int bitrate,
int jitter)
cpp通话前网络探测结果。
成功调用 startNetworkDetection 接口开始探测后,会在 3s 内首次收到该回调,之后每 2s 收到一次该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | NetworkDetectionLinkType | 探测网络类型为上行/下行 |
| quality | NetworkQuality | 探测网络的质量,参看 NetworkQuality。 |
| rtt | int | 探测网络的 RTT,单位:ms |
| lost_rate | double | 探测网络的丢包率 |
| bitrate | int | 探测网络的带宽,单位:kbps |
| jitter | int | 探测网络的抖动,单位:ms |
virtual void bytertc::IRTCVideoEventHandler::onNetworkDetectionStopped(
NetworkDetectionStopReason reason)
cpp通话前网络探测结束
以下情况将停止探测并收到本一次本回调:
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| reason | NetworkDetectionStopReason | 停止探测的原因类型,参考 NetworkDetectionStopReason |
virtual void bytertc::IRTCVideoEventHandler::onPlayPublicStreamResult(
const char* public_stream_id,
PublicStreamErrorCode errorCode)
cpp订阅公共流的结果回调
通过 startPlayPublicStream 订阅公共流后,可以通过本回调获取订阅结果。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| public_stream_id | const char* | 公共流的 ID |
| errorCode | PublicStreamErrorCode | 公共流订阅结果状态码。详见 PublicStreamErrorCode。 |
virtual void bytertc::IRTCVideoEventHandler::onPublicStreamSEIMessageReceived(
const char* public_stream_id,
const uint8_t* message,
int message_length,
SEIMessageSourceType source_type)
cpp回调公共流中包含的 SEI 信息。
调用 startPlayPublicStream 接口启动拉公共流功能后,通过此回调收到公共流中的 SEI 消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| public_stream_id | const char* | 公共流 ID。 |
| message | const uint8_t* | 收到的 SEI 消息内容。 |
| message_length | int | SEI 信息的长度。 |
| source_type | SEIMessageSourceType | SEI 消息类型,参看 SEIMessageSourceType。 |
注意
当公共流中的多路视频流均包含有 SEI 信息:SEI 不互相冲突时,将通过多次回调分别发送;SEI 在同一帧有冲突时,则只有一条流中的 SEI 信息被透传并融合到公共流中。
virtual void bytertc::IRTCVideoEventHandler::onFirstPublicStreamVideoFrameDecoded(
const char* public_stream_id,
const VideoFrameInfo& info)
cpp公共流的首帧视频解码成功
关于订阅公共流,详见 startPlayPublicStream。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| public_stream_id | const char* | 公共流 ID |
| info | const VideoFrameInfo& | 视频帧信息。详见 VideoFrameInfo。 |
virtual void bytertc::IRTCVideoEventHandler::onUserStartVideoCapture(
const char* room_id,
const char* user_id)
cpp房间内的可见用户调用 startVideoCapture 开启内部视频采集时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 开启视频采集的远端用户所在的房间 ID |
| user_id | const char* | 开启视频采集的远端用户 ID |
virtual void bytertc::IRTCVideoEventHandler::onUserStopVideoCapture(
const char* room_id,
const char* user_id)
cpp房间内的可见用户调用 stopVideoCapture 关闭内部视频采集时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | ID of the room where the remote video stream stops being published. |
| user_id | const char* | 关闭视频采集的远端用户 ID |
virtual void bytertc::IRTCVideoEventHandler::onLocalVideoSizeChanged(
StreamIndex index,
const VideoFrameInfo& info)
cpp本地视频大小或旋转信息发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 流属性。参看 StreamIndex。 |
| info | const VideoFrameInfo& | 视频帧信息。参看 VideoFrameInfo。 |
virtual void bytertc::IRTCVideoEventHandler::onRemoteVideoSizeChanged(
RemoteStreamKey key,
const VideoFrameInfo& info)
cpp远端视频大小或旋转信息发生改变时,房间内订阅此视频流的用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | RemoteStreamKey | 远端流信息。参看 RemoteStreamKey。 |
| info | const VideoFrameInfo& | 视频帧信息。参看 VideoFrameInfo。 |
virtual void bytertc::IRTCVideoEventHandler::onFirstLocalVideoFrameCaptured(
StreamIndex index,
VideoFrameInfo info)
cppRTC SDK 在本地完成第一帧视频帧或屏幕视频帧采集时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 流属性。参看 StreamIndex。 |
| info | VideoFrameInfo | 视频信息。参看 VideoFrameInfo。 |
注意
对于采集到的本地视频帧,你可以调用 setLocalVideoCanvas 或 setLocalVideoSink 在本地渲染。
virtual void bytertc::IRTCVideoEventHandler::onUserMuteAudio(
const char* room_id,
const char* user_id,
MuteState mute_state)
cppDeprecated since 3.36 and will be deleted in 3.51, use onUserPublishStream, onUserPublishScreen, onUserUnpublishStream and onUserUnpublishScreen instead.
房间内用户暂停/恢复发送音频流时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 改变本地音频发送状态的用户 ID |
| mute_state | MuteState | 发送状态,参看 MuteState |
virtual void bytertc::IRTCVideoEventHandler::onFirstRemoteAudioFrame(
const RemoteStreamKey& key)
cpp接收到来自远端某音频流的第一帧时,收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | const RemoteStreamKey& | 远端音频流信息, 详见 RemoteStreamKey |
注意
用户刚收到房间内每一路音频流时,都会收到该回调。
virtual void bytertc::IRTCVideoEventHandler::onUserMuteVideo(
const char* room_id,
const char* uid,
MuteState mute)
cppDeprecated since 3.36 and will be deleted in 3.51, use onUserPublishStream, onUserPublishScreen, onUserUnpublishStream and onUserUnpublishScreen instead.
房间内用户暂停/恢复发送视频流时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 暂停/恢复发送视频流的用户 ID。 |
| mute | MuteState | 视频流的发送状态。参看 MuteState。 |
virtual void bytertc::IRTCVideoEventHandler::onRemoteAudioStateChanged(
const RemoteStreamKey& key,
RemoteAudioState state,
RemoteAudioStateChangeReason reason)
cpp用户订阅来自远端的音频流状态发生改变时,会收到此回调,了解当前的远端音频流状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | const RemoteStreamKey& | 远端流信息, 参看 RemoteStreamKey |
| state | RemoteAudioState | 远端音频流状态,参看 RemoteAudioState |
| reason | RemoteAudioStateChangeReason | 远端音频流状态改变的原因,参看 RemoteAudioStateChangeReason |
virtual void bytertc::IRTCVideoEventHandler::onLocalVideoStateChanged(
StreamIndex index,
LocalVideoStreamState state,
LocalVideoStreamError error)
cppDeprecated since 3.50 and will be deleted in 3.55. Use onVideoDeviceStateChanged instead.
本地视频流的状态发生改变时,收到该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 音/视频属性,参看 StreamIndex |
| state | LocalVideoStreamState | 本地视频流状态,参看 LocalVideoStreamState |
| error | LocalVideoStreamError | 本地视频状态改变时的错误码,参看 LocalVideoStreamError |
virtual void bytertc::IRTCVideoEventHandler::onRemoteVideoStateChanged(
RemoteStreamKey key,
RemoteVideoState state,
RemoteVideoStateChangeReason reason)
cpp远端视频流的状态发生改变时,房间内订阅此流的用户会收到该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | RemoteStreamKey | 远端视频流的信息,房间、用户 ID、流属性等。参看 RemoteStreamKey。 |
| state | RemoteVideoState | 远端视频流状态,参看 RemoteVideoState。 |
| reason | RemoteVideoStateChangeReason | 远端视频流状态改变的原因,参看 RemoteVideoStateChangeReason。 |
virtual void bytertc::IRTCVideoEventHandler::onAudioFrameSendStateChanged(
const char* room_id,
const RtcUser& user,
FirstFrameSendState state)
cpp本地音频首帧发送状态发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 音频发布用户所在的房间 ID |
| user | const RtcUser& | 本地用户信息,详见 RtcUser |
| state | FirstFrameSendState | 首帧发送状态,详见 FirstFrameSendState |
virtual void bytertc::IRTCVideoEventHandler::onScreenAudioFrameSendStateChanged(
const char* room_id,
const RtcUser& user,
FirstFrameSendState state)
cpp屏幕音频首帧发送状态改变回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 音频发布用户所在的房间 ID |
| user | const RtcUser& | 本地用户信息,详见 RtcUser |
| state | FirstFrameSendState | 首帧发送状态,详见 FirstFrameSendState |
virtual void bytertc::IRTCVideoEventHandler::onVideoFrameSendStateChanged(
const char* room_id,
const RtcUser& user,
FirstFrameSendState state)
cpp本地视频首帧发送状态发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 视频发布用户所在的房间 ID |
| user | const RtcUser& | 本地用户信息,详见 RtcUser |
| state | FirstFrameSendState | 首帧发送状态,详见 FirstFrameSendState |
virtual void bytertc::IRTCVideoEventHandler::onFirstRemoteVideoFrameRendered(
const RemoteStreamKey key,
const VideoFrameInfo& info)
cppSDK 内部渲染成功远端视频流首帧后,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | const RemoteStreamKey | 远端流信息。参看 RemoteStreamKey。 |
| info | const VideoFrameInfo& | 视频帧信息。参看 VideoFrameInfo。 |
virtual void bytertc::IRTCVideoEventHandler::onFirstRemoteVideoFrameDecoded(
const RemoteStreamKey key,
const VideoFrameInfo& info)
cppSDK 接收并解码远端视频流首帧后,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | const RemoteStreamKey | 远端流信息。参看 RemoteStreamKey。 |
| info | const VideoFrameInfo& | 视频帧信息。参看 VideoFrameInfo。 |
注意
virtual void bytertc::IRTCVideoEventHandler::onScreenVideoFrameSendStateChanged(
const char* room_id,
const RtcUser& user,
FirstFrameSendState state)
cpp屏幕共享流的视频首帧发送状态发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 流的发布房间的 ID |
| user | const RtcUser& | 本地用户信息,详见 RtcUser |
| state | FirstFrameSendState | 首帧发送状态,详见 FirstFrameSendState |
virtual void bytertc::IRTCVideoEventHandler::onAudioFramePlayStateChanged(
const char* room_id,
const RtcUser& user,
FirstFramePlayState state)
cpp音频首帧播放状态发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 首帧播放状态发生改变的流所在的房间 ID |
| user | const RtcUser& | 远端用户信息,详见 RtcUser |
| state | FirstFramePlayState | 首帧播放状态,详见 FirstFramePlayState |
virtual void bytertc::IRTCVideoEventHandler::onScreenAudioFramePlayStateChanged(
const char* room_id,
const RtcUser& user,
FirstFramePlayState state)
cpp屏幕音频首帧播放状态改变回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 首帧播放状态发生改变的流所在的房间 ID |
| user | const RtcUser& | 远端用户信息,详见 RtcUser |
| state | FirstFramePlayState | 首帧播放状态,详见 FirstFramePlayState |
virtual void bytertc::IRTCVideoEventHandler::onVideoFramePlayStateChanged(
const char* room_id,
const RtcUser& user,
FirstFramePlayState state)
cpp视频首帧播放状态改变回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 首帧播放状态发生改变的流所在的房间 ID |
| user | const RtcUser& | 远端用户信息,详见 RtcUser |
| state | FirstFramePlayState | 首帧播放状态,详见 FirstFramePlayState |
virtual void bytertc::IRTCVideoEventHandler::onScreenVideoFramePlayStateChanged(
const char* room_id,
const RtcUser& user,
FirstFramePlayState state)
cpp屏幕共享流视频首帧播放状态发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 首帧播放状态发生改变的流所在的房间 ID |
| user | const RtcUser& | 远端用户信息,详见 RtcUser |
| state | FirstFramePlayState | 首帧播放状态,详见 FirstFramePlayState |
virtual void bytertc::IRTCVideoEventHandler::onFirstLocalAudioFrame(
StreamIndex index)
cpp发布音频流时,采集到第一帧音频帧,收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 音频流属性, 参看 StreamIndex |
注意
如果发布音频流时,未开启本地音频采集,SDK 会推送静音帧,也会收到此回调。
virtual void bytertc::IRTCVideoEventHandler::onPushPublicStreamResult(
const char* room_id,
const char* public_streamid,
PublicStreamErrorCode errorCode)
cpp公共流发布结果回调。
调用 startPushPublicStream 接口发布公共流后,启动结果通过此回调方法通知用户。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 公共流的发布房间的 ID |
| public_streamid | const char* | 公共流 ID |
| errorCode | PublicStreamErrorCode | 公共流发布结果状态码。详见 PublicStreamErrorCode |
virtual void bytertc::IRTCVideoEventHandler::onFirstPublicStreamAudioFrame(
const char* public_stream_id)
cpp公共流的音频首帧解码成功
关于订阅公共流,详见 startPlayPublicStream。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| public_stream_id | const char* | 公共流 ID |
virtual void bytertc::IRTCVideoEventHandler::onCloudProxyConnected(
int interval)
cpp调用 startCloudProxy 开启云代理,SDK 首次成功连接云代理服务器时,回调此事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| interval | int | 从开启云代理到连接成功经过的时间,单位为 ms |
virtual void bytertc::IRTCVideoEventHandler::onLicenseWillExpire(
int days)
cpplicense过期时间提醒
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| days | int | 过期时间天数 |
class bytertc::IAudioFrameObserver
cpp音频数据回调观察者
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
本接口类中的回调周期均为 20 ms。
| 返回 | 名称 |
|---|---|
| virtual void | onRecordAudioFrame |
| virtual void | onPlaybackAudioFrame |
| virtual void | onRemoteUserAudioFrame |
| virtual void | onMixedAudioFrame |
| virtual void | onRecordScreenAudioFrame |
virtual void bytertc::IAudioFrameObserver::onRecordAudioFrame(
const IAudioFrame& audio_frame)
cpp返回麦克风录制的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_frame | const IAudioFrame& | 音频数据, 详见:IAudioFrame |
virtual void bytertc::IAudioFrameObserver::onPlaybackAudioFrame(
const IAudioFrame& audio_frame)
cpp返回订阅的所有远端用户混音后的音频数据。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_frame | const IAudioFrame& | 音频数据, 详见:IAudioFrame |
virtual void bytertc::IAudioFrameObserver::onRemoteUserAudioFrame(
const RemoteStreamKey& stream_info,
const IAudioFrame& audio_frame)
cpp返回远端单个用户的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_info | const RemoteStreamKey& | 远端流信息,参看 RemoteStreamKey。 |
| audio_frame | const IAudioFrame& | 音频数据, 参看 IAudioFrame。 |
注意
此回调在播放线程调用。不要在此回调中做任何耗时的事情,否则可能会影响整个音频播放链路。
virtual void bytertc::IAudioFrameObserver::onMixedAudioFrame(
const IAudioFrame& audio_frame)
cpp返回本地麦克风录制和订阅的所有远端用户混音后的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_frame | const IAudioFrame& | 音频数据, 详见:IAudioFrame |
virtual void bytertc::IAudioFrameObserver::onRecordScreenAudioFrame(
const IAudioFrame& audio_frame)
cpp返回本地屏幕录制的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_frame | const IAudioFrame& | 音频数据, 详见:IAudioFrame |
class bytertc::IAudioProcessor
cpp自定义音频处理器
| 返回 | 名称 |
|---|---|
| virtual int | processAudioFrame |
virtual int bytertc::IAudioProcessor::processAudioFrame(
const IAudioFrame& audioFrame)
cpp获取 RTC SDK 采集得到的音频帧,并进行自定义处理,最终将处理后的音频帧给到 RTC SDK 用于编码传输。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | const IAudioFrame& | RTC SDK 采集到的音频帧,自定义处理可直接对音频 data 中的数据进行修改。参看 IAudioFrame。 |
返回值
0: 未处理
>0: 处理成功
< 0: 处理失败
注意
在进行音频自定义处理前,你需要调用 registerLocalAudioProcessor 设置音频自定义处理器。
class bytertc::IRemoteAudioFrameObserver
cpp音频数据回调观察者
| 返回 | 名称 |
|---|---|
| virtual void | onRemoteAudioFrame |
virtual void bytertc::IRemoteAudioFrameObserver::onRemoteAudioFrame(
const IAudioFrame& audio_frame,
const RemoteStreamKey& stream_info)
cpp获得单个流的音频数据,此回调通过调用 registerRemoteAudioFrameObserver 触发。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_frame | const IAudioFrame& | 音频数据, 详见: IAudioFrame |
| stream_info | const RemoteStreamKey& | 该音频流的业务信息, 详见: RemoteStreamKey |
class bytertc::IEncryptHandler
cpp加密/解密处理函数
| 返回 | 名称 |
|---|---|
| virtual unsigned int | onEncryptData |
| virtual unsigned int | onDecryptData |
virtual unsigned int bytertc::IEncryptHandler::onEncryptData(
const unsigned char* data,
unsigned int length,
unsigned char* buf,
unsigned int buf_len)
cpp自定义加密。
使用设定的自定义加密方式,对编码后传输前的音视频帧数据进行加密。
暂不支持对原始音视频帧进行加密。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| data | const unsigned char* | 原始音视频帧数据 |
| length | unsigned int | 原始音视频帧数据的长度 |
| buf | unsigned char* | 可供写入的加密后数据缓冲区 |
| buf_len | unsigned int | 可供写入的加密后数据缓冲区大小 |
返回值
加密后的数据
注意
setCustomizeEncryptHandler。virtual unsigned int bytertc::IEncryptHandler::onDecryptData(
const unsigned char* data,
unsigned int length,
unsigned char* buf,
unsigned int buf_len)
cpp自定义解密。
对自定义加密后的音视频帧数据进行解密。关于自定义加密,参看 onEncryptData。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| data | const unsigned char* | 原始音视频帧数据 |
| length | unsigned int | 原始音视频帧数据的长度 |
| buf | unsigned char* | 可供写入的加密后数据缓冲区 |
| buf_len | unsigned int | 可供写入的加密后数据缓冲区大小 |
返回值
加密后的数据
注意
setCustomizeEncryptHandler。class bytertc::ITranscoderObserver
cpp推流 Observer
| 返回 | 名称 |
|---|---|
| virtual bool | isSupportClientPushStream |
| virtual void | onMixingVideoFrame |
| virtual void | onMixingAudioFrame |
| virtual void | onMixingDataFrame |
virtual bool bytertc::ITranscoderObserver::isSupportClientPushStream()
cpp是否具有推流能力。
注意
如果需要开启端云一体转推直播功能,你必须确保你的 App 包含 librtmp,具有推流能力。此时,设置该回调为 true。
virtual void bytertc::ITranscoderObserver::onMixingVideoFrame(
const char* task_id,
IVideoFrame* video_frame)
cpp合流视频回调,运行在视频回调线程
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| task_id | const char* | 合流任务 ID |
| video_frame | IVideoFrame* | 视频帧,参看 IVideoFrame。 |
注意
收到该回调的周期与视频的帧间隔一致。
virtual void bytertc::ITranscoderObserver::onMixingAudioFrame(
const char* task_id,
IAudioFrame* audio_frame)
cpp合流音频回调,运行在音频回调线程
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| task_id | const char* | 转推直播任务 ID |
| audio_frame | IAudioFrame* | 音频帧,参看 IAudioFrame。 |
注意
收到该回调的周期为每 10 毫秒一次,并且每次的音频数据量为 10 毫秒数据量。
virtual void bytertc::ITranscoderObserver::onMixingDataFrame(
const char* task_id,
IDataFrame* data_frame)
cpp视频 SEI 帧回调,运行在视频回调线程
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| task_id | const char* | 转推直播任务 ID |
| data_frame | IDataFrame* | SEI 数据 |
class bytertc::IPushSingleStreamToCDNObserver
cpp单流转推直播观察者。
| 返回 | 名称 |
|---|---|
| virtual void | onStreamPushEvent |
virtual void bytertc::IPushSingleStreamToCDNObserver::onStreamPushEvent(
SingleStreamPushEvent event,
const char *task_id,
int error)
cpp单流转推直播状态回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| event | SingleStreamPushEvent | 任务状态, 参看 SingleStreamPushEvent |
| task_id | const char* | 任务 ID |
| error | int | 错误码,参看 TransCodingError |
class bytertc::IExternalVideoEncoderEventHandler
cpp自定义编码帧回调类
| 返回 | 名称 |
|---|---|
| virtual void | onStart |
| virtual void | onStop |
| virtual void | onRateUpdate |
| virtual void | onRequestKeyFrame |
virtual void bytertc::IExternalVideoEncoderEventHandler::onStart(
StreamIndex index)
cpp提示自定义编码帧可以开始推送的回调。
收到该回调后,你即可调用 pushExternalEncodedVideoFrame 向 SDK 推送自定义编码视频帧
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 可以推送的编码流的属性,参看 StreamIndex |
virtual void bytertc::IExternalVideoEncoderEventHandler::onStop(
StreamIndex index)
cpp当收到该回调时,你需停止向 SDK 推送自定义编码视频帧
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 需停止推送的编码流的属性,参看 StreamIndex |
virtual void bytertc::IExternalVideoEncoderEventHandler::onRateUpdate(
StreamIndex index,
int32_t video_index,
VideoRateInfo info)
cpp当自定义编码流的帧率或码率发生变化时,触发该回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 发生变化的编码流的属性,参看 StreamIndex |
| video_index | int32_t | 对应编码流的下标 |
| info | VideoRateInfo | 变化后的编码流信息,参看 VideoRateInfo |
virtual void bytertc::IExternalVideoEncoderEventHandler::onRequestKeyFrame(
StreamIndex index,
int32_t video_index)
cpp提示流发布端需重新生成关键帧的回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 远端编码流的属性,参看 StreamIndex |
| video_index | int32_t | 对应编码流的下标 |
class bytertc::ILocalEncodedVideoFrameObserver
cpp本地视频帧监测器
| 返回 | 名称 |
|---|---|
| virtual void | onLocalEncodedVideoFrame |
virtual void bytertc::ILocalEncodedVideoFrameObserver::onLocalEncodedVideoFrame(
StreamIndex type,
const IEncodedVideoFrame& video_stream)
cpp调用 registerLocalEncodedVideoFrameObserver 后,SDK 每次使用内部采集,采集到一帧视频帧,或收到一帧外部视频帧时,都会回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | StreamIndex | 本地视频帧类型,参看 StreamIndex |
| video_stream | const IEncodedVideoFrame& | 本地视频帧信息,参看 IEncodedVideoFrame |
class bytertc::IRemoteEncodedVideoFrameObserver
cpp远端编码后视频数据监测器
| 返回 | 名称 |
|---|---|
| virtual void | onRemoteEncodedVideoFrame |
virtual void bytertc::IRemoteEncodedVideoFrameObserver::onRemoteEncodedVideoFrame(
const RemoteStreamKey& stream_info,
const IEncodedVideoFrame& video_stream)
cpp调用 registerRemoteEncodedVideoFrameObserver 后,SDK 监测到远端编码后视频数据时,触发该回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_info | const RemoteStreamKey& | 收到的远端流信息,参看 RemoteStreamKey |
| video_stream | const IEncodedVideoFrame& | 收到的远端视频帧信息,参看 IEncodedVideoFrame |
class bytertc::IMetadataObserver
cppmetadata 观察者,可以接收媒体流中的 metadata, 或者向媒体流中添加 metadata
| 返回 | 名称 |
|---|---|
| virtual bool | onReadyToSendMetadata |
| virtual void | onMetadataReceived |
virtual bool bytertc::IMetadataObserver::onReadyToSendMetadata(
VideoMetadataBuffer* metadata)
cpp当 SDK 准备发送一个视频帧时,会回调该事件,以确定是否需要在该视频帧中添加 metadata。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| metadata | VideoMetadataBuffer* | 待发送的数据,把数据拷贝到 data 字段中,并将 size 设置为真实的大小。 |
返回值
注意
virtual void bytertc::IMetadataObserver::onMetadataReceived(
const char* roomid,
const char* uid,
const VideoMetadataBuffer& metadata)
cpp当 SDK 收到一个视频帧时,并且其中包含 medatada 时,会回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomid | const char* | 当前帧所属的房间 ID。 |
| uid | const char* | 当前帧所属的用户 ID。 |
| metadata | const VideoMetadataBuffer& | 视频帧中包含的 metadata 信息。参看 VideoMetadataBuffer。 |
注意
回调中不能有耗时操作,以免影响视频卡顿。
class bytertc::IFaceDetectionObserver
cpp人脸检测结果回调观察者
| 返回 | 名称 |
|---|---|
| virtual void | onFaceDetectResult |
virtual void bytertc::IFaceDetectionObserver::onFaceDetectResult(
const FaceDetectResult& result)
cpp特效 SDK 进行人脸检测结果的回调。
调用 enableFaceDetection 注册了 IFaceDetectionObserver,并使用 RTC SDK 中包含的特效 SDK 进行视频特效处理时,你会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| result | const FaceDetectResult& | 人脸检测结果, 参看 FaceDetectResult。 |