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 OnMuteAllRemoteVideo
virtual void OnUserMuteAudio
virtual void OnUserEnableLocalAudio
virtual void OnLocalAudioStats
virtual void OnRemoteAudioStats
virtual void OnConnectionLost
virtual void OnConnectionInterrupted
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 OnFirstLocalVideoFrame
virtual void OnFirstLocalScreenFrame
virtual void OnFirstRemoteVideoDecoded
virtual void OnVideoSizeChanged
virtual void OnFirstRemoteVideoFrame
virtual void OnFirstRemoteScreenFrame
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_volume)

提示房间内谁正在说话以及说话者音量的回调

传入参数

参数名 类型 说明
speakers const AudioVolumeInfo* 房间内所有用户ID, 以及每个用户对应的音量,包括发送流和接收流。详见:AudioVolumeInfo。
speaker_number unsigned int 音频源数量,包括发送流与接收流
total_volume int 音频源总音量,只包含接收流

注意

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 。

OnMuteAllRemoteVideo

virtual void bytertc::IRTCRoomEventHandler::OnMuteAllRemoteVideo(
    const char* uid,
    bool muted)

当某个用户开启/关闭远端所有用户视频时回调该事件。

传入参数

参数名 类型 说明
uid const char* 远端用户标识。
muted bool 是否被关闭视频。
• true: 远端用户关闭所有用户视频数据;
• false: 远端用户开启所有用户视频数据。

OnUserMuteAudio

virtual void bytertc::IRTCRoomEventHandler::OnUserMuteAudio(
    const char* uid,
    bool muted)

远端用户将其本地音频流静音时,房间内其他人会收到这个回调。 该回调由远端用户调用 MuteLocalAudioStream 方法触发。

传入参数

参数名 类型 说明
uid const char* 远端用户ID
muted bool 该用户是否已将其本地音频流静音
• true: 该用户已将其本地音频流静音
• false: 该用户已将其本地音频流取消了静音

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

OnConnectionLost

virtual void bytertc::IRTCRoomEventHandler::OnConnectionLost()

SDK 与信令服务器连接断开回调。当 SDK 与信令服务器的网络连接断开超过 10 秒时回调该事件。

注意

OnConnectionInterrupted

virtual void bytertc::IRTCRoomEventHandler::OnConnectionInterrupted()

SDK 与信令服务器连接中断回调。当 SDK 检测到与信令服务器的网络连接中断时回调该事件。

注意

OnFirstLocalAudioFrame

virtual void bytertc::IRTCRoomEventHandler::OnFirstLocalAudioFrame(
    int elapsed)

当收到本地第一帧音频的时候上报该事件

传入参数

参数名 类型 说明
elapsed int 从开始发布音频流到收到该事件经历的时间(毫秒单位)

OnFirstRemoteAudioFrame

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

当收到远端流的第一帧音频的时候上报该事件

传入参数

参数名 类型 说明
uid const char* 远端用户ID
elapsed int 从开始订阅音频流到收到该事件经历的时间(毫秒单位)

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* message)

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

传入参数

参数名 类型 说明
message const char* 收到的消息内容

注意

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

OnRoomBinaryMessageReceived

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

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

传入参数

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

注意

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

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)

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

传入参数

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

OnRoomMessageSendResult

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

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

传入参数

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

OnFirstLocalVideoFrame

virtual void bytertc::IRTCRoomEventHandler::OnFirstLocalVideoFrame(
    int width,
    int height,
    int elapsed)

收到第一帧本地视频画面时回调该事件。

传入参数

参数名 类型 说明
width int 视频流宽(像素)。
height int 视频流高(像素)。
elapsed int 从调用 JoinChannel 方法直至该回调被触发的延迟(毫秒),如果在 JoinChannel 之前调用了 StartPreview,则返回的是从调用 StartPreview 直至该回调被触发的延迟(毫秒)。

注意

第一帧本地视频显示在视图上时,触发此回调。

OnFirstLocalScreenFrame

virtual void bytertc::IRTCRoomEventHandler::OnFirstLocalScreenFrame(
    int width,
    int height,
    int elapsed)

当收到本地屏幕共享流第一帧时回调该事件。

传入参数

参数名 类型 说明
width int 视频流宽(像素)。
height int 视频流高(像素)。
elapsed int 从加入频道开始到现在经历的时间(毫秒单位)。

注意

第一帧本地视频显示在视图上时,触发此回调。

OnFirstRemoteVideoDecoded

virtual void bytertc::IRTCRoomEventHandler::OnFirstRemoteVideoDecoded(
    const char* uid,
    int width,
    int height,
    int elapsed)

当远端视频第一帧视频被解码时回调该事件。

传入参数

参数名 类型 说明
uid const char* 远端用户 UserId。
width int 视频流宽(像素)。
height int 视频流高(像素)。
elapsed int 从调用 JoinChannel 方法直至该回调被触发的延迟(毫秒)。

注意

收到第一帧远端视频流并解码成功时,触发此调用。应用可以在此回调中设置该用户的 View。

OnVideoSizeChanged

virtual void bytertc::IRTCRoomEventHandler::OnVideoSizeChanged(
    const char* uid,
    int width,
    int height,
    int rotation)

