IMetadataObserver

class bytertc::IMetadataObserver

metadata 观察者,可以接收媒体流中的 metadata, 或者向媒体流中添加 metadata

Defined in : byte_rtc_engine_lite_interface.h

成员函数

返回 名称
virtual bool OnReadyToSendMetadata
virtual void OnMetadataReceived

函数说明

OnReadyToSendMetadata

virtual bool bytertc::IMetadataObserver::OnReadyToSendMetadata(
    ByteMetadataBuffer* metadata)

当 SDK 准备发送一个视频帧时,会回调该接口,以确定是否需要在该视频帧中添加 metadata

传入参数

参数名 类型 说明
metadata ByteMetadataBuffer* 待发送的数据,把数据拷贝到 data 字段中,并将 size 设置为真实的大小。

返回值

注意

OnMetadataReceived

virtual void bytertc::IMetadataObserver::OnMetadataReceived(
    const char* roomid,
    const char* uid,
    const ByteMetadataBuffer& metadata)

当 SDK 收到一个视频帧时,并且其中包含 medatada 时,会回调该接口

传入参数

参数名 类型 说明
roomid const char* 当前帧所属的房间ID
uid const char* 当前帧所属的用户ID
metadata const ByteMetadataBuffer& 详见 ByteMetadataBuffer

注意

回调中不能有耗时操作,以免影响视频卡顿

IAudioDeviceObserver

class bytertc::IAudioDeviceObserver

音频外部设备事件监听,只用于自定义音频采集渲染的情况 SDK内部需要控制外部设备时,通过这个事件监听类通知上层应用

Defined in : byte_rtc_engine_lite_interface.h

成员函数

返回 名称
virtual void OnAudioDeviceRecordStart
virtual void OnAudioDeviceRecordStop
virtual void OnAudioDevicePlayoutStart
virtual void OnAudioDevicePlayoutStop

函数说明

OnAudioDeviceRecordStart

virtual void bytertc::IAudioDeviceObserver::OnAudioDeviceRecordStart()

通知上层应用开启音频采集设备

OnAudioDeviceRecordStop

virtual void bytertc::IAudioDeviceObserver::OnAudioDeviceRecordStop()

通知上层应用关闭音频采集设备

OnAudioDevicePlayoutStart

virtual void bytertc::IAudioDeviceObserver::OnAudioDevicePlayoutStart()

通知上层应用开启音频播放设备

OnAudioDevicePlayoutStop

virtual void bytertc::IAudioDeviceObserver::OnAudioDevicePlayoutStop()

通知上层应用关闭音频播放设备

IAudioFrameObserver

class bytertc::IAudioFrameObserver

音频数据回调观察者

Defined in : byte_rtc_engine_lite_interface.h

成员函数

返回 名称
virtual void OnRecordAudioFrame
virtual void OnPlaybackAudioFrame
virtual void OnMixedAudioFrame

函数说明

OnRecordAudioFrame

virtual void bytertc::IAudioFrameObserver::OnRecordAudioFrame(
    const AudioFrame& audio_frame)

返回麦克风录制的音频数据

传入参数

参数名 类型 说明
audio_frame const AudioFrame& 麦克风录制的音频数据, 详见:AudioFrame

OnPlaybackAudioFrame

virtual void bytertc::IAudioFrameObserver::OnPlaybackAudioFrame(
    const AudioFrame& audio_frame)

返回远端所有用户混音后的音频数据

传入参数

参数名 类型 说明
audio_frame const AudioFrame& 远端所有用户混音后的音频数据, 详见:AudioFrame

OnMixedAudioFrame

virtual void bytertc::IAudioFrameObserver::OnMixedAudioFrame(
    const AudioFrame& audio_frame)

返回本地麦克风录制和远端所有用户混音后的音频数据

传入参数

参数名 类型 说明
audio_frame const AudioFrame& 本地麦克风录制和远端所有用户混音后的音频数据, 详见:AudioFrame

IVideoFrameObserver

class bytertc::IVideoFrameObserver

视频数据回调对象

Defined in : byte_rtc_engine_lite_interface.h

成员函数

返回 名称
virtual bool OnLocalScreenFrame
virtual bool OnLocalVideoFrame
virtual bool OnRemoteScreenFrame
virtual bool OnRemoteVideoFrame

函数说明

OnLocalScreenFrame

virtual bool bytertc::IVideoFrameObserver::OnLocalScreenFrame(
    IByteVideoFrame* videoFrame)

本地屏幕共享流数据回调

传入参数

参数名 类型 说明
videoFrame IByteVideoFrame* 视频数据,详见:IByteVideoFrame

返回值

true: SDK 不处理返回值 false: SDK 不处理返回值

OnLocalVideoFrame

virtual bool bytertc::IVideoFrameObserver::OnLocalVideoFrame(
    IByteVideoFrame* videoFrame)

本地视频流数据回调

传入参数

参数名 类型 说明
videoFrame IByteVideoFrame* 视频数据,详见:IByteVideoFrame

返回值

true: SDK 不处理返回值 false: SDK 不处理返回值

OnRemoteScreenFrame

virtual bool bytertc::IVideoFrameObserver::OnRemoteScreenFrame(
    const char* roomid,
    const char* uid,
    IByteVideoFrame* videoFrame)

远端屏幕共享流数据回调

传入参数

