IRTCASREngineEventHandler

class bytertc::IRTCASREngineEventHandler

语音识别服务使用状态回调

Defined in : byte_rtc_asr_engine_event_handler.h

成员函数

返回 名称
virtual void onSuccess
virtual void onMessage
virtual void onError

函数说明

onSuccess

virtual void bytertc::IRTCASREngineEventHandler::onSuccess()

语音识别服务开启成功回调

onMessage

virtual void bytertc::IRTCASREngineEventHandler::onMessage(
    const char* message)

语音转文字成功回调,该回调返回识别后的全量消息。

传入参数

参数名 类型 说明
message const char* 识别完成后得到的文字消息

注意 若识别过程中发生了网络连接中断,则重连后回调的信息中只包含重连后识别的文字消息,不再包含上一次连接后识别的消息。

onError

virtual void bytertc::IRTCASREngineEventHandler::onError(
    int error_code,
    const char* error_message)

当语音识别服务内部发生错误事件时触发该回调。

传入参数

参数名 类型 说明
error_code int 错误码
• < 0: 参数错误或 API 调用顺序错误,参看 RTCASRErrorCode;
• >0: 参看 语音识别服务错误码
error_message const char* 错误原因说明

AudioSampleRate

enum bytertc::AudioSampleRate

音频采样率,单位为 Hz。

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kAudioSampleRateAuto -1 默认设置。
kAudioSampleRate8000 8000 8000 Hz
kAudioSampleRate16000 16000 16000 Hz
kAudioSampleRate32000 32000 32000 Hz
kAudioSampleRate44100 44100 44100 Hz
kAudioSampleRate48000 = 48000 48000 48000 Hz

AudioChannel

enum bytertc::AudioChannel

音频声道。

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kAudioChannelAuto -1 默认设置。
kAudioChannelMono 1 单声道
kAudioChannelStereo = 2 2 双声道

AudioFormat

struct bytertc::AudioFormat

音频格式

Defined in : bytertc_audio_defines.h

成员变量

类型 名称
AudioSampleRate sample_rate
AudioChannel channel

变量说明

sample_rate

AudioSampleRate bytertc::AudioFormat::sample_rate;

音频采样率,详见 AudioSampleRate

channel

AudioChannel bytertc::AudioFormat::channel;

音频声道,详见 AudioChannel

AudioProcessorMethod

enum bytertc::AudioProcessorMethod

返回给音频处理器的音频类型

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kAudioFrameProcessorRecord 0 本地采集的音频
kAudioFrameProcessorPlayback 1 远端音频流的混音音频
kAudioFrameProcessorRemoteUser 2 各个远端音频流

RTCAudioDeviceType

enum bytertc::RTCAudioDeviceType

音频设备类型

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kRTCAudioDeviceTypeUnknown -1 未知设备类型
kRTCAudioDeviceTypeRenderDevice 0 音频渲染设备
kRTCAudioDeviceTypeCaptureDevice 1 音频采集设备
kRTCAudioDeviceTypeScreenCaptureDevice 2 屏幕流音频设备

AudioRoute

enum bytertc::AudioRoute

音频播放设备

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kAudioRouteUnknown -1 未知设备
kAudioRouteHeadset 1 有线耳机
kAudioRouteEarpiece 2 听筒
kAudioRouteSpeakerphone 3 扬声器
kAudioRouteHeadsetBluetooth 4 蓝牙耳机
kAudioRouteHeadsetUSB = 5 5 USB设备

AudioPlaybackDevice

enum bytertc::AudioPlaybackDevice

音频播放设备

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kAudioPlaybackDeviceHeadset 1 有线耳机
kAudioPlaybackDeviceEarpiece 2 听筒
kAudioPlaybackDeviceSpeakerphone 3 扬声器
kAudioPlaybackDeviceHeadsetBluetooth 4 蓝牙耳机
kAudioPlaybackDeviceHeadsetUSB = 5 5 USB设备

VoiceChangerType

enum bytertc::VoiceChangerType

变声特效类型

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kVoiceChangerTypeOriginal 0 原声,不含特效
kVoiceChangerTypeGiant 1 巨人
kVoiceChangerTypeChipmunk 2 花栗鼠
kVoiceChangerTypeMinionst 3 小黄人
kVoiceChangerTypeVibrato 4 颤音
kVoiceChangerTypeRobot 5 机器人

VoiceReverbType

enum bytertc::VoiceReverbType

混响特效类型

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kVoiceReverbTypeOriginal 0 原声,不含特效
kVoiceReverbTypeEcho 1 回声
kVoiceReverbTypeConcert 2 演唱会
kVoiceReverbTypeEthereal 3 空灵
kVoiceReverbTypeKTV 4 KTV
kVoiceReverbTypeStudio 5 录音棚

AudioVolumeInfo

struct bytertc::AudioVolumeInfo

音频流来源的用户 ID 及对应的音量。

Defined in : bytertc_audio_defines.h

成员变量

类型 名称
int linear_volume
int nonlinear_volume
const char* uid

变量说明

linear_volume

int bytertc::AudioVolumeInfo::linear_volume;

线性音量,取值范围是:[0,255],与原始音量呈线性关系,数值越大,音量越大。 无声为25以下(绝对无声为0,25以下基本已经无声音了,可以视为无声),低音量为25~76,中音量为76~204,高音量为204以上

nonlinear_volume

int bytertc::AudioVolumeInfo::nonlinear_volume;

非线性音量,取值范围是:[-127,0],单位dB。此音量范围是将原始音量进行对数转化,在中低音量时分辨更为灵敏,适用于作为Active Speaker(房间内最活跃用户)的识别。 高音量为0~-20dB,中音量为-20~-40dB,低音量为-40~-60dB,若低于-60dB,则为无声。

uid

const char* bytertc::AudioVolumeInfo::uid;

音频流来源的用户 ID

AudioMixingState

enum bytertc::AudioMixingState

音频混音文件播放状态。

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kAudioMixingStatePreloaded 0 混音已加载
kAudioMixingStatePlaying 1 混音正在播放
kAudioMixingStatePaused 2 混音暂停
kAudioMixingStateStopped 3 混音停止
kAudioMixingStateFailed 4 混音播放失败
kAudioMixingStateFinished 5 混音播放结束
kAudioMixingStatePCMEnabled 6 准备PCM混音
kAudioMixingStatePCMDisabled 7 PCM混音播放结束

AudioMixingError

enum bytertc::AudioMixingError

混音错误码。

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kAudioMixingErrorOk 0 正常
kAudioMixingErrorPreloadFailed 1 预加载失败。找不到混音文件或者文件长度超出 20s
kAudioMixingErrorStartFailed 2 混音开启失败。找不到混音文件或者混音文件打开失败
kAudioMixingErrorIdNotFound 3 混音 ID 异常
kAudioMixingErrorSetPositionFailed 4 设置混音文件的播放位置出错
kAudioMixingErrorInValidVolume 5 音量参数不合法,仅支持设置的音量值为[0, 400]
kAudioMixingErrorLoadConflict 6 已有另一个文件完成了预加载。请先使用 unloadAudioMixing 卸载此前的文件。
kAudioMixingErrorIdTypeNotMatch 7 不支持此混音类型。
kAudioMixingErrorInValidPitch 8 设置混音文件的音调不合法
kAudioMixingErrorInValidAudioTrack 9 设置混音文件的音轨不合法
kAudioMixingErrorIsStarting 10 混音文件正在启动中
kAudioMixingErrorInValidPlaybackSpeed 11 设置混音文件的播放速度不合法

AudioSourceType

enum bytertc::AudioSourceType

音频输入源类型

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kAudioSourceTypeExternal 0
kAudioSourceTypeInternal 1

AudioRenderType

enum bytertc::AudioRenderType

音频输出类型

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kAudioRenderTypeExternal 0
kAudioRenderTypeInternal 1

ASRAuthorizationType

enum bytertc::ASRAuthorizationType

语音识别服务鉴权方式,详情请咨询语音识别服务服务相关同学

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kASRAuthorizationTypeToken 0 Token 鉴权
kASRAuthorizationTypeSignature 1 Signature 鉴权

RTCASRConfig

struct bytertc::RTCASRConfig

使用自动语音识别服务所需校验信息

Defined in : bytertc_audio_defines.h

成员变量

类型 名称
const char* app_id
const char* user_id
ASRAuthorizationType authorization_type
const char* access_token
const char* secret_key
const char* cluster

变量说明

app_id

const char* bytertc::RTCASRConfig::app_id;

应用 ID

user_id

const char* bytertc::RTCASRConfig::user_id;

用户 ID

authorization_type

ASRAuthorizationType bytertc::RTCASRConfig::authorization_type;

鉴权方式,参看 ASRAuthorizationType

access_token

const char* bytertc::RTCASRConfig::access_token;

访问令牌

secret_key

const char* bytertc::RTCASRConfig::secret_key;

私钥。Signature 鉴权模式下不能为空,token 鉴权模式下为空。参看关于鉴权

cluster

const char* bytertc::RTCASRConfig::cluster;

场景信息,参看业务集群

RTCASRErrorCode

enum bytertc::RTCASRErrorCode

语音识别服务错误码。
除网络原因导致的错误,语音识别服务内部会自行重试之外,其他错误都会停止服务,此时建议再次调用 startASR 重启语音识别功能。

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kRTCASRErrorNetworkInterrupted -1 网络连接中断,服务不可用,内部会进行重连
kRTCASRErrorAlreadyStarted -2 重复调用 startASR。开启语音识别服务后,你需要先调用 stopASR 停止语音识别服务,才能二次调用 startASR 再次开启服务。
kRTCASRErrorTokenEmpty -3 语音识别服务所需 token 为空
kRTCErrorSignatureKeyEmpty -4 Signature 鉴权模式下 secret_key 为空
kRTCASRErrorUserIdNull -5 用户 ID 为空
kRTCASRErrorAPPIDNull -6 应用 ID 为空
kRTCASRErrorClusterNull -7 语音识别服务 cluster 为空
kRTCASRErrorOperationDenied = -8 -8 语音识别服务连接失败,该版本没有语音识别功能,请联系 RTC 技术支持。

AudioMixingType

enum bytertc::AudioMixingType

混音播放类型

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kAudioMixingTypePlayout 0 仅本地播放
kAudioMixingTypePublish 1 仅发送到远端
kAudioMixingTypePlayoutAndPublish 2 在本地播放并发送到远端

AudioMixingConfig

struct bytertc::AudioMixingConfig

混音配置

Defined in : bytertc_audio_defines.h

成员变量

类型 名称
AudioMixingType type
int play_count
int position
int64_t callback_on_progress_interval

变量说明

type

AudioMixingType bytertc::AudioMixingConfig::type;

混音播放类型,详见 AudioMixingType

play_count

int bytertc::AudioMixingConfig::play_count;

混音播放次数,

position

int bytertc::AudioMixingConfig::position;

混音时音频文件播放进度条位置,参数为整数,单位为毫秒

callback_on_progress_interval

int64_t bytertc::AudioMixingConfig::callback_on_progress_interval = 0;

设置音频文件播放进度回调的时间间隔,单位毫秒,并按照设置的值触发 onAudioMixingPlayingProgress 回调,默认不回调。

AudioMixingDualMonoMode

enum bytertc::AudioMixingDualMonoMode

混音播放声道类型

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kAudioMixingDualMonoModeAuto 0 和音频文件一致
kAudioMixingDualMonoModeL 1 只能听到音频文件中左声道的音频
kAudioMixingDualMonoModeR 2 只能听到音频文件中右声道的音频
kAudioMixingDualMonoModeMix 3 能同时听到音频文件中左右声道的音频

AudioPropertiesConfig

struct bytertc::AudioPropertiesConfig

音频属性信息提示的相关配置

Defined in : bytertc_audio_defines.h

成员变量

类型 名称
int interval
bool enable_spectrum
bool enable_vad

变量说明

interval

int bytertc::AudioPropertiesConfig::interval;

信息提示间隔,单位:ms

enable_spectrum

bool bytertc::AudioPropertiesConfig::enable_spectrum = false;

是否开启音频频谱检测

enable_vad

bool bytertc::AudioPropertiesConfig::enable_vad = false;

是否开启人声检测 (VAD)

AudioPropertiesInfo

struct bytertc::AudioPropertiesInfo

音频属性信息

Defined in : bytertc_audio_defines.h

成员变量

类型 名称
int linear_volume
int nonlinear_volume
float spectrum
int vad

变量说明

linear_volume

int bytertc::AudioPropertiesInfo::linear_volume;

线性音量,与原始音量呈线性关系,数值越大,音量越大。取值范围是:[0,255]。

nonlinear_volume

int bytertc::AudioPropertiesInfo::nonlinear_volume;

非线性音量。由原始音量的对数值转化而来,因此在中低音量时更灵敏,可以用作 Active Speaker(房间内最活跃用户)的识别。取值范围是:[-127,0],单位 dB。

spectrum

float bytertc::AudioPropertiesInfo::spectrum[SPECTRUM_SIZE] = {0};

频谱数组。默认长度为 257。

vad

int bytertc::AudioPropertiesInfo::vad = -1;

人声检测(VAD)结果

RemoteAudioPropertiesInfo

struct bytertc::RemoteAudioPropertiesInfo

远端音频属性信息

Defined in : bytertc_audio_defines.h

成员变量

类型 名称
RemoteStreamKey stream_key
AudioPropertiesInfo audio_properties_info

变量说明

stream_key

RemoteStreamKey bytertc::RemoteAudioPropertiesInfo::stream_key;

远端流信息,详见 RemoteStreamKey

audio_properties_info

AudioPropertiesInfo bytertc::RemoteAudioPropertiesInfo::audio_properties_info;

音频属性信息,详见 AudioPropertiesInfo

LocalAudioPropertiesInfo

struct bytertc::LocalAudioPropertiesInfo

本地音频属性信息

Defined in : bytertc_audio_defines.h

成员变量

类型 名称
StreamIndex stream_index
AudioPropertiesInfo audio_properties_info

变量说明

stream_index

StreamIndex bytertc::LocalAudioPropertiesInfo::stream_index;

流属性,主流或屏幕流。参看 StreamIndex

audio_properties_info

AudioPropertiesInfo bytertc::LocalAudioPropertiesInfo::audio_properties_info;

音频属性信息,详见 AudioPropertiesInfo

AudioProfileType

enum bytertc::AudioProfileType

音质档位

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kAudioProfileTypeDefault 0 默认音质

服务器下发或客户端已设置的 RoomProfileType 的音质配置
kAudioProfileTypeFluent 1 流畅音质。

单声道,采样率为 16kHz,编码码率为 24 Kbps。

流畅优先、低功耗、低流量消耗,适用于大部分游戏场景,如小队语音、组队语音、国战语音等。
kAudioProfileTypeStandard 2 单声道标准音质。

采样率为 48kHz,编码码率为 48 Kbps。

适用于对音质有一定要求的场景,同时延时、功耗和流量消耗相对适中,适合教育场景和狼人杀等游戏。
kAudioProfileTypeHD 3 双声道音乐音质

采样率为 48kHz,编码码率为 128kbps。

超高音质,同时延时、功耗和流量消耗相对较大,适用于连麦 PK 等音乐场景。

游戏场景不建议使用。
kAudioProfileTypeStandardStereo 4 双声道标准音质。采样率为 48 KHz,编码码率最大值为 80 Kbps
kAudioProfileTypeHDMono 5 单声道音乐音质。采样率为 48 kHz,编码码率最大值为 128 Kbps

Position

struct bytertc::Position

本地用户在房间内的位置坐标,需自行建立空间直角坐标系

Defined in : bytertc_audio_defines.h

成员变量

类型 名称
int x
int y
int z

变量说明

x

int bytertc::Position::x;

x 坐标

y

int bytertc::Position::y;

y 坐标

z

int bytertc::Position::z;

z 坐标

AudioAbilityType

enum bytertc::AudioAbilityType

音频音量是否可设置

Defined in : bytertc_audio_defines.h

枚举值

类型 值 说明
kAudioAbilityTypeUnknown -1 未知
kAudioAbilityAble 0 音量可设置
kAudioAbilityUnable 1 音量不可设置

AudioDeviceInfo

struct bytertc::AudioDeviceInfo

音频设备信息

Defined in : bytertc_audio_defines.h

成员变量

类型 名称
char device_id
char device_name
char device_container_id
int64_t device_vid
int64_t device_pid
DeviceTransportType transport_type
AudioAbilityType volume_settable
bool is_system_default

变量说明

device_id

char bytertc::AudioDeviceInfo::device_id[MAX_DEVICE_ID_LENGTH];

设备 ID

device_name

char bytertc::AudioDeviceInfo::device_name[MAX_DEVICE_ID_LENGTH];

设备名称

device_container_id

char bytertc::AudioDeviceInfo::device_container_id[MAX_DEVICE_ID_LENGTH];

设备所连接的声卡 ID,便于选择使用同一声卡的扬声器和麦克风。

device_vid

int64_t bytertc::AudioDeviceInfo::device_vid;

设备的厂商 ID

device_pid

int64_t bytertc::AudioDeviceInfo::device_pid;

设备的产品编码

transport_type

DeviceTransportType bytertc::AudioDeviceInfo::transport_type;

设备的传输方式

volume_settable

AudioAbilityType bytertc::AudioDeviceInfo::volume_settable;

是否支持设置音量

is_system_default

bool bytertc::AudioDeviceInfo::is_system_default;

是否系统默认设备

AudioFrameType

enum bytertc::AudioFrameType

音频帧类型

Defined in : bytertc_audio_frame.h

枚举值

类型 值 说明
kFrameTypePCM16 = 0 0 PCM 16bit

AudioFrameBuilder

typedef struct bytertc::AudioFrameBuilder

音频帧构建类

Defined in : bytertc_audio_frame.h

成员变量

类型 名称
AudioSampleRate sample_rate
AudioChannel channel
int64_t timestamp_us
uint8_t* data
int64_t data_size
bool deep_copy

变量说明

sample_rate

AudioSampleRate bytertc::AudioFrameBuilder::sample_rate;

音频采样率

channel

AudioChannel bytertc::AudioFrameBuilder::channel;

音频通道数

timestamp_us

int64_t bytertc::AudioFrameBuilder::timestamp_us = 0;

音频帧时间戳,单位:微秒

data

uint8_t* bytertc::AudioFrameBuilder::data;

音频帧数据

data_size

int64_t bytertc::AudioFrameBuilder::data_size = 0;

音频帧数据大小

deep_copy

bool bytertc::AudioFrameBuilder::deep_copy = true;

是否深拷贝

IAudioFrame

class bytertc::IAudioFrame

音频帧

Defined in : bytertc_audio_frame.h

成员函数

返回 名称
virtual int64_t timestampUs
virtual AudioSampleRate sampleRate
virtual AudioChannel channel
virtual uint8_t* data
virtual int dataSize
virtual AudioFrameType frameType
virtual void release
virtual bool isMutedData

函数说明

timestampUs

virtual int64_t bytertc::IAudioFrame::timestampUs() const

获取音频帧时间戳。

返回值 音频帧时间戳,单位:微秒

sampleRate

virtual AudioSampleRate bytertc::IAudioFrame::sampleRate() const

获取音频采样率。参看 AudioSampleRate

返回值 音频采样率,单位:Hz

channel

virtual AudioChannel bytertc::IAudioFrame::channel() const

获取音频通道数。参看 AudioChannel

返回值 音频通道数

data

virtual uint8_t* bytertc::IAudioFrame::data() const

获取音频帧内存块地址

返回值 音频帧内存块地址

dataSize

virtual int bytertc::IAudioFrame::dataSize() const

获取音频帧数据大小

返回值 音频帧数据大小,单位:字节。

frameType

virtual AudioFrameType bytertc::IAudioFrame::frameType() const

获取音频帧类型

返回值 音频帧类型,目前只支持 PCM,详见 AudioFrameType

release

virtual void bytertc::IAudioFrame::release()

释放音频帧

isMutedData

virtual bool bytertc::IAudioFrame::isMutedData() const

获取音频静音标志

返回值 是否静音数据

AudioFrameCallbackMethod

enum class bytertc::AudioFrameCallbackMethod

音频回调方法

Defined in : bytertc_audio_frame.h

枚举值

类型 值 说明
kAudioFrameCallbackRecord 0 本地麦克风录制的音频数据回调
kAudioFrameCallbackPlayback 1 订阅的远端所有用户混音后的音频数据回调
kAudioFrameCallbackMixed 2 本地麦克风录制和订阅的远端所有用户混音后的音频数据回调
kAudioFrameCallbackRemoteUser 3 订阅的远端每个用户混音前的音频数据回调
kAudioFrameCallbackRecordScreen 4 本地屏幕录制的音频数据回调

