class bytertc::IRTCRoomEventHandler
音视频房间事件回调接口
Defined in : bytertc_room_event_handler.h
| 返回 | 名称 |
|---|---|
| virtual void | onRoomStateChanged |
| virtual void | onStreamStateChanged |
| virtual void | onLeaveRoom |
| virtual void | onTokenWillExpire |
| virtual void | onRoomStats |
| virtual void | onLocalStreamStats |
| virtual void | onRemoteStreamStats |
| virtual void | onUserJoined |
| virtual void | onUserLeave |
| virtual void | onUserPublishStream |
| virtual void | onUserUnpublishStream |
| virtual void | onUserPublishScreen |
| virtual void | onUserUnpublishScreen |
| virtual void | onStreamSubscribed |
| virtual void | onRoomMessageReceived |
| virtual void | onRoomBinaryMessageReceived |
| virtual void | onUserMessageReceived |
| virtual void | onUserBinaryMessageReceived |
| virtual void | onUserMessageSendResult |
| virtual void | onRoomMessageSendResult |
| virtual void | onVideoStreamBanned |
| virtual void | onAVSyncStateChange |
| virtual void | onAudioStreamBanned |
| virtual void | onForwardStreamStateChanged |
| virtual void | onForwardStreamEvent |
| virtual void | onNetworkQuality |
virtual void bytertc::IRTCRoomEventHandler::onRoomStateChanged(
const char* room_id,
const char* uid,
int state,
const char* extra_info)
房间状态改变回调,加入房间、离开房间、发生房间相关的警告或错误时会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 房间 ID。 |
| uid | const char* | 用户 ID。 |
| state | int | 房间状态码。 • 0: 成功。 • !0: 失败,具体原因参看 ErrorCode 及 WarningCode。 |
| extra_info | const char* | 额外信息。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)
流状态改变回调,发生流相关的警告或错误时会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 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)
离开房间回调。
用户调用 leaveRoom 方法后,SDK 会停止所有的发布订阅流,并在释放所有与通话相关的音视频资源后,通过此回调通知用户离开房间成功。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const RtcRoomStats& | 本次通话的统计数据,参看 RtcRoomStats 。 |
注意
virtual void bytertc::IRTCRoomEventHandler::onTokenWillExpire()
Token 过期前 30 秒将触发该回调。
调用 updateToken 更新 Token。否则 Token 过期后,用户将被移出房间无法继续进行音视频通话。
virtual void bytertc::IRTCRoomEventHandler::onRoomStats(
const RtcRoomStats& stats)
房间内通话统计信息回调。
用户进房开始通话后,每 2s 收到一次本回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const RtcRoomStats& | 当前 RtcEngine 统计数据,详见 RtcRoomStats |
virtual void bytertc::IRTCRoomEventHandler::onLocalStreamStats(
const LocalStreamStats& stats)
发布流成功后,每隔 2s 收到此回调,了解发布的流在此周期内的网络质量信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const LocalStreamStats& | 当前 RtcEngine 统计数据,详见 LocalStreamStats |
virtual void bytertc::IRTCRoomEventHandler::onRemoteStreamStats(
const RemoteStreamStats& stats)
每隔 2s 收到此回调,了解订阅的远端用户发布的流在此周期内的网络质量信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const RemoteStreamStats& | 当前 RtcEngine 统计数据,详见 RemoteStreamStats |
virtual void bytertc::IRTCRoomEventHandler::onUserJoined(
const UserInfo& user_info,
int elapsed)
远端可见用户加入房间,或房内隐身用户切换为可见的回调。
1. 远端用户调用 setUserVisibility 方法将自身设为可见后加入房间时,房间内其他用户将收到该事件。
2. 远端可见用户断网后重新连入房间时,房间内其他用户将收到该事件。
3. 房间内隐身远端用户调用 setUserVisibility 方法切换至可见时,房间内其他用户将收到该事件。
4. 新进房用户会收到进房前已在房内的可见用户的进房回调通知。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_info | const UserInfo& | 用户信息,详见 UserInfo |
| elapsed | int | 此参数无意义 |
virtual void bytertc::IRTCRoomEventHandler::onUserLeave(
const char* uid,
UserOfflineReason reason)
远端用户离开房间,或切至不可见时,本地用户会收到此事件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 离开房间,或切至不可见的的远端用户 ID。 |
| reason | UserOfflineReason | 用户离开房间的原因: • 0: 远端用户调用 leaveRoom 主动退出房间。 • 1: 远端用户因 Token 过期或网络原因等掉线。 • 2: 远端用户调用 setUserVisibility 切换至不可见状态。 • 3: 服务端调用 OpenAPI 将远端用户踢出房间。 |
virtual void bytertc::IRTCRoomEventHandler::onUserPublishStream(
const char* uid,
MediaStreamType type)
房间内新增远端摄像头/麦克风采集的媒体流的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 远端流发布用户的用户 ID。 |
| type | MediaStreamType | 远端媒体流的类型,参看 MediaStreamType。 |
注意 当房间内的远端用户调用 publishStream 成功发布由摄像头/麦克风采集的媒体流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 subscribeStream 订阅此流。
virtual void bytertc::IRTCRoomEventHandler::onUserUnpublishStream(
const char* uid,
MediaStreamType type,
StreamRemoveReason reason)
房间内远端摄像头/麦克风采集的媒体流移除的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 移除的远端流发布用户的用户 ID。 |
| type | MediaStreamType | 移除的远端流类型,参看 MediaStreamType。 |
| reason | StreamRemoveReason | 远端流移除的原因,参看 StreamRemoveReason。 |
注意 收到该回调通知后,你可以自行选择是否调用 unsubscribeStream 取消订阅此流。
virtual void bytertc::IRTCRoomEventHandler::onUserPublishScreen(
const char* uid,
MediaStreamType type)
房间内新增远端屏幕共享音视频流的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 远端流发布用户的用户 ID。 |
| type | MediaStreamType | 远端媒体流的类型,参看 MediaStreamType。 |
注意 当房间内的远端用户调用 publishScreen 成功发布来自屏幕共享的音视频流时,本地用户会收到该回调,此时本地用户可以自行选择是否调用 subscribeScreen 订阅此流。(Linux 不支持)
virtual void bytertc::IRTCRoomEventHandler::onUserUnpublishScreen(
const char* uid,
MediaStreamType type,
StreamRemoveReason reason)
房间内远端屏幕共享音视频流移除的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 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)
关于订阅媒体流状态改变的回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state_code | SubscribeState | 订阅媒体流状态,参看 SubscribeState |
| user_id | const char* | 流发布用户的用户 ID |
| info | const SubscribeConfig& | 流的属性,参看 SubscribeConfig |
注意 本地用户收到该回调的时机包括:
virtual void bytertc::IRTCRoomEventHandler::onRoomMessageReceived(
const char* uid,
const char* message)
接收到房间内广播消息的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 消息发送者 ID |
| message | const char* | 收到的消息内容 |
注意 同一房间内其他用户调用 sendRoomMessage 发送广播消息时会收到该回调。
virtual void bytertc::IRTCRoomEventHandler::onRoomBinaryMessageReceived(
const char* uid,
int size,
const uint8_t* message)
接收到房间内二进制广播消息的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 消息发送者 ID |
| size | int | 收到的二进制消息长度 |
| message | const uint8_t* | 收到的二进制消息内容 |
注意 同一房间内其他用户调用 sendRoomBinaryMessage 发送二进制广播消息时会收到该回调。
virtual void bytertc::IRTCRoomEventHandler::onUserMessageReceived(
const char* uid,
const char* message)
收到来自房间中其他用户发来的文本消息时(P2P),会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 消息发送者 ID 。 |
| message | const char* | 收到的文本消息内容。 |
注意
virtual void bytertc::IRTCRoomEventHandler::onUserBinaryMessageReceived(
const char* uid,
int size,
const uint8_t* message)
单个用户接收到同一房间内其他 uid 所属用户发来二进制消息的回调(P2P)。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 消息发送者 ID 。 |
| message | const uint8_t* | 收到的二进制消息内容。 |
注意
virtual void bytertc::IRTCRoomEventHandler::onUserMessageSendResult(
int64_t msgid,
int error)
向房间内单个用户发送文本或二进制消息后(P2P),消息发送方会收到该消息发送结果回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| msgid | int64_t | 本条消息的 ID。 |
| error | int | 文本或二进制消息发送结果,详见 UserMessageSendResult |
注意
virtual void bytertc::IRTCRoomEventHandler::onRoomMessageSendResult(
int64_t msgid,
int error)
当调用 sendRoomMessage 函数发送消息后,回调此条消息的发送结果(反馈)。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| msgid | int64_t | 本条消息的 ID |
| error | int | 消息发送结果 详见 RoomMessageSendResult |
virtual void bytertc::IRTCRoomEventHandler::onVideoStreamBanned(
const char* uid,
bool banned)
通过调用服务端 BanUserStream/UnbanUserStream 方法禁用/解禁指定房间内指定用户视频流的发送时,触发此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 被禁用/解禁的视频流用户 ID |
| banned | bool | 视频流发送状态 • true: 视频流发送被禁用 • false: 视频流发送被解禁 |
注意
virtual void bytertc::IRTCRoomEventHandler::onAVSyncStateChange(
AVSyncState state)
发布端调用 setMultiDeviceAVSync 后音视频同步状态发生改变时,会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | AVSyncState | 音视频同步状态,参看 AVSyncState。 |
virtual void bytertc::IRTCRoomEventHandler::onAudioStreamBanned(
const char* uid,
bool banned)
通过调用服务端 BanUserStream/UnbanUserStream 方法禁用/解禁指定房间内指定用户音频流的发送时,触发此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 被禁用/解禁的音频流用户 ID |
| banned | bool | 音频流发送状态 • true: 音频流发送被禁用 • false: 音频流发送被解禁 |
注意
virtual void bytertc::IRTCRoomEventHandler::onForwardStreamStateChanged(
ForwardStreamStateInfo* infos,
int info_count)
跨房间媒体流转发状态和错误回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| infos | ForwardStreamStateInfo* | 跨房间媒体流转发目标房间信息数组,详见 ForwardStreamStateInfo |
| info_count | int | 数组长度,代表目标房间数 |
virtual void bytertc::IRTCRoomEventHandler::onForwardStreamEvent(
ForwardStreamEventInfo* infos,
int info_count)
跨房间媒体流转发事件回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| infos | ForwardStreamEventInfo* | 跨房间媒体流转发目标房间事件数组,详见 ForwardStreamEventInfo |
| info_count | int | 数组长度,代表目标房间数 |
virtual void bytertc::IRTCRoomEventHandler::onNetworkQuality(
const NetworkQualityStats& localQuality,
const NetworkQualityStats* remoteQualities,
int remoteQualityNum)
加入房间后, 以 2 秒 1 次的频率,报告用户的网络质量信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| localQuality | const NetworkQualityStats& | 本端网络质量,详见 NetworkQualityStats。 |
| remoteQualities | const NetworkQualityStats* | 已订阅用户的网络质量,详见 NetworkQualityStats。 |
| remoteQualityNum | int | remoteQualities 数组长度@note 更多通话中的监测接口,详见通话中质量监测 |
class bytertc::IRTCVideoEventHandler
音视频引擎事件回调接口
Defined in : bytertc_video_event_handler.h
virtual void bytertc::IRTCVideoEventHandler::onWarning(
int warn)
当内部发生警告事件时触发该回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| warn | int | 警告标识码,详见:WarningCode |
virtual void bytertc::IRTCVideoEventHandler::onError(
int err)
当 SDK 内部发生不可逆转错误时触发该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| err | int | 错误标识码,参看 ErrorCode |
virtual void bytertc::IRTCVideoEventHandler::onAudioMixingStateChanged(
int mix_id,
bytertc::AudioMixingState state,
bytertc::AudioMixingError error)
音频混音文件播放状态改变时回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 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)
混音音频文件播放进度回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 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)
端监控日志回调。当产生一个端监控事件时触发该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| log_type | const char* | 事件类型。目前类型固定为 "live_webrtc_monitor_log"。 |
| log_content | const char* | 端监控日志内容。 |
virtual void bytertc::IRTCVideoEventHandler::onConnectionStateChanged(
bytertc::ConnectionState state)
SDK 与信令服务器连接状态改变回调。连接状态改变时触发。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | bytertc::ConnectionState | 当前 SDK 与信令服务器的连接状态,详见 ConnectionState |
virtual void bytertc::IRTCVideoEventHandler::onNetworkTypeChanged(
bytertc::NetworkType type)
SDK 当前网络连接类型改变回调。当 SDK 的当前网络连接类型发生改变时回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | bytertc::NetworkType | SDK 当前的网络连接类型,详见:NetworkType 。 |
virtual void bytertc::IRTCVideoEventHandler::onSimulcastSubscribeFallback(
const RemoteStreamSwitch& event)
音视频流因网络环境变化等原因发生回退,或从回退中恢复时,触发该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| event | const RemoteStreamSwitch& | 音视频流发生变化的信息。参看 RemoteStreamSwitch。 |
virtual void bytertc::IRTCVideoEventHandler::onPerformanceAlarms(
bytertc::PerformanceAlarmMode mode,
const char* room_id,
bytertc::PerformanceAlarmReason reason,
const bytertc::SourceWantedData& data)
本地未开启发布性能回退,检测到设备性能不足时,收到此回调。
本地开启发布性能回退,因设备性能/网络原因,造成发布性能回退/恢复时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 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::onAudioDeviceStateChanged(
const char* device_id,
bytertc::RTCAudioDeviceType device_type,
bytertc::MediaDeviceState device_state,
bytertc::MediaDeviceError device_error)
音频设备状态回调。提示音频采集、音频播放等设备设备的状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 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)
视频频设备状态回调。提示摄像头视频采集、屏幕视频采集等设备的状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 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::onAudioDeviceWarning(
const char* device_id,
bytertc::RTCAudioDeviceType device_type,
bytertc::MediaDeviceWarning device_warning)
音频设备警告回调。音频设备包括音频采集设备和音频渲染设备。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 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)
视频设备警告回调,包括视频采集设备等。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | const char* | 设备 ID |
| device_type | bytertc::RTCVideoDeviceType | 详见 RTCVideoDeviceType |
| device_warning | bytertc::MediaDeviceWarning | 详见 MediaDeviceWarning |
virtual void bytertc::IRTCVideoEventHandler::onSysStats(
const bytertc::SysStats& stats)
周期性(2s)地发出回调,报告当前cpu与memory使用率
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const bytertc::SysStats& | 返回包含当前系统状态信息的结构体,详见 SysStats |
virtual void bytertc::IRTCVideoEventHandler::onCreateRoomStateChanged(
const char* room_id,
int error_code)
创建房间失败回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 房间 ID。 |
| error_code | int | 创建房间错误码,具体原因参看 ErrorCode。 |
virtual void bytertc::IRTCVideoEventHandler::onHttpProxyState(
int state)
HTTP 代理连接状态改变时,收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | int | 当前 HTTP 代理连接状态,详见 HttpProxyState |
virtual void bytertc::IRTCVideoEventHandler::onHttpsProxyState(
int state)
HTTPS 代理连接状态改变时,收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 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)
Socks5 代理状态改变时,收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | int | SOCKS5 代理连接状态,详见 Socks5ProxyState |
| 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)
获取本地录制状态回调。
该回调由 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)
本地录制进度回调。
该回调由 startFileRecording 触发,录制状态正常时,系统每秒钟都会通过该回调提示录制进度。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | StreamIndex | 录制流的流属性,参看 StreamIndex |
| process | RecordingProgress | 录制进度,参看 RecordingProgress |
| info | RecordingInfo | 录制文件的详细信息,参看 RecordingInfo |
virtual void bytertc::IRTCVideoEventHandler::onLoginResult(
const char* uid,
int error_code,
int elapsed)
登录结果回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 登录用户 ID |
| error_code | int | 登录结果 详见 LoginErrorCode。 |
| elapsed | int | 从调用 login 接口开始到返回结果所用时长 单位为 ms。 |
注意 调用 login 后,会收到此回调。
virtual void bytertc::IRTCVideoEventHandler::onLogout()
登出结果回调
注意 调用 logout 后,会收到此回调。
virtual void bytertc::IRTCVideoEventHandler::onServerParamsSetResult(
int error)
设置应用服务器参数的返回结果
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| error | int | 设置结果 • 返回 200,设置成功 • 返回其他,设置失败,详见 UserMessageSendResult |
注意 调用 setServerParams 后,会收到此回调。
virtual void bytertc::IRTCVideoEventHandler::onGetPeerOnlineStatus(
const char* peer_user_id,
int status)
查询对端或本端用户登录状态的返回结果
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| peer_user_id | const char* | 需要查询的用户 ID |
| status | int | 查询的用户登录状态 详见 USER_ONLINE_STATUS. |
注意 必须先调用 getPeerOnlineStatus,才能收到此回调。
virtual void bytertc::IRTCVideoEventHandler::onUserMessageReceivedOutsideRoom(
const char* uid,
const char* message)
收到房间外用户调用 sendUserMessageOutsideRoom 发来的文本消息时,会收到此回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 消息发送者 ID |
| message | const char* | 收到的文本消息内容 |
virtual void bytertc::IRTCVideoEventHandler::onUserBinaryMessageReceivedOutsideRoom(
const char* uid,
int size,
const uint8_t* message)
收到房间外用户调用 sendUserBinaryMessageOutsideRoom 发来的二进制消息时,会收到此回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 消息发送者 ID |
| size | int | 二进制消息长度 |
| message | const uint8_t* | 收到的二进制消息内容 |
virtual void bytertc::IRTCVideoEventHandler::onUserMessageSendResultOutsideRoom(
int64_t msgid,
int error)
给房间外指定的用户发送消息的回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 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)
给应用服务器发送消息的回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| msgid | int64_t | 本条消息的 ID 所有的 P2P 和 P2Server 消息共用一个 ID 序列。 |
| error | int | 消息发送结果,详见 UserMessageSendResult。 |
| message | const bytertc::ServerACKMsg& msg | 应用服务器收到 HTTP 请求后,在 ACK 中返回的信息。 |
注意 当调用 sendServerMessage 或 sendServerBinaryMessage 发送消息后,会收到此回调。
virtual void bytertc::IRTCVideoEventHandler::onSEIMessageReceived(
RemoteStreamKey stream_key,
const uint8_t* message,
int length)
收到通过 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)
黑帧视频流发布状态回调。
在语音通话场景下,本地用户调用 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)
远端用户进房后,本地调用 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)
调用 enableAudioPropertiesReport 后,根据设置的 interval 值,你会周期性地收到此回调,了解本地音频的相关信息。
本地音频包括使用 RTC SDK 内部机制采集的麦克风音频和屏幕音频。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_properties_infos | const LocalAudioPropertiesInfo* | 本地音频信息,详见 LocalAudioPropertiesInfo 。 |
| audio_properties_info_number | int | 数组长度 |
virtual void bytertc::IRTCVideoEventHandler::onAudioPlaybackDeviceTestVolume(
int volume)
回调音频设备测试时的播放音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音频设备测试播放音量。单位:毫秒。推荐设置为 200 ms。范围:[0,255] |
注意
调用 startAudioPlaybackDeviceTest 或 startAudioDeviceRecordTest,开始播放音频文件或录音时,将开启该回调。本回调为周期性回调,回调周期由上述接口的 interval 参数指定。
virtual void bytertc::IRTCVideoEventHandler::onLocalAudioStateChanged(
LocalAudioStreamState state,
LocalAudioStreamError error)
本地音频的状态发生改变时,该回调通知当前的本地音频状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | LocalAudioStreamState | 本地音频设备的状态,详见: LocalAudioStreamState |
| error | LocalAudioStreamError | 本地音频状态改变时的错误码,详见:LocalAudioStreamError |
virtual void bytertc::IRTCVideoEventHandler::onUserStartAudioCapture(
const char* room_id,
const char* user_id)
房间内的用户调用 startAudioCapture 开启音频采集时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 开启音频采集的远端用户所在的房间 ID |
| user_id | const char* | 开启音频采集的远端用户 ID |
virtual void bytertc::IRTCVideoEventHandler::onUserStopAudioCapture(
const char* room_id,
const char* user_id)
房间内的用户调用 stopAudioCapture 关闭音频采集时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 关闭音频采集的远端用户所在的房间 ID |
| user_id | const char* | 关闭音频采集的远端用户 ID |
virtual void bytertc::IRTCVideoEventHandler::onActiveSpeaker(
const char* room_id,
const char* uid)
调用 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)
音频流同步信息回调。可以通过此回调,在远端用户调用 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)
通话前网络探测结果。
成功调用 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)
通话前网络探测结束
以下情况将停止探测并收到本一次本回调:
1. 当调用 stopNetworkDetection 接口停止探测后,会收到一次该回调;
2. 当收到远端/本端音频首帧后,停止探测;
3. 当探测超过3分钟后,停止探测;
4. 当探测链路断开一定时间之后,停止探测。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| reason | NetworkDetectionStopReason | 停止探测的原因类型,参考 NetworkDetectionStopReason |
virtual void bytertc::IRTCVideoEventHandler::onPlayPublicStreamResult(
const char* public_stream_id,
int errorCode)
订阅公共流的结果回调
通过 startPlayPublicStream 订阅公共流后,可以通过本回调获取订阅结果。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| public_stream_id | const char* | 公共流的 ID |
| errorCode | int | 公共流订阅结果状态码。200: 订阅成功 |
virtual void bytertc::IRTCVideoEventHandler::onPublicStreamSEIMessageReceived(
const char* public_stream_id,
const uint8_t* message,
int message_length)
回调公共流中包含的 SEI 信息
通过 startPlayPublicStream 开始播放公共流后,可以通过本回调获取公共流中包含的 SEI 信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| public_stream_id | const char* | 公共流 ID |
| message | const uint8_t* | SEI 信息 |
| message_length | int | SEI 信息的长度 |
注意 当公共流中的多路视频流均包含有 SEI 信息时:SEI 不互相冲突时,将通过多次回调分别发送; SEI 在同一帧有冲突时,则只有一条流中的 SEI 信息被透传并融合到公共流中。
virtual void bytertc::IRTCVideoEventHandler::onFirstPublicStreamVideoFrameDecoded(
const char* public_stream_id,
const VideoFrameInfo& info)
公共流的首帧视频解码成功
关于订阅公共流,详见 startPlayPublicStream。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| public_stream_id | const char* | 公共流 ID |
| info | const VideoFrameInfo& | 视频帧信息。详见 VideoFrameInfo。 |
virtual void bytertc::IRTCVideoEventHandler::onUserStartVideoCapture(
const char* room_id,
const char* user_id)
房间内的可见用户调用 startVideoCapture 开启内部视频采集时,房间内其他用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 开启视频采集的远端用户所在的房间 ID |
| user_id | const char* | 开启视频采集的远端用户 ID |
virtual void bytertc::IRTCVideoEventHandler::onUserStopVideoCapture(
const char* room_id,
const char* user_id)
房间内的可见用户调用 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)
本地视频大小或旋转配置发生改变时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 流属性。参看 StreamIndex。 |
| info | const VideoFrameInfo& | 视频帧信息。参看 VideoFrameInfo。 |
virtual void bytertc::IRTCVideoEventHandler::onRemoteVideoSizeChanged(
RemoteStreamKey key,
const VideoFrameInfo& info)
远端视频大小或旋转配置发生改变时,房间内订阅此视频流的用户会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | RemoteStreamKey | 远端流信息。参看 RemoteStreamKey。 |
| info | const VideoFrameInfo& | 视频帧信息。参看 VideoFrameInfo。 |
virtual void bytertc::IRTCVideoEventHandler::onFirstLocalVideoFrameCaptured(
StreamIndex index,
VideoFrameInfo info)
RTC SDK 在本地完成第一帧视频帧或屏幕视频帧采集时,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 流属性。参看 StreamIndex。 |
| info | VideoFrameInfo | 视频信息。参看 VideoFrameInfo。 |
注意 对于采集到的本地视频帧,你可以调用 setLocalVideoCanvas 或 setLocalVideoSink 在本地渲染。
virtual void bytertc::IRTCVideoEventHandler::onFirstRemoteAudioFrame(
const RemoteStreamKey& key)
接收到来自远端某音频流的第一帧时,收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | const RemoteStreamKey& | 远端音频流信息, 详见 RemoteStreamKey |
注意 用户刚收到房间内每一路音频流时,都会收到该回调。
virtual void bytertc::IRTCVideoEventHandler::onRemoteAudioStateChanged(
const RemoteStreamKey& key,
RemoteAudioState state,
RemoteAudioStateChangeReason reason)
用户订阅来自远端的音频流状态发生改变时,会收到此回调,了解当前的远端音频流状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | const RemoteStreamKey& | 远端流信息, 参看 RemoteStreamKey |
| state | RemoteAudioState | 远端音频流状态,参看 RemoteAudioState |
| reason | RemoteAudioStateChangeReason | 远端音频流状态改变的原因,参看 RemoteAudioStateChangeReason |
virtual void bytertc::IRTCVideoEventHandler::onLocalVideoStateChanged(
StreamIndex index,
LocalVideoStreamState state,
LocalVideoStreamError error)
本地视频流的状态发生改变时,收到该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 音/视频属性,参看 StreamIndex |
| state | LocalVideoStreamState | 本地视频流状态,参看 LocalVideoStreamState |
| error | LocalVideoStreamError | 本地视频状态改变时的错误码,参看 LocalVideoStreamError |
virtual void bytertc::IRTCVideoEventHandler::onRemoteVideoStateChanged(
RemoteStreamKey key,
RemoteVideoState state,
RemoteVideoStateChangeReason reason)
远端视频流的状态发生改变时,房间内订阅此流的用户会收到该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | RemoteStreamKey | 远端视频流的信息,房间、用户 ID、流属性等。参看 RemoteStreamKey。 |
| state | RemoteVideoState | 远端视频流状态,参看 RemoteVideoState。 |
| reason | RemoteVideoStateChangeReason | 远端视频流状态改变的原因,参看 RemoteVideoStateChangeReason。 |
virtual void bytertc::IRTCVideoEventHandler::onAudioFrameSendStateChanged(
const char* room_id,
const RtcUser& user,
FirstFrameSendState state)
音频首帧发送状态改变回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 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)
视频首帧发送状态改变回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 视频发布用户所在的房间 ID |
| user | const RtcUser& | 本地用户信息,详见 RtcUser |
| state | FirstFrameSendState | 首帧发送状态,详见 FirstFrameSendState |
virtual void bytertc::IRTCVideoEventHandler::onFirstRemoteVideoFrameRendered(
const RemoteStreamKey key,
const VideoFrameInfo& info)
SDK 内部渲染成功远端视频流首帧后,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | const RemoteStreamKey | 远端流信息。参看 RemoteStreamKey。 |
| info | const VideoFrameInfo& | 视频帧信息。参看 VideoFrameInfo。 |
virtual void bytertc::IRTCVideoEventHandler::onFirstRemoteVideoFrameDecoded(
const RemoteStreamKey key,
const VideoFrameInfo& info)
SDK 接收并解码远端视频流首帧后,收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | const RemoteStreamKey | 远端流信息。参看 RemoteStreamKey。 |
| info | const VideoFrameInfo& | 视频帧信息。参看 VideoFrameInfo。 |
virtual void bytertc::IRTCVideoEventHandler::onScreenVideoFrameSendStateChanged(
const char* room_id,
const RtcUser& user,
FirstFrameSendState state)
屏幕共享流视频首帧发送状态改变回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 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)
音频首帧播放状态改变回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 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)
视频首帧播放状态改变回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 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)
屏幕共享流视频首帧播放状态改变回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 首帧播放状态发生改变的流所在的房间 ID |
| user | const RtcUser& | 远端用户信息,详见 RtcUser |
| state | FirstFramePlayState | 首帧播放状态,详见 FirstFramePlayState |
virtual void bytertc::IRTCVideoEventHandler::onFirstLocalAudioFrame(
StreamIndex index)
本地采集到第一帧音频帧时,收到该回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 音频流属性, 参看 StreamIndex |
virtual void bytertc::IRTCVideoEventHandler::onPushPublicStreamResult(
const char* room_id,
const char* public_streamid,
int errorCode)
公共流发布结果回调。
调用 startPushPublicStream 接口发布公共流后,启动结果通过此回调方法通知用户。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 流的发布房间的 ID |
| public_streamid | const char* | 公共流 ID |
| errorCode | int | 公共流发布结果状态码。200: 发布成功 |
virtual void bytertc::IRTCVideoEventHandler::onFirstPublicStreamAudioFrame(
const char* public_stream_id)
公共流的音频首帧解码成功
关于订阅公共流,详见 startPlayPublicStream。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| public_stream_id | const char* | 公共流 ID |
virtual void bytertc::IRTCVideoEventHandler::onCloudProxyConnected(
int interval)
调用 startCloudProxy 开启云代理,SDK 首次成功连接云代理服务器时,回调此事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| interval | int | 从开启云代理到连接成功经过的时间,单位为 ms |
virtual void bytertc::IRTCVideoEventHandler::onEchoTestResult(
EchoTestResult result)
关于音视频回路测试结果的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| result | EchoTestResult | 测试结果,参看 EchoTestResult |
注意 该回调触发的时机包括: + 检测过程中采集设备发生错误时;
class bytertc::IAudioFrameObserver
音频数据回调观察者
Defined in : bytertc_audio_frame.h
| 返回 | 名称 |
|---|---|
| virtual void | onRecordAudioFrame |
| virtual void | onPlaybackAudioFrame |
| virtual void | onRemoteUserAudioFrame |
| virtual void | onMixedAudioFrame |
| virtual void | onRecordScreenAudioFrame |
virtual void bytertc::IAudioFrameObserver::onRecordAudioFrame(
const IAudioFrame& audio_frame)
返回麦克风录制的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_frame | const IAudioFrame& | 音频数据, 详见:IAudioFrame |
virtual void bytertc::IAudioFrameObserver::onPlaybackAudioFrame(
const IAudioFrame& audio_frame)
返回订阅的所有远端用户混音后的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_frame | const IAudioFrame& | 音频数据, 详见:IAudioFrame |
virtual void bytertc::IAudioFrameObserver::onRemoteUserAudioFrame(
const RemoteStreamKey& stream_info,
const IAudioFrame& audio_frame)
返回远端单个用户的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_info | const RemoteStreamKey& | 远端流信息,参看 RemoteStreamKey。 |
| audio_frame | const IAudioFrame& | 音频数据, 参看 IAudioFrame。 |
注意 此回调在播放线程调用。不要在此回调中做任何耗时的事情,否则可能会影响整个音频播放链路。
virtual void bytertc::IAudioFrameObserver::onMixedAudioFrame(
const IAudioFrame& audio_frame)
返回本地麦克风录制和订阅的所有远端用户混音后的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_frame | const IAudioFrame& | 音频数据, 详见:IAudioFrame |
virtual void bytertc::IAudioFrameObserver::onRecordScreenAudioFrame(
const IAudioFrame& audio_frame)
返回本地屏幕录制的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_frame | const IAudioFrame& | 音频数据, 详见:IAudioFrame |
class bytertc::IAudioFrameProcessor
自定义音频处理器
Defined in : bytertc_audio_frame.h
| 返回 | 名称 |
|---|---|
| virtual int | onProcessRecordAudioFrame |
| virtual int | onProcessPlayBackAudioFrame |
| virtual int | onProcessRemoteUserAudioFrame |
virtual int bytertc::IAudioFrameProcessor::onProcessRecordAudioFrame(
IAudioFrame& audioFrame)
回调本地采集的音频帧地址,供自定义音频处理。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | IAudioFrame& | 音频帧地址,参看 IAudioFrame |
注意
enableAudioProcessor,并在参数中选择本地采集的音频时,收到此回调。
virtual int bytertc::IAudioFrameProcessor::onProcessPlayBackAudioFrame(
IAudioFrame& audioFrame)
回调远端音频混音的音频帧地址,供自定义音频处理。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | IAudioFrame& | 音频帧地址,参看 IAudioFrame |
注意
调用 enableAudioProcessor,并在参数中选择远端音频流的的混音音频时,收到此回调。
virtual int bytertc::IAudioFrameProcessor::onProcessRemoteUserAudioFrame(
const RemoteStreamKey& stream_info,
IAudioFrame& audioFrame)
回调单个远端用户的音频帧地址,供自定义音频处理。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_info | const RemoteStreamKey& | 音频流信息,参看 RemoteStreamKey |
| audioFrame | IAudioFrame& | 音频帧地址,参看 IAudioFrame |
注意
调用 enableAudioProcessor,并在参数中选择各个远端音频流时,收到此回调。
class bytertc::IEncryptHandler
加密/解密处理函数
Defined in : bytertc_common_defines.h
| 返回 | 名称 |
|---|---|
| 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)
自定义加密。
使用设定的自定义加密方式,对传输前的音视频帧数据进行加密。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| 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)
自定义解密。
对自定义加密后的音视频帧数据进行解密。关于自定义加密,参看 onEncryptData。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| data | const unsigned char* | 原始音视频帧数据 |
| length | unsigned int | 原始音视频帧数据的长度 |
| buf | unsigned char* | 可供写入的加密后数据缓冲区 |
| buf_len | unsigned int | 可供写入的加密后数据缓冲区大小 |
返回值 加密后的数据
注意
setCustomizeEncryptHandler。class bytertc::IRangeAudioObserver
范围语音衰减系数监测器
Defined in : bytertc_range_audio_interface.h
| 返回 | 名称 |
|---|---|
| virtual void | onRangeAudioInfo |
virtual void bytertc::IRangeAudioObserver::onRangeAudioInfo(
const RangeAudioInfo* range_audio_info,
int len)
关于当前范围语音衰减系数的回调。
手动订阅的场景下,房间内任一用户调用 updatePosition 更新自身位置或调用 updateReceiveRange 更新语音接收范围时,该用户与房间内其他用户的相对距离都会发生改变,据此计算的衰减系数也会发生改变,并通过该回调通知用户。
你可以通过关注该回调中包含的远端用户的衰减系数决定是否订阅该远端用户的流。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| range_audio_info | const RangeAudioInfo* | 包含范围语音流信息的数组,参看 RangeAudioInfo |
| len | int | 范围语音流信息数组长度 |
注意 更新自身位置或语音接收范围后,并不会马上触发该回调。SDK 会每 500 ms 计算一次衰减系数,并且只在计算结果与上次不同,或结果相同但是距离上次计算已超过 3 秒的时候推送回调。
class bytertc::ITranscoderObserver
推流 Observer
Defined in : bytertc_transcoder_interface.h
| 返回 | 名称 |
|---|---|
| virtual void | onStreamMixingEvent |
| virtual void | onStreamMixingVideoFrame |
| virtual void | onStreamMixingAudioFrame |
| virtual void | onStreamMixingDataFrame |
virtual void bytertc::ITranscoderObserver::onStreamMixingEvent(
StreamMixingEvent event,
const char* task_id,
StreamMixingErrorCode error,
StreamMixingType mix_type)
转推直播状态回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| event | StreamMixingEvent | 转推直播任务状态,参看 StreamMixingEvent |
| task_id | const char* | 转推直播任务 ID |
| error | StreamMixingErrorCode | 转推直播错误码,参看 TransCodingError。 |
| mix_type | StreamMixingType | 转推直播类型,参看 StreamMixingType |
virtual void bytertc::ITranscoderObserver::onStreamMixingVideoFrame(
const char* task_id,
IVideoFrame* video_frame)
合流视频回调,运行在视频回调线程
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| task_id | const char* | 合流任务 ID |
| video_frame | IVideoFrame* | 视频帧,参看 IVideoFrame。 |
注意 收到该回调的周期与视频的帧间隔一致。
virtual void bytertc::ITranscoderObserver::onStreamMixingAudioFrame(
const char* task_id,
IAudioFrame* audio_frame)
合流音频回调,运行在音频回调线程
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| task_id | const char* | 转推直播任务 ID |
| audio_frame | IAudioFrame* | 音频帧,参看 IAudioFrame。 |
注意 收到该回调的周期为每 10 毫秒一次,并且每次的音频数据量为 10 毫秒数据量。
virtual void bytertc::ITranscoderObserver::onStreamMixingDataFrame(
const char* task_id,
IDataFrame* data_frame)
视频 SEI 帧回调,运行在视频回调线程
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| task_id | const char* | 转推直播任务 ID |
| data_frame | IDataFrame* | SEI 数据 |
class bytertc::IExternalVideoEncoderEventHandler
自定义编码帧回调类
Defined in : bytertc_video_defines.h
| 返回 | 名称 |
|---|---|
| virtual void | onStart |
| virtual void | onStop |
| virtual void | onRateUpdate |
| virtual void | onRequestKeyFrame |
virtual void bytertc::IExternalVideoEncoderEventHandler::onStart(
StreamIndex index)
提示自定义编码帧可以开始推送的回调。
收到该回调后,你即可调用 pushExternalEncodedVideoFrame 向 SDK 推送自定义编码视频帧
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 可以推送的编码流的属性,参看 StreamIndex |
virtual void bytertc::IExternalVideoEncoderEventHandler::onStop(
StreamIndex index)
当收到该回调时,你需停止向 SDK 推送自定义编码视频帧
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 需停止推送的编码流的属性,参看 StreamIndex |
virtual void bytertc::IExternalVideoEncoderEventHandler::onRateUpdate(
StreamIndex index,
int32_t video_index,
VideoRateInfo info)
当自定义编码流的帧率或码率发生变化时,触发该回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 发生变化的编码流的属性,参看 StreamIndex |
| video_index | int32_t | 对应编码流的下标 |
| info | VideoRateInfo | 变化后的编码流信息,参看 VideoRateInfo |
virtual void bytertc::IExternalVideoEncoderEventHandler::onRequestKeyFrame(
StreamIndex index,
int32_t video_index)
提示流发布端需重新生成关键帧的回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 远端编码流的属性,参看 StreamIndex |
| video_index | int32_t | 对应编码流的下标 |
class bytertc::ILocalEncodedVideoFrameObserver
本地视频帧监测器
Defined in : bytertc_video_defines.h
| 返回 | 名称 |
|---|---|
| virtual void | onLocalEncodedVideoFrame |
virtual void bytertc::ILocalEncodedVideoFrameObserver::onLocalEncodedVideoFrame(
StreamIndex type,
const IEncodedVideoFrame& video_stream)
调用 registerLocalEncodedVideoFrameObserver 后,SDK 每次使用内部采集,采集到一帧视频帧,或收到一帧外部视频帧时,都会回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | StreamIndex | 本地视频帧类型,参看 StreamIndex |
| video_stream | const IEncodedVideoFrame& | 本地视频帧信息,参看 IEncodedVideoFrame |
class bytertc::IRemoteEncodedVideoFrameObserver
远端编码后视频数据监测器
Defined in : bytertc_video_defines.h
| 返回 | 名称 |
|---|---|
| virtual void | onRemoteEncodedVideoFrame |
virtual void bytertc::IRemoteEncodedVideoFrameObserver::onRemoteEncodedVideoFrame(
const RemoteStreamKey& stream_info,
const IEncodedVideoFrame& video_stream)
调用 registerRemoteEncodedVideoFrameObserver 后,SDK 监测到远端编码后视频数据时,触发该回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_info | const RemoteStreamKey& | 收到的远端流信息,参看 RemoteStreamKey |
| video_stream | const IEncodedVideoFrame& | 收到的远端视频帧信息,参看 IEncodedVideoFrame |
class bytertc::IVideoFrameObserver
视频数据回调观察者
Defined in : bytertc_video_defines.h
| 返回 | 名称 |
|---|---|
| virtual bool | onLocalScreenFrame |
| virtual bool | onLocalVideoFrame |
| virtual bool | onRemoteScreenFrame |
| virtual bool | onRemoteVideoFrame |
virtual bool bytertc::IVideoFrameObserver::onLocalScreenFrame(
IVideoFrame* videoFrame)
获取采集成功的本地屏幕视频帧,用于自定义处理或渲染。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoFrame | IVideoFrame* | 视频数据,参看 IVideoFrame。 |
virtual bool bytertc::IVideoFrameObserver::onLocalVideoFrame(
IVideoFrame* videoFrame)
获取采集成功的本地摄像头流视频帧,用于自定义处理或渲染。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoFrame | IVideoFrame* | 视频数据,参看 IVideoFrame。 |
virtual bool bytertc::IVideoFrameObserver::onRemoteScreenFrame(
const char* roomid,
const char* uid,
IVideoFrame* videoFrame)
获取采集成功的远端屏幕视频帧,用于自定义处理或渲染。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomid | const char* | 房间 ID。 |
| uid | const char* | 远端用户 ID。 |
| videoFrame | IVideoFrame* | 视频数据,参看 IVideoFrame。 |
virtual bool bytertc::IVideoFrameObserver::onRemoteVideoFrame(
const char* roomid,
const char* uid,
IVideoFrame* videoFrame)
获取采集成功的远端摄像头流视频帧,用于自定义处理或渲染。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomid | const char* | 房间 ID。 |
| uid | const char* | 远端用户 ID。 |
| videoFrame | IVideoFrame* | 视频数据,参看 IVideoFrame。 |
class bytertc::IFaceDetectionObserver
人脸检测结果回调观察者
Defined in : bytertc_video_effect_interface.h
| 返回 | 名称 |
|---|---|
| virtual void | onFaceDetectResult |
virtual void bytertc::IFaceDetectionObserver::onFaceDetectResult(
const FaceDetectResult& result)
特效 SDK 进行人脸检测结果的回调。
调用 registerFaceDetectionObserver 注册了 IFaceDetectionObserver,并使用 RTC SDK 中包含的特效 SDK 进行视频特效处理时,你会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| result | const FaceDetectResult& | 人脸检测结果, 参看 FaceDetectResult。 |
class streamingrtc::IStreamingRTCEventHandler
串流引擎事件回调接口。
调用 CreateStreamingRTCEngine 创建 IStreamingRTCEngine 实例时,传入该回调实例。
Defined in : streaming_rtc_engine_event_handler.h
| 返回 | 名称 |
|---|---|
| virtual void | OnLogReport |
| virtual void | OnWarning |
| virtual void | OnError |
| virtual void | OnP2PConnectionStateChanged |
| virtual void | OnP2PConnectionStats |
| virtual void | OnP2PLocalStreamStats |
| virtual void | OnP2PRemoteStreamStats |
| virtual void | OnP2PMessageSendResult |
| virtual void | OnP2PMessageReceived |
| virtual void | OnP2PBinaryMessageReceived |
| virtual bool | OnP2PRemoteVideoFrame |
| virtual bool | OnP2PRemoteEncodedVideoFrame |
| virtual void | OnP2PLocalExternalEncoderStart |
| virtual void | OnP2PLocalExternalEncoderStop |
| virtual void | OnP2PSuggestLocalExternalEncoderRateUpdate |
| virtual void | OnP2PRequestLocalExternalEncoderKeyFrame |
virtual void streamingrtc::IStreamingRTCEventHandler::OnLogReport(
const char* log_type,
const char* log_content)
端监控日志回调。当产生一个端监控事件时触发该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| log_type | const char* | 事件类型。目前类型固定为 live_webrtc_monitor_log。 |
| log_content | const char* | 端监控日志内容。 |
virtual void streamingrtc::IStreamingRTCEventHandler::OnWarning(
int code)
当内部发生警告事件时触发该回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | int | 警告标识码,详见:WarningCode |
virtual void streamingrtc::IStreamingRTCEventHandler::OnError(
int code)
当 SDK 内部发生不可逆转错误时触发该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | int | 错误标识码,参看 ErrorCode |
virtual void streamingrtc::IStreamingRTCEventHandler::OnP2PConnectionStateChanged(
ConnectionState state)
串流引擎连接状态改变回调。连接状态改变时触发。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | ConnectionState | 当前 SDK 与对端的连接状态,详见 ConnectionState |
virtual void streamingrtc::IStreamingRTCEventHandler::OnP2PConnectionStats(
const ConnectionStats& stats)
P2P 通话统计信息回调。
串流引擎启动后,每 2s 收到一次本回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const ConnectionStats& | 当前 StreamingRtcEngine 统计数据,详见 ConnectionStatsRtcRoomStats |
virtual void streamingrtc::IStreamingRTCEventHandler::OnP2PLocalStreamStats(
const LocalStreamStats& stats)
串流引擎启动后,每隔 2s 收到此回调,了解本端发布的流在此周期内的网络质量信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const LocalStreamStats& | 当前 StreamingRtcEngine 统计数据,详见 LocalStreamStats |
virtual void streamingrtc::IStreamingRTCEventHandler::OnP2PRemoteStreamStats(
const RemoteStreamStats& stats)
每隔 2s 收到此回调,了解远端用户发布的流在此周期内的网络质量信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const RemoteStreamStats& | 当前 StreamingRtcEngine 统计数据,详见 RemoteStreamStats |
virtual void streamingrtc::IStreamingRTCEventHandler::OnP2PMessageSendResult(
int64_t msg_id,
int error)
调用 SendP2PMessage 或 SendP2PBinaryMessage ,向远端用户发送文本或二进制消息后,消息发送方会收到本次发送的结果回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| msg_id | int64_t | 本条消息的 ID。 |
| error | int | 错误码 0: 成功 102: 失败,未建立连接 |
virtual void streamingrtc::IStreamingRTCEventHandler::OnP2PMessageReceived(
const char* message)
收到远端用户发来的文本消息时,会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| message | const char* | 收到的文本消息内容。 |
注意 关于发送点对点消息,参看 SendP2PMessage 。
virtual void streamingrtc::IStreamingRTCEventHandler::OnP2PBinaryMessageReceived(
const uint8_t* message,
int size)
收到远端用户发来的二进制消息时,会收到此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| message | const uint8_t* | 收到的二进制消息内容。 |
| size | int | 收到的二进制消息内容的大小,单位为 byte. |
注意 关于发送二进制点对点消息,参看 SendP2PBinaryMessage 。
virtual bool streamingrtc::IStreamingRTCEventHandler::OnP2PRemoteVideoFrame(
IVideoFrame* video_frame,
streamingrtc::StreamIndex stream_index)
获取远端用户发送的视频帧。
关于推送视频帧,参看 PushVideoFrame
关于推送已编码的视频流,参看 PushEncodedVideoFrame
关于编码设置,参看 SetVideoDecoderConfig
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| video_frame | IVideoFrame* | 视频数据,参看 IVideoFrame |
| stream_index | streamingrtc::StreamIndex | 视频流序号 参看 StreamIndex |
返回值
True:成功 False:失败
virtual bool streamingrtc::IStreamingRTCEventHandler::OnP2PRemoteEncodedVideoFrame(
const IEncodedVideoFrame& encoded_video_frame,
streamingrtc::StreamIndex stream_index)
获取远端用户解码前的视频数据。获取数据后传入自定义解码器进行解码。
关于推送视频帧,参看 PushVideoFrame
关于推送已编码的视频流,参看 PushEncodedVideoFrame
关于编码设置,参看 SetVideoDecoderConfig
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| encoded_video_frame | const IEncodedVideoFrame& | 解码前的视频数据,参看 IEncodedVideoFrame |
| stream_index | streamingrtc::StreamIndex | 视频流序号 参看 StreamIndex |
返回值
True:成功False:失败
virtual void streamingrtc::IStreamingRTCEventHandler::OnP2PLocalExternalEncoderStart(
streamingrtc::StreamIndex stream_index)
提醒外部视频编码器开始工作。
关于编码设置,参看 SetVideoSourceType
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_index | streamingrtc::StreamIndex | 视频流序号 参看 StreamIndex |
virtual void streamingrtc::IStreamingRTCEventHandler::OnP2PLocalExternalEncoderStop(
streamingrtc::StreamIndex stream_index)
提醒外部视频编码器停止工作。
关于编码设置,参看 SetVideoSourceType
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_index | streamingrtc::StreamIndex | 视频流序号 参看 StreamIndex |
virtual void streamingrtc::IStreamingRTCEventHandler::OnP2PSuggestLocalExternalEncoderRateUpdate(
streamingrtc::StreamIndex stream_index,
int32_t video_index,
VideoRateInfo info)
提醒外部视频编码器调整编码码率。
关于编码设置,参看 SetVideoSourceType
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_index | streamingrtc::StreamIndex | 视频流序号。 参看 StreamIndex |
| video_index | int32_t | video solution 序号。 参看 VideoSolution |
| info | VideoRateInfo | 建议调整的码率信息。 参看 VideoRateInfo |
virtual void streamingrtc::IStreamingRTCEventHandler::OnP2PRequestLocalExternalEncoderKeyFrame(
streamingrtc::StreamIndex stream_index,
int32_t video_index)
提醒外部视频编码器发送关键帧。
关于编码设置,参看 SetVideoSourceType
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_index | streamingrtc::StreamIndex | 视频流序号。 参看 StreamIndex |
| video_index | int32_t | video solution 序号。 参看 VideoSolution |