参数名 类型 说明
roomid const char* 房间 id
uid const char* 远端用户ID
videoFrame IByteVideoFrame* 视频数据,详见:IByteVideoFrame

返回值

true: SDK 不处理返回值 false: SDK 不处理返回值

OnRemoteVideoFrame

virtual bool bytertc::IVideoFrameObserver::OnRemoteVideoFrame(
    const char* roomid,
    const char* uid,
    IByteVideoFrame* videoFrame)

远端视频数据回调

传入参数

参数名 类型 说明
roomid const char* 房间 id
uid const char* 远端用户ID
videoFrame IByteVideoFrame* 视频数据,详见 IByteVideoFrame}

返回值

true: SDK 不处理返回值 false: SDK 不处理返回值

IRemoteAudioFrameObserver

class bytertc::IRemoteAudioFrameObserver

音频数据回调观察者

Defined in : byte_rtc_engine_lite_interface.h

成员函数

返回 名称
virtual void OnRemoteAudioFrame

函数说明

OnRemoteAudioFrame

virtual void bytertc::IRemoteAudioFrameObserver::OnRemoteAudioFrame(
    const IByteAudioFrame& audio_frame,
    const ByteStreamInfo& stream_info)

获得单个流的音频数据

传入参数

参数名 类型 说明
audio_frame const IByteAudioFrame& 音频数据, 详见:IByteAudioFrame
stream_info const ByteStreamInfo& 该音频流的业务信息, 详见:ByteStreamInfo

IByteEngineEncryptHandler

class bytertc::IByteEngineEncryptHandler

加密/解密处理函数

Defined in : byte_rtc_engine_defines.h

成员函数

返回 名称
virtual unsigned int OnEncryptData
virtual unsigned int OnDecryptData

函数说明

OnEncryptData

virtual unsigned int bytertc::IByteEngineEncryptHandler::OnEncryptData(
    const unsigned char* data,
    unsigned int length,
    unsigned char* buf,
    unsigned int buf_len)

自定义加密的方法接口
通过继承并实现该方法,可以扩展传输过程中的加密方法,详见 SetCustomizeEncryptHandler

传入参数

参数名 类型 说明
data const unsigned char* 原始音视频帧数据
length unsigned int 原始音视频帧数据的长度
buf unsigned char* 可供写入的加密后数据缓冲区
buf_len unsigned int buf_len 数据缓冲区的大小

返回值

加密后实际写入缓冲区的数据大小,0表示丢弃该帧

注意

返回的数据大小应控制在原始数据的90%~120%范围以内,不然将被丢弃

OnDecryptData

virtual unsigned int bytertc::IByteEngineEncryptHandler::OnDecryptData(
    const unsigned char* data,
    unsigned int length,
    unsigned char* buf,
    unsigned int buf_len)

自定义解密的方法接口
通过继承并实现该方法,可以扩展传输过程中的解密方法,详见 SetCustomizeEncryptHandler

传入参数

参数名 类型 说明
data const unsigned char* 加密过的音视频帧数据
length unsigned int 加密过的音视频帧数据的长度
buf unsigned char* 可供写入的解密后数据缓冲区
buf_len unsigned int 数据缓冲区的大小

返回值

解密后实际写入缓冲区的数据大小,0表示丢弃该帧

注意

返回的数据大小应控制在原始数据的90%~120%范围以内,不然将被丢弃

IVideoSink

class bytertc::IVideoSink

视频数据回调接口

Defined in : byte_rtc_engine_defines.h

成员函数

返回 名称
virtual void OnStart
virtual bool OnFrame
virtual void OnStop
virtual void Release

函数说明

OnStart

virtual void bytertc::IVideoSink::OnStart()

启动渲染器。

注意

在开启渲染功能的时候会回调这个方法。开发者可以在这个方法中启动渲染器。

OnFrame

virtual bool bytertc::IVideoSink::OnFrame(
    IByteVideoFrame* videoFrame)

视频帧回调

传入参数

参数名 类型 说明
IByteVideoFrame **** 视频帧结构类,详见IByteVideoFrame

返回值

返回值暂未使用

OnStop

virtual void bytertc::IVideoSink::OnStop()

停止渲染器。

注意

在停止渲染功能的时候会回调这个方法。开发者可以在这个方法中停止渲染。

Release

virtual void bytertc::IVideoSink::Release()

释放渲染器。

注意

通知开发者渲染器即将被废弃。在Release()返回之后,开发者就可以释放掉资源了。

IRTCRoomEventHandler

class bytertc::IRTCRoomEventHandler

音视频房间事件回调接口

Defined in : byte_rtc_room_event_handler_interface.h

成员函数