UserOfflineReason

enum bytertc::UserOfflineReason

用户离开房间的原因。

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kUserOfflineReasonQuit 0 远端用户调用 leaveRoom 方法退出房间。
kUserOfflineReasonDropped 1 远端用户因网络等原因掉线。
kUserOfflineReasonSwitchToInvisible 2 远端用户切换至隐身状态。
kUserOfflineReasonKickedByAdmin 3 远端用户被踢出出房间。
因调用踢出用户的 OpenAPI,远端用户被踢出房间。

StreamRemoveReason

enum bytertc::StreamRemoveReason

房间内远端流被移除的原因。

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kStreamRemoveReasonUnpublish 0 远端用户停止发布流。
kStreamRemoveReasonPublishFailed 1 远端用户发布流失败。
kStreamRemoveReasonKeepLiveFailed 2 保活失败。
kStreamRemoveReasonClientDisconnected 3 远端用户断网。
kStreamRemoveReasonRepublish 4 远端用户重新发布流。
kStreamRemoveReasonOther 5 其他原因。

JoinRoomType

enum bytertc::JoinRoomType

用户加入房间的类型。

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kJoinRoomTypeFirst 0 首次加入房间。用户手动调用 joinRoom 加入房间。
kJoinRoomTypeReconnected 1 重新加入房间。用户网络较差,失去与服务器的连接,进行重连时收到加入成功。

LoginType

enum bytertc::LoginType

用户登录的类型

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kLoginTypeFirst 0 首次登录。用户手动调用 login,收到登录成功。
kLoginTypeReconnected 1 重连。用户网络较差,失去与服务器的连接,SDK 自动重连登录成功。

USER_ONLINE_STATUS

enum bytertc::USER_ONLINE_STATUS

用户在线状态。

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kUserOnlineStatusOffline 0 对端用户离线

对端用户已调用 logout,或者没有调用 login 进行登录。
kUserOnlineStatusOnline 1 对端用户在线

对端用户调用 login 登录,并且连接状态正常。
kUserOnlineStatusUnreachable 2 无法获取对端用户在线状态

发生级联错误、对端用户在线状态异常时返回。

ServerACKMsg

struct bytertc::ServerACKMsg

服务端消息发送结果回调内容

Defined in : bytertc_common_defines.h

成员变量

类型 名称
int length
char* ACKMsg

变量说明

length

int bytertc::ServerACKMsg::length;

回调消息长度

ACKMsg

char* bytertc::ServerACKMsg::ACKMsg;

回调消息内容

MessageConfig

enum bytertc::MessageConfig

消息类型

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kMessageConfigReliableOrdered 0 低延时可靠有序消息
kMessageConfigUnreliableOrdered 1 超低延时有序消息
kMessageConfigUnreliableUnordered = 2 2 超低延时无序消息

UserMessageSendResult

enum bytertc::UserMessageSendResult

发送消息结果,成功或失败,及失败原因

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kUserMessageSendResultSuccess 0 发送消息成功
kUserMessageSendResultTimeout 1 发送超时,没有发送
kUserMessageSendResultBroken 2 通道断开,没有发送
kUserMessageSendResultNoReceiver 3 找不到接收方
kUserMessageSendResultNoRelayPath 4 获取级联路径失败
kUserMessageSendResultNotJoin 100 消息发送方没有加入房间
kUserMessageSendResultInit 101 连接未完成初始化
kUserMessageSendResultNoConnection 102 没有可用的数据传输通道连接
kUserMessageSendResultExceedMaxLength 103 消息超过最大长度,当前为 64 KB
kUserMessageSendResultEmptyUser 104 接收消息的单个用户 id 为空
kUserMessageSendResultNotLogin 105 房间外或应用服务器消息发送方没有登录
kUserMessageSendResultServerParamsNotSet 106 发送消息给业务方服务器之前没有设置参数
kUserMessageSendResultUnknown 1000 未知错误

RoomMessageSendResult

enum bytertc::RoomMessageSendResult

房间内广播消息发送结果

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kRoomMessageSendResultSuccess 200 消息发送成功
kRoomMessageSendResultNotJoin 100 失败,发送方未加入房间
kRoomMessageSendResultNoConnection 102 失败,没有可用的数据传输通道连接
kRoomMessageSendResultExceedMaxLength 103 失败,消息超过最大长度,当前为 64KB
kRoomMessageSendResultUnknown 1000 失败,未知错误

ConnectionState

enum bytertc::ConnectionState

SDK 与信令服务器连接状态。

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kConnectionStateDisconnected 1 连接断开,且断开时长超过 12s,SDK 会自动重连。
kConnectionStateConnecting 2 首次请求建立连接,正在连接中。
kConnectionStateConnected 3 首次连接成功。
kConnectionStateReconnecting 4 涵盖了以下情况:

+ 首次连接时,10秒连接不成功;

+ 连接成功后,断连 10 秒。自动重连中。
kConnectionStateReconnected 5 连接断开后,重连成功。
kConnectionStateLost 6 处于 kConnectionStateDisconnected 状态超过 10 秒,且期间重连未成功。SDK 仍将继续尝试重连。
kConnectionStateFailed 7 连接失败,服务端状态异常。SDK 不会自动重连,请重新进房,或联系技术支持。

NetworkDetectionStopReason

enum bytertc::NetworkDetectionStopReason

通话前探测的停止原因 onNetworkDetectionStopped 回调的参数类型

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kNetworkDetectionStopReasonUser 0 用户主动停止
kNetworkDetectionStopReasonTimeout 1 探测超过三分钟
kNetworkDetectionStopReasonConnectionLost 2 探测网络连接断开。
当超过 12s 没有收到回复,SDK 将断开网络连接,并且不再尝试重连。
kNetworkDetectionStopReasonStreaming 3 本地开始推拉流,停止探测
kNetworkDetectionStopReasonInnerErr 4 网络探测失败,内部异常

NetworkDetectionLinkType

enum bytertc::NetworkDetectionLinkType

通话前探测链接的类型。 onNetworkDetectionResult 回调的参数类型

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kNetworkDetectionLinkTypeUp 0 上行网络探测
kNetworkDetectionLinkTypeDown 1 下行网络探测

NetworkQuality

enum bytertc::NetworkQuality

媒体流网络质量。

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kNetworkQualityUnknown 0 网络质量未知。
kNetworkQualityExcellent 1 网络质量极好。
kNetworkQualityGood 2 主观感觉和 kNetworkQualityExcellent 差不多,但码率可能略低。
kNetworkQualityPoor 3 主观感受有瑕疵但不影响沟通。
kNetworkQualityBad 4 勉强能沟通但不顺畅。
kNetworkQualityVbad 5 网络质量非常差,基本不能沟通。

NetworkQualityStats

struct bytertc::NetworkQualityStats

上行/下行网络质量

Defined in : bytertc_common_defines.h

成员变量

类型 名称
const char* uid
double fraction_lost
int rtt
int total_bandwidth
NetworkQuality tx_quality
NetworkQuality rx_quality

变量说明

uid

const char* bytertc::NetworkQualityStats::uid;

用户 ID

fraction_lost

double bytertc::NetworkQualityStats::fraction_lost;

本端的上行/下行的丢包率,范围 [0.0,1.0] 当 uid 为本地用户时,代表发布流的上行丢包率。 当 uid 为远端用户时,代表接收所有订阅流的下行丢包率。

rtt

int bytertc::NetworkQualityStats::rtt;

当 uid 为本地用户时有效,客户端到服务端的往返延时(RTT),单位:ms

total_bandwidth

int bytertc::NetworkQualityStats::total_bandwidth;

本端的音视频 RTP 包 2 秒内的平均传输速率,单位:bps 当 uid 为本地用户时,代表发送速率。 当 uid 为远端用户时,代表所有订阅流的接收速率。

tx_quality

NetworkQuality bytertc::NetworkQualityStats::tx_quality;

上行网络质量评分,详见 NetworkQuality。

rx_quality

NetworkQuality bytertc::NetworkQualityStats::rx_quality;

下行网络质量评分,详见 NetworkQuality。

NetworkType

enum bytertc::NetworkType

SDK 网络连接类型。

Defined in : bytertc_common_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 移动网络。

RoomProfileType

enum bytertc::RoomProfileType

房间模式
根据所需场景,选择合适的房间模式,应用不同的音视频算法、视频参数和网络配置
调用 setAudioProfile 改变音频参数配置

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kRoomProfileTypeCommunication 0 默认场景,通用模式
kRoomProfileTypeGame 2 游戏语音模式,低功耗、低流量消耗。

低端机在此模式下运行时,进行了额外的性能优化:

+ 部分低端机型配置编码帧长 40/60

+ 部分低端机型关闭软件 3A 音频处理

增强对 iOS 其他屏幕录制进行的兼容性,避免音频录制被 RTC 打断。
kRoomProfileTypeCloudGame 3 云游戏模式。

如果你的游戏场景需要低延迟的配置,使用此设置。

此设置下,弱网抗性较差。
kRoomProfileTypeLowLatency 4 云渲染模式。超低延时配置。

如果你的应用并非游戏但又对延时要求较高时,选用此模式

该模式下,音视频通话延时会明显降低,但同时弱网抗性、通话音质等均会受到一定影响。
kRoomProfileTypeChat 5 适用于 1 vs 1 音视频通话
kRoomProfileTypeChatRoom 6 适用于 3 人及以上纯语音通话

音视频通话为媒体模式,上麦时切换为通话模式
kRoomProfileTypeLwTogether 7 实现多端同步播放音视频,适用于 “一起看” 或 “一起听” 场景。

该场景中,使用 RTC 信令同步播放进度,共享的音频内容不通过 RTC 进行传输。
kRoomProfileTypeGameHD 8 适用于对音质要求较高的游戏场景,优化音频 3A 策略,只通过媒体模式播放音频
kRoomProfileTypeCoHost 9 适用于直播中主播之间连麦的业务场景。

直播时通过 CDN,发起连麦 PK 时使用 RTC。
kRoomProfileTypeInteractivePodcast 10 适用于单主播和观众进行音视频互动的直播。通话模式,上下麦不会有模式切换,避免音量突变现象
kRoomProfileTypeKTV 11 线上 KTV 场景,音乐音质,低延迟

使用 RTC 传输伴奏音乐,混音后的歌声,适合独唱或单通合唱
kRoomProfileTypeChorus 12 适合在线实时合唱场景,高音质,超低延迟。使用本配置前请联系技术支持进行协助完成其他配置。
kRoomProfileTypeGameStreaming 14 适用于 1 vs 1 游戏串流,支持公网或局域网。
kRoomProfileTypeLanLiveStreaming 15 适用于局域网的 1 对多视频直播,最高支持 8K, 60 帧/秒, 100 Mbps 码率

需要在局域网配置私有化部署媒体服务器。
kRoomProfileTypeMeeting 16 适用于云端会议中的个人设备
kRoomProfileTypeMeetingRoom 17 适用于云端会议中的会议室终端
kRoomProfileTypeClassroom 18 适用于课堂互动,房间内所有成员都可以进行音视频互动

当你的场景中需要同时互动的成员超过 10人时使用此模式

AudioRoomConfig

struct bytertc::AudioRoomConfig

多房间参数配置

Defined in : bytertc_common_defines.h

成员变量

类型 名称
RoomProfileType room_profile_type
bool is_auto_subscribe_audio
bool is_auto_publish_audio

变量说明

room_profile_type

RoomProfileType bytertc::AudioRoomConfig::room_profile_type = kRoomProfileTypeCommunication;

房间模式,参看 RoomProfileType,默认为 kRoomProfileTypeCommunication,进房后不可更改。

is_auto_subscribe_audio

bool bytertc::AudioRoomConfig::is_auto_subscribe_audio = true;

是否自动订阅音频流,默认为自动订阅。

is_auto_publish_audio

bool bytertc::AudioRoomConfig::is_auto_publish_audio = false;

是否自动发布音视频流,默认为自动发布。
若调用 setUserVisibility 将自身可见性设为 false,无论是默认的自动发布流还是手动设置的自动发布流都不会进行发布,你需要将自身可见性设为 true 后方可发布。
多房间场景下,若已在其中一个房间成功设置了自动发布,其他房间的自动发布设置均不会生效。

MediaDeviceType

enum bytertc::MediaDeviceType

媒体设备类型

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kMediaDeviceTypeAudioUnknown -1 未知设备
kMediaDeviceTypeAudioRenderDevice 0 音频渲染设备
kMediaDeviceTypeAudioCaptureDevice 1 音频采集设备
kMediaDeviceTypeVideoCaptureDevice 3 视频采集设备
kMediaDeviceTypeScreenVideoCaptureDevice 4 屏幕流视频设备
kMediaDeviceTypeScreenAudioCaptureDevice 5 屏幕流音频设备

MediaDeviceState

enum bytertc::MediaDeviceState

媒体设备状态。

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kMediaDeviceStateStarted 1 设备已开启
kMediaDeviceStateStopped 2 设备已停止
kMediaDeviceStateRuntimeError 3 设备运行时错误

例如,当媒体设备的预期行为是正常采集,但没有收到采集数据时,将回调该状态。
kMediaDeviceStatePaused 4 设备已暂停。包括:
+ 采集过程中,目标应用窗体最小化到任务栏。
+ 开启采集或采集过程中,目标应用窗体被隐藏。
+ 采集过程中,目标应用窗体正在被拉伸。
+ 采集过程中,目标应用窗体正在被拖动。
kMediaDeviceStateResumed 5 设备已恢复
kMediaDeviceStateAdded 10 设备已插入
kMediaDeviceStateRemoved 11 设备被移除
kMediaDeviceInterruptionBegan 12 用户合盖打断了视频通话。如果系统未休眠或关机,将在开盖后自动恢复视频通话。
kMediaDeviceInterruptionEnded 13 视频通话已从合盖打断中恢复
kMediaDeviceBecomeSystemDefault 14 设备成为系统默认
kMediaDeviceResignSystemDefault = 15 15 设备不再是系统默认

MediaDeviceError

enum bytertc::MediaDeviceError

媒体设备错误类型

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kMediaDeviceErrorOK 0 媒体设备正常
kMediaDeviceErrorDeviceNoPermission 1 没有权限启动媒体设备
kMediaDeviceErrorDeviceBusy 2 媒体设备已经在使用中
kMediaDeviceErrorDeviceFailure 3 媒体设备错误
kMediaDeviceErrorDeviceNotFound 4 未找到指定的媒体设备
kMediaDeviceErrorDeviceDisconnected 5 媒体设备被移除
对象为采集屏幕流时,表明窗体被关闭或显示器被移除。
kMediaDeviceErrorDeviceNoCallback 6 设备没有数据回调
kMediaDeviceErrorDeviceUNSupportFormat 7 设备采样率不支持
kMediaDeviceErrorDeviceNotFindGroupId 8 ios 屏幕采集没有 group id 参数

MediaDeviceWarning

enum bytertc::MediaDeviceWarning

媒体设备警告

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kMediaDeviceWarningOK 0 无警告
kMediaDeviceWarningOperationDenied 1 非法设备操作。在使用外部设备时,调用了 SDK 内部设备 API。
kMediaDeviceWarningCaptureSilence 2 采集静音。
kMediaDeviceWarningAndroidSysSilenceDisappear 4 Android 特有的静音消失

SubscribeState

enum bytertc::SubscribeState

订阅媒体流状态

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kSubscribeStateSuccess 0 订阅/取消订阅流成功
kSubscribeStateFailedNotInRoom 1 订阅/取消订阅流失败,本地用户未在房间中
kSubscribeStateFailedStreamNotFound 2 订阅/取消订阅流失败,房间内未找到指定的音视频流
kSubscribeStateFailedOverLimit 3 超过订阅流数上限

RemoteUserPriority

enum bytertc::RemoteUserPriority

远端用户优先级,在性能不足需要回退时,会优先回退优先级低的用户的音视频流

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kRemoteUserPriorityLow 0 用户优先级为低(默认值)
kRemoteUserPriorityMedium 100 用户优先级为正常
kRemoteUserPriorityHigh 200 用户优先级为高

PublishFallbackOption

enum bytertc::PublishFallbackOption

发布端音视频流回退选项

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kPublishFallbackOptionDisabled 0 上行网络不佳或设备性能不足时,不对音视频流作回退处理。默认设置。
kPublishFallbackOptionSimulcast 1 上行网络不佳或设备性能不足时,发布的视频流会从大流到小流依次降级,直到与当前网络性能匹配从大流开始做降级处理,具体降级规则参看性能回退文档。

SubscribeFallbackOption

enum bytertc::SubscribeFallbackOption

订阅端音视频流回退选项。

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kSubscribeFallbackOptionDisable 0 下行网络不佳或设备性能不足时,不对音视频流作回退处理。默认设置。
kSubscribeFallbackOptionVideoStreamLow 1 下行网络不佳或设备性能不足时,对视频流做降级处理,具体降级规则参看性能回退文档。

该设置仅对发布端调用 enableSimulcastMode 开启发送多路流功能的情况生效。
kSubscribeFallbackOptionAudioOnly 2 下行网络不佳或设备性能不足时,取消接收视频,仅接收音频。

FallbackOrRecoverReason

enum bytertc::FallbackOrRecoverReason

远端订阅流发生回退或恢复的原因

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kFallbackOrRecoverReasonUnknown -1 其他原因,非带宽和性能原因引起的回退或恢复。默认值
kFallbackOrRecoverReasonSubscribeFallbackByBandwidth 0 由带宽不足导致的订阅端音视频流回退。
kFallbackOrRecoverReasonSubscribeFallbackByPerformance 1 由性能不足导致的订阅端音视频流回退。
kFallbackOrRecoverReasonSubscribeRecoverByBandwidth 2 由带宽恢复导致的订阅端音视频流恢复。
kFallbackOrRecoverReasonSubscribeRecoverByPerformance 3 由性能恢复导致的订阅端音视频流恢复。
kFallbackOrRecoverReasonPublishFallbackByBandwidth 4 由带宽不足导致的发布端音视频流回退。
kFallbackOrRecoverReasonPublishFallbackByPerformance 5 由性能不足导致的发布端音视频流回退。
kFallbackOrRecoverReasonPublishRecoverByBandwidth 6 由带宽恢复导致的发布端音视频流恢复。
kFallbackOrRecoverReasonPublishRecoverByPerformance 7 由性能恢复导致的发布端音视频流恢复。

PerformanceAlarmReason

enum bytertc::PerformanceAlarmReason

onPerformanceAlarms 告警的原因

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kPerformanceAlarmReasonBandwidthFallbacked 0 网络原因差,造成了发送性能回退。仅在开启发送性能回退时,会收到此原因。
kPerformanceAlarmReasonBandwidthResumed 1 网络性能恢复,发送性能回退恢复。仅在开启发送性能回退时,会收到此原因。
kPerformanceAlarmReasonPerformanceFallbacked 2 如果未开启发送性能回退,收到此告警时,意味着性能不足;

如果开启了发送性能回退,收到此告警时,意味着性能不足,且已发生发送性能回退。
kPerformanceAlarmReasonPerformanceResumed 3 如果未开启发送性能回退,收到此告警时,意味着性能不足已恢复;

如果开启了发送性能回退,收到此告警时,意味着性能不足已恢复,且已发生发送性能回退恢复。

PerformanceAlarmMode

enum bytertc::PerformanceAlarmMode

是否开启发布性能回退

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kPerformanceAlarmModeNormal 0 未开启发布性能回退
kPerformanceAlarmModeSimulcast 1 已开启发布性能回退

BusinessCheckCode

enum bytertc::BusinessCheckCode

事务检查码
用户调用 setBusinessId 方法设置业务标识参数的返回错误码。

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
ERROR_ALREADY_IN_ROOM -6001 用户已经在房间中。

业务标识需要在加入房间之前设置,加入后设置无效。
ERROR_INPUT_INVALIDATE -6002 输入参数非法。

用户传入的业务标识参数非法,参数合法性参考 setBusinessId 方法的参数说明。

LocalAudioStreamState

enum bytertc::LocalAudioStreamState

本地音频流状态。 SDK 通过 onLocalAudioStateChanged 回调本地音频流状态

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kLocalAudioStreamStateStopped 0 本地音频默认初始状态。
麦克风停止工作时回调该状态,对应错误码 kLocalAudioStreamErrorOk
kLocalAudioStreamStateRecording 1 本地音频录制设备启动成功。
采集到音频首帧时回调该状态,对应错误码 kLocalAudioStreamErrorOk
kLocalAudioStreamStateEncoding 2 本地音频首帧编码成功。
音频首帧编码成功时回调该状态,对应错误码 kLocalAudioStreamErrorOk
kLocalAudioStreamStateFailed 3 本地音频启动失败,在以下时机回调该状态:

+ 本地录音设备启动失败,对应错误码 kLocalAudioStreamErrorRecordFailure

+ 检测到没有录音设备权限,对应错误码 kLocalAudioStreamErrorDeviceNoPermission

+ 音频编码失败,对应错误码 kLocalAudioStreamErrorEncodeFailure

kLocalAudioStreamMute 4 本地音频静音成功后回调该状态。
调用 setAudioCaptureDeviceMuteIAudioDeviceManager-setaudiocapturedevicemute 成功后回调,对应错误码 LocalAudioStreamError 中的 kLocalAudioStreamErrorOk 。
kLocalAudioStreamUnmute 5 本地音频解除静音成功后回调该状态。
调用 setAudioCaptureDeviceMuteIAudioDeviceManager-setaudiocapturedevicemute 成功后回调,对应错误码 LocalAudioStreamError 中的 kLocalAudioStreamErrorOk 。

LocalAudioStreamError

enum bytertc::LocalAudioStreamError

本地音频流状态改变时的错误码。 SDK 通过 onLocalAudioStateChanged 回调该错误码。

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kLocalAudioStreamErrorOk 0 本地音频状态正常
kLocalAudioStreamErrorFailure 1 本地音频出错原因未知
kLocalAudioStreamErrorDeviceNoPermission 2 没有权限启动本地音频录制设备
kLocalAudioStreamErrorDeviceBusy 3 本地音频录制设备已经在使用中
kLocalAudioStreamErrorRecordFailure 4 本地音频录制失败,建议你检查录制设备是否正常工作
kLocalAudioStreamErrorEncodeFailure 5 本地音频编码失败
kLocalAudioStreamErrorNoRecordingDevice 6 没有可用的音频录制设备

LocalVideoStreamState

enum bytertc::LocalVideoStreamState

本地视频流状态

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kLocalVideoStreamStateStopped 0 本地视频采集停止状态
kLocalVideoStreamStateRecording 1 本地视频采集设备启动成功
kLocalVideoStreamStateEncoding 2 本地视频采集后,首帧编码成功
kLocalVideoStreamStateFailed 3 本地视频采集设备启动失败

RemoteAudioState

enum bytertc::RemoteAudioState

远端音频流状态。
用户可以通过 onRemoteAudioStateChanged 了解该状态。

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kRemoteAudioStateStopped 0 不接收远端音频流。

以下情况下会触发回调 onRemoteAudioStateChanged:

+ 本地用户停止接收远端音频流,对应原因是:kRemoteAudioStateChangeReasonLocalMutedRemoteAudioStateChangeReason

+ 远端用户停止发送音频流,对应原因是:kRemoteAudioStateChangeReasonRemoteMutedRemoteAudioStateChangeReason

+ 远端用户离开房间,对应原因是:kRemoteAudioStateChangeReasonRemoteOfflineRemoteAudioStateChangeReason
kRemoteAudioStateStarting 1 开始接收远端音频流首包。

刚收到远端音频流首包会触发回调 onRemoteAudioStateChanged,
对应原因是: RemoteAudioStateChangeReason 中的 kRemoteAudioStateChangeReasonLocalUnmuted
kRemoteAudioStateDecoding 2 远端音频流正在解码,正常播放。

以下情况下会触发回调 onRemoteAudioStateChanged:

+ 成功解码远端音频首帧,对应原因是: RemoteAudioStateChangeReason 中的 kRemoteAudioStateChangeReasonLocalUnmuted

+ 网络由阻塞恢复正常,对应原因是: RemoteAudioStateChangeReason 中的 kRemoteAudioStateChangeReasonNetworkRecovery

+ 本地用户恢复接收远端音频流,对应原因是:RemoteAudioStateChangeReason 中的 kRemoteAudioStateChangeReasonLocalUnmuted

+ 远端用户恢复发送音频流,对应原因是: RemoteAudioStateChangeReason 中的 kRemoteAudioStateChangeReasonRemoteUnmuted
kRemoteAudioStateFrozen 3 远端音频流卡顿。

网络阻塞、丢包率大于 40% 时,会触发回调 onRemoteAudioStateChanged,
对应原因是: RemoteAudioStateChangeReason 中的 kRemoteAudioStateChangeReasonNetworkCongestion

RemoteAudioStateChangeReason

enum bytertc::RemoteAudioStateChangeReason

接收远端音频流状态改变的原因。
用户可以通过 onRemoteAudioStateChanged 了解该原因。

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kRemoteAudioStateChangeReasonInternal 0 内部原因
kRemoteAudioStateChangeReasonNetworkCongestion 1 网络阻塞
kRemoteAudioStateChangeReasonNetworkRecovery 2 网络恢复正常
kRemoteAudioStateChangeReasonLocalMuted 3 本地用户停止接收远端音频流
kRemoteAudioStateChangeReasonLocalUnmuted 4 本地用户恢复接收远端音频流
kRemoteAudioStateChangeReasonRemoteMuted 5 远端用户停止发送音频流
kRemoteAudioStateChangeReasonRemoteUnmuted 6 远端用户恢复发送音频流
kRemoteAudioStateChangeReasonRemoteOffline 7 远端用户离开房间

RemoteVideoState

enum bytertc::RemoteVideoState

远端视频流状态。状态改变时,会收到 onRemoteVideoStateChanged 回调

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kRemoteVideoStateStopped 0 远端视频流默认初始状态,视频尚未开始播放。
kRemoteVideoStateStarting 1 本地用户已接收远端视频流首包。
kRemoteVideoStateDecoding 2 远端视频流正在解码,正常播放。
kRemoteVideoStateFrozen 3 远端视频流卡顿,可能有网络等原因。
kRemoteVideoStateFailed 4 远端视频流播放失败。

RemoteVideoStateChangeReason

enum bytertc::RemoteVideoStateChangeReason

远端视频流状态改变的原因

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kRemoteVideoStateChangeReasonInternal 0 内部原因
kRemoteVideoStateChangeReasonNetworkCongestion 1 网络阻塞
kRemoteVideoStateChangeReasonNetworkRecovery 2 网络恢复正常
kRemoteVideoStateChangeReasonLocalMuted 3 本地用户停止接收远端视频流或本地用户禁用视频模块
kRemoteVideoStateChangeReasonLocalUnmuted 4 本地用户恢复接收远端视频流或本地用户启用视频模块
kRemoteVideoStateChangeReasonRemoteMuted 5 远端用户停止发送视频流或远端用户禁用视频模块
kRemoteVideoStateChangeReasonRemoteUnmuted 6 远端用户恢复发送视频流或远端用户启用视频模块
kRemoteVideoStateChangeReasonRemoteOffline 7 远端用户离开频道。状态转换参考 onUserUnPublishStream。

SEIStreamEventType

enum bytertc::SEIStreamEventType

黑帧视频流状态

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kSEIStreamEventTypeStreamAdd 0 远端用户发布黑帧视频流。

纯语音通话场景下,远端用户调用 sendSEIMessage 发送 SEI 数据时,SDK 会自动发布一路黑帧视频流,并触发该回调。
kSEIStreamEventTypeStreamRemove 1 远端黑帧视频流移除。该回调的触发时机包括:

+ 远端用户开启摄像头采集,由语音通话切换至视频通话,黑帧视频流停止发布;

+ 远端用户调用 sendSEIMessage 后 1min 内未有 SEI 数据发送,黑帧视频流停止发布;

+ 远端用户调用 setVideoSourceType 切换至自定义视频采集时,黑帧视频流停止发布。

SourceWantedData

struct bytertc::SourceWantedData

性能回退相关数据

Defined in : bytertc_common_defines.h

成员变量

类型 名称
int width
int height
int frame_rate

变量说明

width

int bytertc::SourceWantedData::width;


未开启发布回退时,此值表示推荐的视频输入宽度,当回退模式为大小流模式时,表示当前推流的最大宽度 如果未开启发送性能回退,此值表示推荐的视频输入宽度;
如果开启了发送性能回退,此值表示当前推流的最大宽度。

height

int bytertc::SourceWantedData::height;

如果未开启发送性能回退,此值表示推荐的视频输入高度;
如果开启了发送性能回退,此值表示当前推流的最大高度。

frame_rate

int bytertc::SourceWantedData::frame_rate;

如果未开启发送性能回退,此值表示推荐的视频输入帧率,单位 fps;
如果开启了发送性能回退,此值表示当前推流的最大帧率,单位 fps。

UserInfo

struct bytertc::UserInfo

用户信息

Defined in : bytertc_common_defines.h

成员变量

类型 名称
const char* uid
const char* extra_info

变量说明

uid

const char* bytertc::UserInfo::uid = nullptr;

用户 ID。该字符串符合正则表达式:[a-zA-Z0-9_@\-]{1,128}。

extra_info

const char* bytertc::UserInfo::extra_info = nullptr;

用户的额外信息,最大长度为 200 字节。会在 onUserJoined 中回调给远端用户。

RtcRoomStats

struct bytertc::RtcRoomStats

通话相关的统计信息

Defined in : bytertc_common_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 short rx_screen_kbitrate
unsigned short tx_screen_kbitrate
unsigned int user_count
double cpu_app_usage
int tx_jitter
int rx_jitter
unsigned short tx_cellular_kbitrate
unsigned short rx_cellular_kbitrate

变量说明

txLostrate

float bytertc::RtcRoomStats::txLostrate;

当前应用的上行丢包率,取值范围为 [0, 1]

rxLostrate

float bytertc::RtcRoomStats::rxLostrate;

当前应用的下行丢包率,取值范围为 [0, 1]

rtt

int bytertc::RtcRoomStats::rtt;

客户端到服务端数据传输的往返时延(单位 ms)

duration

unsigned int bytertc::RtcRoomStats::duration;

进房到退房之间累计时长,单位为 s

tx_bytes

unsigned int bytertc::RtcRoomStats::tx_bytes;

本地用户的总发送字节数 (bytes),累计值

rx_bytes

unsigned int bytertc::RtcRoomStats::rx_bytes;

本地用户的总接收字节数 (bytes),累计值

tx_kbitrate

unsigned short bytertc::RtcRoomStats::tx_kbitrate;

发送码率(kbps),获取该数据时的瞬时值

rx_kbitrate

unsigned short bytertc::RtcRoomStats::rx_kbitrate;

接收码率(kbps),获取该数据时的瞬时值

rx_audio_kbitrate

unsigned short bytertc::RtcRoomStats::rx_audio_kbitrate;

音频接收码率(kbps),获取该数据时的瞬时值

tx_audio_kbitrate

unsigned short bytertc::RtcRoomStats::tx_audio_kbitrate;

音频包的发送码率(kbps),获取该数据时的瞬时值

rx_video_kbitrate

unsigned short bytertc::RtcRoomStats::rx_video_kbitrate;

视频接收码率(kbps),获取该数据时的瞬时值

tx_video_kbitrate

unsigned short bytertc::RtcRoomStats::tx_video_kbitrate;

视频发送码率(kbps),获取该数据时的瞬时值

rx_screen_kbitrate

unsigned short bytertc::RtcRoomStats::rx_screen_kbitrate;

屏幕接收码率,获取该数据时的瞬时值,单位为 Kbps

tx_screen_kbitrate

unsigned short bytertc::RtcRoomStats::tx_screen_kbitrate;

屏幕发送码率,获取该数据时的瞬时值,单位为 Kbps

user_count

unsigned int bytertc::RtcRoomStats::user_count;

当前房间内的可见用户人数

cpu_app_usage

double bytertc::RtcRoomStats::cpu_app_usage;

当前应用的 CPU 使用率 (%)

tx_jitter

int bytertc::RtcRoomStats::tx_jitter;

系统上行网络抖动(ms)

rx_jitter

int bytertc::RtcRoomStats::rx_jitter;

系统下行网络抖动(ms)

tx_cellular_kbitrate

unsigned short bytertc::RtcRoomStats::tx_cellular_kbitrate;

蜂窝路径发送的码率 (kbps),获取该数据时的瞬时值

rx_cellular_kbitrate

unsigned short bytertc::RtcRoomStats::rx_cellular_kbitrate;

蜂窝路径接收码率 (kbps),获取该数据时的瞬时值

VideoCodecType

enum bytertc::VideoCodecType

视频的编码类型

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kVideoCodecTypeH264 1 标准 H264 编码器
kVideoCodecTypeByteVC1 2 标准 ByteVC1 编码器

LocalAudioStats

struct bytertc::LocalAudioStats

本地音频流统计信息,统计周期为 2s 。
本地用户发布音频流成功后,SDK 会周期性地通过 onLocalStreamStats 通知用户发布的音频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。

Defined in : bytertc_common_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
int jitter

变量说明

audio_loss_rate

float bytertc::LocalAudioStats::audio_loss_rate;

音频丢包率。此次统计周期内的音频上行丢包率,单位为 % ,取值范围为 [0, 1]。

send_kbitrate

int bytertc::LocalAudioStats::send_kbitrate;

发送码率。此次统计周期内的音频发送码率,单位为 kbps 。

record_sample_rate

int bytertc::LocalAudioStats::record_sample_rate;

采集采样率。此次统计周期内的音频采集采样率信息,单位为 Hz 。

stats_interval

int bytertc::LocalAudioStats::stats_interval;

统计间隔。此次统计周期的间隔,单位为 ms 。

注意: 此字段用于设置回调的统计周期,默认设置为 2s 。 此字段用于设置回调的统计周期,默认设置为 2s 。

rtt

int bytertc::LocalAudioStats::rtt;

往返时延。单位为 ms 。

num_channels

int bytertc::LocalAudioStats::num_channels;

音频声道数。

sent_sample_rate

int bytertc::LocalAudioStats::sent_sample_rate;

音频发送采样率。此次统计周期内的音频发送采样率信息,单位为 Hz 。

jitter

int bytertc::LocalAudioStats::jitter;

音频上行网络抖动,单位为 ms 。

RemoteAudioStats

struct bytertc::RemoteAudioStats

远端音频流统计信息,统计周期为 2s。
本地用户订阅远端音频流成功后,SDK 会周期性地通过 onRemoteStreamStats 通知本地用户订阅的音频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。

Defined in : bytertc_common_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
int jitter

变量说明

audio_loss_rate

float bytertc::RemoteAudioStats::audio_loss_rate;

音频丢包率。统计周期内的音频下行丢包率,取值范围为 [0, 1] 。

received_kbitrate

int bytertc::RemoteAudioStats::received_kbitrate;

接收码率。统计周期内的音频接收码率,单位为 kbps 。

stall_count

int bytertc::RemoteAudioStats::stall_count;

音频卡顿次数。统计周期内的卡顿次数。

stall_duration

int bytertc::RemoteAudioStats::stall_duration;

音频卡顿时长。统计周期内的卡顿时长,单位为 ms 。

e2e_delay

long bytertc::RemoteAudioStats::e2e_delay;

用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。

playout_sample_rate

int bytertc::RemoteAudioStats::playout_sample_rate;

播放采样率。统计周期内的音频播放采样率信息,单位为 Hz 。

stats_interval

int bytertc::RemoteAudioStats::stats_interval;

统计间隔。此次统计周期的间隔,单位为 ms 。

rtt

int bytertc::RemoteAudioStats::rtt;

客户端到服务端数据传输的往返时延,单位为 ms。

total_rtt

int bytertc::RemoteAudioStats::total_rtt;

发送端——服务端——接收端全链路数据传输往返时延。单位为 ms 。

quality

int bytertc::RemoteAudioStats::quality;

远端用户发送的音频流质量。值含义参考 NetworkQuality 。

jitter_buffer_delay

int bytertc::RemoteAudioStats::jitter_buffer_delay;

因引入 jitter buffer 机制导致的延时。单位为 ms 。

num_channels

int bytertc::RemoteAudioStats::num_channels;

音频声道数。

received_sample_rate

int bytertc::RemoteAudioStats::received_sample_rate;

音频接收采样率。统计周期内接收到的远端音频采样率信息,单位为 Hz 。

frozen_rate

int bytertc::RemoteAudioStats::frozen_rate;

远端用户在加入房间后发生音频卡顿的累计时长占音频总有效时长的百分比。音频有效时长是指远端用户进房发布音频流后,除停止发送音频流和禁用音频模块之外的音频时长。

concealed_samples

int bytertc::RemoteAudioStats::concealed_samples;

音频丢包补偿(PLC) 样点总个数。

concealment_event

int bytertc::RemoteAudioStats::concealment_event;

音频丢包补偿(PLC) 累计次数。

dec_sample_rate

int bytertc::RemoteAudioStats::dec_sample_rate;

音频解码采样率。统计周期内的音频解码采样率信息,单位为 Hz 。

dec_duration

int bytertc::RemoteAudioStats::dec_duration;

解码时长。对此次统计周期内接收的远端音频流进行解码的总耗时,单位为 s 。

jitter

int bytertc::RemoteAudioStats::jitter;

音频下行网络抖动,单位为 ms 。

LocalVideoStats

struct bytertc::LocalVideoStats

本地视频流统计信息,统计周期为 2s 。
本地用户发布视频流成功后,SDK 会周期性地通过 onLocalStreamStats 通知用户发布的视频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。

Defined in : bytertc_common_defines.h

成员变量

类型 名称
int sent_kbitrate
int input_frame_rate
int sent_frame_rate
int encoder_output_frame_rate
int renderer_output_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 jitter

变量说明

sent_kbitrate

int bytertc::LocalVideoStats::sent_kbitrate;

发送码率。此次统计周期内实际发送的分辨率最大的视频流的发送码率,单位为 Kbps

input_frame_rate

int bytertc::LocalVideoStats::input_frame_rate;

采集帧率。此次统计周期内的视频采集帧率,单位为 fps 。

sent_frame_rate

int bytertc::LocalVideoStats::sent_frame_rate;

发送帧率。此次统计周期内实际发送的分辨率最大的视频流的视频发送帧率,单位为 fps 。

encoder_output_frame_rate

int bytertc::LocalVideoStats::encoder_output_frame_rate;

编码器输出帧率。当前编码器在此次统计周期内实际发送的分辨率最大的视频流的输出帧率,单位为 fps 。

renderer_output_frame_rate

int bytertc::LocalVideoStats::renderer_output_frame_rate;

本地渲染帧率。此次统计周期内的本地视频渲染帧率,单位为 fps 。

stats_interval

int bytertc::LocalVideoStats::stats_interval;

统计间隔,单位为 ms 。 此字段用于设置回调的统计周期,默认设置为 2s 。

video_loss_rate

float bytertc::LocalVideoStats::video_loss_rate;

视频丢包率。此次统计周期内的视频上行丢包率,取值范围为 [0,1] 。

rtt

int bytertc::LocalVideoStats::rtt;

往返时延,单位为 ms 。

encoded_bitrate

int bytertc::LocalVideoStats::encoded_bitrate;

视频编码码率。此次统计周期内的实际发送的分辨率最大的视频流视频编码码率,单位为 Kbps 。

encoded_frame_width

int bytertc::LocalVideoStats::encoded_frame_width;

实际发送的分辨率最大的视频流的视频编码宽度,单位为 px 。

encoded_frame_height

int bytertc::LocalVideoStats::encoded_frame_height;

实际发送的分辨率最大的视频流的视频编码高度,单位为 px 。

encoded_frame_count

int bytertc::LocalVideoStats::encoded_frame_count;

此次统计周期内实际发送的分辨率最大的视频流的发送的视频帧总数。

codec_type

VideoCodecType bytertc::LocalVideoStats::codec_type;

视频的编码类型,具体参考 VideoCodecType 。

is_screen

bool bytertc::LocalVideoStats::is_screen;

所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

jitter

int bytertc::LocalVideoStats::jitter;

视频上行网络抖动,单位为 ms 。

RemoteVideoStats

struct bytertc::RemoteVideoStats

远端视频流统计信息,统计周期为 2s 。
本地用户订阅远端视频流成功后,SDK 会周期性地通过 onRemoteStreamStats 通知本地用户订阅的远端视频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。

Defined in : bytertc_common_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 jitter

变量说明

width

int bytertc::RemoteVideoStats::width;

视频宽度

height

int bytertc::RemoteVideoStats::height;

视频高度

video_loss_rate

float bytertc::RemoteVideoStats::video_loss_rate;

视频丢包率。统计周期内的视频下行丢包率,单位为 % ,取值范围:[0,1] 。