本地或远端视频大小或旋转信息发生改变回调。

传入参数

参数名 类型 说明
uid const char* 图像尺寸和旋转信息发生变化的用户ID。如果返回的 uid 为空,则表示本地用户。
width int 视频流的宽度(像素)。
height int 视频流的高度(像素)。
rotation int 旋转角度[0,360]。

OnFirstRemoteVideoFrame

virtual void bytertc::IRTCRoomEventHandler::OnFirstRemoteVideoFrame(
    const char* uid,
    int width,
    int height,
    int elapsed)

收到远端流后解码第一帧时回调该事件。

传入参数

参数名 类型 说明
uid const char* 远端用户 UserId。
width int 视频流宽(像素)。
height int 视频流高(像素)。
elapsed int 从调用 JoinChannel 加入频道开始到发生此事件过去的时间(毫秒)。

注意

第一帧远端视频显示在视图上时,触发此调用。应用可在此调用中获知出图时间(elapsed)。出图时间指从订阅视频流到第一个视频帧刷出来的间隔。

OnFirstRemoteScreenFrame

virtual void bytertc::IRTCRoomEventHandler::OnFirstRemoteScreenFrame(
    const char* uid,
    int width,
    int height,
    int elapsed)

收到远端屏幕共享流后解码第一帧时回调该事件。

传入参数

参数名 类型 说明
uid const char* 用户ID,指定是哪个用户的屏幕共享流。
width int 视频流宽(像素)。
height int 视频流高(像素)。
elapsed int 从调用 JoinChannel 加入频道开始到发生此事件过去的时间(毫秒)。

OnUserMuteVideo

virtual void bytertc::IRTCRoomEventHandler::OnUserMuteVideo(
    const char* uid,
    bool muted)

远端用户暂停/恢复发送视频流时回调该事件,当远端用户调用 MuteLocalVideoStream 时,其他用户会触发此回调。

传入参数

参数名 类型 说明
uid const char* 用户ID,提示是哪个用户的视频流。
muted bool 是否发送视频流。
• true:该用户已暂停发送视频流。
• false:该用户已恢复发送视频流。

注意

提示有其他用户暂停/恢复了视频流的发送。

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 char* uid,
    RemoteAudioState state,
    RemoteAudioStateReason reason,
    int elapsed)

远端用户音频状态发生改变时,该回调通知当前的远端音频流状态。

传入参数

参数名 类型 说明
uid const char* 该远端流的用户ID
state RemoteAudioState 远端音频流状态,详见:RemoteAudioState
reason RemoteAudioStateReason 远端音频流状态改变的原因,详见:RemoteAudioStateReason
elapsed int 耗时,从加入房间到该事件发生经历的时间(毫秒单位)

OnLocalVideoStateChanged

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

本地视频的状态发生改变时,该回调返回当前的本地视频状态。

传入参数

参数名 类型 说明
state LocalVideoStreamState 本地视频状态,详见 LocalVideoStreamState。
error LocalVideoStreamError 本地视频状态改变时的错误码,详见 LocalVideoStreamError。

OnRemoteVideoStateChanged

virtual void bytertc::IRTCRoomEventHandler::OnRemoteVideoStateChanged(
    const char* uid,
    RemoteVideoState state,
    RemoteVideoStateReason reason,
    int elapsed)

远端用户视频状态发生改变时,该回调报告当前的远端视频流状态。

传入参数

参数名 类型 说明
uid const char* 该远端流的用户 id。
state RemoteVideoState 远端视频流状态,详见 RemoteVideoState。
reason RemoteVideoStateReason 远端视频流状态改变的原因,详见 RemoteVideoStateReason。
elapsed int 耗时,暂未实现。

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 OnConnecting
virtual void OnReconnecting
virtual void OnConnected
virtual void OnDisconnected
virtual void OnConnectionStateChanged
virtual void OnNetworkTypeChanged
virtual void OnMirrorStateChanged
virtual void OnMediaDeviceStateChanged
virtual void OnMediaDeviceNotification

函数说明

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* 端监控日志内容。

OnConnecting

virtual void IRtcEngineLiteEventHandler::OnConnecting()

SDK 正在连接信令服务器回调。开始建连时触发。

注意

OnReconnecting

virtual void IRtcEngineLiteEventHandler::OnReconnecting()

SDK 正在重新连接信令服务器回调。开始重连时触发。

注意

OnConnected

virtual void IRtcEngineLiteEventHandler::OnConnected()

SDK 已经连接上信令服务器回调。连接完成时触发。

注意

OnDisconnected

virtual void IRtcEngineLiteEventHandler::OnDisconnected()

SDK 与信令服务器连接断开回调。连接断开时触发。

注意

OnConnectionStateChanged

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

SDK 与信令服务器连接状态改变回调。连接状态改变时触发。

传入参数

参数名 类型 说明
state bytertc::CONNECTION_STATE 当前 SDK 与信令服务器的连接状态,详见: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

注意

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

IRtcEngineEventHandler

class bytertc::IRtcEngineEventHandler

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

Defined in : byte_rtc_engine_event_handler.h