返回 名称
virtual void OnJoinChannelSuccess
virtual void OnRejoinChannelSuccess
virtual void OnLeaveChannel
virtual void OnChannelWarning
virtual void OnChannelError
virtual void OnAudioQuality
virtual void OnAudioVolumeIndication
virtual void OnRtcStats
virtual void OnNetworkQuality
virtual void OnUserJoined
virtual void OnUserOffline
virtual void OnMuteAllRemoteAudio
virtual void OnMuteAllRemoteVideo
virtual void OnUserMuteAudio
virtual void OnUserEnableLocalAudio
virtual void OnLocalAudioStats
virtual void OnRemoteAudioStats
virtual void OnFirstLocalAudioFrame
virtual void OnFirstRemoteAudioFrame
virtual void OnStreamRemove
virtual void OnStreamAdd
virtual void OnRemoteStreamSwitch
virtual void OnRoomMessageReceived
virtual void OnRoomBinaryMessageReceived
virtual void OnUserMessageReceived
virtual void OnUserBinaryMessageReceived
virtual void OnUserMessageSendResult
virtual void OnRoomMessageSendResult
virtual void OnFirstLocalVideoFrameCaptured
virtual void OnLocalVideoSizeChanged
virtual void OnRemoteVideoSizeChanged
virtual void OnFirstRemoteVideoFrameRendered
virtual void OnUserMuteVideo
virtual void OnUserEnableLocalVideo
virtual void OnLocalVideoStats
virtual void OnRemoteVideoStats
virtual void OnLocalAudioStateChanged
virtual void OnRemoteAudioStateChanged
virtual void OnLocalVideoStateChanged
virtual void OnRemoteVideoStateChanged
virtual void OnAudioFrameSendStateChanged
virtual void OnVideoFrameSendStateChanged
virtual void OnScreenVideoFrameSendStateChanged
virtual void OnAudioFramePlayStateChanged
virtual void OnVideoFramePlayStateChanged
virtual void OnScreenVideoFramePlayStateChanged

函数说明

OnJoinChannelSuccess

virtual void bytertc::IRTCRoomEventHandler::OnJoinChannelSuccess(
    const char* room_id,
    const char* uid,
    int elapsed)

加入房间成功回调。此回调事件表示本地用户成功加入了指定的房间。
用户调用 JoinChannel 方法加入房间,首次加入房间成功后 SDK 通过此回调事件通知用户加入房间成功。此回调事件在用户调用 JoinChannel 方法加入房间到用户调用 LeaveChannel 方法离开房间期间至多回调一次。

传入参数

参数名 类型 说明
room_id const char* 房间ID 。本地用户加入的房间的房间 ID 。
uid const char* 用户ID 。本地用户的用户ID 。
elapsed int 加入房间耗时。本地用户从调用 JoinChannel 方法到加入房间成功所经历的时间间隔,单位为 ms 。

OnRejoinChannelSuccess

virtual void bytertc::IRTCRoomEventHandler::OnRejoinChannelSuccess(
    const char* room_id,
    const char* uid,
    int elapsed)

重新加入房间成功回调。此回调事件表示本地用户成功重连入房间。
本地用户加入房间成功后,在本地网络状况不佳的情况下,SDK 可能会与服务器失去连接。此时 SDK 将会自动重连,并在重连成功通过此回调事件通知用户重连成功。

传入参数

参数名 类型 说明
room_id const char* 房间 ID 。本地用户加入的房间的房间 ID 。
uid const char* 用户ID 。本地用户的用户ID 。
elapsed int 重连耗时。本地用户从连接断开到重连成功所经历的时间间隔,单位为 ms 。

OnLeaveChannel

virtual void bytertc::IRTCRoomEventHandler::OnLeaveChannel(
    const RtcStats& stats)

离开房间成功回调。
用户调用 LeaveChannel 方法后,SDK 会停止所有的发布订阅流,并释放所有通话相关的音视频资源。SDK 完成所有的资源释放后通过此回调通知用户。
离开房间结束通话后,如果 App 需要使用系统音视频设备,则建议在收到此回调后再初始化音视频设备,否则可能由于 SDK 占用了导致 App 初始化音视频设备失败。

传入参数

参数名 类型 说明
stats const RtcStats& 本次通话的统计数据,详见数据结构 RtcStats 。

注意

OnChannelWarning

virtual void bytertc::IRTCRoomEventHandler::OnChannelWarning(
    int warn)

SDK 发生警告回调。
SDK 内部遇到可恢复错误时,在尝试自动恢复的同时,会通过此回调通知用户。此回调事件仅用做通知。

传入参数

参数名 类型 说明
warn int 警告码,详见枚举类型 RTC_WARN_CODE 。

OnChannelError

virtual void bytertc::IRTCRoomEventHandler::OnChannelError(
    int err)

SDK 发生错误回调。
SDK 内部遇到不可恢复错误时,会通过此回调通知 App,需要 App 根据错误码进行操作或提示用户。

传入参数

参数名 类型 说明
err int 错误码,详见枚举类型 RTC_ERROR_CODE 。

OnAudioQuality

virtual void bytertc::IRTCRoomEventHandler::OnAudioQuality(
    const char* uid,
    int quality,
    unsigned short delay,
    unsigned short lost)

当收到音频质量信息的时候回调该事件

传入参数

参数名 类型 说明
uid const char* 对端用户标识
quality int 该用户音频质量
delay unsigned short 音频包到达的平均延迟
lost unsigned short 该用户的音频丢包率

OnAudioVolumeIndication

virtual void bytertc::IRTCRoomEventHandler::OnAudioVolumeIndication(
    const AudioVolumeInfo* speakers,
    unsigned int speaker_number,
    int total_remote_volume)

提示房间内所有用户发送音量的回调。

传入参数

参数名 类型 说明
speakers const AudioVolumeInfo* 房间内所有用户 ID, 以及对应的发送音量。参见:AudioVolumeInfo。
speaker_number unsigned int 房间内用户数量
total_remote_volume int 房间内所有音频流的总音量,取值范围是:[0,255]

注意

本回调默认不开启。你可以通过调用 SetAudioVolumeIndicationInterval 开启。