received_kbitrate

int bytertc::RemoteVideoStats::received_kbitrate;

接收码率。统计周期内的视频接收码率,单位为 kbps 。

decoder_output_frame_rate

int bytertc::RemoteVideoStats::decoder_output_frame_rate;

解码器输出帧率。统计周期内的视频解码器输出帧率,单位 fps 。

renderer_output_frame_rate

int bytertc::RemoteVideoStats::renderer_output_frame_rate;

渲染帧率。统计周期内的视频渲染帧率,单位 fps 。

stall_count

int bytertc::RemoteVideoStats::stall_count;

卡顿次数。统计周期内的卡顿次数。

stall_duration

int bytertc::RemoteVideoStats::stall_duration;

卡顿时长。统计周期内的视频卡顿总时长。单位 ms 。

e2e_delay

long bytertc::RemoteVideoStats::e2e_delay;

用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。

is_screen

bool bytertc::RemoteVideoStats::is_screen;

所属用户的媒体流是否为屏幕流。你可以知道当前数据来自主流还是屏幕流。

stats_interval

int bytertc::RemoteVideoStats::stats_interval;

统计间隔,此次统计周期的间隔,单位为 ms 。

注意: 此字段用于设置回调的统计周期,目前设置为 2s 。 此字段用于设置回调的统计周期,目前设置为 2s 。

rtt

int bytertc::RemoteVideoStats::rtt;

往返时延,单位为 ms 。

frozen_rate

int bytertc::RemoteVideoStats::frozen_rate;

远端用户在进房后发生视频卡顿的累计时长占视频总有效时长的百分比(%)。视频有效时长是指远端用户进房发布视频流后,除停止发送视频流和禁用视频模块之外的视频时长。

video_index

int bytertc::RemoteVideoStats::video_index;

对应多种分辨率的流的下标,详见 VideoSolutionDescription

jitter

int bytertc::RemoteVideoStats::jitter;

视频下行网络抖动,单位为 ms 。

LocalStreamStats

struct bytertc::LocalStreamStats

本地音/视频流统计信息以及网络状况,统计周期为 2s 。
本地用户发布音/视频流成功后,SDK 会周期性地通过 onLocalStreamStats 通知本地用户发布的音/视频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。

Defined in : bytertc_common_defines.h

成员变量

类型 名称
LocalAudioStats audio_stats
LocalVideoStats video_stats
bool is_screen

变量说明

audio_stats

LocalAudioStats bytertc::LocalStreamStats::audio_stats;

本地设备发送音频流的统计信息,详见 LocalAudioStats

video_stats

LocalVideoStats bytertc::LocalStreamStats::video_stats;

本地设备发送视频流的统计信息,详见 LocalVideoStats

is_screen

bool bytertc::LocalStreamStats::is_screen;

所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

RemoteStreamStats

struct bytertc::RemoteStreamStats

用户订阅的远端音/视频流统计信息以及网络状况,统计周期为 2s 。
订阅远端用户发布音/视频流成功后,SDK 会周期性地通过 onRemoteStreamStats 通知本地用户订阅的远端音/视频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。

Defined in : bytertc_common_defines.h

成员变量

类型 名称
const char* uid
RemoteAudioStats audio_stats
RemoteVideoStats video_stats
bool is_screen

变量说明

uid

const char* bytertc::RemoteStreamStats::uid;

用户 ID 。音/视频来源的远端用户 ID 。

audio_stats

RemoteAudioStats bytertc::RemoteStreamStats::audio_stats;

远端音频流的统计信息,详见 RemoteAudioStats

video_stats

RemoteVideoStats bytertc::RemoteStreamStats::video_stats;

远端视频流的统计信息,详见 RemoteVideoStats

is_screen

bool bytertc::RemoteStreamStats::is_screen;

所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

ProblemFeedbackOption

enum bytertc::ProblemFeedbackOption

音视频质量反馈问题类型

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kProblemFeedbackOptionNone 0 没有问题
kProblemFeedbackOptionOtherMessage (1 << 0) 其他问题
kProblemFeedbackOptionAudioNotClear (1 << 1) 声音不清晰
kProblemFeedbackOptionVideoNotClear (1 << 2) 视频不清晰
kProblemFeedbackOptionNotSync (1 << 3) 音视频不同步
kProblemFeedbackOptionAudioLagging (1 << 4) 音频卡顿
kProblemFeedbackOptionVideoLagging (1 << 5) 视频卡顿
kProblemFeedbackOptionDisconnected (1 << 6) 连接失败
kProblemFeedbackOptionNoAudio (1 << 7) 无声音
kProblemFeedbackOptionNoVideo (1 << 8) 无画面
kProblemFeedbackOptionAudioStrength (1 << 9) 声音过小
kProblemFeedbackOptionEcho (1 << 10) 回声噪音
KFeedbackOptionEarBackDelay (1 << 11) 耳返延迟大

SysStats

struct bytertc::SysStats

App 使用的 cpu 和内存信息。
信息由 SDK 周期性(2s)地通过 onSysStats 回调通知给用户。

Defined in : bytertc_common_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

变量说明

cpu_cores

unsigned int bytertc::SysStats::cpu_cores;

当前系统 CPU 核数

cpu_app_usage

double bytertc::SysStats::cpu_app_usage;

当前应用的 cpu 使用率,取值范围为 [0, 1]。

cpu_total_usage

double bytertc::SysStats::cpu_total_usage;

当前系统的 cpu 使用率,取值范围为 [0, 1]。

memory_usage

double bytertc::SysStats::memory_usage;

当前应用的内存使用量(单位 MB)

full_memory

unsigned long long bytertc::SysStats::full_memory;

全量内存(单位MB)

total_memory_usage

unsigned long long bytertc::SysStats::total_memory_usage;

系统已使用内存(单位MB)

free_memory

unsigned long long bytertc::SysStats::free_memory;

空闲可分配内存(单位MB)

memory_ratio

double bytertc::SysStats::memory_ratio;

当前应用的内存使用率(单位 %)

total_memory_ratio

double bytertc::SysStats::total_memory_ratio;

系统内存使用率(单位 %)

EncryptType

enum bytertc::EncryptType

自定义加密类型

Defined in : bytertc_common_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 加密算法

RtcUser

struct bytertc::RtcUser

用户信息

Defined in : bytertc_common_defines.h

成员变量

类型 名称
const char* user_id
const char* meta_data

变量说明

user_id

const char* bytertc::RtcUser::user_id;

meta_data

const char* bytertc::RtcUser::meta_data;

FirstFrameSendState

enum bytertc::FirstFrameSendState

首帧发送状态

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kFirstFrameSendStateSending 0 发送中
kFirstFrameSendStateSent 1 发送成功
kFirstFrameSendStateEnd 2 发送失败

FirstFramePlayState

enum bytertc::FirstFramePlayState

首帧播放状态

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kFirstFramePlayStatePlaying 0 播放中
kFirstFramePlayStatePlayed 1 播放成功
kFirstFramePlayStateEnd 2 播放失败

MuteState

enum bytertc::MuteState

音视频流的发送/播放状态

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kMuteStateOff 0 发送
kMuteStateOn 1 停止发送

StreamIndex

enum bytertc::StreamIndex

流属性

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kStreamIndexMain 0 主流。包括:

+ 由摄像头/麦克风通过内部采集机制,采集到的视频/音频;

+ 通过自定义采集,采集到的视频/音频。
kStreamIndexScreen 1 屏幕流。屏幕共享时共享的视频流,或来自声卡的本地播放音频流。

RemoteStreamKey

struct bytertc::RemoteStreamKey

远端流信息

Defined in : bytertc_common_defines.h

成员变量

类型 名称
const char* room_id
const char* user_id
StreamIndex stream_index

变量说明

room_id

const char* bytertc::RemoteStreamKey::room_id;

媒体流所在房间的房间 ID。
如果此媒体流是通过 startForwardStreamToRooms 转发到你所在房间的媒体流时,你应将房间 ID 设置为你所在的房间 ID。

user_id

const char* bytertc::RemoteStreamKey::user_id;

用户 ID

stream_index

StreamIndex bytertc::RemoteStreamKey::stream_index;

流属性,主流或屏幕流。参看 StreamIndex

HttpProxyState

enum bytertc::HttpProxyState

HTTP/HTTPS 代理状态

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kHttpInit 0 HTTP/HTTPS 初始化状态
kHttpConnected 1 HTTP/HTTPS 连接成功
kHttpError 2 HTTP/HTTPS 连接失败

Socks5ProxyState

enum bytertc::Socks5ProxyState

SOCKS5 代理连接状态

Defined in : bytertc_common_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 未知状态

RecordingFileType

enum bytertc::RecordingFileType

本地录制文件的存储格式

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kRecordingFileTypeAAC 0 aac 格式文件
kRecordingFileTypeMP4 1 mp4 格式文件

RecordingState

enum bytertc::RecordingState

本地录制的状态

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kRecordingStateError 0 录制异常
kRecordingStateProcessing 1 录制进行中
kRecordingStateSuccess 2 录制文件保存成功,调用 stopFileRecording 结束录制之后才会收到该状态码。

RecordingErrorCode

enum bytertc::RecordingErrorCode

本地录制的错误码

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kRecordingErrorCodeOk 0 录制正常
kRecordingErrorCodeNoPermission -1 没有文件写权限
kRecordingErrorCodeNotSupport -2 当前版本 SDK 不支持本地录制功能,请联系技术支持人员
kRecordingErrorCodeOther -3 其他异常

RecordingProgress

struct bytertc::RecordingProgress

本地录制进度

Defined in : bytertc_common_defines.h

成员变量

类型 名称
unsigned long long duration
unsigned long long file_size

变量说明

duration

unsigned long long bytertc::RecordingProgress::duration;

当前文件的累计录制时长,单位:毫秒

file_size

unsigned long long bytertc::RecordingProgress::file_size;

当前录制文件的大小,单位:byte

RecordingInfo

struct bytertc::RecordingInfo

本地录制的详细信息

Defined in : bytertc_common_defines.h

成员变量

类型 名称
const char* file_path
VideoCodecType video_codec_type
int width
int height

变量说明

file_path

const char* bytertc::RecordingInfo::file_path;

录制文件的绝对路径,包含文件名和文件后缀

video_codec_type

VideoCodecType bytertc::RecordingInfo::video_codec_type;

录制文件的视频编码类型,参看 VideoCodecType

width

int bytertc::RecordingInfo::width;

录制视频的宽,单位:像素。纯音频录制请忽略该字段

height

int bytertc::RecordingInfo::height;

录制视频的高,单位:像素。纯音频录制请忽略该字段

RecordingConfig

struct bytertc::RecordingConfig

本地录制参数配置

Defined in : bytertc_common_defines.h

成员变量

类型 名称
const char* dir_path
RecordingFileType file_type

变量说明

dir_path

const char* bytertc::RecordingConfig::dir_path;

录制文件保存的绝对路径。你需要指定一个有读写权限的合法路径。

file_type

RecordingFileType bytertc::RecordingConfig::file_type;

录制存储文件格式,参看 RecordingFileType

UserWorkerType

enum bytertc::UserWorkerType

定义linux用户的用户功能

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
UserWorkerNormal 0 正常用户,没有任何特殊属性
UserWorkerSupportSip (1 << 0) 用户支持SIP流,信令只下发SIP流
UserWorkerByteVc1Transcoder (1 << 1) 用户支持屏幕流的bytevc1到H264转码
UserWorkerNeedUserListAndCb (1 << 2) 用户需要信令服务器下发全量的用户列表和回调函数
UserWorkerNeedStreamCallBack (1 << 3) 用户需要在房间进入多人模式时获取房间内所有流的相关回调

AVSyncState

enum bytertc::AVSyncState

音视频同步状态

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kAVSyncStateAVStreamSyncBegin 0 音视频开始同步
kAVSyncStateAudioStreamRemove 1 音视频同步过程中音频移除,但不影响当前的同步关系
kAVSyncStateVdieoStreamRemove 2 音视频同步过程中视频移除,但不影响当前的同步关系

SyncInfoStreamType

enum bytertc::SyncInfoStreamType

媒体流信息同步的流类型

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kSyncInfoStreamTypeAudio = 0 0 音频流

StreamSycnInfoConfig

struct bytertc::StreamSycnInfoConfig

媒体流信息同步的相关配置

Defined in : bytertc_common_defines.h

成员变量

类型 名称
StreamIndex stream_index
int repeat_count
SyncInfoStreamType stream_type

变量说明

stream_index

StreamIndex bytertc::StreamSycnInfoConfig::stream_index;

流属性,主流或屏幕流。见 StreamIndex

repeat_count

int bytertc::StreamSycnInfoConfig::repeat_count;

消息发送的重复次数,取值范围是 [0,25],建议设置为 [3,5]。

stream_type

SyncInfoStreamType bytertc::StreamSycnInfoConfig::stream_type;

媒体流信息同步的流类型,见 SyncInfoStreamType

ForwardStreamInfo

struct bytertc::ForwardStreamInfo

媒体流跨房间转发的目标房间的相关信息

Defined in : bytertc_common_defines.h

成员变量

类型 名称
const char* token
const char* room_id

变量说明

token

const char* bytertc::ForwardStreamInfo::token;

使用转发目标房间 roomID 和 UserID 生成 Token。
测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
如果 Token 无效,转发失败。

room_id

const char* bytertc::ForwardStreamInfo::room_id;

跨间转发媒体流过程中目标房间 ID

ForwardStreamConfiguration

struct bytertc::ForwardStreamConfiguration

媒体流跨房间转发的目标房间的相关信息

Defined in : bytertc_common_defines.h

成员变量

类型 名称
ForwardStreamInfo* forward_stream_dests
int dest_count

变量说明

forward_stream_dests

ForwardStreamInfo* bytertc::ForwardStreamConfiguration::forward_stream_dests = nullptr;

目标房间信息,数组中的每个元素包含一个房间的信息。

dest_count

int bytertc::ForwardStreamConfiguration::dest_count = 0;

目标房间数量。媒体流同时转发的目标房间数量建议小于等于 4 个。

ForwardStreamState

enum bytertc::ForwardStreamState

媒体流跨房间转发状态

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kForwardStreamStateIdle 0 空闲状态
+ 成功调用 stopForwardStreamToRooms 后,所有目标房间为空闲状态。
+ 成功调用 updateForwardStreamToRooms 减少目标房间后,本次减少的目标房间为空闲状态。
kForwardStreamStateSuccess 1 开始转发
+ 调用 startForwardStreamToRooms 成功向所有房间开始转发媒体流后,返回此状态。
+ 调用 updateForwardStreamToRooms 后,成功向新增目标房间开始转发媒体流后,返回此状态。
kForwardStreamStateFailure 2 转发失败,失败详情参考 ForwardStreamError
调用 startForwardStreamToRooms 或 updateForwardStreamToRooms 后,如遇转发失败,返回此状态。

ForwardStreamError

enum bytertc::ForwardStreamError

媒体流跨房间转发过程中抛出的错误码

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kForwardStreamErrorOK 0 正常
kForwardStreamErrorInvalidArgument 1201 参数异常
kForwardStreamErrorInvalidToken 1202 token 错误
kForwardStreamErrorResponse 1203 服务端异常
kForwardStreamErrorRemoteKicked 1204 目标房间有相同 user id 的用户加入,转发中断
kForwardStreamErrorNotSupport 1205 服务端不支持转发功能

ForwardStreamEvent

enum bytertc::ForwardStreamEvent

媒体流跨房间转发事件

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kForwardStreamEventDisconnected 0 本端与服务器网络连接断开,暂停转发。
kForwardStreamEventConnected 1 本端与服务器网络连接恢复,转发服务连接成功。
kForwardStreamEventInterrupt 2 转发中断。转发过程中,如果相同 user_id 的用户进入目标房间,转发中断。
kForwardStreamEventDstRoomUpdated 3 目标房间已更新,由 updateForwardStreamToRooms 触发。
kForwardStreamEventUnExpectAPICall 4 API 调用时序错误。例如,在调用 startForwardStreamToRooms 之前调用 updateForwardStreamToRooms 。

ForwardStreamStateInfo

struct bytertc::ForwardStreamStateInfo

跨房间转发媒体流过程中的不同目标房间的状态和错误信息

Defined in : bytertc_common_defines.h

成员变量

类型 名称
const char* room_id
ForwardStreamState state
ForwardStreamError error

变量说明

room_id

const char* bytertc::ForwardStreamStateInfo::room_id;

跨间转发媒体流过程中目标房间 ID

state

ForwardStreamState bytertc::ForwardStreamStateInfo::state;

跨房间转发媒体流过程中该目标房间的状态,参看 ForwardStreamState

error

ForwardStreamError bytertc::ForwardStreamStateInfo::error;

跨房间转发媒体流过程中该目标房间抛出的错误码,参看 ForwardStreamError

ForwardStreamEventInfo

struct bytertc::ForwardStreamEventInfo

跨房间转发媒体流过程中的不同目标房间发生的事件

Defined in : bytertc_common_defines.h

成员变量

类型 名称
const char* room_id
ForwardStreamEvent event

变量说明

room_id

const char* bytertc::ForwardStreamEventInfo::room_id;

跨房间转发媒体流过程中的发生该事件的目标房间 ID
空字符串代表所有目标房间

event

ForwardStreamEvent bytertc::ForwardStreamEventInfo::event;

跨房间转发媒体流过程中该目标房间发生的事件,参看 ForwardStreamEvent

ByteWatermark

struct bytertc::ByteWatermark

水印图片相对视频流的位置和大小。

Defined in : bytertc_common_defines.h

成员变量

类型 名称
float x
float y
float width
float height

变量说明

x

float bytertc::ByteWatermark::x;

水印图片相对视频流左上角的横向偏移与视频流宽度的比值,取值范围为 [0,1)。

y

float bytertc::ByteWatermark::y;

水印图片相对视频流左上角的纵向偏移与视频流高度的比值,取值范围为 [0,1)。

width

float bytertc::ByteWatermark::width;

水印图片宽度与视频流宽度的比值,取值范围 [0,1)。

height

float bytertc::ByteWatermark::height;

水印图片高度与视频流高度的比值,取值范围为 [0,1)。

RTCWatermarkConfig

struct bytertc::RTCWatermarkConfig

水印参数

Defined in : bytertc_common_defines.h

成员变量

类型 名称
bool visibleInPreview
ByteWatermark positionInLandscapeMode
ByteWatermark positionInPortraitMode

变量说明

visibleInPreview

bool bytertc::RTCWatermarkConfig::visibleInPreview = true;

水印是否在视频预览中可见,默认可见。

positionInLandscapeMode

ByteWatermark bytertc::RTCWatermarkConfig::positionInLandscapeMode;

横屏时的水印位置和大小,参看 ByteWatermark。

positionInPortraitMode

ByteWatermark bytertc::RTCWatermarkConfig::positionInPortraitMode;

视频编码的方向模式为竖屏时的水印位置和大小,参看 ByteWatermark。

CloudProxyInfo

struct bytertc::CloudProxyInfo

云代理信息

Defined in : bytertc_common_defines.h

成员变量

类型 名称
const char* cloud_proxy_ip
int cloud_proxy_port

变量说明

cloud_proxy_ip

const char* bytertc::CloudProxyInfo::cloud_proxy_ip;

云代理服务器 IP

cloud_proxy_port

int bytertc::CloudProxyInfo::cloud_proxy_port;

云代理服务器端口

CloudProxyConfiguration

struct bytertc::CloudProxyConfiguration

云代理相关信息

Defined in : bytertc_common_defines.h

成员变量

类型 名称
CloudProxyInfo* cloud_proxies
int cloud_proxy_count

变量说明

cloud_proxies

CloudProxyInfo* bytertc::CloudProxyConfiguration::cloud_proxies = nullptr;

云代理信息。

cloud_proxy_count

int bytertc::CloudProxyConfiguration::cloud_proxy_count = 0;

云代理数量。

DeviceTransportType

enum bytertc::DeviceTransportType

设备的传输方式

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kDeviceTransportTypeUnknown 0 未知类型
kDeviceTransportTypeBuiltIn 1 系统内置
kDeviceTransportTypeBlueToothUnknownMode 2 未知模式蓝牙
kDeviceTransportTypeBlueToothHandsFreeMode 3 免提模式蓝牙
kDeviceTransportTypeBlueToothStereoMode 4 立体声模式蓝牙
kDeviceTransportTypeDisplayAudio 5 显示器/电视机音频设备
kDeviceTransportTypeVirtual = 6 6 虚拟设备

EchoTestResult

enum class bytertc::EchoTestResult

