class bytertc::IMetadataObserver
metadata 观察者,可以接收媒体流中的 metadata, 或者向媒体流中添加 metadata
Defined in : byte_rtc_engine_lite_interface.h
| 返回 | 名称 |
|---|---|
| virtual bool | OnReadyToSendMetadata |
| virtual void | OnMetadataReceived |
virtual bool bytertc::IMetadataObserver::OnReadyToSendMetadata(
ByteMetadataBuffer* metadata)
当 SDK 准备发送一个视频帧时,会回调该接口,以确定是否需要在该视频帧中添加 metadata
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| metadata | ByteMetadataBuffer* | 待发送的数据,把数据拷贝到 data 字段中,并将 size 设置为真实的大小。 |
返回值
注意
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 |
注意
回调中不能有耗时操作,以免影响视频卡顿
class bytertc::IAudioDeviceObserver
音频外部设备事件监听,只用于自定义音频采集渲染的情况 SDK内部需要控制外部设备时,通过这个事件监听类通知上层应用
Defined in : byte_rtc_engine_lite_interface.h
| 返回 | 名称 |
|---|---|
| virtual void | OnAudioDeviceRecordStart |
| virtual void | OnAudioDeviceRecordStop |
| virtual void | OnAudioDevicePlayoutStart |
| virtual void | OnAudioDevicePlayoutStop |
virtual void bytertc::IAudioDeviceObserver::OnAudioDeviceRecordStart()
通知上层应用开启音频采集设备
virtual void bytertc::IAudioDeviceObserver::OnAudioDeviceRecordStop()
通知上层应用关闭音频采集设备
virtual void bytertc::IAudioDeviceObserver::OnAudioDevicePlayoutStart()
通知上层应用开启音频播放设备
virtual void bytertc::IAudioDeviceObserver::OnAudioDevicePlayoutStop()
通知上层应用关闭音频播放设备
class bytertc::IAudioFrameObserver
音频数据回调观察者
Defined in : byte_rtc_engine_lite_interface.h
| 返回 | 名称 |
|---|---|
| virtual void | OnRecordAudioFrame |
| virtual void | OnPlaybackAudioFrame |
| virtual void | OnMixedAudioFrame |
virtual void bytertc::IAudioFrameObserver::OnRecordAudioFrame(
const AudioFrame& audio_frame)
返回麦克风录制的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_frame | const AudioFrame& | 麦克风录制的音频数据, 详见:AudioFrame |
virtual void bytertc::IAudioFrameObserver::OnPlaybackAudioFrame(
const AudioFrame& audio_frame)
返回远端所有用户混音后的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_frame | const AudioFrame& | 远端所有用户混音后的音频数据, 详见:AudioFrame |
virtual void bytertc::IAudioFrameObserver::OnMixedAudioFrame(
const AudioFrame& audio_frame)
返回本地麦克风录制和远端所有用户混音后的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_frame | const AudioFrame& | 本地麦克风录制和远端所有用户混音后的音频数据, 详见:AudioFrame |
class bytertc::IVideoFrameObserver
视频数据回调对象
Defined in : byte_rtc_engine_lite_interface.h
| 返回 | 名称 |
|---|---|
| virtual bool | OnLocalScreenFrame |
| virtual bool | OnLocalVideoFrame |
| virtual bool | OnRemoteScreenFrame |
| virtual bool | OnRemoteVideoFrame |
virtual bool bytertc::IVideoFrameObserver::OnLocalScreenFrame(
IByteVideoFrame* videoFrame)
本地屏幕共享流数据回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoFrame | IByteVideoFrame* | 视频数据,详见:IByteVideoFrame |
返回值
true: SDK 不处理返回值 false: SDK 不处理返回值
virtual bool bytertc::IVideoFrameObserver::OnLocalVideoFrame(
IByteVideoFrame* videoFrame)
本地视频流数据回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoFrame | IByteVideoFrame* | 视频数据,详见:IByteVideoFrame |
返回值
true: SDK 不处理返回值 false: SDK 不处理返回值
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 不处理返回值
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 不处理返回值
class bytertc::IRemoteAudioFrameObserver
音频数据回调观察者
Defined in : byte_rtc_engine_lite_interface.h
| 返回 | 名称 |
|---|---|
| virtual void | OnRemoteAudioFrame |
virtual void bytertc::IRemoteAudioFrameObserver::OnRemoteAudioFrame(
const IByteAudioFrame& audio_frame,
const ByteStreamInfo& stream_info)
获得单个流的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_frame | const IByteAudioFrame& | 音频数据, 详见:IByteAudioFrame |
| stream_info | const ByteStreamInfo& | 该音频流的业务信息, 详见:ByteStreamInfo |
class bytertc::IByteEngineEncryptHandler
加密/解密处理函数
Defined in : byte_rtc_engine_defines.h
| 返回 | 名称 |
|---|---|
| virtual unsigned int | OnEncryptData |
| virtual unsigned int | OnDecryptData |
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%范围以内,不然将被丢弃
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%范围以内,不然将被丢弃
class bytertc::IVideoSink
视频数据回调接口
Defined in : byte_rtc_engine_defines.h
| 返回 | 名称 |
|---|---|
| virtual void | OnStart |
| virtual bool | OnFrame |
| virtual void | OnStop |
| virtual void | Release |
virtual void bytertc::IVideoSink::OnStart()
启动渲染器。
注意
在开启渲染功能的时候会回调这个方法。开发者可以在这个方法中启动渲染器。
virtual bool bytertc::IVideoSink::OnFrame(
IByteVideoFrame* videoFrame)
视频帧回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| IByteVideoFrame | **** | 视频帧结构类,详见IByteVideoFrame |
返回值
返回值暂未使用
virtual void bytertc::IVideoSink::OnStop()
停止渲染器。
注意
在停止渲染功能的时候会回调这个方法。开发者可以在这个方法中停止渲染。
virtual void bytertc::IVideoSink::Release()
释放渲染器。
注意
通知开发者渲染器即将被废弃。在Release()返回之后,开发者就可以释放掉资源了。
class bytertc::IRTCRoomEventHandler
音视频房间事件回调接口
Defined in : byte_rtc_room_event_handler_interface.h
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 。 |
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 。 |
virtual void bytertc::IRTCRoomEventHandler::OnLeaveChannel(
const RtcStats& stats)
离开房间成功回调。
用户调用 LeaveChannel 方法后,SDK 会停止所有的发布订阅流,并释放所有通话相关的音视频资源。SDK 完成所有的资源释放后通过此回调通知用户。
离开房间结束通话后,如果 App 需要使用系统音视频设备,则建议在收到此回调后再初始化音视频设备,否则可能由于 SDK 占用了导致 App 初始化音视频设备失败。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const RtcStats& | 本次通话的统计数据,详见数据结构 RtcStats 。 |
注意
virtual void bytertc::IRTCRoomEventHandler::OnChannelWarning(
int warn)
SDK 发生警告回调。
SDK 内部遇到可恢复错误时,在尝试自动恢复的同时,会通过此回调通知用户。此回调事件仅用做通知。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| warn | int | 警告码,详见枚举类型 RTC_WARN_CODE 。 |
virtual void bytertc::IRTCRoomEventHandler::OnChannelError(
int err)
SDK 发生错误回调。
SDK 内部遇到不可恢复错误时,会通过此回调通知 App,需要 App 根据错误码进行操作或提示用户。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| err | int | 错误码,详见枚举类型 RTC_ERROR_CODE 。 |
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 | 该用户的音频丢包率 |
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 | 音频源总音量,只包含接收流 |
注意
virtual void bytertc::IRTCRoomEventHandler::OnRtcStats(
const RtcStats& stats)
用户加入房间成功后,每 2s 会收到一次房间内统计信息的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const RtcStats& | 当前 RtcEngine 统计数据,详见:RtcStats |
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 所属用户的媒体流下行网络质量。 |
注意
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 。 |
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 。 |
virtual void bytertc::IRTCRoomEventHandler::OnMuteAllRemoteVideo(
const char* uid,
bool muted)
当某个用户开启/关闭远端所有用户视频时回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 远端用户标识。 |
| muted | bool | 是否被关闭视频。 • true: 远端用户关闭所有用户视频数据; • false: 远端用户开启所有用户视频数据。 |
virtual void bytertc::IRTCRoomEventHandler::OnUserMuteAudio(
const char* uid,
bool muted)
远端用户将其本地音频流静音时,房间内其他人会收到这个回调。 该回调由远端用户调用 MuteLocalAudioStream 方法触发。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 远端用户ID |
| muted | bool | 该用户是否已将其本地音频流静音 • true: 该用户已将其本地音频流静音 • false: 该用户已将其本地音频流取消了静音 |
virtual void bytertc::IRTCRoomEventHandler::OnUserEnableLocalAudio(
const char* uid,
bool enabled)
远端用户开启/关闭音频设备采集时,房间内其他人会收到这个回调。 该回调由远端用户调用 EnableLocalAudio 方法触发。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 远端用户ID |
| enabled | bool | 该用户是否开启了音频设备采集 • true: 该用户开启了音频设备采集 • false: 该用户关闭了音频设备采集 |
virtual void bytertc::IRTCRoomEventHandler::OnLocalAudioStats(
const LocalAudioStats& stats)
通话中本地音频流的统计信息回调。 该回调描述本地设备发送音频流的统计信息,每 2 秒触发一次。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const LocalAudioStats& | 本地音频统计数据,详细定义见:LocalAudioStats |
virtual void bytertc::IRTCRoomEventHandler::OnRemoteAudioStats(
const RemoteAudioStats& stats)
通话中远端音频流的统计信息回调。 该回调描述远端用户在通话中端到端的音频流状态,针对每个远端用户/主播每 2 秒触发一次。如果远端同时存在多个用户/主播,该回调每 2 秒会被触发多次。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const RemoteAudioStats& | 远端音频统计数据,详细定义见:RemoteAudioStats |
virtual void bytertc::IRTCRoomEventHandler::OnConnectionLost()
SDK 与信令服务器连接断开回调。当 SDK 与信令服务器的网络连接断开超过 10 秒时回调该事件。
注意
virtual void bytertc::IRTCRoomEventHandler::OnConnectionInterrupted()
SDK 与信令服务器连接中断回调。当 SDK 检测到与信令服务器的网络连接中断时回调该事件。
注意
virtual void bytertc::IRTCRoomEventHandler::OnFirstLocalAudioFrame(
int elapsed)
当收到本地第一帧音频的时候上报该事件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| elapsed | int | 从开始发布音频流到收到该事件经历的时间(毫秒单位) |
virtual void bytertc::IRTCRoomEventHandler::OnFirstRemoteAudioFrame(
const char* uid,
int elapsed)
当收到远端流的第一帧音频的时候上报该事件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 远端用户ID |
| elapsed | int | 从开始订阅音频流到收到该事件经历的时间(毫秒单位) |
virtual void bytertc::IRTCRoomEventHandler::OnStreamRemove(
const ByteStream& stream,
RtcStreamRemoveReason reason)
房间内远端流移除回调。
房间内的远端用户停止发布音视频流时,本地用户会收到此回调通知。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream | const ByteStream& | 流的属性,详见数据结构 ByteStream 。 |
| reason | RtcStreamRemoveReason | 远端流移除的原因,详见枚举类型 RtcStreamRemoveReason 。 |
virtual void bytertc::IRTCRoomEventHandler::OnStreamAdd(
const ByteStream& stream)
房间内新流发布回调。
房间内的远端用户发布新的音视频流时,本地用户会收到此回调通知。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream | const ByteStream& | 流的属性,详见数据结构 ByteStream 。 |
virtual void bytertc::IRTCRoomEventHandler::OnRemoteStreamSwitch(
const RemoteStreamSwitch& event)
收到远端流回退或恢复时回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| event | const RemoteStreamSwitch& | 远端流回退或恢复数据。详见 RemoteStreamSwitch。 |
virtual void bytertc::IRTCRoomEventHandler::OnCustomMessage(
const char* message)
广播消息回调。接收到房间内的广播消息时触发。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| message | const char* | 收到的消息内容。 |
注意
virtual void bytertc::IRTCRoomEventHandler::OnDataChannelMessageReceived(
const char* uid,
const char* message)
点对点消息回调。接收到同一房间内 uid 所属用户发来消息时触发。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 消息发送者 ID 。 |
| message | const char* | 收到的消息内容。 |
注意
virtual void bytertc::IRTCRoomEventHandler::OnDataChannelMessageSendResult(
long msgid,
int error)
点对点消息发送结果回调。当调用 SendDataChannelMessage 函数发送消息后,回调此条消息的发送结果(反馈)。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| msgid | long | 本条消息的 ID 。 |
| error | int | 消息发送结果。 • 0: 成功。 • 1: 失败,超时。 • 2: 失败,连接中断。 • 3: 失败,没有找到对应的接收者。 • 100: 失败,没有加入房间。 • 101: 失败,连接未完成初始化。 • 102: 失败,没有可用的连接。 • 1000: 失败,未知错误。 |
virtual void bytertc::IRTCRoomEventHandler::OnFirstLocalVideoFrame(
int width,
int height,
int elapsed)
收到第一帧本地视频画面时回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| width | int | 视频流宽(像素)。 |
| height | int | 视频流高(像素)。 |
| elapsed | int | 从调用 JoinChannel 方法直至该回调被触发的延迟(毫秒),如果在 JoinChannel 之前调用了 StartPreview,则返回的是从调用 StartPreview 直至该回调被触发的延迟(毫秒)。 |
注意
第一帧本地视频显示在视图上时,触发此回调。
virtual void bytertc::IRTCRoomEventHandler::OnFirstLocalScreenFrame(
int width,
int height,
int elapsed)
当收到本地屏幕共享流第一帧时回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| width | int | 视频流宽(像素)。 |
| height | int | 视频流高(像素)。 |
| elapsed | int | 从加入频道开始到现在经历的时间(毫秒单位)。 |
注意
第一帧本地视频显示在视图上时,触发此回调。
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。
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]。 |
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)。出图时间指从订阅视频流到第一个视频帧刷出来的间隔。
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 加入频道开始到发生此事件过去的时间(毫秒)。 |
virtual void bytertc::IRTCRoomEventHandler::OnUserMuteVideo(
const char* uid,
bool muted)
远端用户暂停/恢复发送视频流时回调该事件,当远端用户调用 MuteLocalVideoStream 时,其他用户会触发此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 用户ID,提示是哪个用户的视频流。 |
| muted | bool | 是否发送视频流。 • true:该用户已暂停发送视频流。 • false:该用户已恢复发送视频流。 |
注意
提示有其他用户暂停/恢复了视频流的发送。
virtual void bytertc::IRTCRoomEventHandler::OnUserEnableLocalVideo(
const char* uid,
bool enabled)
远端用户开启/关闭本地视频采集时回调该事件,当远端用户调用 EnableLocalVideo 时,其他用户会触发此回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 用户ID,提示是哪个用户的视频流。 |
| enabled | bool | 是否启用本地视频功能。 • true:该用户已启用本地视频功能。启用后,其他用户可以接收到该用户的视频流。 • false:该用户已关闭视频功能。关闭后,该用户仍然可以接收其他用户的视频流,但其他用户接收不到该用户的视频流。 |
注意
提示有其他用户启用/关闭了本地视频功能。
virtual void bytertc::IRTCRoomEventHandler::OnLocalVideoStats(
const LocalVideoStats& stats)
通话中本地视频流的统计信息回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const LocalVideoStats& | 本地视频统计数据,详见 LocalVideoStats。 |
注意
该回调描述本地设备发送视频流的统计信息,每2秒触发一次。
virtual void bytertc::IRTCRoomEventHandler::OnRemoteVideoStats(
const RemoteVideoStats& stats)
通话中远端视频流的统计信息回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stats | const RemoteVideoStats& | 远端视频统计数据,详见 RemoteVideoStats。 |
注意
该回调描述远端用户在通话中端到端的视频流状态,针对每个远端用户/主播每2秒触发一次。如果远端同时存在多个用户/主播,该回调每2秒会被触发多次。
virtual void bytertc::IRTCRoomEventHandler::OnLocalAudioStateChanged(
LocalAudioStreamState state,
LocalAudioStreamError error)
本地音频的状态发生改变时,该回调通知当前的本地音频状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | LocalAudioStreamState | 本地音频设备的状态,详见: LocalAudioStreamState |
| error | LocalAudioStreamError | 本地音频状态改变时的错误码,详见:LocalAudioStreamError |
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 | 耗时,从加入房间到该事件发生经历的时间(毫秒单位) |
virtual void bytertc::IRTCRoomEventHandler::OnLocalVideoStateChanged(
LocalVideoStreamState state,
LocalVideoStreamError error)
本地视频的状态发生改变时,该回调返回当前的本地视频状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | LocalVideoStreamState | 本地视频状态,详见 LocalVideoStreamState。 |
| error | LocalVideoStreamError | 本地视频状态改变时的错误码,详见 LocalVideoStreamError。 |
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 | 耗时,暂未实现。 |
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 |
virtual void IRtcEngineLiteEventHandler::OnWarning(
int warn)
当内部发生警告事件时触发该回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| warn | int | 警告标识码,详见:RTC_WARN_CODE |
virtual void IRtcEngineLiteEventHandler::OnError(
int err)
当内部发生不可逆转错误时触发该回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| err | int | 错误标识码,详见:RTC_ERROR_CODE |
virtual void IRtcEngineLiteEventHandler::OnAudioMixingFinished()
本地音乐文件播放已结束回调。 当调用 StartAudioMixing 启动的混音文件播放结束后,会触发该回调。
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 返回该错误码。 |
virtual void IRtcEngineLiteEventHandler::OnAudioEffectFinished(
int sound_id)
本地音效文件播放已结束回调。 当调用 PlayEffect 方法开始播放指定音效文件, 音效文件播放结束后, 应用会收到该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性。 |
virtual void IRtcEngineLiteEventHandler::OnLogReport(
const char* log_type,
const char* log_content)
端监控日志回调。当产生一个端监控事件时触发该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| log_type | const char* | 事件类型。目前类型固定为 "live_webrtc_monitor_log"。 |
| log_content | const char* | 端监控日志内容。 |
virtual void IRtcEngineLiteEventHandler::OnConnecting()
SDK 正在连接信令服务器回调。开始建连时触发。
注意
virtual void IRtcEngineLiteEventHandler::OnReconnecting()
SDK 正在重新连接信令服务器回调。开始重连时触发。
注意
virtual void IRtcEngineLiteEventHandler::OnConnected()
SDK 已经连接上信令服务器回调。连接完成时触发。
注意
virtual void IRtcEngineLiteEventHandler::OnDisconnected()
SDK 与信令服务器连接断开回调。连接断开时触发。
注意
virtual void IRtcEngineLiteEventHandler::OnConnectionStateChanged(
bytertc::CONNECTION_STATE state)
SDK 与信令服务器连接状态改变回调。连接状态改变时触发。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| state | bytertc::CONNECTION_STATE | 当前 SDK 与信令服务器的连接状态,详见:CONNECTION_STATE 。 |
virtual void IRtcEngineLiteEventHandler::OnNetworkTypeChanged(
bytertc::NetworkType type)
SDK 当前网络连接类型改变回调。当 SDK 的当前网络连接类型发生改变时回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | bytertc::NetworkType | SDK 当前的网络连接类型,详见:NetworkType 。 |
virtual void IRtcEngineLiteEventHandler::OnMirrorStateChanged(
bool mirrored)
当本地视频镜像状态改变时回调该事件。默认回调该事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mirrored | bool | 当前是否开启镜像 • true: 当前本地视频状态为开启镜像; • false: 当前本地视频状态为关闭镜像。 |
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 |
注意
当前正在使用中的设备开启成功/失败,停止成功/失败时回调该事件,目前仅支持音频录制设备和播放设备。
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 |
注意
该回调包括了系统内媒体设备的事件通知,如设备的插入、拔出事件通知。
class bytertc::IRtcEngineEventHandler
音视频引擎事件回调接口。
CreateByteRtcEngine 传入该回调实例。
详见 IRtcEngineLiteEventHandler 、IRTCRoomEventHandler
Defined in : byte_rtc_engine_event_handler.h