OnRtcStats

virtual void bytertc::IRTCRoomEventHandler::OnRtcStats(
    const RtcStats& stats)

用户加入房间成功后,每 2s 会收到一次房间内统计信息的回调。

传入参数

参数名 类型 说明
stats const RtcStats& 当前 RtcEngine 统计数据,详见:RtcStats

OnNetworkQuality

virtual void bytertc::IRTCRoomEventHandler::OnNetworkQuality(
    const char* uid,
    NetworkQuality tx_quality,
    NetworkQuality rx_quality)

通话中用户的媒体流网络上下行质量报告回调。加入房间成功后,每隔 2 秒会触发此回调,通知房间内用户与媒体服务器之间数据交互的网络质量。

传入参数

参数名 类型 说明
uid const char* 回调的网络质量报告所属用户的用户 ID 。
tx_quality NetworkQuality uid 所属用户的媒体流上行网络质量。
rx_quality NetworkQuality uid 所属用户的媒体流下行网络质量。

注意

OnUserJoined

virtual void bytertc::IRTCRoomEventHandler::OnUserJoined(
    const char* uid,
    const char* team_id,
    const RangeAudioMode send_mode,
    int elapsed)

远端用户加入房间回调。
此回调用于提示房间中有新用户加入。如果本地用户已经在房间中,有新的远端用户加入时,SDK 通过此回调方法通知房间中有新用户加入;如果用户加入房间前,房间中已有其他用户,加入房间后用户也会收到这些已在房间中的远端用户的加入房间回调。
回调的具体触发时机如下:
1.远端的房间模式为通信模式的用户或房间模式为其他模式的主播、观众角色的用户,调用 JoinChannel 方法加入房间。
2.远端的房间模式为通信模式的用户或房间模式为其他模式的主播、观众角色的用户,在断网后重连入房间。
3.远端已在房间中的房间模式为直播、游戏或云游戏模式的静默观众角色的用户,调用 SetClientRole 方法将用户角色切换至主播或观众。
4.本地用户加入房间时,会收到已在房间中的远端的房间模式为通信模式的用户或房间模式为其他模式的主播、观众角色的用户的加入房间回调。

传入参数

参数名 类型 说明
uid const char* 用户ID 。新加入的远端用户的用户ID 。
team_id const char* 预留参数。
send_mode const RangeAudioMode 预留参数。
elapsed int 本地用户调用 JoinChannel 加入房间到收到该事件经历的时间,单位为 ms 。

OnUserOffline

virtual void bytertc::IRTCRoomEventHandler::OnUserOffline(
    const char* uid,
    USER_OFFLINE_REASON_TYPE reason)

远端用户离开房间回调。
此回调用于提示房间中有远端用户离开。用户离开房间的原因有两个,即用户主动调用 LeaveChannel 方法离开房间和超时掉线。
回调的具体触发时机如下:
1.远端的房间模式为通信模式的用户或房间模式为其他模式的主播、观众角色的用户,调用 LeaveChannel 方法离开房间。用户离开的原因为 USER_OFFLINE_QUIT。
2.远端已在房间中的房间模式为直播、游戏或云游戏模式的主播、观众角色的用户调用 SetClientRole 方法将用户角色切换至静默观众。用户离开的原因为 USER_OFFLINE_QUIT。
3.远端的房间模式为通信模式的用户或房间模式为其他模式的主播、观众角色的用户,断网且一直未恢复。用户离开的原因为 USER_OFFLINE_DROPPED。

传入参数

参数名 类型 说明
uid const char* 用户ID 。离开房间的远端用户的用户ID 。
reason USER_OFFLINE_REASON_TYPE 用户离开的原因,详见枚举类型 USER_OFFLINE_REASON_TYPE 。

OnMuteAllRemoteAudio

virtual void bytertc::IRTCRoomEventHandler::OnMuteAllRemoteAudio(
    const char* user_id,
    MuteState mute_state)

当房间内用户调用 MuteAllRemoteAudio, 改变接收所有远端音频流的状态时, 房间内其他用户收到这个回调。

传入参数

参数名 类型 说明
user_id const char* 改变接收状态的用户 ID
mute_state MuteState 接收状态,详见:MuteState

OnMuteAllRemoteVideo

virtual void bytertc::IRTCRoomEventHandler::OnMuteAllRemoteVideo(
    const char* uid,
    MuteState mute)

房间内用户暂停/恢复接收所有视频流时,房间内其他用户收到此回调。参看 MuteAllRemoteVideo。

传入参数

参数名 类型 说明
uid const char* 暂停/恢复接收视频流的用户 ID。
mute MuteState 暂停/恢复接收视频流。参看 MuteState。

OnUserMuteAudio

virtual void bytertc::IRTCRoomEventHandler::OnUserMuteAudio(
    const char* user_id,
    MuteState mute_state)

房间内某用户调用 MuteLocalAudio 改变本地音频发送状态时,房间内其他用户会收到此回调。

传入参数

参数名 类型 说明
user_id const char* 改变本地音频发送状态的用户 ID
mute_state MuteState 发送状态,参看 MuteState

OnUserEnableLocalAudio

virtual void bytertc::IRTCRoomEventHandler::OnUserEnableLocalAudio(
    const char* uid,
    bool enabled)

远端用户开启/关闭音频设备采集时,房间内其他人会收到这个回调。 该回调由远端用户调用 EnableLocalAudio 方法触发。