音视频回路测试结果

Defined in : bytertc_common_defines.h

枚举值

类型 值 说明
kTestSuccess 0 接收到采集的音视频的回放,通话回路检测成功
kTestTimeout 1 测试超过 60s 仍未完成,已自动停止
kTestIntervalShort 2 上一次测试结束和下一次测试开始之间的时间间隔少于 5s
kAudioDeviceError 3 音频采集异常
kVideoDeviceError 4 视频采集异常
kAudioReceiveError 5 音频接收异常
kVideoReceiveError 6 视频接收异常
kInternalError 7 内部错误,不可恢复

EchoTestConfig

struct bytertc::EchoTestConfig

音视频回路测试参数

Defined in : bytertc_common_defines.h

成员变量

类型 名称
void* view
bool enableAudio
bool enableVideo
int audioPropertiesReportInterval
const char* uid
const char* roomId
const char* token

变量说明

view

void* bytertc::EchoTestConfig::view;

用于渲染接收到的视频的视图

enableAudio

bool bytertc::EchoTestConfig::enableAudio;

是否检测音频。检测设备为系统默认音频设备。

enableVideo

bool bytertc::EchoTestConfig::enableVideo;

是否检测视频。PC 端默认检测列表中第一个视频设备。

注意: 视频的发布参数固定为:分辨率 640px × 360px,帧率 15fps。 视频的发布参数固定为:分辨率 640px × 360px,帧率 15fps。

audioPropertiesReportInterval

int bytertc::EchoTestConfig::audioPropertiesReportInterval;

音量信息提示间隔,单位:ms,默认为 100ms

uid

const char* bytertc::EchoTestConfig::uid;

进行音视频通话回路测试的用户 ID

roomId

const char* bytertc::EchoTestConfig::roomId;

测试用户加入的房间 ID。

token

const char* bytertc::EchoTestConfig::token;

对用户进房时进行鉴权验证的动态密钥,用于保证音视频通话回路测试的安全性。

StreamLayoutMode

enum bytertc::StreamLayoutMode

公共流的布局模式

Defined in : bytertc_publicstream_interface.h

枚举值

类型 值 说明
kLayoutCustomerMode = 2 2 自定义

PublicStreamErrorCode

enum bytertc::PublicStreamErrorCode

公共流错误码。

Defined in : bytertc_publicstream_interface.h

枚举值

类型 值 说明
kPublicStreamOK 200 推流成功。
kPushPublicStreamInvalidParam 1191 推流参数错误。
kPushPublicStreamInvalidStatus 1192 推流状态异常。
kPushPublicStreamInternalError 1193 推流内部错误。
kPushPublicStreamPushFailed 1195 推流失败。
kPushPublicStreamTimeout 1196 推流消息发送超时。

SourceCrop

typedef struct bytertc::SourceCrop

公共流视频裁剪配置

Defined in : bytertc_publicstream_interface.h

成员变量

类型 名称
float LocationX
float LocationY
float WidthProportion
float HeightProportion

变量说明

LocationX

float bytertc::SourceCrop::LocationX = 0.0;

裁剪后得到的视频帧左上角横坐标相对于裁剪前整体画面的归一化比例,取值范围[0.0, 1.0)

LocationY

float bytertc::SourceCrop::LocationY = 0.0;

裁剪后得到的视频帧左上角纵坐标相对于裁剪前整体画面的归一化比例,取值范围[0.0, 1.0)

WidthProportion

float bytertc::SourceCrop::WidthProportion = 0.0;

裁剪后得到的视频帧宽度相对于裁剪前整体画面的归一化比例,取值范围(0.0, 1.0]

HeightProportion

float bytertc::SourceCrop::HeightProportion = 0.0;

裁剪后得到的视频帧高度相对于裁剪前整体画面的归一化比例,取值范围(0.0, 1.0]

PublicStreamVideoParam

typedef struct bytertc::PublicStreamVideoParam

公共流视频参数

Defined in : bytertc_publicstream_interface.h

成员变量

类型 名称
int32_t width
int32_t height
int32_t fps
int32_t bitrate_kpbs

变量说明

width

int32_t bytertc::PublicStreamVideoParam::width;

宽度,单位:px。
仅支持设为偶数,如果设为奇数,将导致公共流发布失败。

height

int32_t bytertc::PublicStreamVideoParam::height;

高度,单位:px。
仅支持设为偶数,如果设为奇数,后处理会直接拒绝,导致公共流失败。

fps

int32_t bytertc::PublicStreamVideoParam::fps;

帧率,单位:fps

bitrate_kpbs

int32_t bytertc::PublicStreamVideoParam::bitrate_kpbs;

码率,单位:kbps

PublicStreamAudioParam

typedef struct bytertc::PublicStreamAudioParam

公共流音频参数

Defined in : bytertc_publicstream_interface.h

成员变量

类型 名称
int32_t sample_rate
int32_t channel_num
int32_t bitrate_kbps

变量说明

sample_rate

int32_t bytertc::PublicStreamAudioParam::sample_rate;

音频采样率,包括 16k, 32k, 44.1k, 48k

channel_num

int32_t bytertc::PublicStreamAudioParam::channel_num;

声道数

bitrate_kbps

int32_t bytertc::PublicStreamAudioParam::bitrate_kbps;

音频码率,单位:kbps,包括 16kbps, 32kbps, 64kbps

PublicStreamLayoutRegion

typedef struct bytertc::PublicStreamLayoutRegion

单个视频流在公共流中的布局信息。
在多路视频流公共流时,你可以设置其中一路视频流在公共流中的预设布局信息。

Defined in : bytertc_publicstream_interface.h

成员变量

类型 名称
const char* user_id
const char* room_id
const char* alternate_image_uri
float x
float y
float width
float height
float alpha
int32_t z_order
int stream_type
TranscoderContentControlType media_type
RenderMode render_mode
SourceCrop source_crop

变量说明

user_id

const char* bytertc::PublicStreamLayoutRegion::user_id = "";

目标公共流用户的 ID

room_id

const char* bytertc::PublicStreamLayoutRegion::room_id = "";

跨房间订阅流时,目标流所在的房间 ID

alternate_image_uri

const char* bytertc::PublicStreamLayoutRegion::alternate_image_uri = "";

背景图片地址

x

float bytertc::PublicStreamLayoutRegion::x;

用户视频布局相对画布左侧的偏移量,取值的范围为 [0.0, 1.0)

y

float bytertc::PublicStreamLayoutRegion::y;

用户视频布局相对画布顶端的偏移量,取值的范围为 [0.0, 1.0)

width

float bytertc::PublicStreamLayoutRegion::width;

用户视频宽度相对画布宽度的比例,取值的范围为 (0.0, 1.0]

height

float bytertc::PublicStreamLayoutRegion::height;

用户视频高度相对画布高度的比例,取值的范围为 (0.0, 1.0]

alpha

float bytertc::PublicStreamLayoutRegion::alpha;

透明度,取值范围 [0,255]

z_order

int32_t bytertc::PublicStreamLayoutRegion::z_order;

用户视频布局在画布中的层级,取值范围 [0,100],0 为底层,值越大层级越高

stream_type

int bytertc::PublicStreamLayoutRegion::stream_type = 0;

媒体流类型:

media_type

TranscoderContentControlType bytertc::PublicStreamLayoutRegion::media_type;

公共流输出类型,参看 TranscoderContentControlType

render_mode

RenderMode bytertc::PublicStreamLayoutRegion::render_mode;

渲染时,视频内容缩放模式,参看 RenderMode

source_crop

SourceCrop bytertc::PublicStreamLayoutRegion::source_crop;

支持对每一路参与公共流的视频进行裁剪,参看 SourceCrop

PublicStreamLayout

struct bytertc::PublicStreamLayout

公共流布局设置。

Defined in : bytertc_publicstream_interface.h

成员变量

类型 名称
int layoutMode
int interMode
const char* background_image
const char* background_color
PublicStreamLayoutRegion* regions
int regions_num

变量说明

layoutMode

int bytertc::PublicStreamLayout::layoutMode;

布局模式

interMode

int bytertc::PublicStreamLayout::interMode;

插帧模式

background_image

const char* bytertc::PublicStreamLayout::background_image = nullptr;

背景图片

background_color

const char* bytertc::PublicStreamLayout::background_color = nullptr;

公共流视频的背景颜色,默认值 #000000,表示为黑色。

regions

PublicStreamLayoutRegion* bytertc::PublicStreamLayout::regions = nullptr;

公共流布局信息。详见 PublicStreamLayoutRegion

regions_num

int bytertc::PublicStreamLayout::regions_num = 0;

参与合流的数量

PublicStreamConfig

struct bytertc::PublicStreamConfig

公共流配置信息

Defined in : bytertc_publicstream_interface.h

成员变量

类型 名称
const char* stream_id
PublicStreamVideoParam video_config
PublicStreamAudioParam audio_config
PublicStreamLayout layout

变量说明

stream_id

const char* bytertc::PublicStreamConfig::stream_id = nullptr;

公共流 ID

video_config

PublicStreamVideoParam bytertc::PublicStreamConfig::video_config;

公共流视频配置。详见 PublicStreamVideoParam

audio_config

PublicStreamAudioParam bytertc::PublicStreamConfig::audio_config;

公共流音频配置。详见 PublicStreamAudioParam

layout

PublicStreamLayout bytertc::PublicStreamConfig::layout;

公共流流布局设置。详见 PublicStreamLayout

IPublicStreamParam

class bytertc::IPublicStreamParam

公共流参数

Defined in : bytertc_publicstream_interface.h

成员函数

返回 名称
virtual StreamLayoutMode layoutMode
virtual int interpolationMode
virtual const char* backgroundImageUri
virtual PublicStreamAudioParam audioParam
virtual PublicStreamVideoParam videoParam
virtual PublicStreamLayoutRegion layoutRegionByIndex
virtual void setInterpolationMode
virtual void setBackgroundImageUri
virtual void setAudioParam
virtual void setVideoParam
virtual void setLayoutParam
virtual IPublicStreamParam* inflatten
virtual bool checkParameter

函数说明

layoutMode

virtual StreamLayoutMode bytertc::IPublicStreamParam::layoutMode()

设置公共流的布局模式,目前只支持 kLayoutCustomerMode 模式

返回值 公共流的布局模式,参看 StreamLayoutMode

interpolationMode

virtual int bytertc::IPublicStreamParam::interpolationMode()

获取补帧模式

返回值 补帧模式 0: 补最后一帧 1: 补背景图片或者黑帧

backgroundImageUri

virtual const char* bytertc::IPublicStreamParam::backgroundImageUri()

获取背景图片地址

返回值 背景图片的地址

audioParam

virtual PublicStreamAudioParam bytertc::IPublicStreamParam::audioParam()

获取公共流音频参数

返回值 公共流音频参数内容,参看 PublicStreamAudioParam

videoParam

virtual PublicStreamVideoParam bytertc::IPublicStreamParam::videoParam()

获取公共流视频参数

返回值 公共流视频参数内容,参看 PublicStreamVideoParam

layoutRegionByIndex

virtual PublicStreamLayoutRegion bytertc::IPublicStreamParam::layoutRegionByIndex(
    int32_t index)

获取公共流视窗布局信息

传入参数

参数名 类型 说明
index int32_t 视窗对应下标

返回值 公共流视窗布局信息,参看 PublicStreamLayoutRegion

setInterpolationMode

virtual void bytertc::IPublicStreamParam::setInterpolationMode(
    int mode)

设置补帧模式

传入参数

参数名 类型 说明
mode int 补帧模式
0: 补最后一帧
1: 补背景图片或者黑帧

setBackgroundImageUri

virtual void bytertc::IPublicStreamParam::setBackgroundImageUri(
    const char* uri)

设置背景图片的地址

传入参数

参数名 类型 说明
uri const char* 公共流的背景图片的地址

setAudioParam

virtual void bytertc::IPublicStreamParam::setAudioParam(
    const PublicStreamAudioParam&)

设置音频参数

传入参数

参数名 类型 说明
PublicStreamAudioParam const 音频参数,参看 PublicStreamAudioParam

setVideoParam

virtual void bytertc::IPublicStreamParam::setVideoParam(
    const PublicStreamVideoParam&)

设置视频参数

传入参数

参数名 类型 说明
PublicStreamVideoParam const 音频参数,参看 PublicStreamVideoParam

setLayoutParam

virtual void bytertc::IPublicStreamParam::setLayoutParam(
    PublicStreamLayoutRegion regions[],
    int32_t regions_size,
    const char* bg_color,
    StreamLayoutMode mode)

设置公共流布局参数

传入参数

参数名 类型 说明
regions[] PublicStreamLayoutRegion 公共流布局参数,参看 PublicStreamLayoutRegion
regions_size int32_t 公共流视窗数量
bg_color const char* 公共流背景颜色
mode StreamLayoutMode 布局参数,参看 StreamLayoutMode

inflatten

virtual IPublicStreamParam* bytertc::IPublicStreamParam::inflatten(
    const char* json_str)

将输入的 json 格式的字符串转成 ITranscoderParam 结构体

传入参数

参数名 类型 说明
json_str const char* json 格式字符串

返回值 转换后的 ITranscoderParam 结构体

checkParameter

virtual bool bytertc::IPublicStreamParam::checkParameter(
    const char* json_str)

参数校验

传入参数

参数名 类型 说明
json_str const char* 传入参数,json 格式字符串

返回值 检查结果 true: 所有参数都合法 false: 存在不合法参数

ReceiveRange

struct bytertc::ReceiveRange

本地用户能收听到、且具有衰减效果的音频接收范围

Defined in : bytertc_range_audio_interface.h

成员变量

类型 名称
int min
int max

变量说明

min

int bytertc::ReceiveRange::min;

能够接收语音、并且具有衰减效果的最小距离值,该值须 ≥ 0,但 ≤ max。
小于该值的范围内没有范围语音效果,即收听到的音频音量相同。

max

int bytertc::ReceiveRange::max;

能够收听语音的最大距离值,该值须 > 0 且 ≥ min。
当收听者和声源距离处于 [min, max) 之间时,收听到的音量根据距离呈衰减效果。
超出该值范围的音频将无法收听到。

RangeAudioInfo

struct bytertc::RangeAudioInfo

范围语音流信息

Defined in : bytertc_range_audio_interface.h

成员变量

类型 名称
const char* user_id
int factor

变量说明

user_id

const char* bytertc::RangeAudioInfo::user_id;

远端音频发布用户 ID

factor

int bytertc::RangeAudioInfo::factor = 0;

本地用户听到该远端音频发布用户的衰减系数,范围 [0,100],数值为 0 时表示远端用户音频音量为 0。

AttenuationType

enum bytertc::AttenuationType

空间音频音量随距离衰减模式

Defined in : bytertc_range_audio_interface.h

枚举值

类型 值 说明
kAttenuationTypeNone 0 不随距离衰减
kAttenuationTypeLinear 1 线性衰减,音量随距离增大而线性减小
kAttenuationTypeExponential 2 指数型衰减,音量随距离增大进行指数衰减

Orientation

struct bytertc::Orientation

方向朝向信息

Defined in : bytertc_spatial_audio_interface.h

成员变量

类型 名称
float x
float y
float z

变量说明

x

float bytertc::Orientation::x;

x 方向向量

y

float bytertc::Orientation::y;

y 方向向量

z

float bytertc::Orientation::z;

z 方向向量

HumanOrientation

struct bytertc::HumanOrientation

三维朝向信息,三个向量需要两两垂直。参看 Orientation。

Defined in : bytertc_spatial_audio_interface.h

成员变量

类型 名称
Orientation forward
Orientation right
Orientation up

变量说明

forward

Orientation bytertc::HumanOrientation::forward =  { 1, 0, 0 };

正前方朝向,默认值为 {1,0,0},即正前方朝向 x 轴正方向

Orientation bytertc::HumanOrientation::right = { 0, 1, 0 };

正右方朝向,默认值为 {0,1,0},即右手朝向 y 轴正方向

up

Orientation bytertc::HumanOrientation::up = { 0, 0, 1 };

正上方朝向,默认值为 {0,0,1},即头顶朝向 z 轴正方向

TranscoderContentControlType

enum bytertc::TranscoderContentControlType

合流输出内容类型

Defined in : bytertc_transcoder_base_interface.h

枚举值

类型 值 说明
kHasAudioAndVideo 0 输出的混流包含音频和视频
kHasAudioOnly 1 输出的混流只包含音频
kHasVideoOnly 2 输出的混流只包含视频

ITranscoderParamBase

class bytertc::ITranscoderParamBase

合流转码参数

Defined in : bytertc_transcoder_base_interface.h

成员函数

返回 名称
virtual const char* roomID
virtual const char* jsonContent
virtual int32_t layoutRegionsSize
virtual const char* backgroundColor
virtual void setRoomID
virtual void setJsonContent
virtual const char* flatten

函数说明

roomID

virtual const char* bytertc::ITranscoderParamBase::roomID()

获取合流房间 ID

返回值 合流房间 ID

jsonContent

virtual const char* bytertc::ITranscoderParamBase::jsonContent()

获取通过 flatten 方法转换得到的 json 格式内容

返回值 json 格式数据

layoutRegionsSize

virtual int32_t bytertc::ITranscoderParamBase::layoutRegionsSize()

获取合流参数中视窗的数量

返回值 合流参数中视窗的数量

backgroundColor

virtual const char* bytertc::ITranscoderParamBase::backgroundColor()

获取背景颜色

返回值 背景颜色

setRoomID

virtual void bytertc::ITranscoderParamBase::setRoomID(
    const char* room_id)

设置合流房间 ID

传入参数

参数名 类型 说明
room_id const char* 发起合流的用户所在的房间 ID

setJsonContent

virtual void bytertc::ITranscoderParamBase::setJsonContent(
    const char* json_content)

设置 jsonContent
传入通过 flatten 方法转换得到的 json 格式内容

传入参数

参数名 类型 说明
json_content const char* json 格式内容

flatten

virtual const char* bytertc::ITranscoderParamBase::flatten(
    const char* contentType,
    const char* action)

将合流参数转成 json 字符串

传入参数

参数名 类型 说明
contentType const char* 内容属性,表明是合流信令
action const char* 合流状态,可选取值如下:
• started: 开启合流
• layoutChanged: 更新合流布局
• stopped: 停止合流

返回值 转换后的 json 字符串

StreamMixingEvent

enum bytertc::StreamMixingEvent

转推直播事件

Defined in : bytertc_transcoder_define.h

枚举值

类型 值 说明
kStreamMixingStart 1 请求发起转推直播任务
kStreamMixingStartSuccess 2 发起转推直播任务成功
kStreamMixingStartFailed 3 发起转推直播任务失败
kStreamMixingUpdate 4 请求更新转推直播任务配置
kStreamMixingUpdateSuccess 5 成功更新转推直播任务配置
kStreamMixingUpdateFailed 6 更新转推直播任务配置失败
kStreamMixingStop 7 请求结束转推直播任务
kStreamMixingStopSuccess 8 结束转推直播任务成功
kStreamMixingStopFailed 9 结束转推直播任务失败
kStreamMixingChangeMixType 10 更新转推直播任务配置的请求超时
kStreamMixingFirstAudioFrameByClientMix 11 得到客户端合流音频首帧
kStreamMixingFirstVideoFrameByClientMix 12 收到客户端合流视频首帧
kStreamMixingUpdateTimeout 13 更新转推直播任务配置超时
kStreamMixingStartTimeout 14 发起转推直播任务配置超时
kStreamMixingRequestParamError 15 合流布局参数错误
kStreamMixingMixImageEvent 16 合流加图片

StreamMixingType

enum bytertc::StreamMixingType

合流类型

Defined in : bytertc_transcoder_define.h

枚举值

类型 值 说明
kStreamMixingTypeByServer 0 服务端合流
kStreamMixingTypeByClient 1 端云一体合流

TranscoderAudioCodecProfile

enum bytertc::TranscoderAudioCodecProfile

AAC 编码等级

Defined in : bytertc_transcoder_define.h

枚举值

类型 值 说明
kByteAACProfileLC 0 编码等级 AAC-LC
kByteAACProfileHEv1 1 编码等级 HE-AAC v1
kByteAACProfileHEv2 2 编码等级 HE-AAC v2

TranscoderVideoCodecProfile

enum bytertc::TranscoderVideoCodecProfile

视频编码规格

Defined in : bytertc_transcoder_define.h

枚举值

