class bytertc::IAudioFrame
音频帧
Defined in : bytertc_audio_frame.h
| 返回 | 名称 |
|---|---|
| virtual int64_t | timestamp_us |
| virtual void | set_timestamp_us |
| virtual int | sample_rate |
| virtual void | set_sample_rate |
| virtual int | channels_num |
| virtual void | set_channels_num |
| virtual void | set_frame_memory |
| virtual uint8_t* | data |
| virtual int | data_size |
virtual int64_t bytertc::IAudioFrame::timestamp_us() const
获取音频帧时间戳。
返回值 音频帧时间戳,单位:微秒
virtual void bytertc::IAudioFrame::set_timestamp_us(
int64_t timestamp_us)
设置音频帧时间戳。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| timestamp_us | int64_t | 音频帧时间戳,单位:微秒 |
virtual int bytertc::IAudioFrame::sample_rate() const
获取音频采样率
返回值 音频采样率
virtual void bytertc::IAudioFrame::set_sample_rate(
int sample_rate)
设置音频采样率
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sample_rate | int | 音频采样率 |
virtual int bytertc::IAudioFrame::channels_num() const
获取音频通道数
返回值 音频通道数
virtual void bytertc::IAudioFrame::set_channels_num(
int channels_num)
设置音频通道数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| channels_num | int | 音频通道数 |
virtual void bytertc::IAudioFrame::set_frame_memory(
const ManagedMemory& memory)
设置音频帧内存管理信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| memory | const ManagedMemory& | 音频帧内存管理信息,详见 ManagedMemory |
virtual uint8_t* bytertc::IAudioFrame::data() const
获取音频帧内存块地址
返回值 音频帧内存块地址
virtual int bytertc::IAudioFrame::data_size() const
获取音频帧数据大小
返回值 音频帧数据大小
enum bytertc::RenderMode
渲染模式
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kRenderModeHidden | 1 | 视窗填满优先。 视频帧等比缩放,直至视窗被视频填满。如果视频帧长宽比例与视窗不同,视频帧的多出部分将无法显示。 缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长大于等于视窗对应边长。 |
| kRenderModeFit | 2 | 视频帧内容全部显示优先。 视频帧等比缩放,直至视频帧能够在视窗上全部显示。如果视频帧长宽比例与视窗不同,视窗上未被视频帧填满区域将被涂黑。 缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长小于等于视窗对应边长。 |
enum bytertc::UserOfflineReason
用户离开房间的原因。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kUserOfflineReasonQuit | 0 | 远端用户调用 LeaveRoom 方法主动退出房间,或将身份切换至静默观众。 |
| kUserOfflineReasonDropped | 1 | 远端用户因网络等原因掉线。 |
enum bytertc::StreamRemoveReason
房间内远端流被移除的原因。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kStreamRemoveReasonUnpublish | 0 | 远端用户停止发布流。 |
| kStreamRemoveReasonPublishFailed | 1 | 远端用户发布流失败。 |
| kStreamRemoveReasonKeepLiveFailed | 2 | 保活失败。 |
| kStreamRemoveReasonClientDisconnected | 3 | 远端用户断网。 |
| kStreamRemoveReasonRepublish | 4 | 远端用户重新发布流。 |
| kStreamRemoveReasonOther | 5 | 其他原因。 |
enum bytertc::UserRoleType
用户角色。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kUserRoleTypeBroadcaster | 1 | 主播角色。该角色用户可在房间内发布和订阅音视频流,房间中的其他用户可以感知到该用户的存在。 |
| kUserRoleTypeSilentAudience | 2 | 静默观众角色。该众角色用户只可在房间内订阅音视频流,房间中的其他用户无法感知到该用户的存在。 |
enum bytertc::JoinRoomType
用户加入房间的类型。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kJoinRoomTypeFirst | 0 | 首次加入房间。用户手动调用 JoinRoom,收到加入成功。 |
| kJoinRoomTypeReconnected | 1 | 重新加入房间。用户网络较差,失去与服务器的连接,进行重连时收到加入成功。 |
enum bytertc::RoomMessageSendResult
发送消息给房间的结果
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kRoomMessageSendResultSuccess | 200 | 房间Broadcast消息发送成功 |
| kRoomMessageSendResultNotJoin | 100 | 没有加入房间 |
| kRoomMessageSendResultNoConnection | 102 | 没有可用的数据传输通道连接 |
| kRoomMessageSendResultExceedMaxLength | 103 | 消息超过最大长度,当前为64KB |
| kRoomMessageSendResultUnknown | 1000 | 未知错误 |
enum bytertc::ConnectionState
SDK 与信令服务器连接状态。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kConnectionStateDisconnected | 1 | 连接断开。 |
| kConnectionStateConnecting | 2 | 首次连接,正在连接中。 |
| kConnectionStateConnected | 3 | 首次连接成功。 |
| kConnectionStateReconnecting | 4 | 连接断开后重新连接中。 |
| kConnectionStateReconnected | 5 | 连接断开后重连成功。 |
| kConnectionStateLost | 6 | 网络连接断开超过 10 秒,仍然会继续重连。 |
enum bytertc::NetworkQuality
媒体流网络质量。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kNetworkQualityUnknown | 0 | 网络质量未知。 |
| kNetworkQualityExcellent | 1 | 网络质量极好。 |
| kNetworkQualityGood | 2 | 主观感觉和 kNetworkQualityExcellent 差不多,但码率可能略低。 |
| kNetworkQualityPoor | 3 | 主观感受有瑕疵但不影响沟通。 |
| kNetworkQualityBad | 4 | 勉强能沟通但不顺畅。 |
| kNetworkQualityVbad | 5 | 网络质量非常差,基本不能沟通。 |
enum bytertc::NetworkType
SDK 网络连接类型。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kNetworkTypeUnknown | -1 | 网络连接类型未知。 |
| kNetworkTypeDisconnected | 0 | 网络连接已断开。 |
| kNetworkTypeLAN | 1 | 网络连接类型为 LAN 。 |
| kNetworkTypeWIFI | 2 | 网络连接类型为 Wi-Fi(包含热点)。 |
| kNetworkTypeMobile2G | 3 | 网络连接类型为 2G 移动网络。 |
| kNetworkTypeMobile3G | 4 | 网络连接类型为 3G 移动网络。 |
| kNetworkTypeMobile4G | 5 | 网络连接类型为 4G 移动网络。 |
| kNetworkTypeMobile5G | 6 | 网络连接类型为 5G 移动网络。 |
enum bytertc::PublishFallbackOption
性能回退
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kPublishFallbackOptionDisabled | 0 | 关闭发送视频流时的性能回退功能,默认值 |
| kPublishFallbackOptionSimulcast | 1 | 开启在网络情况不佳或设备性能不足时只发送小流的功能 |
struct bytertc::ScreenParameters
屏幕共享参数
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| int | frame_rate |
| int | kbitrate |
int bytertc::ScreenParameters::frame_rate = 15;
编码帧率,单位为 fps
int bytertc::ScreenParameters::kbitrate = -1;
编码码率,小于 0 时 SDK 会根据高宽自适应码率, 单位 kbps
enum bytertc::RoomProfileType
房间模式
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kRoomProfileTypeCommunication | 0 | 通信模式。 |
| kRoomProfileTypeLiveBroadcasting | 1 | 直播模式。 |
| kRoomProfileTypeGame | 2 | 游戏模式。SDK 会使用低延时设置。 |
| kRoomProfileTypeCloudGame | 3 | 云游戏模式。SDK 会使用低延时设置。 |
| kRoomProfileTypeLowLatency | 4 | 低时延模式。SDK 会使用低延时设置。 当你的场景非游戏或云游戏场景,又需要极低延时的体验时,可以使用该模式。 该模式下,音视频通话延时会明显降低,但同时弱网抗性、通话音质等均会受到一定影响。 在使用此模式前,强烈建议咨询技术支持同学。 |
enum bytertc::MediaDeviceType
当前媒体设备类型
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kMediaDeviceTypeAudioRenderDevice | 0 | 音频渲染设备类型 |
| kMediaDeviceTypeAudioCaptureDevice | 1 | 音频采集设备类型 |
| kMediaDeviceTypeVideoCaptureDevice = 3 | 3 | 视频采集设备类型 |
enum bytertc::MediaDeviceState
媒体设备状态类型
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kMediaDeviceStateStarted | 1 | 设备已开启 |
| kMediaDeviceStateStopped | 2 | 设备已停止 |
| kMediaDeviceStateRuntimeError | 3 | 设备运行时错误 |
| kMediaDeviceStateAdded | 10 | 设备已插入 |
| kMediaDeviceStateRemoved = 11 | 11 | 设备被移除 |
enum bytertc::MediaDeviceError
媒体设备错误类型
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kMediaDeviceErrorOK | 0 | 媒体设备正常 |
| kMediaDeviceErrorDeviceNoPermission | 1 | 没有权限启动媒体设备 |
| kMediaDeviceErrorDeviceBusy | 2 | 媒体设备已经在使用中 |
| kMediaDeviceErrorDeviceFailure | 3 | 媒体设备错误 |
| kMediaDeviceErrorDeviceNotFound | 4 | 未找到指定的媒体设备 |
| kMediaDeviceErrorDeviceDisconnected | 5 | 媒体设备被移除 |
enum bytertc::CameraID
移动端摄像头。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kCameraIDFront | 0 | 前置摄像头 |
| kCameraIDBack = 1 | 1 | 后置摄像头 |
enum bytertc::AudioPlaybackDevice
音频播放设备类型
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kAudioPlaybackDeviceHeadset | 1 | 有线耳机 |
| kAudioPlaybackDeviceEarpiece | 2 | 听筒 |
| kAudioPlaybackDeviceSpeakerphone | 3 | 扬声器 |
| kAudioPlaybackDeviceHeadsetBluetooth = 4 | 4 | 蓝牙耳机 |
enum bytertc::SubscribeFallbackOption
订阅回退选项
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kSubscribeFallbackOptionDisable | 0 | 下行网络较弱时,关闭订阅音视频流时的性能回退功能,默认值 |
| kSubscribeFallbackOptionVideoStreamLow | 1 | 下行网络较弱时,只接收视频小流 |
| kSubscribeFallbackOptionAudioOnly | 2 | 下行网络较弱时,先尝试只接收视频小流;如果网络环境无法显示视频,则再回退到只接收远端订阅的音频流 |
enum bytertc::SubscribeMode
订阅模式选项。业务方在加入房间前,调用 EnableAutoSubscribe 接口设置订阅模式。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kSubscribeModeAuto | 0 | 自动订阅模式。SDK 会自动为你订阅房间中的每一路流。 |
| kSubscribeModeManual = 1 | 1 | 手动订阅模式。SDK 不会自动订阅房间内的音视频流,你应根据根据需要调用 SubscribeStream 方法手动订阅其他用户发布的音视频流。 |
enum bytertc::RemoteUserPriority
远端用户优先级,在性能不足需要回退时,会优先回退优先级低的用户的音视频流
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kRemoteUserPriorityLow | 0 | 用户优先级为低(默认值) |
| kRemoteUserPriorityMedium | 100 | 用户优先级为正常 |
| kRemoteUserPriorityHigh | 200 | 用户优先级为高 |
enum bytertc::FallbackOrRecoverReason
远端订阅流发生回退或恢复的原因
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kFallbackOrRecoverReasonUnknown | -1 | 其他原因,非带宽和性能原因引起的回退或恢复。默认值 |
| kFallbackOrRecoverReasonSubscribeFallbackByBandwidth | 0 | 由带宽不足导致的订阅端音视频流回退。 |
| kFallbackOrRecoverReasonSubscribeFallbackByPerformance | 1 | 由性能不足导致的订阅端音视频流回退。 |
| kFallbackOrRecoverReasonSubscribeRecoverByBandwidth | 2 | 由带宽恢复导致的订阅端音视频流恢复。 |
| kFallbackOrRecoverReasonSubscribeRecoverByPerformance | 3 | 由性能恢复导致的订阅端音视频流恢复。 |
| kFallbackOrRecoverReasonPublishFallbackByBandwidth | 4 | 由带宽不足导致的发布端音视频流回退。 |
| kFallbackOrRecoverReasonPublishFallbackByPerformance | 5 | 由性能不足导致的发布端音视频流回退。 |
| kFallbackOrRecoverReasonPublishRecoverByBandwidth | 6 | 由带宽恢复导致的发布端音视频流恢复。 |
| kFallbackOrRecoverReasonPublishRecoverByPerformance | 7 | 由性能恢复导致的发布端音视频流恢复。 |
struct bytertc::RemoteStreamSwitch
流切换信息。本地用户订阅的远端流触发回退策略时的流切换信息。
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| const char* | uid |
| bool | is_screen |
| int | before_video_index |
| int | after_video_index |
| bool | before_enable |
| bool | after_enable |
| FallbackOrRecoverReason | reason |
const char* bytertc::RemoteStreamSwitch::uid;
订阅的音视频流的发布者的用户 ID。
bool bytertc::RemoteStreamSwitch::is_screen;
是否是屏幕流。
int bytertc::RemoteStreamSwitch::before_video_index;
流切换前本地用户订阅的视频流的分辨率对应的索引。
int bytertc::RemoteStreamSwitch::after_video_index;
流切换后本地用户订阅的视频流的分辨率对应的索引。
bool bytertc::RemoteStreamSwitch::before_enable;
流切换前是否有视频流。
bool bytertc::RemoteStreamSwitch::after_enable;
流切换后是否有视频流。
FallbackOrRecoverReason bytertc::RemoteStreamSwitch::reason;
触发流回退的原因,详见类型 FallbackOrRecoverReason 。
enum bytertc::BusinessCheckCode
事务检查码。
用户调用 SetBusinessId 方法设置业务标识参数的返回错误码。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| ERROR_ALREADY_IN_ROOM | -6001 | 用户已经在房间中。 业务标识需要在加入房间之前设置,加入后设置无效。 |
| ERROR_INPUT_INVALIDATE | -6002 | 输入参数非法。 用户传入的业务标识参数非法,参数合法性参考 SetBusinessId 方法的参数说明。 |
enum bytertc::LocalAudioStreamState
本地音频流状态。 SDK 通过 OnLocalAudioStateChanged 回调本地音频流状态
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kLocalAudioStreamStateStopped | 0 | 本地音频默认初始状态。 麦克风停止工作时回调该状态,对应错误码 kLocalAudioStreamErrorOk |
| kLocalAudioStreamStateRecording | 1 | 本地音频录制设备启动成功。 采集到音频首帧时回调该状态,对应错误码 kLocalAudioStreamErrorOk |
| kLocalAudioStreamStateEncoding | 2 | 本地音频首帧编码成功。 音频首帧编码成功时回调该状态,对应错误码 kLocalAudioStreamErrorOk |
| kLocalAudioStreamStateFailed | 3 | 本地音频启动失败,在以下时机回调该状态: + 本地录音设备启动失败,对应错误码 kLocalAudioStreamErrorRecordFailure + 检测到没有录音设备权限,对应错误码 kLocalAudioStreamErrorDeviceNoPermission + 音频编码失败,对应错误码 kLocalAudioStreamErrorEncodeFailure |
enum bytertc::LocalAudioStreamError
本地音频流状态改变时的错误码。 SDK 通过 OnLocalAudioStateChanged 回调该错误码。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kLocalAudioStreamErrorOk | 0 | 本地音频状态正常 |
| kLocalAudioStreamErrorFailure | 1 | 本地音频出错原因未知 |
| kLocalAudioStreamErrorDeviceNoPermission | 2 | 没有权限启动本地音频录制设备 |
| kLocalAudioStreamErrorDeviceBusy | 3 | 本地音频录制设备已经在使用中 |
| kLocalAudioStreamErrorRecordFailure | 4 | 本地音频录制失败,建议你检查录制设备是否正常工作 |
| kLocalAudioStreamErrorEncodeFailure | 5 | 本地音频编码失败 |
| kLocalAudioStreamErrorNoRecordingDevice | 6 | 没有可用的音频录制设备 |
enum bytertc::LocalVideoStreamState
本地视频流状态
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kLocalVideoStreamStateStopped | 0 | 本地视频采集停止状态 |
| kLocalVideoStreamStateRecording | 1 | 本地视频采集设备启动成功 |
| kLocalVideoStreamStateEncoding | 2 | 本地视频采集后,首帧编码成功 |
| kLocalVideoStreamStateFailed | 3 | 本地视频采集设备启动失败 |
enum bytertc::RemoteAudioState
远端音频流状态。
用户可以通过 OnRemoteAudioStateChanged 了解该状态。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kRemoteAudioStateStopped | 0 | 不接收远端音频流。 以下情况下会触发回调 OnRemoteAudioStateChanged: + 本地用户停止接收远端音频流,对应原因是:kRemoteAudioStateChangeReasonLocalMutedRemoteAudioStateChangeReason + 远端用户停止发送音频流,对应原因是:kRemoteAudioStateChangeReasonRemoteMutedRemoteAudioStateChangeReason + 远端用户离开房间,对应原因是:kRemoteAudioStateChangeReasonRemoteOfflineRemoteAudioStateChangeReason |
| kRemoteAudioStateStarting | 1 | 开始接收远端音频流首包。 刚收到远端音频流首包会触发回调 OnRemoteAudioStateChanged, 对应原因是: kRemoteAudioStateChangeReasonLocalUnmutedRemoteAudioStateChangeReason。 |
| kRemoteAudioStateDecoding | 2 | 远端音频流正在解码,正常播放。 以下情况下会触发回调 OnRemoteAudioStateChanged: + 成功解码远端音频首帧,对应原因是:kRemoteAudioStateChangeReasonLocalUnmutedRemoteAudioStateChangeReason + 网络由阻塞恢复正常,对应原因是:kRemoteAudioStateChangeReasonNetworkRecoveryRemoteAudioStateChangeReason + 本地用户恢复接收远端音频流,对应原因是:kRemoteAudioStateChangeReasonLocalUnmutedRemoteAudioStateChangeReason + 远端用户恢复发送音频流,对应原因是:kRemoteAudioStateChangeReasonRemoteUnmutedRemoteAudioStateChangeReason |
| kRemoteAudioStateFrozen | 3 | 远端音频流卡顿。 网络阻塞、丢包率大于 40% 时,会触发回调 OnRemoteAudioStateChanged, 对应原因是:kRemoteAudioStateChangeReasonNetworkCongestionRemoteAudioStateChangeReason |
enum bytertc::RemoteAudioStateChangeReason
接收远端音频流状态改变的原因。
用户可以通过 OnRemoteAudioStateChanged 了解该原因。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kRemoteAudioStateChangeReasonInternal | 0 | 内部原因 |
| kRemoteAudioStateChangeReasonNetworkCongestion | 1 | 网络阻塞 |
| kRemoteAudioStateChangeReasonNetworkRecovery | 2 | 网络恢复正常 |
| kRemoteAudioStateChangeReasonLocalMuted | 3 | 本地用户停止接收远端音频流 |
| kRemoteAudioStateChangeReasonLocalUnmuted | 4 | 本地用户恢复接收远端音频流 |
| kRemoteAudioStateChangeReasonRemoteMuted | 5 | 远端用户停止发送音频流 |
| kRemoteAudioStateChangeReasonRemoteUnmuted | 6 | 远端用户恢复发送音频流 |
| kRemoteAudioStateChangeReasonRemoteOffline | 7 | 远端用户离开房间 |
enum bytertc::RemoteVideoState
远端视频流状态。状态改变时,会收到回调:OnRemoteVideoStateChanged
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kRemoteVideoStateStopped | 0 | 远端视频流默认初始状态,视频尚未开始播放。 |
| kRemoteVideoStateStarting | 1 | 本地用户已接收远端视频流首包。 |
| kRemoteVideoStateDecoding | 2 | 远端视频流正在解码,正常播放。 |
| kRemoteVideoStateFrozen | 3 | 远端视频流卡顿,可能有网络等原因。 |
| kRemoteVideoStateFailed | 4 | 远端视频流播放失败。 |
enum bytertc::RemoteVideoStateChangeReason
远端视频流状态改变的原因
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kRemoteVideoStateChangeReasonInternal | 0 | 内部原因 |
| kRemoteVideoStateChangeReasonNetworkCongestion | 1 | 网络阻塞 |
| kRemoteVideoStateChangeReasonNetworkRecovery | 2 | 网络恢复正常 |
| kRemoteVideoStateChangeReasonLocalMuted | 3 | 本地用户停止接收远端视频流或本地用户禁用视频模块 |
| kRemoteVideoStateChangeReasonLocalUnmuted | 4 | 本地用户恢复接收远端视频流或本地用户启用视频模块 |
| kRemoteVideoStateChangeReasonRemoteMuted | 5 | 远端用户停止发送视频流或远端用户禁用视频模块 |
| kRemoteVideoStateChangeReasonRemoteUnmuted | 6 | 远端用户恢复发送视频流或远端用户启用视频模块 |
| kRemoteVideoStateChangeReasonRemoteOffline | 7 | 远端用户离开频道。 状态转换参考 OnStreamRemove |
enum bytertc::BackgroundMode
背景模式
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kBackgroundModeNone | 0 | 无 |
| kBackgroundModeBlur | 1 | 虚化 |
| kBackgroundModeA | 2 | 背景 1 |
| kBackgroundModeB | 3 | 背景 2 |
enum bytertc::DivideMode
分割模型
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kDivideModeNone | 0 | 自研 |
| kDivideModeEffect | 1 | effect |
struct bytertc::AudioVolumeInfo
音频流来源的用户 ID 及对应的音量。
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| unsigned int | volume |
| const char* | uid |
unsigned int bytertc::AudioVolumeInfo::volume;
音量,取值范围为:[0,255]
const char* bytertc::AudioVolumeInfo::uid;
音频流来源的用户 ID
enum bytertc::PerformanceAlarmReason
OnPerformanceAlarms 告警的原因
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kPerformanceAlarmReasonBandwidthFallbacked | 0 | 网络原因差,造成了发送性能回退。仅在开启发送性能回退时,会收到此原因。 |
| kPerformanceAlarmReasonBandwidthResumed | 1 | 网络性能恢复,发送性能回退恢复。仅在开启发送性能回退时,会收到此原因。 |
| kPerformanceAlarmReasonPerformanceFallbacked | 2 | 如果未开启发送性能回退,收到此告警时,意味着性能不足; 如果开启了发送性能回退,收到此告警时,意味着性能不足,且已发生发送性能回退。 |
| kPerformanceAlarmReasonPerformanceResumed | 3 | 如果未开启发送性能回退,收到此告警时,意味着性能不足已恢复; 如果开启了发送性能回退,收到此告警时,意味着性能不足已恢复,且已发生发送性能回退恢复。 |
enum bytertc::PerformanceAlarmMode
是否开启发布性能回退
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kPerformanceAlarmModeNormal | 0 | 未开启发布性能回退 |
| kPerformanceAlarmModeSimulcast | 1 | 已开启发布性能回退 |
struct bytertc::SourceWantedData
性能回退相关数据
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| int | width |
| int | height |
| int | frame_rate |
int bytertc::SourceWantedData::width;
未开启发布回退时,此值表示推荐的视频输入宽度,当回退模式为大小流模式时,表示当前推流的最大宽度
如果未开启发送性能回退,此值表示推荐的视频输入宽度;
如果开启了发送性能回退,此值表示当前推流的最大宽度。
int bytertc::SourceWantedData::height;
如果未开启发送性能回退,此值表示推荐的视频输入高度;
如果开启了发送性能回退,此值表示当前推流的最大高度。
int bytertc::SourceWantedData::frame_rate;
如果未开启发送性能回退,此值表示推荐的视频输入帧率,单位 fps;
如果开启了发送性能回退,此值表示当前推流的最大帧率,单位 fps。
struct bytertc::UserInfo
用户信息
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| const char* | uid |
| const char* | extra_info |
const char* bytertc::UserInfo::uid = nullptr;
用户 ID,长度在 128 字节以内的非空字符串。支持以下字符集范围: 1. 26 个大写字母 A ~ Z 2. 26 个小写字母 a ~ z 3. 10 个数字 0 ~ 9 4. 下划线 "_",at 符 "@",减 号 "-"
const char* bytertc::UserInfo::extra_info = nullptr;
用户传递的额外信息,最大长度为 200 字节。会在 onUserJoinedOnUserJoined 中回调给远端用户。
struct bytertc::RtcRoomStats
通话相关的统计信息
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| float | txLostrate |
| float | rxLostrate |
| int | rtt |
| unsigned int | duration |
| unsigned int | tx_bytes |
| unsigned int | rx_bytes |
| unsigned short | tx_kbitrate |
| unsigned short | rx_kbitrate |
| unsigned short | rx_audio_kbitrate |
| unsigned short | tx_audio_kbitrate |
| unsigned short | rx_video_kbitrate |
| unsigned short | tx_video_kbitrate |
| unsigned int | user_count |
float bytertc::RtcRoomStats::txLostrate;
当前应用的上行丢包率,取值范围为 [0, 1]。
float bytertc::RtcRoomStats::rxLostrate;
当前应用的下行丢包率,取值范围为 [0, 1]。
int bytertc::RtcRoomStats::rtt;
客户端到服务端数据传输的往返时延(单位 ms)
unsigned int bytertc::RtcRoomStats::duration;
通话时长,单位为秒,累计值
unsigned int bytertc::RtcRoomStats::tx_bytes;
本地用户的总发送字节数 (bytes),累计值
unsigned int bytertc::RtcRoomStats::rx_bytes;
本地用户的总接收字节数 (bytes),累计值
unsigned short bytertc::RtcRoomStats::tx_kbitrate;
发送码率 (kbps),获取该数据时的瞬时值
unsigned short bytertc::RtcRoomStats::rx_kbitrate;
接收码率 (kbps),获取该数据时的瞬时值
unsigned short bytertc::RtcRoomStats::rx_audio_kbitrate;
音频接收码率 (kbps),获取该数据时的瞬时值
unsigned short bytertc::RtcRoomStats::tx_audio_kbitrate;
音频发送码率 (kbps),获取该数据时的瞬时值
unsigned short bytertc::RtcRoomStats::rx_video_kbitrate;
视频接收码率 (kbps),获取该数据时的瞬时值
unsigned short bytertc::RtcRoomStats::tx_video_kbitrate;
视频发送码率 (kbps),获取该数据时的瞬时值
unsigned int bytertc::RtcRoomStats::user_count;
当前房间内的用户人数
struct bytertc::RemoteAudioStats
远端音频流统计信息,统计周期为 2s。
本地用户订阅远端音频流成功后,SDK 会周期性地通过 OnRemoteStreamStats 通知本地用户订阅的音频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| float | audio_loss_rate |
| int | received_kbitrate |
| int | stall_count |
| int | stall_duration |
| long | e2e_delay |
| int | playout_sample_rate |
| int | stats_interval |
| int | rtt |
| int | total_rtt |
| int | quality |
| int | jitter_buffer_delay |
| int | num_channels |
| int | received_sample_rate |
| int | frozen_rate |
| int | concealed_samples |
| int | concealment_event |
| int | dec_sample_rate |
| int | dec_duration |
float bytertc::RemoteAudioStats::audio_loss_rate;
音频丢包率。统计周期内的音频下行丢包率,取值范围为 [0, 1] 。
int bytertc::RemoteAudioStats::received_kbitrate;
接收码率。统计周期内的音频接收码率,单位为 kbps 。
int bytertc::RemoteAudioStats::stall_count;
音频卡顿次数。统计周期内的卡顿次数。
int bytertc::RemoteAudioStats::stall_duration;
音频卡顿时长。统计周期内的卡顿时长,单位为 ms 。
long bytertc::RemoteAudioStats::e2e_delay;
用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。
int bytertc::RemoteAudioStats::playout_sample_rate;
播放采样率。统计周期内的音频播放采样率信息,单位为 Hz 。
int bytertc::RemoteAudioStats::stats_interval;
统计间隔。此次统计周期的间隔,单位为 ms 。
int bytertc::RemoteAudioStats::rtt;
客户端到服务端数据传输的往返时延,单位为 ms。
int bytertc::RemoteAudioStats::total_rtt;
发送端——服务端——接收端全链路数据传输往返时延。单位为 ms 。
int bytertc::RemoteAudioStats::quality;
远端用户发送的音频流质量。值含义参考 NetworkQuality 。
int bytertc::RemoteAudioStats::jitter_buffer_delay;
因引入 jitter buffer 机制导致的延时。单位为 ms 。
int bytertc::RemoteAudioStats::num_channels;
音频声道数。
int bytertc::RemoteAudioStats::received_sample_rate;
音频接收采样率。统计周期内接收到的远端音频采样率信息,单位为 Hz 。
int bytertc::RemoteAudioStats::frozen_rate;
远端用户在加入房间后发生音频卡顿的累计时长占音频总有效时长的百分比。音频有效时长是指远端用户进房发布音频流后,除停止发送音频流和禁用音频模块之外的音频时长。
int bytertc::RemoteAudioStats::concealed_samples;
音频 PLC 样点总个数。
int bytertc::RemoteAudioStats::concealment_event;
PLC 累计次数。
int bytertc::RemoteAudioStats::dec_sample_rate;
音频解码采样率。统计周期内的音频解码采样率信息,单位为 Hz 。
int bytertc::RemoteAudioStats::dec_duration;
解码时长。对此次统计周期内接收的远端音频流进行解码的总耗时,单位为 s 。
struct bytertc::LocalAudioStats
本地音频流统计信息,统计周期为 2s 。
本地用户发布音频流成功后,SDK 会周期性地通过 OnLocalStreamStats
通知用户发布的音频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| float | audio_loss_rate |
| int | send_kbitrate |
| int | record_sample_rate |
| int | stats_interval |
| int | rtt |
| int | num_channels |
| int | sent_sample_rate |
float bytertc::LocalAudioStats::audio_loss_rate;
音频丢包率。此次统计周期内的音频上行丢包率,单位为 % ,取值范围为 [0, 1]。
int bytertc::LocalAudioStats::send_kbitrate;
发送码率。此次统计周期内的音频发送码率,单位为 kbps 。
int bytertc::LocalAudioStats::record_sample_rate;
采集采样率。此次统计周期内的音频采集采样率信息,单位为 Hz 。
int bytertc::LocalAudioStats::stats_interval;
统计间隔。此次统计周期的间隔,单位为 ms 。
int bytertc::LocalAudioStats::rtt;
往返时延。单位为 ms 。
int bytertc::LocalAudioStats::num_channels;
音频声道数。
int bytertc::LocalAudioStats::sent_sample_rate;
音频发送采样率。此次统计周期内的音频发送采样率信息,单位为 Hz 。
struct bytertc::MediaStreamInfo
流属性。
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| const char* | user_id |
| bool | is_screen |
| bool | has_video |
| bool | has_audio |
| VideoSolutionDescription* | profiles |
| int | profile_count |
const char* bytertc::MediaStreamInfo::user_id;
发布此流的用户 ID 。
bool bytertc::MediaStreamInfo::is_screen;
此流是否为共享屏幕流。
bool bytertc::MediaStreamInfo::has_video;
此流是否包括视频流。
bool bytertc::MediaStreamInfo::has_audio;
流是否包括音频流。
VideoSolutionDescription* bytertc::MediaStreamInfo::profiles;
视频流的属性。
当远端用户调用 SetVideoEncoderConfig 方法发布多个配置的视频流时,此处会包含该用户发布的所有视频流的属性信息。
参看 VideoSolutionDescription。
int bytertc::MediaStreamInfo::profile_count;
不同配置流的个数。
当远端用户调用 SetVideoEncoderConfig 方法发布多个配置的视频流时,此处会包含该用户发布的视频流的数目。
struct bytertc::SubscribeConfig
手动订阅流的配置信息。
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| bool | is_screen |
| bool | sub_video |
| bool | sub_audio |
| int | video_index |
| int | priority |
bool bytertc::SubscribeConfig::is_screen = false;
是否是屏幕流(默认为否)。
bool bytertc::SubscribeConfig::sub_video;
是否订阅视频。
bool bytertc::SubscribeConfig::sub_audio;
是否订阅音频。
int bytertc::SubscribeConfig::video_index;
订阅的视频流分辨率下标。
用户可以通过调用 SetVideoEncoderConfig 方法在一路流中发布多个不同分辨率的视频。因此订阅流时,需要指定订阅的具体分辨率。此参数即用于指定需订阅的分辨率的下标,默认值为 0 。
int bytertc::SubscribeConfig::priority = 0;
远端用户的需求优先级,参看 RemoteUserPriority,默认值为 0 。
当开启了订阅流回退选项功能(详见 SetSubscribeFallbackOption 方法),弱网或性能不足时会优先保证收到的高优先级用户的流的质量。
enum bytertc::ProblemFeedbackOption
音视频质量反馈问题类型
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kProblemFeedbackOptionNone | 0 | 没有问题 |
| kProblemFeedbackOptionOtherMessage | (1 << 0) | 其他问题 |
| kProblemFeedbackOptionAudioNotClear | (1 << 1) | 声音不清晰 |
| kProblemFeedbackOptionVideoNotClear | (1 << 2) | 视频不清晰 |
| kProblemFeedbackOptionNotSync | (1 << 3) | 音视频不同步 |
| kProblemFeedbackOptionAudioLagging | (1 << 4) | 音频卡顿 |
| kProblemFeedbackOptionVideoLagging | (1 << 5) | 视频卡顿 |
| kProblemFeedbackOptionConnectionFailed | (1 << 6) | 无法连接 |
| kProblemFeedbackOptionAudioDelay | (1 << 7) | 音频延迟 |
| kProblemFeedbackOptionVideoDelay | (1 << 8) | 视频延迟 |
| kProblemFeedbackOptionDisconnected | (1 << 9) | 连接断开 |
| kProblemFeedbackOptionNoAudio | (1 << 10) | 无声音 |
| kProblemFeedbackOptionNoVideo | (1 << 11) | 无画面 |
| kProblemFeedbackOptionAudioStrength | (1 << 12) | 声音过大或过小 |
| kProblemFeedbackOptionEcho | (1 << 13) | 回声噪音 |
enum bytertc::VideoStreamType
远端视频类型 目前C++ sdk 只支持 kVideoStreamTypeHigh 类型
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kVideoStreamTypeHigh | 0 | 高分辨率视频流 |
| kVideoStreamTypeLow | 1 | 低分辨率视频 |
struct bytertc::VideoCanvas
画布信息和渲染模式。
你应使用 SetLocalVideoCanvas 将视频流绑定到本地视图。
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| void* | view |
| int | render_mode |
| const char* | uid |
| void* | priv |
void* bytertc::VideoCanvas::view;
本地视图句柄
int bytertc::VideoCanvas::render_mode;
渲染模式,参看 RenderMode
const char* bytertc::VideoCanvas::uid;
视图对应的用户 ID
void* bytertc::VideoCanvas::priv;
你的自定义数据,SDK 透传该数据。
struct bytertc::RemoteVideoStats
远端音频流统计信息,统计周期为 2s 。
本地用户订阅远端音频流成功后,SDK 会周期性地通过 OnRemoteStreamStats
通知本地用户订阅的远端视频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| int | width |
| int | height |
| float | video_loss_rate |
| int | received_kbitrate |
| int | decoder_output_frame_rate |
| int | renderer_output_frame_rate |
| int | stall_count |
| int | stall_duration |
| long | e2e_delay |
| bool | is_screen |
| int | stats_interval |
| int | rtt |
| int | frozen_rate |
| int | video_index |
int bytertc::RemoteVideoStats::width;
视频宽度
int bytertc::RemoteVideoStats::height;
视频高度
float bytertc::RemoteVideoStats::video_loss_rate;
视频丢包率。统计周期内的视频下行丢包率,单位为 % ,取值范围:[0,1] 。
int bytertc::RemoteVideoStats::received_kbitrate;
接收码率。统计周期内的视频接收码率,单位为 kbps 。
int bytertc::RemoteVideoStats::decoder_output_frame_rate;
解码器输出帧率。统计周期内的视频解码器输出帧率,单位 fps 。
int bytertc::RemoteVideoStats::renderer_output_frame_rate;
渲染帧率。统计周期内的视频渲染帧率,单位 fps 。
int bytertc::RemoteVideoStats::stall_count;
卡顿次数。统计周期内的卡顿次数。
int bytertc::RemoteVideoStats::stall_duration;
卡顿时长。统计周期内的视频卡顿总时长。单位 ms 。
long bytertc::RemoteVideoStats::e2e_delay;
用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。
bool bytertc::RemoteVideoStats::is_screen;
所属用户的媒体流是否为屏幕流。你可以知道当前数据来自主流还是屏幕流。
int bytertc::RemoteVideoStats::stats_interval;
统计间隔,此次统计周期的间隔,单位为 ms 。
int bytertc::RemoteVideoStats::rtt;
往返时延,单位为 ms 。
int bytertc::RemoteVideoStats::frozen_rate;
远端用户在进房后发生视频卡顿的累计时长占视频总有效时长的百分比(%)。视频有效时长是指远端用户进房发布视频流后,除停止发送视频流和禁用视频模块之外的视频时长。
int bytertc::RemoteVideoStats::video_index;
对应多种分辨率的流的下标,详见 VideoSolutionDescription
struct bytertc::LocalVideoStats
本地视频流统计信息,统计周期为 2s 。
本地用户发布视频流成功后,SDK 会周期性地通过 OnLocalStreamStats
通知用户发布的视频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| int | sent_kbitrate |
| int | input_frame_rate |
| int | sent_frame_rate |
| int | encoder_output_frame_rate |
| int | renderer_output_frame_rate |
| int | target_kbitrate |
| int | target_frame_rate |
| int | stats_interval |
| float | video_loss_rate |
| int | rtt |
| int | encoded_bitrate |
| int | encoded_frame_width |
| int | encoded_frame_height |
| int | encoded_frame_count |
| VideoCodecType | codec_type |
| bool | is_screen |
int bytertc::LocalVideoStats::sent_kbitrate;
发送码率。此次统计周期内的视频发送码率,单位为 kbps 。
int bytertc::LocalVideoStats::input_frame_rate;
采集帧率。此次统计周期内的视频采集帧率,单位为 fps 。
int bytertc::LocalVideoStats::sent_frame_rate;
发送帧率。此次统计周期内的视频发送帧率,单位为 fps 。
int bytertc::LocalVideoStats::encoder_output_frame_rate;
编码器输出帧率。当前编码器在此次统计周期内的输出帧率,单位为 fps 。
int bytertc::LocalVideoStats::renderer_output_frame_rate;
本地渲染帧率。此次统计周期内的本地视频渲染帧率,单位为 fps 。
int bytertc::LocalVideoStats::target_kbitrate;
目标发送码率。此次统计周期内的视频目标发送码率,单位为 kbps 。
int bytertc::LocalVideoStats::target_frame_rate;
目标发送帧率。当前编码器在此次统计周期内的目标发送帧率,单位为 fps 。
int bytertc::LocalVideoStats::stats_interval;
统计间隔,单位为 ms 。
float bytertc::LocalVideoStats::video_loss_rate;
视频丢包率。此次统计周期内的视频上行丢包率,取值范围为 [0,1] 。
int bytertc::LocalVideoStats::rtt;
往返时延,单位为 ms 。
int bytertc::LocalVideoStats::encoded_bitrate;
视频编码码率。此次统计周期内的视频编码码率,单位为 kbps 。
int bytertc::LocalVideoStats::encoded_frame_width;
视频编码宽度,单位为 px 。
int bytertc::LocalVideoStats::encoded_frame_height;
视频编码高度,单位为 px 。
int bytertc::LocalVideoStats::encoded_frame_count;
此次统计周期内发送的视频帧总数。
VideoCodecType bytertc::LocalVideoStats::codec_type;
视频的编码类型,具体参考 VideoCodecType 。
bool bytertc::LocalVideoStats::is_screen;
所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。
struct bytertc::LocalStreamStats
本地音/视频流统计信息以及网络状况,统计周期为 2s 。
本地用户发布音/视频流成功后,SDK 会周期性地通过 OnLocalStreamStats
通知本地用户发布的音/视频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| LocalAudioStats | audio_stats |
| LocalVideoStats | video_stats |
| NetworkQuality | local_tx_quality |
| NetworkQuality | local_rx_quality |
| bool | is_screen |
LocalAudioStats bytertc::LocalStreamStats::audio_stats;
本地设备发送音频流的统计信息,详见 LocalAudioStats
LocalVideoStats bytertc::LocalStreamStats::video_stats;
本地设备发送视频流的统计信息,详见 LocalVideoStats
NetworkQuality bytertc::LocalStreamStats::local_tx_quality;
所属用户的媒体流上行网络质量,详见 NetworkQuality
NetworkQuality bytertc::LocalStreamStats::local_rx_quality;
所属用户的媒体流下行网络质量,详见 NetworkQuality
bool bytertc::LocalStreamStats::is_screen;
所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。
struct bytertc::RemoteStreamStats
用户订阅的远端音/视频流统计信息以及网络状况,统计周期为 2s 。
订阅远端用户发布音/视频流成功后,SDK 会周期性地通过 OnRemoteStreamStats
通知本地用户订阅的远端音/视频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| const char* | uid |
| RemoteAudioStats | audio_stats |
| RemoteVideoStats | video_stats |
| NetworkQuality | remote_tx_quality |
| NetworkQuality | remote_rx_quality |
| bool | is_screen |
const char* bytertc::RemoteStreamStats::uid;
用户 ID 。音频来源的远端用户 ID 。
RemoteAudioStats bytertc::RemoteStreamStats::audio_stats;
远端音频流的统计信息,详见 RemoteAudioStats
RemoteVideoStats bytertc::RemoteStreamStats::video_stats;
远端视频流的统计信息,详见 RemoteVideoStats
NetworkQuality bytertc::RemoteStreamStats::remote_tx_quality;
所属用户的媒体流上行网络质量,详见 NetworkQuality
NetworkQuality bytertc::RemoteStreamStats::remote_rx_quality;
所属用户的媒体流下行网络质量,详见 NetworkQuality
bool bytertc::RemoteStreamStats::is_screen;
所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。
struct bytertc::SysStats
App 使用的 cpu 和内存信息。
信息由 SDK 周期性(2s)地通过 OnSysStats 回调通知给用户。
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| unsigned int | cpu_cores |
| double | cpu_app_usage |
| double | cpu_total_usage |
| double | memory_usage |
| unsigned long long | full_memory |
| unsigned long long | total_memory_usage |
| unsigned long long | free_memory |
| double | memory_ratio |
| double | total_memory_ratio |
unsigned int bytertc::SysStats::cpu_cores;
当前系统 CPU 核数
double bytertc::SysStats::cpu_app_usage;
当前应用的 cpu 使用率,取值范围为 [0, 1]。
double bytertc::SysStats::cpu_total_usage;
当前系统的 cpu 使用率,取值范围为 [0, 1]。
double bytertc::SysStats::memory_usage;
当前应用的内存使用量(单位 MB)
unsigned long long bytertc::SysStats::full_memory;
全量内存(单位字节)
unsigned long long bytertc::SysStats::total_memory_usage;
系统已使用内存(单位字节)
unsigned long long bytertc::SysStats::free_memory;
空闲可分配内存(单位字节)
double bytertc::SysStats::memory_ratio;
当前应用的内存使用率(单位 %)
double bytertc::SysStats::total_memory_ratio;
系统内存使用率(单位 %)
typedef void* bytertc::view_t
windows 窗口 id, windows 平台下传 windows 窗口句柄
Defined in : bytertc_defines.h
struct bytertc::Rectangle
矩形,用于屏幕共享指定区域
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| int | x |
| int | y |
| int | width |
| int | height |
int bytertc::Rectangle::x = 0;
矩形左上角x坐标
int bytertc::Rectangle::y = 0;
矩形左上角y坐标
int bytertc::Rectangle::width = 0;
矩形宽度
int bytertc::Rectangle::height = 0;
矩形高度
struct bytertc::HighlightConfig
高亮边框标识屏幕共享指定区域
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| bool | enable_highlight |
| uint32_t | border_color |
| int | border_width |
bool bytertc::HighlightConfig::enable_highlight = true;
是否显示高亮边框,默认显示。
uint32_t bytertc::HighlightConfig::border_color = 0xFF29CCA3;
边框的颜色, 颜色格式为十六进制 ARGB: 0xAARRGGBB
int bytertc::HighlightConfig::border_width = 4;
边框的宽度
struct bytertc::DesktopCaptureParameters
屏幕共享的编码参数配置
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| int | max_width |
| int | max_height |
| int | frame_rate |
| int | bitrate |
| bool | capture_mouse_cursor |
| view_t * | excluded_window_list |
| int | excluded_window_num |
| HighlightConfig | highlight_config |
int bytertc::DesktopCaptureParameters::max_width = 1920;
屏幕采集编码最大宽度
int bytertc::DesktopCaptureParameters::max_height = 1080;
屏幕采集编码最大高度
int bytertc::DesktopCaptureParameters::frame_rate = 15;
屏幕采集编码帧率, 单位 fps
int bytertc::DesktopCaptureParameters::bitrate = -1;
屏幕采集编码码率, -1 为自动码率, SDK 会根据宽高信息选择合适的码率,单位 kbps
bool bytertc::DesktopCaptureParameters::capture_mouse_cursor = true;
是否捕获鼠标光标
view_t * bytertc::DesktopCaptureParameters::excluded_window_list = nullptr;
抓取屏幕时排除窗口列表。这个参数仅在抓取屏幕时生效。
int bytertc::DesktopCaptureParameters::excluded_window_num = 0;
抓取屏幕时排除的窗口数量。
HighlightConfig bytertc::DesktopCaptureParameters::highlight_config;
高亮边框的配置
enum class bytertc::AudioPerformanceProfile
音频处理策略等级。
你可以设置音频处理策略等级。参看 SetAudioPerformanceProfile。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kAudioPerformanceProfileAuto | 0 | 自动策略。根据应用所在机型等级,自动适配音频处理策略。 |
| kAudioPerformanceProfileLow | 1 | 低配策略。关闭 AEC、ANS、AGC 算法,音频采样率设置为 16000。 |
| kAudioPerformanceProfileMid | 2 | 中配策略。开启 AEC、ANS、AGC 算法,音频采样率设置为 16000。 |
| kAudioPerformanceProfileHigh | 3 | 高配策略。开启 AEC、ANS、AGC 算法,音频采样率设置为 48000。 |
enum bytertc::EncryptType
自定义加密类型
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kEncryptTypeCustomize | 0 | 不使用内置加密。默认值。 |
| kEncryptTypeAES128CBC | 1 | AES-128-CBC 加密算法 |
| kEncryptTypeAES256CBC | 2 | AES-256-CBC 加密算法 |
| kEncryptTypeAES128ECB | 3 | AES-128-ECB 加密算法 |
| kEncryptTypeAES256ECB = 4 | 4 | AES-256-ECB 加密算法 |
enum bytertc::AudioMixingState
音频混音文件播放状态。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kAudioMixingStatePlaying | 710 | 混音播放状态,混音开始 |
| kAudioMixingStatePaused | 711 | 混音播放状态,混音暂停 |
| kAudioMixingStateStoped | 713 | 混音播放状态,混音停止/播放结束 |
| kAudioMixingStateFailed = 714 | 714 | 混音播放状态,混音播放失败 |
enum bytertc::AudioMixingError
音频混音文件播放错误码。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kAudioMixingErrorOk | 0 | 混音错误码,正常 |
| kAudioMixingErrorCanNotOpen | 701 | 混音错误码,失败 |
struct bytertc::RtcUser
用户信息
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| const char* | user_id |
| const char* | meta_data |
const char* bytertc::RtcUser::user_id;
const char* bytertc::RtcUser::meta_data;
enum bytertc::FirstFrameSendState
首帧发送状态
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kFirstFrameSendStateSending | 0 | 发送中 |
| kFirstFrameSendStateSent | 1 | 发送成功 |
| kFirstFrameSendStateEnd | 2 | 发送失败 |
enum bytertc::FirstFramePlayState
首帧播放状态
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kFirstFramePlayStatePlaying | 0 | 播放中 |
| kFirstFramePlayStatePlayed | 1 | 播放成功 |
| kFirstFramePlayStateEnd | 2 | 播放失败 |
enum bytertc::MirrorMode
是否开启镜像模式
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kMirrorModeOff | 0 | 不开启 |
| kMirrorModeOn | 1 | 开启 |
enum bytertc::MuteState
停止/启动发送音/视频流的状态
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kMuteStateOff | 0 | 启动发送音/视频流的状态 |
| kMuteStateOn | 1 | 停止发送音/视频流的状态 |
enum bytertc::StreamIndex
流属性
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kStreamIndexMain | 0 | 主流。 包括: + 通过默认摄像头/麦克风采集到的视频/音频; + 通过自定义设备采集到的视频/音频。 |
| kStreamIndexScreen | 1 | 屏幕流。 屏幕共享时共享的视频流,或来自声卡的本地播放音频流。 |
struct bytertc::RemoteStreamKey
远端流信息
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| const char * | room_id |
| const char * | user_id |
| StreamIndex | stream_index |
const char *bytertc::RemoteStreamKey::room_id;
房间 ID
const char *bytertc::RemoteStreamKey::user_id;
用户 ID
StreamIndex bytertc::RemoteStreamKey::stream_index;
流属性,主流或屏幕流。参看 StreamIndex
struct bytertc::VideoFrameInfo
视频帧信息
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| int | width |
| int | height |
| VideoRotation | rotation |
int bytertc::VideoFrameInfo::width = 0;
宽(像素)
int bytertc::VideoFrameInfo::height = 0;
高(像素)
VideoRotation bytertc::VideoFrameInfo::rotation = VideoRotation::kVideoRotation0;
视频帧顺时针旋转角度。参看 VideoRotation。
enum bytertc::AudioSampleRate
音频采样率,单位为 HZ。
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kAudioSampleRate8000 | 8000 | 8000 采样率 |
| kAudioSampleRate16000 | 16000 | 16000 采样率 |
| kAudioSampleRate32000 | 32000 | 32000 采样率 |
| kAudioSampleRate44100 | 44100 | 44100 采样率 |
| kAudioSampleRate48000 = 48000 | 48000 | 48000 采样率 |
enum bytertc::AudioChannel
音频声道
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kAudioChannelMono | 1 | 单声道 |
| kAudioChannelStereo = 2 | 2 | 双声道 |
struct bytertc::AudioFormat
音频参数格式
Defined in : bytertc_defines.h
| 类型 | 名称 |
|---|---|
| AudioSampleRate | sample_rate |
| AudioChannel | channel |
AudioSampleRate bytertc::AudioFormat::sample_rate;
音频采样率,详见 AudioSampleRate
AudioChannel bytertc::AudioFormat::channel;
音频声道,详见 AudioChannel
enum bytertc::HttpProxyState
HTTP/HTTPS 代理状态
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kHttpInit | 0 | HTTP/HTTPS 初始化状态 |
| kHttpConnected | 1 | HTTP/HTTPS 连接成功 |
| kHttpError | 2 | HTTP/HTTPS 连接失败 |
enum bytertc::Socks5ProxyState
SOCKS5 代理连接状态
Defined in : bytertc_defines.h
| 类型 | 值 | 说明 |
|---|---|---|
| kSocks5Init | 0 | SOCKS5 连接初始化 |
| kSocks5Connected | 1 | SOCKS5 连接成功 |
| kSocks5Error | 2 | SOCKS5 连接错误 |
| kSocks5TcpConnectFail | 3 | TCP 连接失败 |
| kSocks5TcpClose | 4 | TCP 连接关闭 |
| kSocks5ProtocolTcpFail | 5 | SOCKS 协议 TCP 协商阶段失败 |
| kSocks5ProtocolUdpFail | 6 | UDP 连接失败 |
| kSocks5AuthFail | 7 | 授权失败 |
| kSocks5Unknown | 8 | 未知状态 |
struct bytertc::VideoMetadataBuffer
视频帧中包含的 metadata 信息
Defined in : bytertc_engine_lite_interface.h
| 类型 | 名称 |
|---|---|
| char* | data |
| int | size |
| int64_t | timestamp_us |
char* bytertc::VideoMetadataBuffer::data;
接收或者发送的 metadata
int bytertc::VideoMetadataBuffer::size;
接收或者发送的 metadata 数据大小,不能超过 1024
int64_t bytertc::VideoMetadataBuffer::timestamp_us;
包含 metadata 视频帧的时间戳,单位微秒
enum bytertc::IAudioFrameObserver::AUDIO_FRAME_TYPE
音频帧类型
Defined in : bytertc_engine_lite_interface.h
| 类型 | 值 | 说明 |
|---|---|---|
| FRAME_TYPE_PCM16 | 0 | PCM 16bit |
struct bytertc::IAudioFrameObserver::AudioFrame
音频帧
Defined in : bytertc_engine_lite_interface.h
| 类型 | 名称 |
|---|---|
| AUDIO_FRAME_TYPE | type |
| int | samples |
| int | channels |
| int | samples_per_sec |
| void* | buffer |
| int64_t | render_time_ms |
AUDIO_FRAME_TYPE bytertc::IAudioFrameObserver::AudioFrame::type;
音频帧类型
int bytertc::IAudioFrameObserver::AudioFrame::samples;
音频采样点数量
int bytertc::IAudioFrameObserver::AudioFrame::channels;
音频通道数
int bytertc::IAudioFrameObserver::AudioFrame::samples_per_sec;
音频采样率
void* bytertc::IAudioFrameObserver::AudioFrame::buffer;
音频数据内存地址
int64_t bytertc::IAudioFrameObserver::AudioFrame::render_time_ms;
渲染时间
enum bytertc::VideoRotation
视频帧旋转角度
Defined in : bytertc_video_frame.h
| 类型 | 值 | 说明 |
|---|---|---|
| kVideoRotation0 | 0 | 顺时针旋转 0 度 |
| kVideoRotation90 | 90 | 顺时针旋转 90 度 |
| kVideoRotation180 | 180 | 顺时针旋转 180 度 |
| kVideoRotation270 = 270 | 270 | 顺时针旋转 270 度 |
enum bytertc::VideoStreamScaleMode
视频帧缩放模式
Defined in : bytertc_video_frame.h
| 类型 | 值 | 说明 |
|---|---|---|
| kVideoStreamScaleModeAuto | 0 | 自动模式,默认值为 FitWithCropping。 |
| kVideoStreamScaleModeStretch | 1 | 对视频帧进行缩放,直至充满和视窗分辨率一致为止。这一过程不保证等比缩放。 |
| kVideoStreamScaleModeFitWithCropping | 2 | 视窗填满优先。 视频帧等比缩放,直至视窗被视频填满。如果视频帧长宽比例与视窗不同,视频帧的多出部分将无法显示。 缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长大于等于视窗对应边长。 |
| kVideoStreamScaleModeFitWithFilling | 3 | 视频帧内容全部显示优先。 视频帧等比缩放,直至视频帧能够在视窗上全部显示。如果视频帧长宽比例与视窗不同,视窗上未被视频帧填满区域将被涂黑。 缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长小于等于视窗对应边长。 |
enum bytertc::VideoCodecMode
视频编码模式
Defined in : bytertc_video_frame.h
| 类型 | 值 | 说明 |
|---|---|---|
| kCodecModeAuto | 0 | 自动选择 |
| kCodecModeHardware | 1 | 硬编码 |
| kCodecModeSoftware | 2 | 软编码 |
enum bytertc::VideoCodecType
视频的编码类型
Defined in : bytertc_video_frame.h
| 类型 | 值 | 说明 |
|---|---|---|
| kVideoCodecTypeH264 | 1 | 标准 H264 编码器 |
| kVideoCodecTypeByteVC1 | 2 | 标准 ByteVC1 编码器 |
enum bytertc::VideoEncodePreference
网络不好时的视频编码降级策略
Defined in : bytertc_video_frame.h
| 类型 | 值 | 说明 |
|---|---|---|
| kVideoEncodePreferenceDisabled | 0 | 不降级 |
| kVideoEncodePreferenceFramerate | 1 | 优先保证帧率,以保证视频流畅度 |
| kVideoEncodePreferenceQuality | 2 | 优先保证画质 |
| kVideoEncodePreferenceBalance | 3 | 平衡模式 |
struct bytertc::VideoSolution
视频参数
Defined in : bytertc_video_frame.h
| 类型 | 名称 |
|---|---|
| int | width |
| int | height |
| int | fps |
| int | max_send_kbps |
| VideoStreamScaleMode | scale_mode |
| VideoEncodePreference | encode_preference |
int bytertc::VideoSolution::width;
宽(像素)
int bytertc::VideoSolution::height;
高(像素)
int bytertc::VideoSolution::fps;
视频帧率
int bytertc::VideoSolution::max_send_kbps = SEND_KBPS_AUTO_CALCULATE;
最高编码码率(千比特每秒)
建议使用预估值。
VideoStreamScaleMode bytertc::VideoSolution::scale_mode = VideoStreamScaleMode::kVideoStreamScaleModeAuto;
视频帧缩放模式。你可以设置缩放以适应视窗,参看 VideoStreamScaleMode
VideoEncodePreference bytertc::VideoSolution::encode_preference = VideoEncodePreference::kVideoEncodePreferenceFrame/;"
视频编码质量策略,参看 VideoEncodePreference
struct bytertc::VideoSolutionDescription
视频属性
Defined in : bytertc_video_frame.h
| 类型 | 名称 |
|---|---|
| int | width |
| int | height |
| int | fps |
| int | max_send_kbps |
| VideoStreamScaleMode | scale_mode |
| VideoCodecType | codec_name |
| VideoCodecMode | codec_mode |
| VideoEncodePreference | encode_preference |
int bytertc::VideoSolutionDescription::width;
宽(像素)
int bytertc::VideoSolutionDescription::height;
高(像素)
int bytertc::VideoSolutionDescription::fps;
视频帧率
int bytertc::VideoSolutionDescription::max_send_kbps;
最大发送速率(千比特每秒)
VideoStreamScaleMode bytertc::VideoSolutionDescription::scale_mode = VideoStreamScaleMode::kVideoStreamScaleModeAuto;
缩放模式。参看 VideoStreamScaleMode
VideoCodecType bytertc::VideoSolutionDescription::codec_name = VideoCodecType::kVideoCodecTypeUnknown;
视频的编码类型。参看 VideoCodecType
VideoCodecMode bytertc::VideoSolutionDescription::codec_mode = VideoCodecMode::kCodecModeAuto;
视频的编码模式。参看 VideoCodecMode
VideoEncodePreference bytertc::VideoSolutionDescription::encode_preference = VideoEncodePreference::kVideoEncodePreferenceFrame/;"
视频编码质量偏好策略。参看 VideoEncodePreference
enum bytertc::VideoPixelFormat
视频帧颜色编码格式
Defined in : bytertc_video_frame.h
| 类型 | 值 | 说明 |
|---|---|---|
| kVideoPixelFormatUnknown | 0 | 未知的颜色编码格式 |
| kVideoPixelFormatI420 | 1 | YUV I420 格式 |
| kVideoPixelFormatNV12 | 2 | YUV NV12 格式 |
| kVideoPixelFormatNV21 | 3 | YUV NV21 格式 |
| kVideoPixelFormatRGB24 | 4 | RGB 24bit格式, |
| kVideoPixelFormatRGBA | 5 | RGBA 编码格式 |
| kVideoPixelFormatARGB | 6 | ARGB 编码格式 |
| kVideoPixelFormatBGRA | 7 | BGRA 编码格式 |
enum bytertc::VideoFrameType
视频帧格式
Defined in : bytertc_video_frame.h
| 类型 | 值 | 说明 |
|---|---|---|
| kVideoFrameTypeRawMemory | 0 | 原始数据格式,按照内存存储 |
| kVideoFrameTypeCVPixelBuffer | 1 | CVPixelBufferRef类型,支持 iOS and macOS 平台 |
| kVideoFrameTypeGLTexture | 2 | open gl 纹理数据类型 |
| kVideoFrameTypeCuda | 3 | cuda 数据类型 |
| kVideoFrameTypeD3D11 | 4 | direct3d 11 数据格式 |
| kVideoFrameTypeD3D9 | 5 | direct3d 9 数据格式 |
| kVideoFrameTypeJavaFrame | 6 | Java的VideoFrame 数据格式 |
| kVideoFrameTypeVAAPI | 7 | vaapi 数据格式 |
struct bytertc::ManagedMemory
自定义内存释放器
Defined in : bytertc_video_frame.h
| 类型 | 名称 |
|---|---|
| uint8_t* | data |
| int | size |
| void* | user_opaque |
| int ()(uint8_t data, int size, void* user_opaque) | memory_deleter |
uint8_t* bytertc::ManagedMemory::data = nullptr;
内存数据地址
int bytertc::ManagedMemory::size = 0;
内存空间的大小
void* bytertc::ManagedMemory::user_opaque = nullptr;
用户自定义数据
int (*bytertc::ManagedMemory::memory_deleter)(uint8_t* data, int size, void* user_opaque) = nullptr;
自定义内存释放方法指针,如果指针不为空,方法会被调用,用来释放内存空间。 函数传入的参数分别是本结构体内 data、size、user_opaque 3个字段。
typedef struct bytertc::VideoFrameBuilder
视频帧构建类
Defined in : bytertc_video_frame.h
| 类型 | 名称 |
|---|---|
| uint8_t* | data |
| int | linesize |
| uint8_t* | extra_data |
| int | extra_data_size |
| uint8_t* | supplementary_info |
| int | supplementary_info_size |
| int | size |
| int | width |
| int | height |
| VideoRotation | rotation |
| void* | hwaccel_buffer |
| void* | user_opaque |
| int64_t | timestamp_us |
| int ()(struct VideoFrameBuilder builder) | memory_deleter |
uint8_t* bytertc::VideoFrameBuilder::data[ByteRTCNumDataPointers];
视频帧数据平面指针数组
int bytertc::VideoFrameBuilder::linesize[ByteRTCNumDataPointers];
视频帧数据平面行长度
uint8_t* bytertc::VideoFrameBuilder::extra_data = nullptr;
sei 数据地址
int bytertc::VideoFrameBuilder::extra_data_size = 0;
sei 数据大小
uint8_t* bytertc::VideoFrameBuilder::supplementary_info = nullptr;
补充数据地址
int bytertc::VideoFrameBuilder::supplementary_info_size = 0;
补充数据大小
int bytertc::VideoFrameBuilder::size = 0;
视频帧内存空间大小
int bytertc::VideoFrameBuilder::width = 0;
视频帧宽度
int bytertc::VideoFrameBuilder::height = 0;
视频帧高度
VideoRotation bytertc::VideoFrameBuilder::rotation = kVideoRotation0;
视频旋转角度
void* bytertc::VideoFrameBuilder::hwaccel_buffer = nullptr;
硬件加速缓冲区指针
void* bytertc::VideoFrameBuilder::user_opaque = nullptr;
用户私有数据指针
int64_t bytertc::VideoFrameBuilder::timestamp_us = 0;
视频帧时间戳
int (*bytertc::VideoFrameBuilder::memory_deleter)(struct VideoFrameBuilder* builder) = nullptr;
用户定义的视频帧释放回调函数指针,如果指针不为空,方法会被调用用来释放内存空间