传入参数

参数名 类型 说明
uid const char* 远端用户ID
enabled bool 该用户是否开启了音频设备采集
• true: 该用户开启了音频设备采集
• false: 该用户关闭了音频设备采集

OnLocalAudioStats

virtual void bytertc::IRTCRoomEventHandler::OnLocalAudioStats(
    const LocalAudioStats& stats)

通话中本地音频流的统计信息回调。 该回调描述本地设备发送音频流的统计信息,每 2 秒触发一次。

传入参数

参数名 类型 说明
stats const LocalAudioStats& 本地音频统计数据,详细定义见:LocalAudioStats

OnRemoteAudioStats

virtual void bytertc::IRTCRoomEventHandler::OnRemoteAudioStats(
    const RemoteAudioStats& stats)

通话中远端音频流的统计信息回调。 该回调描述远端用户在通话中端到端的音频流状态,针对每个远端用户/主播每 2 秒触发一次。如果远端同时存在多个用户/主播,该回调每 2 秒会被触发多次。

传入参数

参数名 类型 说明
stats const RemoteAudioStats& 远端音频统计数据,详细定义见:RemoteAudioStats

OnFirstLocalAudioFrame

virtual void bytertc::IRTCRoomEventHandler::OnFirstLocalAudioFrame(
    StreamIndex index)

本地采集到第一帧音频帧时,收到该回调

传入参数

参数名 类型 说明
index StreamIndex 音频流属性, 参看 StreamIndex

OnFirstRemoteAudioFrame

virtual void bytertc::IRTCRoomEventHandler::OnFirstRemoteAudioFrame(
    const RemoteStreamKey& key)

接收到来自远端某音频流的第一帧时,收到该回调。

传入参数

参数名 类型 说明
key const RemoteStreamKey& 远端音频流信息, 详见 RemoteStreamKey

注意

用户刚收到房间内每一路音频流时,都会收到该回调。

OnStreamRemove

virtual void bytertc::IRTCRoomEventHandler::OnStreamRemove(
    const ByteStream& stream,
    RtcStreamRemoveReason reason)

房间内的远端用户停止发布音视频流时,本地用户会收到此回调。

传入参数

参数名 类型 说明
stream const ByteStream& 流的属性。参看 ByteStream 。
reason RtcStreamRemoveReason 远端流移除的原因。参看 RtcStreamRemoveReason 。

OnStreamAdd

virtual void bytertc::IRTCRoomEventHandler::OnStreamAdd(
    const ByteStream& stream)

用户加入房间时,会收到此回调,包含房间中所有已发布的流。
房间内的用户发布新的音视频流时,房间内的其他用户会收到此回调。

传入参数

参数名 类型 说明
stream const ByteStream& 流属性,参看 ByteStream 。

OnRemoteStreamSwitch

virtual void bytertc::IRTCRoomEventHandler::OnRemoteStreamSwitch(
    const RemoteStreamSwitch& event)

收到远端流回退或恢复时回调该事件。

传入参数

参数名 类型 说明
event const RemoteStreamSwitch& 远端流回退或恢复数据。详见 RemoteStreamSwitch。

OnRoomMessageReceived

virtual void bytertc::IRTCRoomEventHandler::OnRoomMessageReceived(
    const char* uid,
    const char* message)

接收到房间内广播消息的回调。

传入参数

参数名 类型 说明
uid const char* 消息发送者 ID
message const char* 收到的消息内容

注意

1.同一房间内其他用户调用 SendRoomMessage 发送广播消息时会收到该回调。

OnRoomBinaryMessageReceived

virtual void bytertc::IRTCRoomEventHandler::OnRoomBinaryMessageReceived(
    const char* uid,
    int size,
    const uint8_t* message)

接收到房间内二进制广播消息的回调。

传入参数

参数名 类型 说明
uid const char* 消息发送者 ID
size int 收到的二进制消息长度
message const uint8_t* 收到的二进制消息内容

注意

1.同一房间内其他用户调用 SendRoomBinaryMessage 发送二进制广播消息时会收到该回调。

OnUserMessageReceived

virtual void bytertc::IRTCRoomEventHandler::OnUserMessageReceived(
    const char* uid,
    const char* message)

点对点消息回调。接收到同一房间内 uid 所属用户发来消息时触发。

传入参数

参数名 类型 说明
uid const char* 消息发送者 ID 。
message const char* 收到的消息内容。

注意

OnUserBinaryMessageReceived

virtual void bytertc::IRTCRoomEventHandler::OnUserBinaryMessageReceived(
    const char* uid,
    int size,
    const uint8_t* message)

接收到同一房间内 uid 所属用户发来二进制消息的回调。

传入参数

参数名 类型 说明
uid const char* 消息发送者 ID
size int 二进制消息长度
message const uint8_t* 收到的二进制消息内容

注意

OnUserMessageSendResult

virtual void bytertc::IRTCRoomEventHandler::OnUserMessageSendResult(
    int64_t msgid,
    int error)

当调用 SendUserMessage 函数发送消息后,回调此条消息的发送结果(反馈)。

传入参数

参数名 类型 说明
msgid int64_t 本条消息的 ID
error int 消息发送结果,详见 MESSAGE_SEND_RESULT_CODE

OnRoomMessageSendResult