类型 值 说明
kByteH264ProfileBaseline 0 H264 格式基本规格编码
kByteH264ProfileMain 1 H264 格式主流规格编码
kByteH264ProfileHigh 2 H264 格式高规格编码
kByteVC1ProfileBaseline 3 ByteVC1 格式基本规格编码
kByteVC1ProfileMain 4 ByteVC1 格式主流规格编码
kByteVC1ProfileHigh 5 ByteVC1 格式高规格编码

TranscoderRenderMode

enum bytertc::TranscoderRenderMode

视频渲染的缩放模式

Defined in : bytertc_transcoder_define.h

枚举值

类型 值 说明
kRenderHidden 1 视窗填满优先。

视频尺寸等比缩放,直至视窗被填满。当视频尺寸与显示窗口尺寸不一致时,多出的视频将被截掉。
kRenderFit 2 视频帧内容全部显示优先。

视频尺寸等比缩放,优先保证视频内容全部显示。当视频尺寸与显示窗口尺寸不一致时,会把窗口未被填满的区域填充成背景颜色。
kRenderAdaptive 3 视频帧自适应画布。

视频尺寸非等比例缩放,把窗口充满。在此过程中,视频帧的长宽比例可能会发生变化。

TranscoderLayoutRegionType

enum bytertc::TranscoderLayoutRegionType

合流布局区域类型

Defined in : bytertc_transcoder_define.h

枚举值

类型 值 说明
kLayoutRegionTypeVideoStream 0 合流布局区域类型为视频。
kLayoutRegionTypeImage 1 合流布局区域类型为图片。

TranscoderLayoutRegionDataParam

typedef struct bytertc::TranscoderLayoutRegionDataParam

图片合流相关参数

Defined in : bytertc_transcoder_define.h

成员变量

类型 名称
int image_width
int image_height

变量说明

image_width

int bytertc::TranscoderLayoutRegionDataParam::image_width;

原始图片的宽度,单位为 px。

image_height

int bytertc::TranscoderLayoutRegionDataParam::image_height;

原始图片的高度,单位为 px。

DataFrameType

enum bytertc::DataFrameType

数据帧类型

Defined in : bytertc_transcoder_define.h

枚举值

类型 值 说明
kDataFrameTypeSei 0 SEI 视频帧

IDataFrame

typedef struct bytertc::IDataFrame

数据帧

Defined in : bytertc_transcoder_define.h

成员变量

类型 名称
DataFrameType frame_type
uint8_t* u8_data
uint32_t u32_data_size
uint64_t u64_ts_us

变量说明

frame_type

DataFrameType bytertc::IDataFrame::frame_type;

数据帧类型,参看 DataFrameType

u8_data

uint8_t* bytertc::IDataFrame::u8_data;

数据帧数据

u32_data_size

uint32_t bytertc::IDataFrame::u32_data_size;

数据帧数据大小

u64_ts_us

uint64_t bytertc::IDataFrame::u64_ts_us;

数据帧时间戳,单位:微秒

TranscoderLayoutRegion

typedef struct bytertc::TranscoderLayoutRegion

单个图片或视频流在合流中的布局信息。
开启转推直播功能后,在多路图片或视频流合流时,你可以设置其中一路流在合流中的预设布局信息。

Defined in : bytertc_transcoder_define.h

成员变量

类型 名称
const char* region_id
const char* room_id
float x
float y
float width
float height
float alpha
int32_t i32_z_order
bool local_user
bool screen_stream
TranscoderContentControlType content_control
TranscoderRenderMode render_mode
TranscoderLayoutRegionType type
uint8_t* data
TranscoderLayoutRegionDataParam data_param

变量说明

region_id

const char* bytertc::TranscoderLayoutRegion::region_id;

合流用户的 ID。必填。

room_id

const char* bytertc::TranscoderLayoutRegion::room_id;

图片或视频流所在房间的房间 ID。
如果此图片或视频流是通过 startForwardStreamToRooms} 转发到你所在房间的媒体流时,你应将房间 ID 设置为你所在的房间 ID。

x

float bytertc::TranscoderLayoutRegion::x;

用户视频布局相对画布左侧的偏移量,取值的范围为 [0.0, 1.0)

y

float bytertc::TranscoderLayoutRegion::y;

用户视频布局相对画布顶端的偏移量,取值的范围为 [0.0, 1.0)

width

float bytertc::TranscoderLayoutRegion::width;

用户视频宽度相对画布宽度的比例,取值的范围为 (0.0, 1.0]

height

float bytertc::TranscoderLayoutRegion::height;

用户视频高度相对画布高度的比例,取值的范围为 (0.0, 1.0]

alpha

float bytertc::TranscoderLayoutRegion::alpha;

透明度,取值范围 [0,255]

i32_z_order

int32_t bytertc::TranscoderLayoutRegion::i32_z_order;

用户视频布局在画布中的层级,取值范围 [0,100],0 为底层,值越大层级越高

local_user

bool bytertc::TranscoderLayoutRegion::local_user;

是否为本地用户:

screen_stream

bool bytertc::TranscoderLayoutRegion::screen_stream = false;

是否为屏幕流:

content_control

TranscoderContentControlType bytertc::TranscoderLayoutRegion::content_control;

合流内容控制。默认值为 kHasAudioAndVideo,参看 TranscoderContentControlType。

render_mode

TranscoderRenderMode bytertc::TranscoderLayoutRegion::render_mode;

渲染时,视频内容缩放模式,参看 TranscoderRenderMode

type

TranscoderLayoutRegionType bytertc::TranscoderLayoutRegion::type;

合流布局区域类型,参看 TranscoderLayoutRegionType。

data

uint8_t* bytertc::TranscoderLayoutRegion::data;

图片合流布局区域类型对应的数据。类型为图片时传入图片 RGBA 数据,当类型为视频流时传空。

data_param

TranscoderLayoutRegionDataParam bytertc::TranscoderLayoutRegion::data_param;

合流布局区域数据的对应参数。当类型为视频流时传空,类型为图片时传入对应图片的参数,参看 TranscoderLayoutRegionDataParam。

TranscoderAudioParam

typedef struct bytertc::TranscoderAudioParam

音频转码配置参数。

Defined in : bytertc_transcoder_define.h

成员变量

类型 名称
int32_t i32_sample_rate
int32_t i32_channel_num
int32_t i32_bitrate_kbps
TranscoderAudioCodecProfile audio_codec_profile

变量说明

i32_sample_rate

int32_t bytertc::TranscoderAudioParam::i32_sample_rate;

音频采样率,单位 kHz。可取 32Khz、44.1Khz、48Khz,默认值为 48Khz。

i32_channel_num

int32_t bytertc::TranscoderAudioParam::i32_channel_num;

音频声道数。可取 1、2,默认值为 2。

i32_bitrate_kbps

int32_t bytertc::TranscoderAudioParam::i32_bitrate_kbps;

音频码率,单位 Kbps。可取范围 [32Kbps, 192Kbps],默认值为 64Kbps。

audio_codec_profile

TranscoderAudioCodecProfile bytertc::TranscoderAudioParam::audio_codec_profile;

AAC 等级,参看 TranscoderAudioCodecProfile。默认值为 0。

TranscoderVideoParam

typedef struct bytertc::TranscoderVideoParam

合流视频参数

Defined in : bytertc_transcoder_define.h

成员变量

类型 名称
int32_t i32_width
int32_t i32_height
int32_t i32_fps
int32_t i32_gop
int32_t i32_bitrate_kbps
TranscoderVideoCodecProfile video_codec_profile
bool lowLatency

变量说明

i32_width

int32_t bytertc::TranscoderVideoParam::i32_width;

合流视频宽度,单位:px。
仅支持设为偶数,如果设为奇数,后处理会直接拒绝,导致合流失败。

i32_height

int32_t bytertc::TranscoderVideoParam::i32_height;

合流视频高度,单位:px。
仅支持设为偶数,如果设为奇数,后处理会直接拒绝,导致合流失败。

i32_fps

int32_t bytertc::TranscoderVideoParam::i32_fps;

合流的视频帧率。默认值为 15,取值范围是 [1, 60]。值不合法时,自动调整为默认值。

i32_gop

int32_t bytertc::TranscoderVideoParam::i32_gop;

I 帧间隔。默认值为 4,取值范围为 [1, 5],单位为秒。值不合法时,自动调整为默认值。

i32_bitrate_kbps

int32_t bytertc::TranscoderVideoParam::i32_bitrate_kbps;

合流视频码率。单位为 kbps,取值范围为 [1,10000],默认值为自适应。值不合法时,自动调整为默认值。

video_codec_profile

TranscoderVideoCodecProfile bytertc::TranscoderVideoParam::video_codec_profile;

视频编码规格,参看 TranscoderVideoCodecProfile

lowLatency

bool bytertc::TranscoderVideoParam::lowLatency;

是否使用低延时特性:

ITranscoderParam

class bytertc::ITranscoderParam

转推直播配置参数

Defined in : bytertc_transcoder_define.h

成员函数

返回 名称
virtual StreamMixingType expectedMixingType
virtual const char* userID
virtual const char* uri
virtual const char* appData
virtual TranscoderAudioParam audioParam
virtual TranscoderVideoParam videoParam
virtual TranscoderLayoutRegion layoutRegionByIndex
virtual void setExpectedMixingType
virtual void setUserID
virtual void setUri
virtual void setAudioParam
virtual void setVideoParam
virtual void setLayoutParam
virtual ITranscoderParam* inflatten
virtual ITranscoderParam* defaultTranscoding

函数说明

expectedMixingType

virtual StreamMixingType bytertc::ITranscoderParam::expectedMixingType()

获取合流类型

返回值 合流类型,参看 StreamMixingType

userID

virtual const char* bytertc::ITranscoderParam::userID()

获取合流用户 ID

返回值 合流用户 ID

uri

virtual const char* bytertc::ITranscoderParam::uri()

获取推流地址

返回值 推流地址

appData

virtual const char* bytertc::ITranscoderParam::appData()

获取 SEI 信息

返回值 SEI 信息

audioParam

virtual TranscoderAudioParam bytertc::ITranscoderParam::audioParam()

获取合流音频参数

返回值 合流音频参数内容,参看 TranscoderAudioParam

videoParam

virtual TranscoderVideoParam bytertc::ITranscoderParam::videoParam()

获取合流视频参数

返回值 合流视频参数内容,参看 TranscoderVideoParam

layoutRegionByIndex

virtual TranscoderLayoutRegion bytertc::ITranscoderParam::layoutRegionByIndex(
    int32_t index)

获取合流视窗布局信息

传入参数

参数名 类型 说明
index int32_t 视窗对应下标

返回值 合流视窗布局信息,参看 TranscoderLayoutRegion

setExpectedMixingType

virtual void bytertc::ITranscoderParam::setExpectedMixingType(
    StreamMixingType expected_mix_type)

设置合流类型

传入参数

参数名 类型 说明
expected_mix_type StreamMixingType 合流类型,参看 StreamMixingType

setUserID

virtual void bytertc::ITranscoderParam::setUserID(
    const char* user_id)

设置合流用户 ID

传入参数

参数名 类型 说明
user_id const char* 发起合流的用户的 ID

setUri

virtual void bytertc::ITranscoderParam::setUri(
    const char* uri)

设置推流地址

传入参数

参数名 类型 说明
uri const char* 推流地址

setAudioParam

virtual void bytertc::ITranscoderParam::setAudioParam(
    const TranscoderAudioParam&)

设置音频参数

传入参数

参数名 类型 说明
TranscoderAudioParam const 音频参数,参看 TranscoderAudioParam

setVideoParam

virtual void bytertc::ITranscoderParam::setVideoParam(
    const TranscoderVideoParam&)

设置视频参数

传入参数

参数名 类型 说明
TranscoderVideoParam const 视频参数,参看 TranscoderVideoParam

setLayoutParam

virtual void bytertc::ITranscoderParam::setLayoutParam(
    TranscoderLayoutRegion regions[],
    int32_t regions_size,
    const char* bg_color,
    const char* app_data)

设置合流布局参数

传入参数

参数名 类型 说明
regions[] TranscoderLayoutRegion 合流布局参数,参看 TranscoderLayoutRegion
regions_size int32_t 合流视窗数量
bg_color const char* 合流背景颜色
app_data const char* 用户额外需要传入的数据

inflatten

virtual ITranscoderParam* bytertc::ITranscoderParam::inflatten(
    const char* json_str)

将输入的 json 格式的字符串转成 ITranscoderParam 结构体

传入参数

参数名 类型 说明
json_str const char* json 格式字符串

返回值 转换后的 ITranscoderParam 结构体

defaultTranscoding

virtual ITranscoderParam* bytertc::ITranscoderParam::defaultTranscoding()

获取默认的合流转推参数

返回值 生成的 ITranscoderParam 结构体

RenderMode

enum bytertc::RenderMode

渲染模式

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kRenderModeHidden 1 视窗填满优先。

视频帧等比缩放,直至视窗被视频填满。如果视频帧长宽比例与视窗不同,视频帧的多出部分将无法显示。

缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长大于等于视窗对应边长。
kRenderModeFit 2 视频帧内容全部显示优先。

视频帧等比缩放,直至视频帧能够在视窗上全部显示。如果视频帧长宽比例与视窗不同,视窗上未被视频帧填满区域将被涂黑。

缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长小于等于视窗对应边长。
kRenderModeFill 3 视频帧自适应画布

视频帧非等比缩放,直至画布被填满。在此过程中,视频帧的长宽比例可能会发生变化。

SubscribeMediaType

enum bytertc::SubscribeMediaType

订阅媒体的类型

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kRTCSubscribeMediaTypeNone 0 既不订阅音频,也不订阅视频
kRTCSubscribeMediaTypeAudioOnly 1 只订阅音频,不订阅视频
kRTCSubscribeMediaTypeVideoOnly 2 只订阅视频,不订阅音频
kRTCSubscribeMediaTypeVideoAndAudio 3 同时订阅音频和视频

PauseResumeControlMediaType

enum bytertc::PauseResumeControlMediaType

暂停/恢复接收远端的媒体流类型。

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kRTCPauseResumeControlMediaTypeAudio 0 只控制音频,不影响视频
kRTCPauseResumeControlMediaTypeVideo 1 只控制视频,不影响音频
kRTCPauseResumeControlMediaTypeVideoAndAudio = 2 2 同时控制音频和视频

SVCLayer

enum bytertc::SVCLayer

时域分层定义

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kSVCLayerDefault 0 不指定分层(默认值)
kSVCLayerBase 1 T0层
kSVCLayerMain 2 T0+T1层
kSVCLayerHigh 3 T0+T1+T2层

RemoteStreamSwitch

struct bytertc::RemoteStreamSwitch

流切换信息。本地用户订阅的远端流触发回退策略时的流切换信息。

Defined in : bytertc_video_defines.h

成员变量

类型 名称
const char* uid
bool is_screen
int before_video_index
int after_video_index
bool before_enable
bool after_enable
FallbackOrRecoverReason reason

变量说明

uid

const char* bytertc::RemoteStreamSwitch::uid;

订阅的音视频流的发布者的用户 ID。

is_screen

bool bytertc::RemoteStreamSwitch::is_screen;

是否是屏幕流。

before_video_index

int bytertc::RemoteStreamSwitch::before_video_index;

流切换前本地用户订阅的视频流的分辨率对应的索引。

after_video_index

int bytertc::RemoteStreamSwitch::after_video_index;

流切换后本地用户订阅的视频流的分辨率对应的索引。

before_enable

bool bytertc::RemoteStreamSwitch::before_enable;

流切换前是否有视频流。

after_enable

bool bytertc::RemoteStreamSwitch::after_enable;

流切换后是否有视频流。

reason

FallbackOrRecoverReason bytertc::RemoteStreamSwitch::reason;

触发流回退的原因,详见类型 FallbackOrRecoverReason 。

TransCodingError

enum bytertc::TransCodingError

直播推流转码功能错误码。

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kTransCodingErrorOK 0 推流成功。
kTransCodingErrorInvalidArgument 1 推流参数错误。
kTransCodingErrorSubscribe 2 和 RTC 服务端建立连接失败。会自动重连
kTransCodingErrorProcessing 3 合流服务中间过程存在错误,建议重试。
kTransCodingErrorPublish 4 推流失败,可以等待服务端重新推流。

MediaStreamInfo

struct bytertc::MediaStreamInfo

流属性。

Defined in : bytertc_video_defines.h

成员变量

类型 名称
const char* user_id
bool is_screen
bool has_video
bool has_audio
VideoSolutionDescription* profiles
int profile_count
VideoSolutionDescription max_profile

变量说明

user_id

const char* bytertc::MediaStreamInfo::user_id;

发布此流的用户 ID 。

is_screen

bool bytertc::MediaStreamInfo::is_screen;

此流是否为共享屏幕流。

has_video

bool bytertc::MediaStreamInfo::has_video;

此流是否包括视频流。

has_audio

bool bytertc::MediaStreamInfo::has_audio;

流是否包括音频流。

profiles

VideoSolutionDescription* bytertc::MediaStreamInfo::profiles;

视频流的属性。
当远端用户调用 setVideoEncoderConfig 方法发布多个配置的视频流时,此处会包含该用户发布的所有视频流的属性信息。 参看 VideoSolutionDescription。

profile_count

int bytertc::MediaStreamInfo::profile_count;

不同配置流的个数。
当远端用户调用 setVideoEncoderConfig 方法发布多个配置的视频流时,此处会包含该用户发布的视频流的数目。

max_profile

VideoSolutionDescription bytertc::MediaStreamInfo::max_profile;

最大视频流的属性。
since 336版本 当远端用户开启带通道划分的大小流时,回调最大视频流属性信息。用户可以使用新的订阅方式,订阅任意不超过该分辨率的流。 最终接收到的流,会受房间内其他用户的订阅行为的影响,综合确定一个最接近用户请求的分辨率的流。

SubscribeVideoConfig

struct bytertc::SubscribeVideoConfig

视频订阅配置信息

Defined in : bytertc_video_defines.h

成员变量

类型 名称
int video_index
int priority

变量说明

video_index

int bytertc::SubscribeVideoConfig::video_index = 0;

订阅的视频流分辨率下标。
当远端用户通过调用 setVideoEncoderConfig 方法启动发布多路不同分辨率的视频流时,本地用户需通过此参数指定希望订阅的流。
默认值为 0,即订阅第一路流。
如果不想更改之前的设置,可以输入 -1。

priority

int bytertc::SubscribeVideoConfig::priority = 0;

远端用户优先级,参看 RemoteUserPriority,默认值为 0。

SubscribeConfig

struct bytertc::SubscribeConfig

手动订阅流的配置信息。

Defined in : bytertc_video_defines.h

成员变量

类型 名称
bool is_screen
bool sub_video
bool sub_audio
int video_index
int priority
int svc_layer
int framerate
int sub_width
int sub_height

变量说明

is_screen

bool bytertc::SubscribeConfig::is_screen = false;

是否是屏幕流(默认为否)。

sub_video

bool bytertc::SubscribeConfig::sub_video;

是否订阅视频。

sub_audio

bool bytertc::SubscribeConfig::sub_audio;

是否订阅音频。

video_index

int bytertc::SubscribeConfig::video_index;

订阅的视频流分辨率下标。
用户可以通过调用 setVideoEncoderConfig 方法在一路流中发布多个不同分辨率的视频。因此订阅流时,需要指定订阅的具体分辨率。此参数即用于指定需订阅的分辨率的下标,默认值为 0 。

priority

int bytertc::SubscribeConfig::priority = 0;

远端用户的需求优先级,参看 RemoteUserPriority,默认值为 0 。
当开启了订阅流回退选项功能(详见 setSubscribeFallbackOption 方法),弱网或性能不足时会优先保证收到的高优先级用户的流的质量。

svc_layer

int bytertc::SubscribeConfig::svc_layer = 0;

远端用户的时域分层,参看 SVCLayer,默认值为 0 。
仅码流支持SVC特性时可以生效。

framerate

int bytertc::SubscribeConfig::framerate = 0;

期望订阅的最高帧率,单位:fps,默认值为 0,设为大于 0 的值时开始生效。
当发布端帧率低于设定帧率,或订阅端开启性能回退后下行弱网,则帧率会相应下降。
仅码流支持 SVC 分级编码特性时方可生效。

sub_width

int bytertc::SubscribeConfig::sub_width = 0;

用户通过指定UI对应的最合适的流的宽度,单位:px

sub_height

int bytertc::SubscribeConfig::sub_height = 0;

用户通过指定UI对应的最合适的流的高度,单位:px

VideoStreamType

enum bytertc::VideoStreamType

远端视频类型 目前C++ sdk 只支持 kVideoStreamTypeHigh 类型

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kVideoStreamTypeHigh 0 高分辨率视频流
kVideoStreamTypeLow 1 低分辨率视频

