class bytertc::IRemoteEncodedVideoFrameObserver
cpp
远端编码后视频数据监测器
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
返回 | 名称 |
---|---|
virtual void | onRemoteEncodedVideoFrame |
virtual void bytertc::IRemoteEncodedVideoFrameObserver::onRemoteEncodedVideoFrame(
const RemoteStreamKey &stream_info,
const IEncodedVideoFrame &video_stream
)=0
cpp
调用 registerRemoteEncodedVideoFrameObserver 后,SDK 监测到远端编码后视频数据时,触发该回调
传入参数
参数名 | 类型 | 说明 |
---|---|---|
stream_info | const RemoteStreamKey & | 收到的远端流信息,参看 RemoteStreamKey |
video_stream | const IEncodedVideoFrame & | 收到的远端视频帧信息,参看 IEncodedVideoFrame |
class bytertc::IAudioEffectPlayerEventHandler
cpp
IAudioEffectPlayer 对应的回调句柄。你必须调用 setEventHandler 完成设置后,才能收到对应回调。
返回 | 名称 |
---|---|
virtual | ~IAudioEffectPlayerEventHandler |
virtual void | onAudioEffectPlayerStateChanged |
virtual bytertc::IAudioEffectPlayerEventHandler::~IAudioEffectPlayerEventHandler()
cpp
virtual void bytertc::IAudioEffectPlayerEventHandler::onAudioEffectPlayerStateChanged(
int effect_id,
PlayerState state,
PlayerError error
)=0
cpp
播放状态改变时回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
effect_id | int | IAudioEffectPlayer 的 ID。通过 getAudioEffectPlayer 设置。 |
state | PlayerState | 混音状态。参考 PlayerState。 |
error | PlayerError | 错误码。参考 PlayerError。 |
class bytertc::IEncryptHandler
cpp
加密/解密处理函数
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
返回 | 名称 |
---|---|
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
)=0
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
)=0
cpp
自定义解密。
对自定义加密后的音视频帧数据进行解密。关于自定义加密,参看 onEncryptData。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
data | const unsigned char * | 原始音视频帧数据 |
length | unsigned int | 原始音视频帧数据的长度 |
buf | unsigned char * | 可供写入的加密后数据缓冲区 |
buf_len | unsigned int | 可供写入的加密后数据缓冲区大小 |
返回值
加密后的数据
注意
setCustomizeEncryptHandler
。class bytertc::IMixedStreamObserver
cpp
合流推流 Observer
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
返回 | 名称 |
---|---|
virtual bool | isSupportClientPushStream |
virtual void | onMixingVideoFrame |
virtual void | onMixingAudioFrame |
virtual void | onMixingDataFrame |
virtual bool bytertc::IMixedStreamObserver::isSupportClientPushStream()=0
cpp
是否具有推流能力。
注意
virtual void bytertc::IMixedStreamObserver::onMixingVideoFrame(
const char* task_id,
IVideoFrame* video_frame
)=0
cpp
合流视频回调,运行在视频回调线程
传入参数
参数名 | 类型 | 说明 |
---|---|---|
task_id | const char * | 合流任务 ID |
video_frame | IVideoFrame * | 视频帧,参看 IVideoFrame。 |
注意
收到该回调的周期与视频的帧间隔一致。
virtual void bytertc::IMixedStreamObserver::onMixingAudioFrame(
const char* task_id,
IAudioFrame* audio_frame
)=0
cpp
合流音频回调,运行在音频回调线程
传入参数
参数名 | 类型 | 说明 |
---|---|---|
task_id | const char * | 转推直播任务 ID |
audio_frame | IAudioFrame * | 音频帧,参看 IAudioFrame。 |
注意
收到该回调的周期为每 10 毫秒一次,并且每次的音频数据量为 10 毫秒数据量。
virtual void bytertc::IMixedStreamObserver::onMixingDataFrame(
const char* task_id,
IDataFrame* data_frame
)=0
cpp
视频 SEI 帧回调,运行在视频回调线程
传入参数
参数名 | 类型 | 说明 |
---|---|---|
task_id | const char * | 转推直播任务 ID |
data_frame | IDataFrame * | SEI 数据 |
class bytertc::IRTCRoomEventHandler
cpp
音视频房间事件回调接口
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
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 | 房间状态码。
|
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::onTokenWillExpire()
cpp
当 SDK 检测到 Token 的进房权限将在 30 秒内过期时,触发该回调。
收到该回调后,你需调用 updateToken 更新 Token 进房权限。
注意
若未能及时更新 Token 进房权限导致其过期实效:
-1000
Token 过期;-1009
Token 过期,同时远端用户会收到 onUserLeave 回调,提示原因为 2
Token 进房权限过期。virtual void bytertc::IRTCRoomEventHandler::onPublishPrivilegeTokenWillExpire()
cpp
Token 发布权限过期前 30 秒将触发该回调。
收到该回调后,你需调用 updateToken 更新 Token 发布权限。
注意
若收到该回调后未及时更新 Token,Token 发布权限过期后:
-1002
没有发布权限;-1002
没有发布权限,同时远端用户会收到 onUserUnpublishStream/ onUserUnpublishScreen 回调,提示原因为 6
发流端发布权限过期。virtual void bytertc::IRTCRoomEventHandler::onSubscribePrivilegeTokenWillExpire()
cpp
Token 订阅权限过期前 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
远端可见用户加入房间,或房内不可见用户切换为可见的回调。
远端用户调用 setUserVisibility 方法将自身设为可见后加入房间时,房间内其他用户将收到该事件。
远端可见用户断网后重新连入房间时,房间内其他用户将收到该事件。
房间内隐身远端用户调用 setUserVisibility 方法切换至可见时,房间内其他用户将收到该事件。
新进房用户会收到进房前已在房内的可见用户的进房回调通知。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
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。
|
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 | 视频流发送状态
|
注意
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 | 音频流发送状态
|
注意
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 &local_quality,
const NetworkQualityStats* remote_qualities,
int remote_quality_num
)
cpp
加入房间并发布或订阅流后, 以每 2 秒一次的频率,报告本地用户和已订阅的远端用户的上下行网络质量信息。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
local_quality | const NetworkQualityStats & | 本端网络质量,详见 NetworkQualityStats。 |
remote_qualities | const NetworkQualityStats * | 已订阅用户的网络质量,详见 NetworkQualityStats。 |
remote_quality_num | int | remoteQualities 数组长度 |
注意
更多通话中的监测接口,详见通话中质量监测。
virtual void bytertc::IRTCRoomEventHandler::onSetRoomExtraInfoResult(
int64_t task_id,
SetRoomExtraInfoResult error_code
)
cpp
Available since 3.52.
调用 setRoomExtraInfo 设置房间附加信息结果的回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
task_id | int64_t | 调用 setRoomExtraInfo 的任务编号。 |
error_code | SetRoomExtraInfoResult | 设置房间附加信息的结果,详见 SetRoomExtraInfoResult |
virtual void bytertc::IRTCRoomEventHandler::onRoomExtraInfoUpdate(
const char* key,
const char* value,
const char* last_update_user_id,
int64_t last_update_time_ms
)
cpp
Available since 3.52.
接收同一房间内,其他用户调用 setRoomExtraInfo 设置的房间附加信息的回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
key | const char * | 房间附加信息的键值 |
value | const char * | 房间附加信息的内容 |
last_update_user_id | const char * | 最后更新本条信息的用户 ID。 |
last_update_time_ms | int64_t | 最后更新本条信息的 Unix 时间,单位:毫秒。 |
注意
新进房的用户会收到进房前房间内已有的全部附加信息通知。
virtual void bytertc::IRTCRoomEventHandler::onUserVisibilityChanged(
bool current_user_visibility,
UserVisibilityChangeError error_code
)
cpp
Available since 3.54
用户调用 setUserVisibility 设置用户可见性的回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
current_user_visibility | bool | 当前用户的可见性。
|
error_code | UserVisibilityChangeError | 设置用户可见性错误码,参看 UserVisibilityChangeError。 |
virtual void bytertc::IRTCRoomEventHandler::onSubtitleStateChanged(
SubtitleState state,
SubtitleErrorCode error_code,
const char* error_message
)
cpp
字幕状态发生改变回调。
当用户调用 startSubtitle 和 stopSubtitle 使字幕状态发生改变或出现错误时,触发该回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
state | SubtitleState | 字幕状态。参看 SubtitleState。 |
error_code | SubtitleErrorCode | 字幕任务错误码。参看 SubtitleErrorCode。 |
error_message | const char * | 与第三方服务有关的错误信息。 |
virtual void bytertc::IRTCRoomEventHandler::onSubtitleMessageReceived(
const SubtitleMessage* subtitles,
int cnt
)
cpp
字幕相关内容回调。
当用户调用 startSubtitle 后会收到此回调,通知字幕的相关信息。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
subtitles | const SubtitleMessage * | 字幕消息内容。参看 SubtitleMessage。 |
cnt | int | 字幕消息个数。 |
virtual void bytertc::IRTCRoomEventHandler::onRoomWarning(int warn)
cpp
Deprecated 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)
cpp
Deprecated 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::onStreamRemove(
const MediaStreamInfo &stream,
StreamRemoveReason reason
)
cpp
Deprecated 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)
cpp
Deprecated since 3.36 and will be deleted in 3.51, use onUserPublishStream and onUserPublishScreen instead.
房间内的用户发布新的音视频流时,房间内的其他用户会收到此回调。包括移除后又重新发布的流。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
stream | const MediaStreamInfo & | 流属性,参看 MediaStreamInfo 。 |
class bytertc::IExternalVideoEncoderEventHandler
cpp
自定义编码帧回调类
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
返回 | 名称 |
---|---|
virtual void | onStart |
virtual void | onStop |
virtual void | onRateUpdate |
virtual void | onRequestKeyFrame |
virtual void | onActiveVideoLayer |
virtual void bytertc::IExternalVideoEncoderEventHandler::onStart(StreamIndex index)=0
cpp
提示自定义编码帧可以开始推送的回调。
收到该回调后,你即可调用 pushExternalEncodedVideoFrame 向 SDK 推送自定义编码视频帧
传入参数
参数名 | 类型 | 说明 |
---|---|---|
index | StreamIndex | 可以推送的编码流的属性,参看 StreamIndex |
virtual void bytertc::IExternalVideoEncoderEventHandler::onStop(StreamIndex index)=0
cpp
当收到该回调时,你需停止向 SDK 推送自定义编码视频帧
传入参数
参数名 | 类型 | 说明 |
---|---|---|
index | StreamIndex | 需停止推送的编码流的属性,参看 StreamIndex |
virtual void bytertc::IExternalVideoEncoderEventHandler::onRateUpdate(
StreamIndex index,
int32_t video_index,
VideoRateInfo info
)=0
cpp
当自定义编码流的帧率或码率发生变化时,触发该回调
传入参数
参数名 | 类型 | 说明 |
---|---|---|
index | StreamIndex | 发生变化的编码流的属性,参看 StreamIndex |
video_index | int32_t | 对应编码流的下标 |
info | VideoRateInfo | 变化后的编码流信息,参看 VideoRateInfo |
virtual void bytertc::IExternalVideoEncoderEventHandler::onRequestKeyFrame(
StreamIndex index,
int32_t video_index
)=0
cpp
提示流发布端需重新生成关键帧的回调
传入参数
参数名 | 类型 | 说明 |
---|---|---|
index | StreamIndex | 远端编码流的属性,参看 StreamIndex |
video_index | int32_t | 对应编码流的下标 |
virtual void bytertc::IExternalVideoEncoderEventHandler::onActiveVideoLayer(
StreamIndex index,
int32_t video_index,
bool active
)=0
cpp
Available since 3.56
作为自定义编码视频流的发送端,你会在视频流可发送状态发生变化时,收到此回调。
你可以根据此回调的提示,仅对可发送的视频流进行编码,以降低本端视频编码性能消耗。此回调会根据多个因素综合判断触发,包括:本端设备性能和本端网络性能,以及按需订阅场景下,远端用户是否订阅。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
index | StreamIndex | 远端编码流的属性,参看 StreamIndex。 |
video_index | int32_t | 对应编码流的下标 |
active | bool | 该路流可发送状态 |
注意
要收到此回调,必须调用 setVideoSourceType 设置视频源是自定义编码,且通过 setExternalVideoEncoderEventHandler 设置了回调句柄。
class bytertc::IMediaPlayerAudioFrameObserver
cpp
本地音频文件混音的音频帧观察者。
返回 | 名称 |
---|---|
virtual void | onFrame |
virtual void bytertc::IMediaPlayerAudioFrameObserver::onFrame(
int player_id,
const IAudioFrame &frame
)=0
cpp
当本地音频文件混音时,回调播放的音频帧。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player_id | int | 播放器 ID |
frame | const IAudioFrame & | 参看 IAudioFrame。 |
class bytertc::IMetadataObserver
cpp
Deprecated since 3.26 and will be deleted in 3.51, use sendSEIMessage instead.
metadata 观察者,可以接收媒体流中的 metadata, 或者向媒体流中添加 metadata
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
返回 | 名称 |
---|---|
virtual bool | onReadyToSendMetadata |
virtual void | onMetadataReceived |
virtual bool bytertc::IMetadataObserver::onReadyToSendMetadata(VideoMetadataBuffer* metadata)=0
cpp
当 SDK 准备发送一个视频帧时,会回调该事件,以确定是否需要在该视频帧中添加 metadata。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
metadata | VideoMetadataBuffer * | 待发送的数据,把数据拷贝到 data 字段中,并将 size 设置为真实的大小。 |
返回值
注意
virtual void bytertc::IMetadataObserver::onMetadataReceived(
const char* roomid,
const char* uid,
const VideoMetadataBuffer &metadata
)=0
cpp
当 SDK 收到一个视频帧时,并且其中包含 medatada 时,会回调该事件。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
roomid | const char * | 当前帧所属的房间 ID。 |
uid | const char * | 当前帧所属的用户 ID。 |
metadata | const VideoMetadataBuffer & | 视频帧中包含的 metadata 信息。参看 VideoMetadataBuffer。 |
注意
回调中不能有耗时操作,以免影响视频卡顿。
class bytertc::IMediaPlayerCustomSourceProvider
cpp
内存播放数据源回调
返回 | 名称 |
---|---|
virtual int | onReadData |
virtual int64_t | onSeek |
virtual | ~IMediaPlayerCustomSourceProvider |
virtual int bytertc::IMediaPlayerCustomSourceProvider::onReadData(
uint8_t* buffer,
int buffer_size
)=0
cpp
Available since 3.53
调用 openWithCustomSource 接口播放用户传入的内存音频数据时,会触发此回调,用户需要写入音频数据。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
buffer | uint8_t * | 内存地址。在该地址中写入音频数据,写入音频数据的大小不超过 bufferSize 中填入的数值。支持的音频数据格式有: mp3,aac,m4a,3gp,wav。 |
buffer_size | int | 音频数据大小,单位为字节。如果你想停止播放内存音频数据,可在 bufferSize 中填入小于或等于 0 的数,此时 SDK 会停止调用此接口。 |
返回值
返回实际读取的音频数据大小。
注意
若 openWithCustomSource 接口调用失败,请在 buffer 和 bufferSize 两个参数中填入 0。 此时 SDK 会停止调用此接口。
virtual int64_t bytertc::IMediaPlayerCustomSourceProvider::onSeek(
int64_t offset,
MediaPlayerCustomSourceSeekWhence whence
)=0
cpp
Available since 3.53
根据设置好的内存音频数据的读取位置和读取偏移量对音频数据进行偏移,以便 SDK 读取和分析音频数据。
在调用 openWithCustomSource 接口传入内存音频数据,或者调用 setPosition 设置了音频数据的起始播放位置后,SDK 会对音频数据进行读取和分析,此时会触发该回调,你需要根据参数中设置的起始读取位置和偏移量进行操作。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
offset | int64_t | 音频数据读取偏移量,单位为字节,取值可正可负。 |
whence | MediaPlayerCustomSourceSeekWhence | 音频数据的起始读取位置。参看 MediaPlayerCustomSourceSeekWhence |
返回值
定位成功,返回偏移后的位置信息,或返回音频数据的大小。
定位失败,返回 -1。
virtual bytertc::IMediaPlayerCustomSourceProvider::~IMediaPlayerCustomSourceProvider()
cpp
class bytertc::IAudioFrameObserver
cpp
音频数据回调观察者
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
本接口类中的单个回调的数据量为 20 ms 的数据量。回调周期在 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)=0
cpp
返回麦克风录制的音频数据
传入参数
参数名 | 类型 | 说明 |
---|---|---|
audio_frame | const IAudioFrame & | 音频数据, 详见: IAudioFrame |
virtual void bytertc::IAudioFrameObserver::onPlaybackAudioFrame(const IAudioFrame &audio_frame)=0
cpp
返回订阅的所有远端用户混音后的音频数据。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
audio_frame | const IAudioFrame & | 音频数据, 详见: IAudioFrame |
virtual void bytertc::IAudioFrameObserver::onRemoteUserAudioFrame(
const RemoteStreamKey &stream_info,
const IAudioFrame &audio_frame
)=0
cpp
返回远端单个用户的音频数据
传入参数
参数名 | 类型 | 说明 |
---|---|---|
stream_info | const RemoteStreamKey & | 远端流信息,参看 RemoteStreamKey。 |
audio_frame | const IAudioFrame & | 音频数据, 参看 IAudioFrame。 |
注意
此回调在播放线程调用。不要在此回调中做任何耗时的事情,否则可能会影响整个音频播放链路。
virtual void bytertc::IAudioFrameObserver::onMixedAudioFrame(const IAudioFrame &audio_frame)=0
cpp
返回本地麦克风录制和订阅的所有远端用户混音后的音频数据
传入参数
参数名 | 类型 | 说明 |
---|---|---|
audio_frame | const IAudioFrame & | 音频数据, 详见: IAudioFrame |
virtual void bytertc::IAudioFrameObserver::onRecordScreenAudioFrame(const IAudioFrame &audio_frame)
cpp
返回本地屏幕录制的音频数据
传入参数
参数名 | 类型 | 说明 |
---|---|---|
audio_frame | const IAudioFrame & | 音频数据, 详见: IAudioFrame |
class bytertc::ITranscoderObserver
cpp
Deprecated since 3.52, use IMixedStreamObserver instead.
推流 Observer
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
返回 | 名称 |
---|---|
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
)=0
cpp
合流视频回调,运行在视频回调线程
传入参数
参数名 | 类型 | 说明 |
---|---|---|
task_id | const char * | 合流任务 ID |
video_frame | IVideoFrame * | 视频帧,参看 IVideoFrame。 |
注意
收到该回调的周期与视频的帧间隔一致。
virtual void bytertc::ITranscoderObserver::onMixingAudioFrame(
const char* task_id,
IAudioFrame* audio_frame
)=0
cpp
合流音频回调,运行在音频回调线程
传入参数
参数名 | 类型 | 说明 |
---|---|---|
task_id | const char * | 转推直播任务 ID |
audio_frame | IAudioFrame * | 音频帧,参看 IAudioFrame。 |
注意
收到该回调的周期为每 10 毫秒一次,并且每次的音频数据量为 10 毫秒数据量。
virtual void bytertc::ITranscoderObserver::onMixingDataFrame(
const char* task_id,
IDataFrame* data_frame
)=0
cpp
视频 SEI 帧回调,运行在视频回调线程
传入参数
参数名 | 类型 | 说明 |
---|---|---|
task_id | const char * | 转推直播任务 ID |
data_frame | IDataFrame * | SEI 数据 |
class bytertc::IMediaPlayerEventHandler
cpp
IMediaPlayer 对应的回调句柄。你必须调用 setEventHandler 完成设置后,才能收到对应回调。
返回 | 名称 |
---|---|
virtual | ~IMediaPlayerEventHandler |
virtual void | onMediaPlayerStateChanged |
virtual void | onMediaPlayerPlayingProgress |
virtual bytertc::IMediaPlayerEventHandler::~IMediaPlayerEventHandler()
cpp
virtual void bytertc::IMediaPlayerEventHandler::onMediaPlayerStateChanged(
int player_id,
PlayerState state,
PlayerError error
)=0
cpp
播放状态改变时回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player_id | int | IMediaPlayer 的 ID。通过 getMediaPlayer 设置。 |
state | PlayerState | 混音状态。参考 PlayerState。 |
error | PlayerError | 错误码。参考 PlayerError。 |
virtual void bytertc::IMediaPlayerEventHandler::onMediaPlayerPlayingProgress(
int player_id,
int64_t progress
)=0
cpp
播放进度周期性回调。回调周期通过 setProgressInterval 设置。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
player_id | int | IMediaPlayer 的 ID。通过 getMediaPlayer 设置。 |
progress | int64_t | 进度。单位 ms。 |
class bytertc::IRemoteAudioFrameObserver
cpp
Deprecated since 3.37 and will be deleted in 3.51.
音频数据回调观察者
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
返回 | 名称 |
---|---|
virtual void | onRemoteAudioFrame |
virtual void bytertc::IRemoteAudioFrameObserver::onRemoteAudioFrame(
const IAudioFrame &audio_frame,
const RemoteStreamKey &stream_info
)=0
cpp
获得单个流的音频数据,此回调通过调用 registerAudioFrameObserver 触发。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
audio_frame | const IAudioFrame & | 音频数据, 详见: IAudioFrame |
stream_info | const RemoteStreamKey & | 该音频流的业务信息, 详见: RemoteStreamKey |
class bytertc::IAudioFrameProcessor
cpp
自定义音频处理器。
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
返回 | 名称 |
---|---|
virtual int | onProcessRecordAudioFrame |
virtual int | onProcessPlayBackAudioFrame |
virtual int | onProcessRemoteUserAudioFrame |
virtual int | onProcessScreenAudioFrame |
virtual int bytertc::IAudioFrameProcessor::onProcessRecordAudioFrame(IAudioFrame &audio_frame)=0
cpp
回调本地采集的音频帧地址,供自定义音频处理。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
audio_frame | IAudioFrame & | 音频帧地址,参看 IAudioFrame |
注意
enableAudioProcessor
,并在参数中选择本地采集的音频时,每 10 ms 收到此回调。virtual int bytertc::IAudioFrameProcessor::onProcessPlayBackAudioFrame(IAudioFrame &audio_frame)=0
cpp
回调远端音频混音的音频帧地址,供自定义音频处理。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
audio_frame | IAudioFrame & | 音频帧地址,参看 IAudioFrame |
注意
调用 enableAudioProcessor
,并在参数中选择远端音频流的的混音音频时,每 10 ms 收到此回调。
virtual int bytertc::IAudioFrameProcessor::onProcessRemoteUserAudioFrame(
const RemoteStreamKey &stream_info,
IAudioFrame &audio_frame
)=0
cpp
回调单个远端用户的音频帧地址,供自定义音频处理。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
stream_info | const RemoteStreamKey & | 音频流信息,参看 RemoteStreamKey |
audio_frame | IAudioFrame & | 音频帧地址,参看 IAudioFrame |
注意
调用 enableAudioProcessor
,并在参数中选择各个远端音频流时,每 10 ms 收到此回调。
virtual int bytertc::IAudioFrameProcessor::onProcessScreenAudioFrame(IAudioFrame &audio_frame)=0
cpp
屏幕共享的音频帧地址回调。你可根据此回调自定义处理音频。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
audio_frame | IAudioFrame & | 音频帧地址,参看 IAudioFrame。 |
注意
调用 enableAudioProcessor
,把返回给音频处理器的音频类型设置为屏幕共享音频后,每 10 ms 收到此回调。
class bytertc::IRTCVideoEventHandler
cpp
音视频引擎事件回调接口
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
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::onDeadLockError(const DeadLockMsg &msg)
cpp
Available since 3.57
当内部线程发生 block 时,将收到此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
msg | const DeadLockMsg & | block 线程的线程名和 block 检测次数。参看 DeadLockMsg{#DeadLockMsg}。 |
virtual void bytertc::IRTCVideoEventHandler::onExtensionAccessError(
const char* extension_name,
const char* msg
)
cpp
Available since 3.52
当访问插件失败时,收到此回调。
RTC SDK 将一些功能封装成插件。当使用这些功能时,如果插件不存在,功能将无法使用。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
extension_name | const char * | 插件名字 |
msg | const char * | 失败说明 |
virtual void bytertc::IRTCVideoEventHandler::onAudioMixingPlayingProgress(
int mix_id,
int64_t progress
)
cpp
Deprecated since 3.54 and will be deleted in 3.60, use onMediaPlayerPlayingProgress instead.
混音音频文件播放进度回调
传入参数
参数名 | 类型 | 说明 |
---|---|---|
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)
cpp
SDK 与信令服务器连接状态改变回调。连接状态改变时触发。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
state | bytertc::ConnectionState | 当前 SDK 与信令服务器的连接状态,详见 ConnectionState。 |
注意
更多信息参见 连接状态提示。
virtual void bytertc::IRTCVideoEventHandler::onNetworkTypeChanged(bytertc::NetworkType type)
cpp
SDK 当前网络连接类型改变回调。当 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
本地未通过 setPublishFallbackOption 开启发布性能回退,检测到设备性能不足时,收到此回调。
本地通过 setPublishFallbackOption 开启发布性能回退,因设备性能/网络原因,造成发布性能回退/恢复时,收到此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
mode | bytertc::PerformanceAlarmMode | 指示本地是否开启发布回退功能。参看 PerformanceAlarmMode
|
room_id | const char * |
|
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
)
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::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::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(LogoutReason reason)
cpp
登出结果回调
传入参数
参数名 | 类型 | 说明 |
---|---|---|
reason | LogoutReason | 用户登出的原因,参看 LogoutReason |
注意
在以下两种情况下会收到此回调:调用 logout 接口主动退出;或其他用户以相同 UserId 进行 login
导致本地用户被动登出。
virtual void bytertc::IRTCVideoEventHandler::onServerParamsSetResult(int error)
cpp
设置应用服务器参数的返回结果
传入参数
参数名 | 类型 | 说明 |
---|---|---|
error | int | 设置结果
|
注意
调用 setServerParams 后,会收到此回调。
virtual void bytertc::IRTCVideoEventHandler::onGetPeerOnlineStatus(
const char* peer_user_id,
int status
)
cpp
查询对端或本端用户登录状态的返回结果
传入参数
参数名 | 类型 | 说明 |
---|---|---|
peer_user_id | const char * | 需要查询的用户 ID |
status | int | 查询的用户登录状态 详见 UserOnlineStatus. |
注意
必须先调用 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 | const bytertc::ServerACKMsg & | 应用服务器收到 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]。
|
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 | 音频设备测试播放音量。取值范围:[0,255] |
注意
调用 startAudioPlaybackDeviceTest 或 Windows SDK 中的 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
)
cpp
本地音频流的状态发生改变时,收到此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
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 接口开始探测后,将在 3 秒内收到首次网络探测回调。上行和下行网络,将分别通过不同回调通知,每个回调的周期为 2 秒。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
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
通话前网络探测结束
以下情况将停止探测并收到本一次本回调:
当调用 stopNetworkDetection 接口停止探测后,会收到一次该回调;
当收到远端/本端音频首帧后,停止探测;
当探测超过 3 分钟后,停止探测;
当探测链路断开一定时间之后,停止探测。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
reason | NetworkDetectionStopReason | 停止探测的原因类型,参考 NetworkDetectionStopReason |
virtual void bytertc::IRTCVideoEventHandler::onPlayPublicStreamResult(
const char* public_stream_id,
PublicStreamErrorCode error_code
)
cpp
订阅公共流的结果回调
通过 startPlayPublicStream 订阅公共流后,可以通过本回调获取订阅结果。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
public_stream_id | const char * | 公共流的 ID |
error_code | PublicStreamErrorCode | 公共流订阅结果状态码。详见 PublicStreamErrorCode。 |
virtual void bytertc::IRTCVideoEventHandler::onPublicStreamSEIMessageReceived(
const char* public_stream_id,
const uint8_t* message,
int message_length,
DataMessageSourceType source_type
)
cpp
回调公共流中包含的 SEI 信息。
调用 startPlayPublicStream 接口启动拉公共流功能后,通过此回调收到公共流中的 SEI 消息。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
public_stream_id | const char * | 公共流 ID。 |
message | const uint8_t * | 收到的 SEI 消息内容。 通过调用客户端 sendSEIMessage 插入的 SEI 信息。当公共流中的多路视频流均包含有 SEI 信息:SEI 不互相冲突时,将通过多次回调分别发送;SEI 在同一帧有冲突时,则只有一条流中的 SEI 信息被透传并融合到公共流中。 |
message_length | int | SEI 信息的长度。 |
source_type | DataMessageSourceType | SEI 消息类型,自 3.52.1 版本后固定为 0 ,自定义消息。参看 DataMessageSourceType。 |
注意
通过 Open API 插入的自定义信息,应通过回调 onPublicStreamDataMessageReceived 获取。
virtual void bytertc::IRTCVideoEventHandler::onPublicStreamDataMessageReceived(
const char* public_stream_id,
const uint8_t* message,
int message_length,
DataMessageSourceType source_type
)
cpp
Available since 3.52
回调公共流中包含的数据信息。
通过 startPlayPublicStream 订阅公共流后,通过监听本回调获取公共流中的数据消息,包括调用 Open API 发送的 SEI 消息和音量回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
public_stream_id | const char * | 公共流 ID |
message | const uint8_t * | 收到的数据消息内容,如下:
|
message_length | int | 消息的长度 |
source_type | DataMessageSourceType | 数据消息来源,参看 DataMessageSourceType。 |
注意
通过调用客户端 API 插入的 SEI 信息,应通过回调 onPublicStreamSEIMessageReceived 获取。
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
)
cpp
RTC SDK 在本地完成第一帧视频帧或屏幕视频帧采集时,收到此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
index | StreamIndex | 流属性。参看 StreamIndex。 |
info | VideoFrameInfo | 视频信息。参看 VideoFrameInfo。 |
注意
对于采集到的本地视频帧,你可以调用 setLocalVideoCanvas 或 setLocalVideoSink 在本地渲染。
virtual void bytertc::IRTCVideoEventHandler::onFirstRemoteAudioFrame(const RemoteStreamKey &key)
cpp
接收到来自远端某音频流的第一帧时,收到该回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
key | const RemoteStreamKey & | 远端音频流信息, 详见 RemoteStreamKey |
注意
用户刚收到房间内每一路音频流时,都会收到该回调。
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
)
cpp
本地视频流的状态发生改变时,收到该事件。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
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
)
cpp
SDK 内部渲染成功远端视频流首帧后,收到此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
key | const RemoteStreamKey | 远端流信息。参看 RemoteStreamKey。 |
info | const VideoFrameInfo & | 视频帧信息。参看 VideoFrameInfo。 |
virtual void bytertc::IRTCVideoEventHandler::onFirstRemoteVideoFrameDecoded(
const RemoteStreamKey key,
const VideoFrameInfo &info
)
cpp
SDK 接收并解码远端视频流首帧后,收到此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
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 error_code
)
cpp
公共流发布结果回调。
调用 startPushPublicStream 接口发布公共流后,启动结果通过此回调方法通知用户。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
room_id | const char * | 公共流的发布房间的 ID |
public_streamid | const char * | 公共流 ID |
error_code | 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::onLocalProxyStateChanged(
LocalProxyType local_proxy_type,
LocalProxyState local_proxy_state,
LocalProxyError local_proxy_error
)
cpp
本地代理状态发生改变回调。调用 setLocalProxy 设置本地代理后,SDK 会触发此回调,返回代理连接的状态。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
local_proxy_type | LocalProxyType | 本地代理类型。参看 LocalProxyType。 |
local_proxy_state | LocalProxyState | 本地代理状态。参看 LocalProxyState。 |
local_proxy_error | LocalProxyError | 本地代理错误。参看 LocalProxyError。 |
virtual void bytertc::IRTCVideoEventHandler::onAudioMixingStateChanged(
int mix_id,
bytertc::AudioMixingState state,
bytertc::AudioMixingError error
)
cpp
Deprecated since 353. Use IMediaPlayerEventHandler and IAudioEffectPlayerEventHandler instead.
音频混音文件播放状态改变时回调
传入参数
参数名 | 类型 | 说明 |
---|---|---|
mix_id | int | 混音 ID 使用 IAudioMixingManager 相关接口时传入的唯一 ID。 |
state | bytertc::AudioMixingState | 混音状态 其混音状态可参考: AudioMixingState。 |
error | bytertc::AudioMixingError | 错误码 详见 AudioMixingError |
注意
此回调会被触发的时机汇总如下:
virtual void bytertc::IRTCVideoEventHandler::onMediaDeviceStateChanged(
const char* device_id,
bytertc::MediaDeviceType device_type,
bytertc::MediaDeviceState device_state,
bytertc::MediaDeviceError device_error
)
cpp
Deprecated 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::onMediaDeviceWarning(
const char* device_id,
bytertc::MediaDeviceType device_type,
bytertc::MediaDeviceWarning device_warning
)
cpp
Deprecated 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::onHttpProxyState(int state)
cpp
Deprecated since 3.52, will be deleted at 3.57, use onLocalProxyStateChanged instead
HTTP 代理连接状态改变时,收到该回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
state | int | 当前 HTTP 代理连接状态,详见 HttpProxyState |
virtual void bytertc::IRTCVideoEventHandler::onHttpsProxyState(int state)
cpp
Deprecated since 3.52, will be deleted at 3.57, use onLocalProxyStateChanged instead
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
)
cpp
Deprecated since 3.52, will be deleted at 3.57, use onLocalProxyStateChanged instead
SOCKS5 代理状态改变时,收到该回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
state | int | SOCKS5 代理连接状态 |
cmd | const char * | 代理连接的每一步操作命令 |
proxy_address | const char * | 代理地址信息 |
local_address | const char * | 当前连接使用的本地地址 |
remote_address | const char * | 远端的连接地址 |
virtual void bytertc::IRTCVideoEventHandler::onUserMuteAudio(
const char* room_id,
const char* user_id,
MuteState mute_state
)
cpp
Deprecated since 3.36 and will be deleted in 3.51, use onUserPublishStream, onUserPublishScreen, onUserUnpublishStream and onUserUnpublishScreen instead.
房间内用户暂停/恢复发送音频流时,房间内其他用户会收到此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
room_id | const char * | 房间 ID。 |
user_id | const char * | 改变本地音频发送状态的用户 ID |
mute_state | MuteState | 发送状态,参看 MuteState |
virtual void bytertc::IRTCVideoEventHandler::onUserMuteVideo(
const char* room_id,
const char* uid,
MuteState mute
)
cpp
Deprecated since 3.36 and will be deleted in 3.51, use onUserPublishStream, onUserPublishScreen, onUserUnpublishStream and onUserUnpublishScreen instead.
房间内用户暂停/恢复发送视频流时,房间内其他用户会收到此回调。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
room_id | const char * | 房间 ID |
uid | const char * | 暂停/恢复发送视频流的用户 ID。 |
mute | MuteState | 视频流的发送状态。参看 MuteState。 |
class bytertc::ILocalEncodedVideoFrameObserver
cpp
本地视频帧监测器
注意:回调函数是在 SDK 内部线程(非 UI 线程)同步抛出来的,请不要做耗时操作或直接操作 UI,否则可能导致 app 崩溃。
返回 | 名称 |
---|---|
virtual void | onLocalEncodedVideoFrame |
virtual void bytertc::ILocalEncodedVideoFrameObserver::onLocalEncodedVideoFrame(
StreamIndex type,
const IEncodedVideoFrame &video_stream
)=0
cpp
调用 registerLocalEncodedVideoFrameObserver 后,SDK 每次使用内部采集,采集到一帧视频帧,或收到一帧外部视频帧时,都会回调该事件。
传入参数
参数名 | 类型 | 说明 |
---|---|---|
type | StreamIndex | 本地视频帧类型,参看 StreamIndex |
video_stream | const IEncodedVideoFrame & | 本地视频帧信息,参看 IEncodedVideoFrame |