virtual void bytertc::IRTCRoomEventHandler::OnRoomMessageSendResult(
    int64_t msgid,
    int error)

当调用 SendRoomMessage 函数发送消息后,回调此条消息的发送结果(反馈)。

传入参数

参数名 类型 说明
msgid int64_t 本条消息的 ID
error int 消息发送结果,详见 MESSAGE_SEND_RESULT_CODE

OnFirstLocalVideoFrameCaptured

virtual void bytertc::IRTCRoomEventHandler::OnFirstLocalVideoFrameCaptured(
    StreamIndex index,
    VideoFrameInfo info)

第一帧本地采集的视频/屏幕共享画面在本地视图渲染完成时,收到此回调。

传入参数

参数名 类型 说明
index StreamIndex 流属性。参看 StreamIndex。
info VideoFrameInfo 视频信息。参看 VideoFrameInfo。

OnLocalVideoSizeChanged

virtual void bytertc::IRTCRoomEventHandler::OnLocalVideoSizeChanged(
    StreamIndex index,
    const VideoFrameInfo& info)

本地视频大小或旋转配置发生改变时,收到此回调。

传入参数

参数名 类型 说明
index StreamIndex 流属性。参看 StreamIndex。
info const VideoFrameInfo& 视频帧信息。参看 VideoFrameInfo。

OnRemoteVideoSizeChanged

virtual void bytertc::IRTCRoomEventHandler::OnRemoteVideoSizeChanged(
    RemoteStreamKey key,
    const VideoFrameInfo& info)

远端视频大小或旋转配置发生改变时,房间内订阅此视频流的用户会收到此回调。

传入参数

参数名 类型 说明
key RemoteStreamKey 远端流信息。参看 RemoteStreamKey。
info const VideoFrameInfo& 视频帧信息。参看 VideoFrameInfo。

OnFirstRemoteVideoFrameRendered

virtual void bytertc::IRTCRoomEventHandler::OnFirstRemoteVideoFrameRendered(
    const RemoteStreamKey key,
    const VideoFrameInfo& info)

第一帧远端视频流在视图上渲染成功后,收到此回调。

传入参数

参数名 类型 说明
key const RemoteStreamKey 远端流信息。参看 RemoteStreamKey。
info const VideoFrameInfo& 视频帧信息。参看 VideoFrameInfo。

OnUserMuteVideo

virtual void bytertc::IRTCRoomEventHandler::OnUserMuteVideo(
    const char* uid,
    MuteState mute)

房间内用户暂停/恢复发送视频流时,房间内其他用户()收到此回调。参看 MuteLocalVideoStream。

传入参数

参数名 类型 说明
uid const char* 暂停/恢复发送视频流的用户 ID。
mute MuteState 暂停/恢复发送视频流。参看 MuteState。

OnUserEnableLocalVideo

virtual void bytertc::IRTCRoomEventHandler::OnUserEnableLocalVideo(
    const char* uid,
    bool enabled)

远端用户开启/关闭本地视频采集时回调该事件,当远端用户调用 EnableLocalVideo 时,其他用户会触发此回调。

传入参数

参数名 类型 说明
uid const char* 用户ID,提示是哪个用户的视频流。
enabled bool 是否启用本地视频功能。
• true:该用户已启用本地视频功能。启用后,其他用户可以接收到该用户的视频流。
• false:该用户已关闭视频功能。关闭后,该用户仍然可以接收其他用户的视频流,但其他用户接收不到该用户的视频流。

注意

提示有其他用户启用/关闭了本地视频功能。

OnLocalVideoStats

virtual void bytertc::IRTCRoomEventHandler::OnLocalVideoStats(
    const LocalVideoStats& stats)

通话中本地视频流的统计信息回调。

传入参数

参数名 类型 说明
stats const LocalVideoStats& 本地视频统计数据,详见 LocalVideoStats。

注意

该回调描述本地设备发送视频流的统计信息,每2秒触发一次。

OnRemoteVideoStats

virtual void bytertc::IRTCRoomEventHandler::OnRemoteVideoStats(
    const RemoteVideoStats& stats)

通话中远端视频流的统计信息回调。

传入参数

参数名 类型 说明
stats const RemoteVideoStats& 远端视频统计数据,详见 RemoteVideoStats。

注意

该回调描述远端用户在通话中端到端的视频流状态,针对每个远端用户/主播每2秒触发一次。如果远端同时存在多个用户/主播,该回调每2秒会被触发多次。

OnLocalAudioStateChanged

virtual void bytertc::IRTCRoomEventHandler::OnLocalAudioStateChanged(
    LocalAudioStreamState state,
    LocalAudioStreamError error)

本地音频的状态发生改变时,该回调通知当前的本地音频状态。

传入参数

参数名 类型 说明
state LocalAudioStreamState 本地音频设备的状态,详见: LocalAudioStreamState
error LocalAudioStreamError 本地音频状态改变时的错误码,详见:LocalAudioStreamError

OnRemoteAudioStateChanged

virtual void bytertc::IRTCRoomEventHandler::OnRemoteAudioStateChanged(
    const RemoteStreamKey& key,
    RemoteAudioState state,
    RemoteAudioStateReason reason)

用户订阅来自远端的音频流状态发生改变时,会收到此回调,了解当前的远端音频流状态。

传入参数