VideoCanvas

struct bytertc::VideoCanvas

视频帧渲染设置。
调用 setLocalVideoCanvas 将视频流绑定到本地视图。

Defined in : bytertc_video_defines.h

成员变量

类型 名称
void* view
int render_mode
uint32_t background_color

变量说明

view

void* bytertc::VideoCanvas::view;

本地视图句柄

render_mode

int bytertc::VideoCanvas::render_mode;

视频渲染模式,参看 RenderMode

background_color

uint32_t bytertc::VideoCanvas::background_color;

用于填充画布空白部分的背景颜色。取值范围是 [0x0000000, 0xFFFFFFFF]。默认值是 0x00000000。其中,透明度设置无效。

view_t

typedef void* bytertc::view_t

Windows 窗口 id, Windows 平台下传 Windows 窗口句柄

Defined in : bytertc_video_defines.h

Rectangle

struct bytertc::Rectangle

矩形区域,用于指定屏幕区域

Defined in : bytertc_video_defines.h

成员变量

类型 名称
int x
int y
int width
int height

变量说明

x

int bytertc::Rectangle::x = 0;

矩形区域左上角的 x 坐标

y

int bytertc::Rectangle::y = 0;

矩形区域左上角的 y 坐标

width

int bytertc::Rectangle::width = 0;

矩形宽度

height

int bytertc::Rectangle::height = 0;

矩形高度

HighlightConfig

struct bytertc::HighlightConfig

屏幕共享时的边框高亮设置

Defined in : bytertc_video_defines.h

成员变量

类型 名称
bool enable_highlight
uint32_t border_color
int border_width

变量说明

enable_highlight

bool bytertc::HighlightConfig::enable_highlight = true;

是否显示高亮边框,默认显示。

border_color

uint32_t bytertc::HighlightConfig::border_color = 0xFF29CCA3;

边框的颜色, 颜色格式为十六进制 ARGB: 0xAARRGGBB

border_width

int bytertc::HighlightConfig::border_width = 4;

边框的宽度,单位:像素

ScreenFilterConfig

struct bytertc::ScreenFilterConfig

抓取屏幕时排除指定窗口,默认不排除任何窗体

Defined in : bytertc_video_defines.h

成员变量

类型 名称
view_t* excluded_window_list
int excluded_window_num

变量说明

excluded_window_list

view_t* bytertc::ScreenFilterConfig::excluded_window_list = nullptr;

抓取屏幕时排除窗口列表。这个参数仅在抓取屏幕时生效。

excluded_window_num

int bytertc::ScreenFilterConfig::excluded_window_num = 0;

排除窗口的数量。

MouseCursorCaptureState

enum bytertc::MouseCursorCaptureState

内部采集屏幕视频流时,是否采集鼠标信息

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kMouseCursorCaptureStateOn 0 采集鼠标信息
kMouseCursorCaptureStateOff 1 不采集鼠标信息

ContentHint

enum bytertc::ContentHint

内部采集屏幕视频流的内容类型。

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kContentHintDetails 0 细节内容。当共享文档、图片时,建议使用该内容类型。默认值。
kContentHintMotion 1 动画内容。当共享视频、游戏时,建议使用该内容类型。

ScreenCaptureParameters

struct bytertc::ScreenCaptureParameters

屏幕共享内部采集参数

Defined in : bytertc_video_defines.h

成员变量

类型 名称
ContentHint content_hint
Rectangle region_rect
MouseCursorCaptureState capture_mouse_cursor
ScreenFilterConfig filter_config
HighlightConfig highlight_config

变量说明

content_hint

ContentHint bytertc::ScreenCaptureParameters::content_hint = kContentHintDetails;

内容类型,参看 ContentHint。

region_rect

Rectangle bytertc::ScreenCaptureParameters::region_rect;

采集区域,参看 Rectangle。

capture_mouse_cursor

MouseCursorCaptureState bytertc::ScreenCaptureParameters::capture_mouse_cursor;

是否采集鼠标状态,参看 MouseCursorCaptureState。

filter_config

ScreenFilterConfig bytertc::ScreenCaptureParameters::filter_config;

屏幕过滤设置,参看 ScreenFilterConfig。

highlight_config

HighlightConfig bytertc::ScreenCaptureParameters::highlight_config;

采集区域的边框高亮设置,参看 HighlightConfig。

DesktopCaptureParameters

struct bytertc::DesktopCaptureParameters

屏幕共享的编码参数配置

Defined in : bytertc_video_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

变量说明

max_width

int bytertc::DesktopCaptureParameters::max_width = 1920;

屏幕采集编码最大宽度

max_height

int bytertc::DesktopCaptureParameters::max_height = 1080;

屏幕采集编码最大高度

frame_rate

int bytertc::DesktopCaptureParameters::frame_rate = 15;

屏幕采集编码帧率, 单位 fps

bitrate

int bytertc::DesktopCaptureParameters::bitrate = -1;

屏幕采集编码码率, -1 为自动码率, SDK 会根据宽高信息选择合适的码率,单位 kbps

capture_mouse_cursor

bool bytertc::DesktopCaptureParameters::capture_mouse_cursor = true;

是否捕获鼠标光标

excluded_window_list

view_t* bytertc::DesktopCaptureParameters::excluded_window_list = nullptr;

抓取屏幕时排除窗口列表。这个参数仅在抓取屏幕时生效。

excluded_window_num

int bytertc::DesktopCaptureParameters::excluded_window_num = 0;

抓取屏幕时排除的窗口数量。

highlight_config

HighlightConfig bytertc::DesktopCaptureParameters::highlight_config;

高亮边框的配置

IVideoSink

class bytertc::IVideoSink

自定义视频渲染器

Defined in : bytertc_video_defines.h

成员函数

返回 名称
virtual bool onFrame
virtual void release

函数说明

onFrame

virtual bool bytertc::IVideoSink::onFrame(
    IVideoFrame* videoFrame)

视频帧回调

传入参数

参数名 类型 说明
videoFrame IVideoFrame* 视频帧结构类,参看 IVideoFrame

返回值 返回值暂未使用

release

virtual void bytertc::IVideoSink::release()

释放渲染器。

注意 通知开发者渲染器即将被废弃。收到该返回通知后即可释放资源。

PixelFormat

enum bytertc::IVideoSink::PixelFormat

视频帧编码格式

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kI420 VideoPixelFormat::kVideoPixelFormatI420 YUV I420 格式
kOriginal VideoPixelFormat::kVideoPixelFormatUnknown 原始视频帧格式

MirrorType

enum bytertc::MirrorType

镜像类型

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kMirrorTypeNone 0 本地预览和编码传输时均无镜像效果
kMirrorTypeRender 1 本地预览时有镜像效果,编码传输时无镜像效果
kMirrorTypeRenderAndEncoder 3 本地预览和编码传输时均有镜像效果

AdjustedMode

enum bytertc::AdjustedMode

弱光适应类型

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kAdjustedModeDisabled 0 关闭弱光适应
kAdjustedModeEnabled 1 开启弱光适应

VideoSourceType

enum bytertc::VideoSourceType

视频输入源类型

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
VideoSourceTypeExternal 0 自定义采集视频源
VideoSourceTypeInternal 1 内部采集视频源
VideoSourceTypeEncodedWithAutoSimulcast 2 自定义编码视频源。

你仅需推送分辨率最大的一路编码后视频流,SDK 将自动转码生成多路小流
VideoSourceTypeEncodedWithoutAutoSimulcast 3 自定义编码视频源。

SDK 不会自动生成多路流,你需要自行生成并推送多路流

VideoFrameInfo

struct bytertc::VideoFrameInfo

视频帧信息

Defined in : bytertc_video_defines.h

成员变量

类型 名称
int width
int height
VideoRotation rotation

变量说明

width

int bytertc::VideoFrameInfo::width = 0;

宽(像素)

height

int bytertc::VideoFrameInfo::height = 0;

高(像素)

rotation

VideoRotation bytertc::VideoFrameInfo::rotation = VideoRotation::kVideoRotation0;

视频帧顺时针旋转角度。参看 VideoRotation。

VideoPreprocessorConfig

struct bytertc::VideoPreprocessorConfig

视频前处理配置参数。

Defined in : bytertc_video_defines.h

成员变量

类型 名称
VideoPixelFormat required_pixel_format

变量说明

required_pixel_format

VideoPixelFormat bytertc::VideoPreprocessorConfig::required_pixel_format = kVideoPixelFormatUnknown;

视频帧像素格式,参看 VideoPixelFormat

VideoRateInfo

struct bytertc::VideoRateInfo

自定义编码流信息

Defined in : bytertc_video_defines.h

成员变量

类型 名称
int fps
int bitrate_kbps

变量说明

fps

int bytertc::VideoRateInfo::fps;

帧率,单位 fps

bitrate_kbps

int bytertc::VideoRateInfo::bitrate_kbps;

码率,单位 kbps

VideoDecoderConfig

enum bytertc::VideoDecoderConfig

视频解码方式

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kVideoDecoderConfigRaw 0 开启 SDK 内部解码,只回调解码后的数据
kVideoDecoderConfigEncode 1 开启自定义解码,只回调解码前数据
kVideoDecoderConfigBoth 2 开启 SDK 内部解码,同时回调解码前和解码后的数据

VideoCaptureConfig

struct bytertc::VideoCaptureConfig

视频采集配置参数。

Defined in : bytertc_video_defines.h

成员变量

类型 名称
CapturePreference capturePreference
int width
int height
int frameRate

变量说明

capturePreference

CapturePreference bytertc::VideoCaptureConfig::capturePreference = CapturePreference::KAuto;

视频采集模式,参看 CapturePreference

width

int bytertc::VideoCaptureConfig::width = 0;

视频采集分辨率的宽度,单位:px。

height

int bytertc::VideoCaptureConfig::height = 0;

视频采集分辨率的高度,单位:px。

frameRate

int bytertc::VideoCaptureConfig::frameRate = 0;

视频采集帧率,单位:fps。

CapturePreference

enum bytertc::VideoCaptureConfig::CapturePreference

视频采集模式

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
KAuto 0 (默认)自动设置采集参数。
SDK在开启采集时根据服务端下发的采集配置结合编码参数设置最佳采集参数。
KManual 1 手动设置采集参数,包括采集分辨率、帧率。
KAutoPerformance 2 采集参数与编码参数一致,即在 setVideoEncoderConfig 中设置的参数。

RecordingType

enum bytertc::RecordingType

本地录制的媒体类型

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kRecordAudioOnly 0 只录制音频
kRecordVideoOnly 1 只录制视频
kRecordVideoAndAudio 2 同时录制音频和视频

RTCVideoDeviceType

enum bytertc::RTCVideoDeviceType

当前视频设备类型

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kRTCVideoDeviceTypeUnknown -1 未知设备类型
kRTCVideoDeviceTypeRenderDevice 0 视频渲染设备类型
kRTCVideoDeviceTypeCaptureDevice 1 视频采集设备类型
kRTCVideoDeviceTypeScreenCaptureDevice 2 屏幕流视频设备

MediaStreamType

enum bytertc::MediaStreamType

媒体流类型

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kMediaStreamTypeAudio 1 << 0 只控制音频
kMediaStreamTypeVideo 1 << 1 只控制视频
kMediaStreamTypeBoth = kMediaStreamTypeAudio kMediaStreamTypeVideo kMediaStreamTypeAudio

FrameRateRatio

enum bytertc::FrameRateRatio

占发布端原始帧率的比例

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kFrameRateRatioOriginal 0 100%
kFrameRateRatioHalf 1 50%
kFrameRateRatioQuarter 2 25%

RemoteVideoConfig

struct bytertc::RemoteVideoConfig

远端视频帧信息

Defined in : bytertc_video_defines.h

成员变量

类型 名称
int framerate
int resolution_width
int resolution_height

变量说明

framerate

int bytertc::RemoteVideoConfig::framerate = 0;

期望订阅的最高帧率,单位:fps,默认值为 0,设为大于 0 的值时开始生效。
当发布端帧率低于设定帧率,或订阅端开启性能回退后下行弱网,则帧率会相应下降。
仅码流支持 SVC 分级编码特性时方可生效。

resolution_width

int bytertc::RemoteVideoConfig::resolution_width = 0;

视频宽度,单位:px

resolution_height

int bytertc::RemoteVideoConfig::resolution_height = 0;

视频高度,单位:px

RTCRoomConfig

struct bytertc::RTCRoomConfig

房间参数配置

Defined in : bytertc_video_defines.h

成员变量

类型 名称
RoomProfileType room_profile_type
bool is_auto_publish
bool is_auto_subscribe_audio
bool is_auto_subscribe_video
RemoteVideoConfig remote_video_config

变量说明

room_profile_type

RoomProfileType bytertc::RTCRoomConfig::room_profile_type = kRoomProfileTypeCommunication;

房间模式,参看 RoomProfileType,默认为 kRoomProfileTypeCommunication,进房后不可更改。

is_auto_publish

bool bytertc::RTCRoomConfig::is_auto_publish = true;

是否自动发布音视频流,默认为自动发布。
若调用 setUserVisibility 将自身可见性设为 false,无论是默认的自动发布流还是手动设置的自动发布流都不会进行发布,你需要将自身可见性设为 true 后方可发布。
多房间场景下,若已在其中一个房间成功设置了自动发布,其他房间的自动发布设置均不会生效。

is_auto_subscribe_audio

bool bytertc::RTCRoomConfig::is_auto_subscribe_audio = true;

是否自动订阅音频流,默认为自动订阅。

is_auto_subscribe_video

bool bytertc::RTCRoomConfig::is_auto_subscribe_video = true;

是否自动订阅主视频流,默认为自动订阅。
屏幕流始终自动订阅,不受该方法影响。

remote_video_config

RemoteVideoConfig bytertc::RTCRoomConfig::remote_video_config;

远端视频流参数,参看 RemoteVideoConfig

ScreenMediaType

enum bytertc::ScreenMediaType

屏幕采集的媒体类型

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kScreenMediaTypeVideoOnly 0 仅采集视频
kScreenMediaTypeAudioOnly 1 仅采集音频
kScreenMediaTypeVideoAndAudio 2 同时采集音频和视频

EffectBeautyMode

enum bytertc::EffectBeautyMode

基础美颜模式

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kEffectBeautyWhite 0 美白
kEffectBeautySmooth 1 磨皮
kEffectBeautySharpen 2 锐化

VideoDeviceInfo

struct bytertc::VideoDeviceInfo

视频设备信息

Defined in : bytertc_video_defines.h

成员变量

类型 名称
char device_id
char device_name
int64_t device_vid
int64_t device_pid
DeviceTransportType transport_type

变量说明

device_id

char bytertc::VideoDeviceInfo::device_id[MAX_DEVICE_ID_LENGTH];

设备 ID

device_name

char bytertc::VideoDeviceInfo::device_name[MAX_DEVICE_ID_LENGTH];

设备名称

device_vid

int64_t bytertc::VideoDeviceInfo::device_vid;

设备的厂商 ID

device_pid

int64_t bytertc::VideoDeviceInfo::device_pid;

设备的产品编码

transport_type

DeviceTransportType bytertc::VideoDeviceInfo::transport_type;

设备的传输方式

ScreenCaptureSourceType

enum bytertc::ScreenCaptureSourceType

屏幕采集对象的类型

Defined in : bytertc_video_defines.h

枚举值

类型 值 说明
kScreenCaptureSourceTypeUnknown 0 类型未知
kScreenCaptureSourceTypeWindow 1 应用程序的窗口
kScreenCaptureSourceTypeScreen 2 桌面

ScreenCaptureSourceInfo

struct bytertc::ScreenCaptureSourceInfo

屏幕共享对象的详细信息

Defined in : bytertc_video_defines.h

成员变量

类型 名称
ScreenCaptureSourceType type
view_t source_id
const char* source_name
const char* application
int pid
bool primaryMonitor
Rectangle region_rect

变量说明

type

ScreenCaptureSourceType bytertc::ScreenCaptureSourceInfo::type = kScreenCaptureSourceTypeUnknown;

屏幕共享对象的类型,参看 ScreenCaptureSourceType

source_id

view_t bytertc::ScreenCaptureSourceInfo::source_id = nullptr;

屏幕共享对象的 ID

source_name

const char* bytertc::ScreenCaptureSourceInfo::source_name = nullptr;

屏幕共享对象的名称
调用 release 时将被释放,请及时转为 string 对象保存

application

const char* bytertc::ScreenCaptureSourceInfo::application = nullptr;

共享的应用窗体所属应用的名称
当共享对象为应用窗体时有效
调用 release 时将被释放,请及时转为 string 对象保存

pid

int bytertc::ScreenCaptureSourceInfo::pid;

共享的应用窗体所属应用进程的 pid
当共享对象为应用窗体时有效

primaryMonitor

bool bytertc::ScreenCaptureSourceInfo::primaryMonitor = false;

共享的屏幕是否为主屏。
当共享对象为屏幕时有效

region_rect

Rectangle bytertc::ScreenCaptureSourceInfo::region_rect;

屏幕共享对象的坐标。多显示器的场景下,屏幕坐标系统以主屏左上角为原点 (0, 0),向右向下扩展。详见 Rectangle。

VideoMetadataBuffer

struct bytertc::VideoMetadataBuffer

视频帧中包含的 metadata 信息

Defined in : bytertc_video_defines.h

成员变量

类型 名称
char* data
int size
int64_t timestamp_us

变量说明

data

char* bytertc::VideoMetadataBuffer::data;

接收或者发送的 metadata

size

int bytertc::VideoMetadataBuffer::size;

接收或者发送的 metadata 数据大小,不能超过 1024

timestamp_us

int64_t bytertc::VideoMetadataBuffer::timestamp_us;

包含 metadata 视频帧的时间戳,单位微秒

VirtualBackgroundSourceType

enum bytertc::VirtualBackgroundSourceType

虚拟背景类型。

Defined in : bytertc_video_effect_interface.h

枚举值

类型 值 说明
kVirtualBackgroundSourceColor 0 使用纯色背景替换视频原有背景。
kVirtualBackgroundSourceImage 1 使用自定义图片背景替换视频原有背景。

VirtualBackgroundSource

struct bytertc::VirtualBackgroundSource

虚拟背景对象。

Defined in : bytertc_video_effect_interface.h

成员变量

类型 名称
VirtualBackgroundSourceType source_type
uint32_t source_color
const char* source_path

变量说明

source_type

VirtualBackgroundSourceType bytertc::VirtualBackgroundSource::source_type;

虚拟背景类型,详见 VirtualBackgroundSourceType 。

source_color

uint32_t bytertc::VirtualBackgroundSource::source_color = 0xFFFFFFFF;

纯色背景使用的颜色。
格式为 0xAARRGGBB 。

source_path

const char* bytertc::VirtualBackgroundSource::source_path = nullptr;

自定义图片背景使用的图片的绝对路径。

注意:

FaceDetectResult

struct bytertc::FaceDetectResult

人脸检测结果

Defined in : bytertc_video_effect_interface.h

成员变量

类型 名称
int detect_result
int face_count
Rectangle rect
int image_width
int image_height

变量说明

detect_result

int bytertc::FaceDetectResult::detect_result = 0;

人脸检测结果

face_count

int bytertc::FaceDetectResult::face_count = 0;

检测到的人脸的数量

rect

Rectangle bytertc::FaceDetectResult::rect[max_face_num];

识别到人脸的矩形框。数组的长度和检测到的人脸数量一致。参看 Rectangle。

image_width

int bytertc::FaceDetectResult::image_width = 0;

原始图片宽度(px)

image_height

int bytertc::FaceDetectResult::image_height = 0;

原始图片高度(px)

VideoPictureType

enum bytertc::VideoPictureType

编码帧类型

Defined in : bytertc_video_frame.h

枚举值

类型 值 说明
kVideoPictureTypeUnknown 0 未知类型
kVideoPictureTypeI 1 I帧,关键帧,编解码不需要参考其他视频帧
kVideoPictureTypeP 2 P帧,向前参考帧,编解码需要参考前一帧视频帧
kVideoPictureTypeB 3 B帧,前后参考帧,编解码需要参考前后两帧视频帧

VideoRotation

enum bytertc::VideoRotation

视频帧旋转角度

Defined in : bytertc_video_frame.h

枚举值

类型 值 说明
kVideoRotation0 0 顺时针旋转 0 度
kVideoRotation90 90 顺时针旋转 90 度
kVideoRotation180 180 顺时针旋转 180 度
kVideoRotation270 = 270 270 顺时针旋转 270 度