参数名 类型 说明
key const RemoteStreamKey& 远端流信息, 参看 RemoteStreamKey
state RemoteAudioState 远端音频流状态,参看 RemoteAudioState
reason RemoteAudioStateReason 远端音频流状态改变的原因,参看 RemoteAudioStateReason

OnLocalVideoStateChanged

virtual void bytertc::IRTCRoomEventHandler::OnLocalVideoStateChanged(
    StreamIndex index,
    LocalVideoStreamState state,
    LocalVideoStreamError error)

本地视频流的状态发生改变时,收到该事件。

传入参数

参数名 类型 说明
index StreamIndex 音视频属性, 参看 StreamIndex
state LocalVideoStreamState 本地视频流状态,详见 LocalVideoStreamState
error LocalVideoStreamError 本地视频状态改变时的错误码,详见 LocalVideoStreamError

OnRemoteVideoStateChanged

virtual void bytertc::IRTCRoomEventHandler::OnRemoteVideoStateChanged(
    RemoteStreamKey key,
    RemoteVideoState state,
    RemoteVideoStateReason reason)

远端视频流的状态发生改变时,房间内的用户会收到该事件。

传入参数

参数名 类型 说明
key RemoteStreamKey 远端视频流的信息,房间,用户 ID,流属性等。参看 RemoteStreamKey。
state RemoteVideoState 远端视频流状态,参看 RemoteVideoState。
reason RemoteVideoStateReason 远端视频流状态改变的原因,参看 RemoteVideoStateReason。

OnAudioFrameSendStateChanged

virtual void bytertc::IRTCRoomEventHandler::OnAudioFrameSendStateChanged(
    const RtcUser& user,
    FirstFrameSendState state)

音频首帧发送状态改变回调

传入参数

参数名 类型 说明
user const RtcUser& 本地用户信息,详见 RtcUser
state FirstFrameSendState 首帧发送状态,详见 FirstFrameSendState

OnVideoFrameSendStateChanged

virtual void bytertc::IRTCRoomEventHandler::OnVideoFrameSendStateChanged(
    const RtcUser& user,
    FirstFrameSendState state)

视频首帧发送状态改变回调

传入参数

参数名 类型 说明
user const RtcUser& 本地用户信息,详见 RtcUser
state FirstFrameSendState 首帧发送状态,详见 FirstFrameSendState

OnScreenVideoFrameSendStateChanged

virtual void bytertc::IRTCRoomEventHandler::OnScreenVideoFrameSendStateChanged(
    const RtcUser& user,
    FirstFrameSendState state)

屏幕共享流视频首帧发送状态改变回调

传入参数

参数名 类型 说明
user const RtcUser& 本地用户信息,详见 RtcUser
state FirstFrameSendState 首帧发送状态,详见 FirstFrameSendState

OnAudioFramePlayStateChanged

virtual void bytertc::IRTCRoomEventHandler::OnAudioFramePlayStateChanged(
    const RtcUser& user,
    FirstFramePlayState state)

音频首帧播放状态改变回调

传入参数

参数名 类型 说明
user const RtcUser& 远端用户信息,详见 RtcUser
state FirstFramePlayState 首帧播放状态,详见 FirstFramePlayState

OnVideoFramePlayStateChanged

virtual void bytertc::IRTCRoomEventHandler::OnVideoFramePlayStateChanged(
    const RtcUser& user,
    FirstFramePlayState state)

视频首帧播放状态改变回调

传入参数

参数名 类型 说明
user const RtcUser& 远端用户信息,详见 RtcUser
state FirstFramePlayState 首帧播放状态,详见 FirstFramePlayState

OnScreenVideoFramePlayStateChanged

virtual void bytertc::IRTCRoomEventHandler::OnScreenVideoFramePlayStateChanged(
    const RtcUser& user,
    FirstFramePlayState state)

屏幕共享流视频首帧播放状态改变回调

传入参数

参数名 类型 说明
user const RtcUser& 远端用户信息,详见 RtcUser
state FirstFramePlayState 首帧播放状态,详见 FirstFramePlayState

IRtcEngineLiteEventHandler

class IRtcEngineLiteEventHandler

音视频引擎事件回调接口

Defined in : byte_rtc_engine_lite_event_handler.h

成员函数

返回 名称
virtual void OnWarning
virtual void OnError
virtual void OnAudioMixingFinished
virtual void OnAudioMixingStateChanged
virtual void OnAudioEffectFinished
virtual void OnLogReport
virtual void OnConnectionStateChanged
virtual void OnNetworkTypeChanged
virtual void OnMirrorStateChanged
virtual void OnMediaDeviceStateChanged
virtual void OnMediaDeviceNotification
virtual void OnSysStats

函数说明

OnWarning

virtual void IRtcEngineLiteEventHandler::OnWarning(
    int warn)

当内部发生警告事件时触发该回调

传入参数

参数名 类型 说明
warn int 警告标识码,详见:RTC_WARN_CODE

OnError

virtual void IRtcEngineLiteEventHandler::OnError(
    int err)

当内部发生不可逆转错误时触发该回调

传入参数

参数名 类型 说明
err int 错误标识码,详见:RTC_ERROR_CODE

OnAudioMixingFinished

virtual void IRtcEngineLiteEventHandler::OnAudioMixingFinished()

本地音乐文件播放已结束回调。 当调用 StartAudioMixing 启动的混音文件播放结束后,会触发该回调。

OnAudioMixingStateChanged