VideoStreamScaleMode

enum bytertc::VideoStreamScaleMode

视频帧缩放模式

Defined in : bytertc_video_frame.h

枚举值

类型 值 说明
kVideoStreamScaleModeAuto 0 自动模式,默认值为 FitWithCropping。
kVideoStreamScaleModeStretch 1 对视频帧进行缩放,直至充满和视窗分辨率一致为止。这一过程不保证等比缩放。
kVideoStreamScaleModeFitWithCropping 2 视窗填满优先。

视频帧等比缩放,直至视窗被视频填满。如果视频帧长宽比例与视窗不同,视频帧的多出部分将无法显示。

缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长大于等于视窗对应边长。
kVideoStreamScaleModeFitWithFilling 3 视频帧内容全部显示优先。

视频帧等比缩放,直至视频帧能够在视窗上全部显示。如果视频帧长宽比例与视窗不同,视窗上未被视频帧填满区域将被涂黑。

缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长小于等于视窗对应边长。

VideoCodecMode

enum bytertc::VideoCodecMode

视频编码模式

Defined in : bytertc_video_frame.h

枚举值

类型 值 说明
kCodecModeAuto 0 自动选择
kCodecModeHardware 1 硬编码
kCodecModeSoftware 2 软编码

VideoEncodePreference

enum bytertc::VideoEncodePreference

编码策略偏好

Defined in : bytertc_video_frame.h

枚举值

类型 值 说明
kVideoEncodePreferenceDisabled 0 无偏好
kVideoEncodePreferenceFramerate 1 帧率优先
kVideoEncodePreferenceQuality 2 质量优先
kVideoEncodePreferenceBalance 3 平衡质量与帧率

CameraID

enum bytertc::CameraID

摄像头。

Defined in : bytertc_video_frame.h

枚举值

类型 值 说明
kCameraIDFront 0 移动端前置摄像头,PC端内置摄像头
kCameraIDBack 1 移动端后置摄像头,PC端无定义
kCameraIDExternal 2 外接摄像头
kCameraIDInvalid = 3 3 无效值

VideoSolution

struct bytertc::VideoSolution

视频流参数

Defined in : bytertc_video_frame.h

成员变量

类型 名称
int width
int height
int fps
int max_send_kbps
VideoEncodePreference encode_preference

变量说明

width

int bytertc::VideoSolution::width;

宽(像素)

height

int bytertc::VideoSolution::height;

高(像素)

fps

int bytertc::VideoSolution::fps;

视频帧率

max_send_kbps

int bytertc::VideoSolution::max_send_kbps = SEND_KBPS_AUTO_CALCULATE;

最高编码码率(千比特每秒)
建议使用默认设置。

encode_preference

VideoEncodePreference bytertc::VideoSolution::encode_preference = VideoEncodePreference::kVideoEncodePreferenceFrame/;"

视频编码质量策略,参看 VideoEncodePreference

VideoEncoderConfig

struct bytertc::VideoEncoderConfig

视频参数

Defined in : bytertc_video_frame.h

成员变量

类型 名称
int width
int height
int frameRate
int maxBitrate
VideoEncodePreference encoderPreference

变量说明

width

int bytertc::VideoEncoderConfig::width;

视频宽度,单位:像素

height

int bytertc::VideoEncoderConfig::height;

视频高度,单位:像素

frameRate

int bytertc::VideoEncoderConfig::frameRate;

视频帧率,单位:fps

maxBitrate

int bytertc::VideoEncoderConfig::maxBitrate = SEND_KBPS_AUTO_CALCULATE;

最大编码码率,使用 SDK 内部采集时可选设置,自定义采集时必须设置,单位:kbps。
内部采集模式下默认值为 -1,即适配码率模式,系统将根据输入的分辨率和帧率自动计算适用的码率。
设为 0 则不对视频流进行编码发送。

encoderPreference

VideoEncodePreference bytertc::VideoEncoderConfig::encoderPreference = VideoEncodePreference::kVideoEncodePreferenceFrame/;"

视频编码质量策略,默认质量优先,参看 VideoEncodePreference

VideoSolutionDescription

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

变量说明

width

int bytertc::VideoSolutionDescription::width;

宽(像素)
默认值为 1920
为 0 时,保持源的宽。

height

int bytertc::VideoSolutionDescription::height;

高(像素)
默认值为 1080
为 0 时,保持源的高。

fps

int bytertc::VideoSolutionDescription::fps;

视频帧率(fps),默认为 15 fps

max_send_kbps

int bytertc::VideoSolutionDescription::max_send_kbps;

最大发送速率(千比特每秒)。
默认为 -1,适配码率模式,系统将根据输入的分辨率和帧率自动计算适用的码率

scale_mode

VideoStreamScaleMode bytertc::VideoSolutionDescription::scale_mode = VideoStreamScaleMode::kVideoStreamScaleModeAuto;

缩放模式。参看 VideoStreamScaleMode

codec_name

VideoCodecType bytertc::VideoSolutionDescription::codec_name = VideoCodecType::kVideoCodecTypeUnknown;

视频的编码类型。参看 VideoCodecType

codec_mode

VideoCodecMode bytertc::VideoSolutionDescription::codec_mode = VideoCodecMode::kCodecModeAuto;

视频的编码模式。参看 VideoCodecMode

encode_preference

VideoEncodePreference bytertc::VideoSolutionDescription::encode_preference = VideoEncodePreference::kVideoEncodePreferenceFrame/;"

视频编码质量偏好策略。参看 VideoEncodePreference

VideoPixelFormat

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 编码格式
kVideoPixelFormatTexture2D 0x0DE1 Texture2D格式
kVideoPixelFormatTextureOES 0x8D65 TextureOES格式

VideoContentType

enum bytertc::VideoContentType

视频内容类型

Defined in : bytertc_video_frame.h

枚举值

类型 值 说明
kVideoContentTypeNormalFrame 0 普通视频
kVideoContentTypeBlackFrame 1 黑帧视频

ColorSpace

enum bytertc::ColorSpace

视频YUV格式颜色空间

Defined in : bytertc_video_frame.h

枚举值

类型 值 说明
kColorSpaceUnknown 0
kColorSpaceYCbCrBT601LimitedRange 1 BT.601数字编码标准,颜色空间[16-235]
kColorSpaceYCbCrBT601FullRange 2 BT.601数字编码标准,颜色空间[0-255]
kColorSpaceYCbCrBT709LimitedRange 3 BT.7091数字编码标准,颜色空间[16-235]
kColorSpaceYCbCrBT709FullRange 4 BT.7091数字编码标准,颜色空间[0-255]

VideoFrameType

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 数据格式

ManagedMemory

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

变量说明

data

uint8_t* bytertc::ManagedMemory::data = nullptr;

内存数据地址

size

int bytertc::ManagedMemory::size = 0;

内存空间的大小

user_opaque

void* bytertc::ManagedMemory::user_opaque = nullptr;

用户自定义数据

memory_deleter

int (*bytertc::ManagedMemory::memory_deleter)(uint8_t* data, int size, void* user_opaque) = nullptr;

自定义内存释放方法指针,如果指针不为空,方法会被调用,用来释放内存空间。 函数传入的参数分别是本结构体内 data、size、user_opaque 3个字段。

VideoFrameBuilder

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
void* hwaccel_context
jobject android_hwaccel_context
float tex_matrix
uint32_t texture_id
int ()(struct VideoFrameBuilder builder) memory_deleter

变量说明

data

uint8_t* bytertc::VideoFrameBuilder::data[ByteRTCNumDataPointers] = { 0 };

视频帧数据平面指针数组

linesize

int bytertc::VideoFrameBuilder::linesize[ByteRTCNumDataPointers] = { 0 };

视频帧数据平面行长度

extra_data

uint8_t* bytertc::VideoFrameBuilder::extra_data = nullptr;

SEI 数据地址

extra_data_size

int bytertc::VideoFrameBuilder::extra_data_size = 0;

SEI 数据大小

supplementary_info

uint8_t* bytertc::VideoFrameBuilder::supplementary_info = nullptr;

补充数据地址

supplementary_info_size

int bytertc::VideoFrameBuilder::supplementary_info_size = 0;

补充数据大小

size

int bytertc::VideoFrameBuilder::size = 0;

视频帧内存空间大小

width

int bytertc::VideoFrameBuilder::width = 0;

视频帧宽度

height

int bytertc::VideoFrameBuilder::height = 0;

视频帧高度

rotation

VideoRotation bytertc::VideoFrameBuilder::rotation = kVideoRotation0;

视频旋转角度,参看 VideoRotation

hwaccel_buffer

void* bytertc::VideoFrameBuilder::hwaccel_buffer = nullptr;

硬件加速缓冲区指针

user_opaque

void* bytertc::VideoFrameBuilder::user_opaque = nullptr;

用户私有数据指针

timestamp_us

int64_t bytertc::VideoFrameBuilder::timestamp_us = 0;

视频帧时间戳

hwaccel_context

void* bytertc::VideoFrameBuilder::hwaccel_context = nullptr;

硬件加速Context对象(AKA Opengl Context, Vulkan Context)

android_hwaccel_context

jobject bytertc::VideoFrameBuilder::android_hwaccel_context = nullptr;

硬件加速Context的Java对象(Only for Android, AKA Opengl Context)

tex_matrix

float bytertc::VideoFrameBuilder::tex_matrix[16] = { };

纹理矩阵(仅针对纹理类型的frame生效)

texture_id

uint32_t bytertc::VideoFrameBuilder::texture_id = 0;

纹理ID(仅针对纹理类型的frame生效)

memory_deleter

int (*bytertc::VideoFrameBuilder::memory_deleter)(struct VideoFrameBuilder* builder) = nullptr;

用户定义的视频帧释放回调函数指针,如果指针不为空,方法会被调用用来释放内存空间

IVideoFrame

class bytertc::IVideoFrame

设置视频帧

Defined in : bytertc_video_frame.h

成员函数

返回 名称
virtual VideoFrameType frameType
virtual VideoPixelFormat pixelFormat
virtual VideoContentType videoContentType
virtual int64_t timestampUs
virtual int width
virtual int height
virtual VideoRotation rotation
virtual ColorSpace colorSpace
virtual int numberOfPlanes
virtual uint8_t* getPlaneData
virtual int getPlaneStride
virtual uint8_t* getExtraDataInfo
virtual uint8_t* getSupplementaryInfo
virtual void* getHwaccelBuffer
virtual void* getHwaccelContext
virtual jobject getAndroidHwaccelContext
virtual void getTexMatrix
virtual uint32_t getTextureId
virtual IVideoFrame* shallowCopy
virtual void release
virtual void toI420
virtual CameraID getCameraId

函数说明

frameType

virtual VideoFrameType bytertc::IVideoFrame::frameType() const

获取视频帧类型,参看 VideoFrameType

pixelFormat

virtual VideoPixelFormat bytertc::IVideoFrame::pixelFormat() const

获取视频帧格式,参看 VideoPixelFormat

videoContentType

virtual VideoContentType bytertc::IVideoFrame::videoContentType() const

获取视频内容类型,参看 VideoContentType。

timestampUs

virtual int64_t bytertc::IVideoFrame::timestampUs() const

获取视频帧时间戳,单位:微秒

width

virtual int bytertc::IVideoFrame::width() const

获取视频帧宽度,单位:px

height

virtual int bytertc::IVideoFrame::height() const

获取视频帧高度,单位:px

rotation

virtual VideoRotation bytertc::IVideoFrame::rotation() const

获取视频帧旋转角度,参看 VideoRotation

colorSpace

virtual ColorSpace bytertc::IVideoFrame::colorSpace() const

获取视频帧颜色空间,参看 ColorSpace

numberOfPlanes

virtual int bytertc::IVideoFrame::numberOfPlanes() const

视频帧颜色 plane 数量

注意 yuv 数据存储格式分为打包(packed)存储格式和平面(planar)存储格式,planar 格式中 Y、U、V 分平面存储,packed 格式中 Y、U、V 交叉存储

getPlaneData

virtual uint8_t* bytertc::IVideoFrame::getPlaneData(
    int plane_index)

获取 plane 数据指针

传入参数

参数名 类型 说明
plane_index int plane 数据索引

getPlaneStride

virtual int bytertc::IVideoFrame::getPlaneStride(
    int plane_index)

获取 plane 中数据行的长度

传入参数

参数名 类型 说明
plane_index int plane 数据索引

getExtraDataInfo

virtual uint8_t* bytertc::IVideoFrame::getExtraDataInfo(
    int& size)

获取扩展数据指针

传入参数

参数名 类型 说明
size int& 扩展数据字节数

getSupplementaryInfo

virtual uint8_t* bytertc::IVideoFrame::getSupplementaryInfo(
    int& size)

获取补充数据指针

传入参数

参数名 类型 说明
size int& 补充数据字节数

getHwaccelBuffer

virtual void* bytertc::IVideoFrame::getHwaccelBuffer()

获取本地缓冲区指针

getHwaccelContext

virtual void* bytertc::IVideoFrame::getHwaccelContext()

获取硬件加速Context对象(AKA Opengl Context, Vulkan Context)

getAndroidHwaccelContext

virtual jobject bytertc::IVideoFrame::getAndroidHwaccelContext()

获取硬件加速Context的Java对象(Only for Android, AKA Opengl Context)

返回值 返回JavaLocalRef, 当不再使用时,需要手动执行DeleteLocalRef(env, jobject)方法释放该对象

getTexMatrix

virtual void bytertc::IVideoFrame::getTexMatrix(
    float matrix[16])

获取纹理矩阵(仅针对纹理类型的frame生效)

getTextureId

virtual uint32_t bytertc::IVideoFrame::getTextureId()

获取纹理ID(仅针对纹理类型的frame生效)

shallowCopy

virtual IVideoFrame* bytertc::IVideoFrame::shallowCopy()

浅拷贝视频帧并返回指针

release

virtual void bytertc::IVideoFrame::release()

释放视频帧

toI420

virtual void bytertc::IVideoFrame::toI420()

转换为i420格式的视频帧

getCameraId

virtual CameraID bytertc::IVideoFrame::getCameraId() const

获取视频帧的摄像头信息,参看 CameraID

EncodedVideoFrameBuilder

typedef struct bytertc::EncodedVideoFrameBuilder

视频帧参数

Defined in : bytertc_video_frame.h

成员变量

类型 名称
VideoCodecType codec_type
VideoPictureType picture_type
VideoRotation rotation
uint8_t* data
int size
int width
int height
int64_t timestamp_us
int64_t timestamp_dts_us
int ()(uint8_t data, int size, void* user_opaque) memory_deleter

变量说明

codec_type

VideoCodecType bytertc::EncodedVideoFrameBuilder::codec_type = kVideoCodecTypeUnknown;

视频帧编码格式,参看 VideoCodecType

picture_type

VideoPictureType bytertc::EncodedVideoFrameBuilder::picture_type = kVideoPictureTypeUnknown;

视频帧编码类型,参看 VideoPictureType

rotation

VideoRotation bytertc::EncodedVideoFrameBuilder::rotation = kVideoRotation0;

视频帧旋转角度,参看 VideoRotation

data

uint8_t* bytertc::EncodedVideoFrameBuilder::data = nullptr;

视频帧数据指针

注意: IEncodedVideoFrame 会获取数据的所有权 IEncodedVideoFrame 会获取数据的所有权

size

int bytertc::EncodedVideoFrameBuilder::size = 0;

视频帧数据大小

width

int bytertc::EncodedVideoFrameBuilder::width = 0;

视频帧宽度,单位:px

height

int bytertc::EncodedVideoFrameBuilder::height = 0;

视频帧高度,单位:px

timestamp_us

int64_t bytertc::EncodedVideoFrameBuilder::timestamp_us = 0;

视频采集时间戳,单位:微秒

timestamp_dts_us

int64_t bytertc::EncodedVideoFrameBuilder::timestamp_dts_us = 0;

视频编码时间戳,单位:微秒

memory_deleter

int (*bytertc::EncodedVideoFrameBuilder::memory_deleter)(uint8_t* data, int size, void* user_opaque) = nullptr;

用户定义的视频帧释放回调函数指针,如果指针不为空,方法会被调用用来释放内存空间

IEncodedVideoFrame

class bytertc::IEncodedVideoFrame

视频帧信息

Defined in : bytertc_video_frame.h

静态函数

返回 名称
static IEncodedVideoFrame* buildEncodedVideoFrame

成员函数

返回 名称
virtual VideoCodecType codecType
virtual int64_t timestampUs
virtual int64_t timestampDtsUs
virtual int width
virtual int height
virtual VideoPictureType pictureType
virtual VideoRotation rotation
virtual uint8_t* data
virtual int dataSize
virtual IEncodedVideoFrame* shallowCopy
virtual void release

函数说明

buildEncodedVideoFrame

static IEncodedVideoFrame* bytertc::IEncodedVideoFrame::buildEncodedVideoFrame(
    const EncodedVideoFrameBuilder& builder)

根据视频帧参数创建视频帧并返回指针

传入参数

参数名 类型 说明
builder const EncodedVideoFrameBuilder& 视频帧参数,参看 EncodedVideoFrameBuilder

返回值 IEncodedVideoFrame 创建的视频帧的指针

codecType

virtual VideoCodecType bytertc::IEncodedVideoFrame::codecType() const

获取视频编码类型

返回值 视频编码类型,参看 VideoCodecType

timestampUs

virtual int64_t bytertc::IEncodedVideoFrame::timestampUs() const

获取视频采集时间戳

返回值 视频采集时间戳,单位:微秒

timestampDtsUs

virtual int64_t bytertc::IEncodedVideoFrame::timestampDtsUs() const

获取视频编码时间戳

返回值 视频编码时间戳,单位:微秒

width

virtual int bytertc::IEncodedVideoFrame::width() const

获取视频帧宽度

返回值 视频帧宽度,单位:px

height

virtual int bytertc::IEncodedVideoFrame::height() const

获取视频帧高度

返回值 视频帧高度,单位:px

pictureType

virtual VideoPictureType bytertc::IEncodedVideoFrame::pictureType() const

获取视频编码帧类型

返回值 视频编码帧类型,参看 VideoPictureType

rotation

virtual VideoRotation bytertc::IEncodedVideoFrame::rotation() const

获取视频帧旋转角度

返回值 视频帧旋转角度,参看 VideoRotation

data

virtual uint8_t* bytertc::IEncodedVideoFrame::data() const

获取视频帧数据指针地址

返回值 视频帧数据指针地址

dataSize

virtual int bytertc::IEncodedVideoFrame::dataSize() const

获取视频帧数据大小

返回值 视频帧数据大小

shallowCopy

virtual IEncodedVideoFrame* bytertc::IEncodedVideoFrame::shallowCopy() const

浅拷贝视频帧并返回指针

release

virtual void bytertc::IEncodedVideoFrame::release()

释放视频帧

P2PRole

enum streamingrtc::P2PRole

串流引擎角色

Defined in : streaming_common_defines.h

枚举值

类型 值 说明
kP2PRoleClient 0 客户端
kP2PRoleServer 1 服务端

EngineConfig

struct streamingrtc::EngineConfig

串流引擎配置
客户端和服务端的端口范围含义说明如下:
服务端:引擎启动后开始监听端口 server_port_min 至 server_port_max 中的首个可用端口,等待客户端连接
客户端:引擎启动后开始不断尝试连接服务端,IP 地址为 server_ip ,端口号为 server_port_min 至 server_port_max

Defined in : streaming_common_defines.h

成员变量

类型 名称
const char* app_id
P2PRole role
const char* server_ip
int server_port_min
int server_port_max

变量说明

app_id

const char* streamingrtc::EngineConfig::app_id = nullptr;

每个应用的唯一标识符。不同的 AppId 生成的实例进行音视频通话完全独立,无法互通。

role

P2PRole streamingrtc::EngineConfig::role = kP2PRoleClient;

串流引擎角色, 参看 P2PRole

server_ip

const char* streamingrtc::EngineConfig::server_ip = nullptr;

服务端所在的 IP 地址,role = kP2PRoleClient 时需要设置

server_port_min

int streamingrtc::EngineConfig::server_port_min = 50000;

最小端口号

server_port_max

int streamingrtc::EngineConfig::server_port_max = 50004;

最大端口号

StreamIndex

enum streamingrtc::StreamIndex

流的序号,用于区分同一用户发出的多路流。例如 3D 视频流中的左/右眼。又如,屏幕流和摄像头采集流

Defined in : streaming_common_defines.h

枚举值

类型 值 说明
kStreamIndexIndex0 0 流序号 0
kStreamIndexIndex1 1 流序号 1