virtual void IRtcEngineLiteEventHandler::OnAudioMixingStateChanged(
    bytertc::AudioMixingState state,
    bytertc::AudioMixingError error)

音频混音文件播放状态改变时回调。此回调会被触发的时机汇总如下:
+ 当调用 StartAudioMixing 方法成功后, 会触发该 state 值为 kAudioMixingStatePlaying 回调; 否则触发 state 值为 kAudioMixingStateFailed 的回调。
+ 当调用 ResumeAudioMixing 方法恢复播放成功后, 会触发该 state 值为 kAudioMixingStatePlaying 回调; 否则触发 state 值为 kAudioMixingStateFailed 的回调。
+ 当调用 PauseAudioMixing 方法暂停播放后, 会触发该 state 值为 kAudioMixingStatePlaying 回调; 否则触发 state 值为 kAudioMixingStateFailed 的回调。
+ 当调用 StopAudioMixing 方法暂停止播放后, 会触发该 state 值为 kAudioMixingStatePlaying 回调; 否则触发 state 值为 kAudioMixingStateFailed 的回调。

传入参数

参数名 类型 说明
state bytertc::AudioMixingState 混音状态。其混音状态可参考: AudioMixingState
error bytertc::AudioMixingError 错误码。
• kAudioMixingErrorOk : state 值为 kAudioMixingStatePlaying/kAudioMixingStatePaused/kAudioMixingStateStoped 返回该错误码。
• kAudioMixingErrorCanNotOpen: state 值为 kAudioMixingStateFailed 返回该错误码。

OnAudioEffectFinished

virtual void IRtcEngineLiteEventHandler::OnAudioEffectFinished(
    int sound_id)

本地音效文件播放已结束回调。 当调用 PlayEffect 方法开始播放指定音效文件, 音效文件播放结束后, 应用会收到该回调。

传入参数

参数名 类型 说明
sound_id int 音效ID,应用调用者维护,请保证唯一性。

OnLogReport

virtual void IRtcEngineLiteEventHandler::OnLogReport(
    const char* log_type,
    const char* log_content)

端监控日志回调。当产生一个端监控事件时触发该回调。

传入参数

参数名 类型 说明
log_type const char* 事件类型。目前类型固定为 "live_webrtc_monitor_log"。
log_content const char* 端监控日志内容。

OnConnectionStateChanged

virtual void IRtcEngineLiteEventHandler::OnConnectionStateChanged(
    bytertc::CONNECTION_STATE state)

SDK 与 RTC 服务器的网络连接状态改变时,会收到此回调。

传入参数

参数名 类型 说明
state bytertc::CONNECTION_STATE 发生改变后的连接状态,参看 CONNECTION_STATE 。

OnNetworkTypeChanged

virtual void IRtcEngineLiteEventHandler::OnNetworkTypeChanged(
    bytertc::NetworkType type)

SDK 当前网络连接类型改变回调。当 SDK 的当前网络连接类型发生改变时回调该事件。

传入参数

参数名 类型 说明
type bytertc::NetworkType SDK 当前的网络连接类型,详见:NetworkType 。

OnMirrorStateChanged

virtual void IRtcEngineLiteEventHandler::OnMirrorStateChanged(
    bool mirrored)

当本地视频镜像状态改变时回调该事件。默认回调该事件。

传入参数

参数名 类型 说明
mirrored bool 当前是否开启镜像
• true: 当前本地视频状态为开启镜像;
• false: 当前本地视频状态为关闭镜像。

OnMediaDeviceStateChanged

virtual void IRtcEngineLiteEventHandler::OnMediaDeviceStateChanged(
    const char* device_id,
    bytertc::MediaDeviceType device_type,
    bytertc::MediaDeviceState device_state)

媒体设备开启、停止状态回调

传入参数

参数名 类型 说明
device_id const char* 设备 id,目前暂未实现
device_type bytertc::MediaDeviceType 设备类型,详见MediaDeviceType
device_state bytertc::MediaDeviceState 设备状态,详见MediaDeviceState

注意

当前正在使用中的设备开启成功/失败,停止成功/失败时回调该事件,目前仅支持音频录制设备和播放设备。

OnMediaDeviceNotification

virtual void IRtcEngineLiteEventHandler::OnMediaDeviceNotification(
    const char* device_id,
    bytertc::MediaDeviceType device_type,
    bytertc::MediaDeviceNotification notification_type)

媒体设备事件回调。

传入参数

参数名 类型 说明
device_id const char* 设备 id
device_type bytertc::MediaDeviceType 媒体设备类型,详见MediaDeviceType
notification_type bytertc::MediaDeviceNotification 媒体设备事件通知类型,详见MediaDeviceNotification

注意

该回调包括了系统内媒体设备的事件通知,如设备的插入、拔出事件通知。

OnSysStats

virtual void IRtcEngineLiteEventHandler::OnSysStats(
    const bytertc::SysStats& stats)

周期性地发出回调,报告当前cpu与memory使用率

传入参数

参数名 类型 说明
stats const bytertc::SysStats& 返回包含当前系统状态信息的结构体,详见 SysStats

IRtcEngineEventHandler

class bytertc::IRtcEngineEventHandler

音视频引擎事件回调接口。
CreateByteRtcEngine 传入该回调实例。
详见 IRtcEngineLiteEventHandler 、IRTCRoomEventHandler

Defined in : byte_rtc_engine_event_handler.h