enum bytertc::AudioSampleRate
cpp音频采样率,单位为 Hz。
| 类型 | 说明 |
|---|---|
| kAudioSampleRateAuto | 默认设置。48000Hz。 |
| kAudioSampleRate8000 | 8000Hz |
| kAudioSampleRate16000 | 16000Hz |
| kAudioSampleRate32000 | 32000Hz |
| kAudioSampleRate44100 | 44100Hz |
| kAudioSampleRate48000 | 48000Hz |
enum bytertc::AudioChannel
cpp音频声道。
| 类型 | 说明 |
|---|---|
| kAudioChannelAuto | 默认设置。 |
| kAudioChannelMono | 单声道 |
| kAudioChannelStereo | 双声道 |
struct bytertc::AudioFormat
cpp音频格式
| 类型 | 名称 |
|---|---|
| AudioSampleRate | sample_rate |
| AudioChannel | channel |
| int | samples_per_call |
AudioSampleRate bytertc::AudioFormat::sample_rate = kAudioSampleRateAuto;cpp
音频采样率,详见 AudioSampleRate
AudioChannel bytertc::AudioFormat::channel = kAudioChannelAuto;cpp
音频声道,详见 AudioChannel
int bytertc::AudioFormat::samples_per_call = 0;
cpp单次回调的音频帧中包含的采样点数。默认值为 0,此时,采样点数取最小值。
最小值为回调间隔是 0.01s 时的值,即 sampleRate 最大值是 2048`。超出取值范围时,采样点数取默认值。
该参数仅在设置读写回调时生效,调用 enableAudioFrameCallback 开启只读模式回调时设置该参数不生效。
enum bytertc::AudioProcessorMethod
cpp返回给音频处理器的音频类型。
| 类型 | 说明 |
|---|---|
| kAudioFrameProcessorRecord | 本地采集的音频。 |
| kAudioFrameProcessorPlayback | 远端音频流的混音音频。 |
| kAudioFrameProcessorRemoteUser | 各个远端音频流。 |
enum bytertc::RTCAudioDeviceType
cpp音频设备类型
| 类型 | 说明 |
|---|---|
| kRTCAudioDeviceTypeUnknown | 未知设备类型 |
| kRTCAudioDeviceTypeRenderDevice | 音频渲染设备 |
| kRTCAudioDeviceTypeCaptureDevice | 音频采集设备 |
| kRTCAudioDeviceTypeScreenCaptureDevice | 屏幕流音频设备 |
enum bytertc::AudioRoute
cpp音频播放设备
| 类型 | 说明 |
|---|---|
| kAudioRouteDefault | 默认设备 |
| kAudioRouteHeadset | 有线耳机 |
| kAudioRouteEarpiece | 听筒 |
| kAudioRouteSpeakerphone | 扬声器 |
| kAudioRouteHeadsetBluetooth | 蓝牙耳机 |
| kAudioRouteHeadsetUSB | USB设备 |
enum bytertc::AudioPlaybackDevice
cpp音频播放设备
| 类型 | 说明 |
|---|---|
| kAudioPlaybackDeviceHeadset | 有线耳机 |
| kAudioPlaybackDeviceEarpiece | 听筒 |
| kAudioPlaybackDeviceSpeakerphone | 扬声器 |
| kAudioPlaybackDeviceHeadsetBluetooth | 蓝牙耳机 |
| kAudioPlaybackDeviceHeadsetUSB | USB设备 |
enum bytertc::AudioScenarioType
cpp音频场景类型。
选择音频场景后,RTC 会自动根据客户端音频采集播放设备和采集播放状态,适用通话音量/媒体音量。
如果预设的音频场景类型无法满足你的业务需要,请联系技术支持人员进行定制。
| 类型 | 说明 | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| kAudioScenarioTypeMusic | 音乐场景。默认为此场景。 此场景适用于对音乐表现力有要求的场景。如音乐直播等。 音频采集播放设备和采集播放状态,到音量类型的映射如下:
| ||||||||||||||||
| kAudioScenarioTypeHighQualityCommunication | 高质量通话场景。 此场景适用于对音乐表现力有要求,但又希望能够使用蓝牙耳机上自带的麦克风进行音频采集的场景。 此场景下,更倾向于使用媒体音量。由此,可能引起开关麦时音量突变。如不希望有此突变,请使用 kAudioScenarioTypeHighQualityChat。此场景可以兼顾外放/使用蓝牙耳机时的音频体验;并尽可能避免使用蓝牙耳机时音量类型切换导致的听感突变。 音频采集播放设备和采集播放状态,到音量类型的映射如下:
| ||||||||||||||||
| kAudioScenarioTypeCommunication | 纯通话音量场景。 此场景下,无论客户端音频采集播放设备和采集播放状态,全程使用通话音量。 适用于需要频繁上下麦的通话或会议场景。 此场景可以保持统一的音频模式,不会有音量突变的听感; 最大程度上的消除回声,使通话清晰度达到最优; 使用蓝牙耳机时,能够使用蓝牙耳机上自带的麦克风进行音频采集。 但是,使用媒体音量进行播放的其他音频的音量会被压低,且音质会变差。 | ||||||||||||||||
| kAudioScenarioTypeMedia | 纯媒体场景。一般不建议使用。 此场景下,无论客户端音频采集播放设备和采集播放状态,全程使用媒体音量。 外放通话时,可能出现回声和啸叫,请联系技术支持人员。 | ||||||||||||||||
| kAudioScenarioTypeGameStreaming | 游戏媒体场景。仅适合游戏场景。 若外放通话且无游戏音效消除优化时音质不理想,请联系技术支持人员。 音频采集播放设备和采集播放状态,到音量类型的映射如下:
| ||||||||||||||||
| kAudioScenarioTypeHighQualityChat | 高质量畅聊场景。 此场景和 kAudioScenarioTypeHighQualityCommunication 高度类似,唯一的差异在于:此场景下,在使用设备自带的麦克风和扬声器/听筒进行通话时,开关麦始终采用通话音量,不会引起音量类型突变。 音频采集播放设备和采集播放状态,到音量类型的映射如下:
|
enum bytertc::VoiceChangerType
cpp变声特效类型。如需更多类型,联系技术支持。
| 类型 | 说明 |
|---|---|
| kVoiceChangerTypeOriginal | 原声,不含特效 |
| kVoiceChangerTypeGiant | 巨人 |
| kVoiceChangerTypeChipmunk | 花栗鼠 |
| kVoiceChangerTypeMinionst | 小黄人 |
| kVoiceChangerTypeVibrato | 颤音 |
| kVoiceChangerTypeRobot | 机器人 |
enum bytertc::VoiceReverbType
cppPrivate method. 混响特效类型
| 类型 | 说明 |
|---|---|
| kVoiceReverbTypeOriginal | 原声,不含特效 |
| kVoiceReverbTypeEcho | 回声 |
| kVoiceReverbTypeConcert | 演唱会 |
| kVoiceReverbTypeEthereal | 空灵 |
| kVoiceReverbTypeKTV | KTV |
| kVoiceReverbTypeStudio | 录音棚 |
| kVoiceReverbTypeVirtualStereo | 虚拟立体声 |
| kVoiceReverbTypeSpacious | 空旷 |
| kVoiceReverbType3D | 3D人声 |
enum bytertc::VoiceEqualizationBandFrequency
cpp音频均衡效果。
| 类型 | 说明 |
|---|---|
| kVoiceEqualizationBandFrequency31 | 中心频率为 31Hz 的频带。 |
| kVoiceEqualizationBandFrequency62 | 中心频率为 62Hz 的频带。 |
| kVoiceEqualizationBandFrequency125 | 中心频率为 125Hz 的频带。 |
| kVoiceEqualizationBandFrequency250 | 中心频率为 250Hz 的频带。 |
| kVoiceEqualizationBandFrequency500 | 中心频率为 500Hz 的频带。 |
| kVoiceEqualizationBandFrequency1k | 中心频率为 1kHz 的频带。 |
| kVoiceEqualizationBandFrequency2k | 中心频率为 2kHz 的频带。 |
| kVoiceEqualizationBandFrequency4k | 中心频率为 4kHz 的频带。 |
| kVoiceEqualizationBandFrequency8k | 中心频率为 8kHz 的频带。 |
| kVoiceEqualizationBandFrequency16k | 中心频率为 16kHz 的频带。 |
struct bytertc::VoiceEqualizationConfig
cpp语音均衡效果。
| 类型 | 名称 |
|---|---|
| VoiceEqualizationBandFrequency | frequency |
| int | gain |
VoiceEqualizationBandFrequency bytertc::VoiceEqualizationConfig::frequency;cpp
频带。参看 VoiceEqualizationBandFrequency。
int bytertc::VoiceEqualizationConfig::gain;
cpp频带增益(dB)。取值范围是 [-15, 15]。
struct bytertc::VoiceReverbConfig
cpp音频混响效果。
| 类型 | 名称 |
|---|---|
| float | room_size |
| float | decay_time |
| float | damping |
| float | wet_gain |
| float | dry_gain |
| float | pre_delay |
float bytertc::VoiceReverbConfig::room_size = 50.0f;
cpp混响模拟的房间大小,取值范围 [0.0, 100.0]。默认值为 50.0f。房间越大,混响越强。
float bytertc::VoiceReverbConfig::decay_time = 50.0f;
cpp混响的拖尾长度,取值范围 [0.0, 100.0]。默认值为 50.0f。
float bytertc::VoiceReverbConfig::damping = 50.0f;
cpp混响的衰减阻尼大小,取值范围 [0.0, 100.0]。默认值为 50.0f。
float bytertc::VoiceReverbConfig::wet_gain = 0.0f;
cpp早期反射信号强度。取值范围 [-20.0, 10.0],单位为 dB。默认值为 0.0f。
float bytertc::VoiceReverbConfig::dry_gain = 0.0f;
cpp原始信号强度。取值范围 [-20.0, 10.0],单位为 dB。默认值为 0.0f。
float bytertc::VoiceReverbConfig::pre_delay = 0.0f;
cpp早期反射信号的延迟。取值范围 [0.0, 200.0],单位为 ms。默认值为 0.0f。
struct bytertc::AudioVolumeInfo
cpp音频流来源的用户 ID 及对应的音量。
| 类型 | 名称 |
|---|---|
| int | linear_volume |
| int | nonlinear_volume |
| const char* | uid |
int bytertc::AudioVolumeInfo::linear_volume;
cpp线性音量,取值范围是:[0, 255],与原始音量呈线性关系,数值越大,音量越大。
无声为 25 以下(绝对无声为 0,25 以下可视为无声),低音量为 25~76,中音量为 76~204,高音量为 204 以上。
int bytertc::AudioVolumeInfo::nonlinear_volume;
cpp非线性音量,取值范围是:[–127, 0],单位 dB。此音量范围是将原始音量进行对数转化,在中低音量时分辨更为灵敏,适用于 Active Speaker(房间内最活跃用户)的识别。
高音量为 0~–20 dB,中音量为 –20~–40dB,低音量为 –40~–60dB,若低于 –60 dB,则为无声。
const char* bytertc::AudioVolumeInfo::uid;
cpp音频流来源的用户 ID
enum bytertc::AudioMixingState
cpp音频混音文件播放状态。
| 类型 | 说明 |
|---|---|
| kAudioMixingStatePreloaded | 混音已加载 |
| kAudioMixingStatePlaying | 混音正在播放 |
| kAudioMixingStatePaused | 混音暂停 |
| kAudioMixingStateStopped | 混音停止 |
| kAudioMixingStateFailed | 混音播放失败 |
| kAudioMixingStateFinished | 混音播放结束 |
| kAudioMixingStatePCMEnabled | 准备PCM混音 |
| kAudioMixingStatePCMDisabled | PCM混音播放结束 |
enum bytertc::AudioMixingError
cpp混音错误码。
| 类型 | 说明 |
|---|---|
| kAudioMixingErrorOk | 正常 |
| kAudioMixingErrorPreloadFailed | 预加载失败。找不到混音文件或者文件长度超出 20s |
| kAudioMixingErrorStartFailed | 混音开启失败。找不到混音文件或者混音文件打开失败 |
| kAudioMixingErrorIdNotFound | 混音 ID 异常 |
| kAudioMixingErrorSetPositionFailed | 设置混音文件的播放位置出错 |
| kAudioMixingErrorInValidVolume | 音量参数不合法,仅支持设置的音量值为[0, 400] |
| kAudioMixingErrorLoadConflict | 播放的文件与预加载的文件不一致。请先使用 unloadAudioMixing 卸载此前的文件。 |
| kAudioMixingErrorIdTypeNotMatch | 不支持此混音类型。 |
| kAudioMixingErrorInValidPitch | 设置混音文件的音调不合法 |
| kAudioMixingErrorInValidAudioTrack | 设置混音文件的音轨不合法 |
| kAudioMixingErrorIsStarting | 混音文件正在启动中 |
| kAudioMixingErrorInValidPlaybackSpeed | 设置混音文件的播放速度不合法 |
| [deprecated] kAudioMixingErrorCanNotOpen | 混音错误码,失败,已废弃 |
enum bytertc::PlayerState
cpp播放状态。
| 类型 | 说明 |
|---|---|
| kPlayerStateIdle | 播放未启动 |
| kPlayerStatePreloaded | 已加载 |
| kPlayerStateOpened | 已打开 |
| kPlayerStatePlaying | 正在播放 |
| kPlayerStatePaused | 播放已暂停 |
| kPlayerStateStopped | 播放已停止/或结束 |
| kPlayerStateFailed | 播放失败 |
enum bytertc::PlayerError
cpp播放错误码。
| 类型 | 说明 |
|---|---|
| kPlayerErrorOK | 正常 |
| kPlayerErrorFormatNotSupport | 不支持此类型 |
| kPlayerErrorInvalidPath | 无效的播放路径 |
| kPlayerErrorInvalidState | 未满足前序接口调用的要求。请查看具体接口文档。 |
| kPlayerErrorInvalidPosition | 设置播放位置出错。 |
| kPlayerErrorInvalidVolume | 音量参数不合法。 |
| kPlayerErrorInvalidPitch | 音调参数设置不合法。 |
| kPlayerErrorInvalidAudioTrackIndex | 音轨参数设置不合法。 |
| kPlayerErrorInvalidPlaybackSpeed | 播放速度参数设置不合法 |
| kPlayerErrorInvalidEffectId | 音效 ID 异常。还未加载或播放文件,就调用其他 API。 |
enum bytertc::EarMonitorMode
cpp是否开启耳返功能
| 类型 | 说明 |
|---|---|
| kEarMonitorModeOff | 不开启 |
| kEarMonitorModeOn | 开启 |
enum class bytertc::AudioFormatType
cpp音频输入格式
| 类型 | 说明 |
|---|---|
| kRawPCMs16 | |
| kRawPCMs32 |
enum bytertc::BluetoothMode
cpp蓝牙模式, 仅能在媒体模式下被设置
| 类型 | 说明 |
|---|---|
| kBluetoothModeAuto | 自动选择模式 |
| kBluetoothModeA2DP | 使用A2DP模式 |
| kBluetoothModeHFP | HFP 模式 |
enum bytertc::AudioSourceType
cpp音频输入源类型
| 类型 | 说明 |
|---|---|
| kAudioSourceTypeExternal | |
| kAudioSourceTypeInternal |
enum bytertc::AudioRenderType
cpp音频输出类型
| 类型 | 说明 |
|---|---|
| kAudioRenderTypeExternal | |
| kAudioRenderTypeInternal |
enum bytertc::ASRAuthorizationType
cpp语音识别服务鉴权方式,详情请咨询语音识别服务相关人员
| 类型 | 说明 |
|---|---|
| kASRAuthorizationTypeToken | Token 鉴权 |
| kASRAuthorizationTypeSignature | Signature 鉴权 |
struct bytertc::RTCASRConfig
cpp使用自动语音识别服务所需校验信息
| 类型 | 名称 |
|---|---|
| const char* | app_id |
| const char* | user_id |
| ASRAuthorizationType | authorization_type |
| const char* | access_token |
| const char* | secret_key |
| const char* | cluster |
const char* bytertc::RTCASRConfig::app_id = 0;
cpp应用 ID
const char* bytertc::RTCASRConfig::user_id = 0;
cpp用户 ID
ASRAuthorizationType bytertc::RTCASRConfig::authorization_type = kASRAuthorizationTypeToken;cpp
鉴权方式,参看 ASRAuthorizationType
const char* bytertc::RTCASRConfig::access_token = 0;
cpp访问令牌
const char* bytertc::RTCASRConfig::secret_key = 0;
cpp私钥。Signature 鉴权模式下不能为空,token 鉴权模式下为空。参看关于鉴权
const char* bytertc::RTCASRConfig::cluster = 0;
cpp场景信息,参看业务集群
enum bytertc::AudioMixingType
cpp混音播放类型
| 类型 | 说明 |
|---|---|
| kAudioMixingTypePlayout | 仅本地播放 |
| kAudioMixingTypePublish | 仅远端播放 |
| kAudioMixingTypePlayoutAndPublish | 本地和远端同时播放 |
struct bytertc::AudioMixingConfig
cpp混音配置
| 类型 | 名称 |
|---|---|
| AudioMixingType | type |
| int | play_count |
| int | position |
| int64_t | callback_on_progress_interval |
| bool | sync_progress_to_record_frame |
AudioMixingType bytertc::AudioMixingConfig::type;
cpp混音播放类型,详见 AudioMixingType
int bytertc::AudioMixingConfig::play_count;
cpp混音播放次数,
int bytertc::AudioMixingConfig::position;
cpp混音时音频文件播放进度条位置,参数为整数,单位为毫秒
int64_t bytertc::AudioMixingConfig::callback_on_progress_interval = 0;
cpp设置音频文件播放进度回调的时间间隔,参数为大于 0 的 10 的倍数,单位为毫秒,设置后 SDK 将按照设置的值触发 onAudioMixingPlayingProgress 回调,默认不回调。
bool bytertc::AudioMixingConfig::sync_progress_to_record_frame = false;
cpp在采集音频数据时,附带本地混音文件播放进度的时间戳。启用此功能会提升远端人声和音频文件混音播放时的同步效果。
true 时开启此功能,false 时关闭此功能,默认为关闭。enum bytertc::AudioMixingDualMonoMode
cpp混音播放声道类型
| 类型 | 说明 |
|---|---|
| kAudioMixingDualMonoModeAuto | 和音频文件一致 |
| kAudioMixingDualMonoModeL | 只能听到音频文件中左声道的音频 |
| kAudioMixingDualMonoModeR | 只能听到音频文件中右声道的音频 |
| kAudioMixingDualMonoModeMix | 能同时听到音频文件中左右声道的音频 |
struct bytertc::AudioEffectPlayerConfig
cpp混音配置
| 类型 | 名称 |
|---|---|
| AudioMixingType | type |
| int | play_count |
| int | pitch |
| int | start_pos |
AudioMixingType bytertc::AudioEffectPlayerConfig::type = kAudioMixingTypePlayoutAndPublish;
cpp混音播放类型,详见 AudioMixingType
int bytertc::AudioEffectPlayerConfig::play_count = 1;
cpp混音播放次数
int bytertc::AudioEffectPlayerConfig::pitch = 0;
cpp与音乐文件原始音调相比的升高/降低值,取值范围为 [-12,12],默认值为 0。每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调。
int bytertc::AudioEffectPlayerConfig::start_pos = 0;
cpp混音起始位置。默认值为 0,单位为毫秒。
struct bytertc::MediaPlayerConfig
cpp混音配置
| 类型 | 名称 |
|---|---|
| int | play_count |
| int | start_pos |
| int64_t | callback_on_progress_interval |
| bool | sync_progress_to_record_frame |
| bool | auto_play |
| AudioMixingType | type |
int bytertc::MediaPlayerConfig::play_count = 1;
cpp混音播放次数
int bytertc::MediaPlayerConfig::start_pos = 0;
cpp混音起始位置。默认值为 0,单位为毫秒。
int64_t bytertc::MediaPlayerConfig::callback_on_progress_interval = 0;
cpp设置音频文件混音时,收到 onMediaPlayerPlayingProgress 的间隔。单位毫秒。
52,实际间隔为 60 ms。bool bytertc::MediaPlayerConfig::sync_progress_to_record_frame = false;
cpp在采集音频数据时,附带本地混音文件播放进度的时间戳。启用此功能会提升远端人声和音频文件混音播放时的同步效果。
true 时开启此功能,false 时关闭此功能,默认为关闭。bool bytertc::MediaPlayerConfig::auto_play = true;
cpp是否自动播放。如果不自动播放,调用 start 播放音乐文件。
AudioMixingType bytertc::MediaPlayerConfig::type = kAudioMixingTypePlayoutAndPublish;
cpp混音播放类型,详见 AudioMixingType
enum bytertc::AudioReportMode
cpp音量回调模式。
| 类型 | 说明 |
|---|---|
| kAudioReportModeNormal | 默认始终开启音量回调。 |
| kAudioReportModeDisconnect | 可见用户进房并停止推流后,关闭音量回调。 |
| kAudioReportModeReset | 可见用户进房并停止推流后,开启音量回调,回调值重置为0。 |
enum bytertc::AudioPropertiesMode
cpponLocalAudioPropertiesReport 中包含的音频信息的范围。
| 类型 | 说明 |
|---|---|
| kAudioPropertiesModeMicrophone | 仅包含本地麦克风采集的音频数据和本地屏幕音频采集数据。 |
| kAudioPropertiesModeAudioMixing | 包含以下信息: + 本地麦克风采集的音频数据和本地屏幕音频采集数据; + 本地混音的音频数据。 |
struct bytertc::AudioPropertiesConfig
cpp音频属性信息提示的相关配置。
| 类型 | 名称 |
|---|---|
| int | interval |
| bool | enable_spectrum |
| bool | enable_vad |
| AudioReportMode | local_main_report_mode |
| float | smooth |
| AudioPropertiesMode | audio_report_mode |
int bytertc::AudioPropertiesConfig::interval = 0;
cpp信息提示间隔,单位:ms
<= 0: 关闭信息提示 (0,100]: 开启信息提示,不合法的 interval 值,SDK 自动设置为 100ms > 100: 开启信息提示,并将信息提示间隔设置为此值 bool bytertc::AudioPropertiesConfig::enable_spectrum = false;
cpp是否开启音频频谱检测。
bool bytertc::AudioPropertiesConfig::enable_vad = false;
cpp是否开启人声检测 (VAD)。
AudioReportMode bytertc::AudioPropertiesConfig::local_main_report_mode = kAudioReportModeNormal;cpp
音量回调配置模式。详见 AudioReportMode。
float bytertc::AudioPropertiesConfig::smooth = 1.0f;
cpp适用于音频属性信息提示的平滑系数。取值范围是 (0.0, 1.0]。
默认值为 1.0,不开启平滑效果;值越小,提示音量平滑效果越明显。如果要开启平滑效果,可以设置为 0.3。
AudioPropertiesMode bytertc::AudioPropertiesConfig::audio_report_mode = kAudioPropertiesModeMicrophone;cpp
onLocalAudioPropertiesReport 中包含音频数据的范围。参看 AudioPropertiesMode。
默认仅包含本地麦克风采集的音频数据和本地屏幕音频采集数据。
struct bytertc::AudioPropertiesInfo
cpp音频属性信息
| 类型 | 名称 |
|---|---|
| int | linear_volume |
| int | nonlinear_volume |
| float | spectrum |
| int | vad |
int bytertc::AudioPropertiesInfo::linear_volume = 0;
cpp线性音量,与原始音量呈线性关系,数值越大,音量越大。取值范围是:[0,255]。
int bytertc::AudioPropertiesInfo::nonlinear_volume = 0;
cpp非线性音量。由原始音量的对数值转化而来,因此在中低音量时更灵敏,可以用作 Active Speaker(房间内最活跃用户)的识别。取值范围是:[-127,0],单位 dB。
float bytertc::AudioPropertiesInfo::spectrum[SPECTRUM_SIZE] = {0};
cpp频谱数组。默认长度为 257。
int bytertc::AudioPropertiesInfo::vad = -1;
cpp人声检测(VAD)结果
struct bytertc::RemoteAudioPropertiesInfo
cpp远端音频属性信息
| 类型 | 名称 |
|---|---|
| RemoteStreamKey | stream_key |
| AudioPropertiesInfo | audio_properties_info |
RemoteStreamKey bytertc::RemoteAudioPropertiesInfo::stream_key;
cpp远端流信息,详见 RemoteStreamKey
AudioPropertiesInfo bytertc::RemoteAudioPropertiesInfo::audio_properties_info;cpp
音频属性信息,详见 AudioPropertiesInfo
struct bytertc::LocalAudioPropertiesInfo
cpp本地音频属性信息
| 类型 | 名称 |
|---|---|
| StreamIndex | stream_index |
| AudioPropertiesInfo | audio_properties_info |
StreamIndex bytertc::LocalAudioPropertiesInfo::stream_index = StreamIndex::kStreamIndexMain;
cpp流属性,主流或屏幕流。参看 StreamIndex
AudioPropertiesInfo bytertc::LocalAudioPropertiesInfo::audio_properties_info;cpp
音频属性信息,详见 AudioPropertiesInfo
enum bytertc::AudioProfileType
cpp音质档位
| 类型 | 说明 |
|---|---|
| kAudioProfileTypeDefault | 默认音质 服务器下发或客户端已设置的 RoomProfileType 的音质配置 |
| kAudioProfileTypeFluent | 流畅 单声道,采样率为 16 kHz,编码码率为 32 Kbps。 流畅优先、低功耗、低流量消耗,适用于大部分游戏场景,如小队语音、组队语音、国战语音等。 |
| kAudioProfileTypeStandard | 单声道标准音质。 采样率为 24 kHz,编码码率为 48 Kbps。 适用于对音质有一定要求的场景,同时延时、功耗和流量消耗相对适中,适合教育场景和狼人杀等游戏。 |
| kAudioProfileTypeHD | 双声道音乐音质 采样率为 48 kHz,编码码率为 128 kbps。 超高音质,同时延时、功耗和流量消耗相对较大,适用于连麦 PK 等音乐场景。 游戏场景不建议使用。 |
| kAudioProfileTypeStandardStereo | 双声道标准音质。采样率为 48 KHz,编码码率最大值为 80 Kbps |
| kAudioProfileTypeHDMono | 单声道音乐音质。采样率为 48 kHz,编码码率最大值为 64 Kbps |
enum bytertc::AnsMode
cpp降噪模式。降噪算法受调用 joinRoom 时设置的房间模式影响。
| 类型 | 说明 |
|---|---|
| kAnsModeDisable | 禁用音频降噪。 |
| kAnsModeLow | 适用于微弱降噪。 |
| kAnsModeMedium | 适用于抑制中度平稳噪音,如空调声、风扇声。 |
| kAnsModeHigh | 适用于抑制嘈杂非平稳噪音,如键盘声、敲击声、碰撞声、动物叫声。 |
| kAnsModeAutomatic | 启用音频降噪能力。具体的降噪算法由 RTC 决定。 |
struct bytertc::Position
cpp本地用户在房间内的位置坐标,需自行建立空间直角坐标系
| 类型 | 名称 |
|---|---|
| float | x |
| float | y |
| float | z |
float bytertc::Position::x;
cppx 坐标
float bytertc::Position::y;
cppy 坐标
float bytertc::Position::z;
cppz 坐标
struct bytertc::Orientation
cpp方向朝向信息
| 类型 | 名称 |
|---|---|
| float | x |
| float | y |
| float | z |
float bytertc::Orientation::x;
cppx 坐标
float bytertc::Orientation::y;
cppy 坐标
float bytertc::Orientation::z;
cppz 坐标
struct bytertc::HumanOrientation
cpp三维朝向信息,三个向量需要两两垂直。参看 Orientation。
| 类型 | 名称 |
|---|---|
| Orientation | forward |
| Orientation | right |
| Orientation | up |
Orientation bytertc::HumanOrientation::forward = { 1, 0, 0 };
cpp正前方朝向,默认值为 {1,0,0},即正前方朝向 x 轴正方向
Orientation bytertc::HumanOrientation::right = { 0, 1, 0 };
cpp正右方朝向,默认值为 {0,1,0},即右手朝向 y 轴正方向
Orientation bytertc::HumanOrientation::up = { 0, 0, 1 };
cpp正上方朝向,默认值为 {0,0,1},即头顶朝向 z 轴正方向
enum bytertc::AudioAbilityType
cpp音频音量是否可设置
| 类型 | 说明 |
|---|---|
| kAudioAbilityTypeUnknown | 未知 |
| kAudioAbilityAble | 音量可设置 |
| kAudioAbilityUnable | 音量不可设置 |
enum bytertc::AudioAlignmentMode
cpp远端音频流精准对齐模式
| 类型 | 说明 |
|---|---|
| kAudioAlighmentModeOff | 不对齐 |
| kAudioAlighmentModeAudioMixing | 远端音频流都对齐伴奏进度同步播放 |
struct bytertc::AudioDeviceInfo
cpp音频设备信息
| 类型 | 名称 |
|---|---|
| char | device_id |
| char | device_name |
| char | device_short_name |
| char | device_container_id |
| int64_t | device_vid |
| int64_t | device_pid |
| DeviceTransportType | transport_type |
| AudioAbilityType | volume_settable |
| bool | is_system_default |
char bytertc::AudioDeviceInfo::device_id[MAX_DEVICE_ID_LENGTH];
cpp设备 ID
char bytertc::AudioDeviceInfo::device_name[MAX_DEVICE_ID_LENGTH];
cpp设备全称,包含设备类型与设备名称。例如 "扬声器 (XYZ Audio Adapter)"
char bytertc::AudioDeviceInfo::device_short_name[MAX_DEVICE_ID_LENGTH];
cpp设备名称,不含设备类型。例如 "XYZ Audio Adapter"
char bytertc::AudioDeviceInfo::device_container_id[MAX_DEVICE_ID_LENGTH];
cpp设备所连接的声卡 ID,便于选择使用同一声卡的扬声器和麦克风。
int64_t bytertc::AudioDeviceInfo::device_vid;
cpp设备的厂商 ID
int64_t bytertc::AudioDeviceInfo::device_pid;
cpp设备的产品编码
DeviceTransportType bytertc::AudioDeviceInfo::transport_type;cpp
设备的传输方式
AudioAbilityType bytertc::AudioDeviceInfo::volume_settable;cpp
是否支持设置音量
bool bytertc::AudioDeviceInfo::is_system_default;
cpp是否系统默认设备
struct bytertc::StandardPitchInfo
cpp标准音高数据
| 类型 | 名称 |
|---|---|
| int | start_time |
| int | duration |
| int | pitch |
int bytertc::StandardPitchInfo::start_time;
cpp开始时间,单位 ms。
int bytertc::StandardPitchInfo::duration;
cpp持续时间,单位 ms。
int bytertc::StandardPitchInfo::pitch;
cpp音高。
enum bytertc::MulDimSingScoringMode
cppK 歌打分维度。
| 类型 | 说明 |
|---|---|
| kMulDimSingScoringModeNote | 按照音高进行评分。 |
struct bytertc::SingScoringConfig
cppK 歌评分配置。
| 类型 | 名称 |
|---|---|
| AudioSampleRate | sample_rate |
| MulDimSingScoringMode | mode |
| const char* | lyrics_filepath |
| const char* | midi_filepath |
AudioSampleRate bytertc::SingScoringConfig::sample_rate;cpp
音频采样率。仅支持 44100 Hz、48000 Hz。
MulDimSingScoringMode bytertc::SingScoringConfig::mode;cpp
打分维度,详见 MulDimSingScoringMode。
const char* bytertc::SingScoringConfig::lyrics_filepath;
cpp歌词文件路径。打分功能仅支持 KRC 歌词文件。
const char* bytertc::SingScoringConfig::midi_filepath;
cpp歌曲 midi 文件路径。
struct bytertc::SingScoringRealtimeInfo
cpp实时评分信息。
| 类型 | 名称 |
|---|---|
| int | current_position |
| int | user_pitch |
| int | standard_pitch |
| int | sentence_index |
| int | sentence_score |
| int | total_score |
| int | average_score |
int bytertc::SingScoringRealtimeInfo::current_position;
cpp当前播放进度。
int bytertc::SingScoringRealtimeInfo::user_pitch;
cpp演唱者的音高。
int bytertc::SingScoringRealtimeInfo::standard_pitch;
cpp标准音高。
int bytertc::SingScoringRealtimeInfo::sentence_index;
cpp歌词分句索引。
int bytertc::SingScoringRealtimeInfo::sentence_score;
cpp上一句歌词的评分。
int bytertc::SingScoringRealtimeInfo::total_score;
cpp当前演唱的累计分数。
int bytertc::SingScoringRealtimeInfo::average_score;
cpp当前演唱的平均分数。
enum bytertc::AudioFrameSource
cpp音频文件录制内容来源。
| 类型 | 说明 |
|---|---|
| kAudioFrameSourceMic | 本地麦克风采集的音频数据。 |
| kAudioFrameSourcePlayback | 远端所有用户混音后的数据 |
| kAudioFrameSourceMixed | 本地麦克风和所有远端用户音频流的混音后的数据 |
enum bytertc::AudioQuality
cpp音频质量。
| 类型 | 说明 |
|---|---|
| kAudioQualityLow | 低音质 |
| kAudioQualityMedium | 中音质 |
| kAudioQualityHigh | 高音质 |
| kAudioQualityUltraHigh | 超高音质 |
struct bytertc::AudioRecordingConfig
cpp录音配置
| 类型 | 名称 |
|---|---|
| const char* | absolute_file_name |
| AudioFrameSource | frame_source |
| AudioSampleRate | sample_rate |
| AudioChannel | channel |
| AudioQuality | quality |
const char* bytertc::AudioRecordingConfig::absolute_file_name;
cpp录制文件路径。一个有读写权限的绝对路径,包含文件名和文件后缀。
录制文件的格式仅支持 .aac 和 .wav。
AudioFrameSource bytertc::AudioRecordingConfig::frame_source;cpp
录音内容来源,参看 AudioFrameSource。
默认为 kAudioFrameSourceMixed = 2。
AudioSampleRate bytertc::AudioRecordingConfig::sample_rate;cpp
录音采样率。参看 AudioSampleRate。
AudioChannel bytertc::AudioRecordingConfig::channel;cpp
录音音频声道。参看 AudioChannel。
如果录制时设置的的音频声道数与采集时的音频声道数不同:
AudioQuality bytertc::AudioRecordingConfig::quality;cpp
录音音质。仅在录制文件格式为 .aac 时可以设置。参看 AudioQuality。
采样率为 32kHz 时,不同音质录制文件(时长为 10min)的大小分别是:
enum bytertc::AudioRecordingState
cpp录音配置
| 类型 | 说明 |
|---|---|
| kAudioRecordingStateError | 录制异常 |
| kAudioRecordingStateProcessing | 录制进行中 |
| kAudioRecordingStateSuccess | 已结束录制,并且录制文件保存成功。 |
enum bytertc::AudioFrameType
cpp音频帧类型
| 类型 | 说明 |
|---|---|
| kFrameTypePCM16 | PCM 16bit |
typedef struct bytertc::AudioFrameBuilder
cpp音频帧构建类
| 类型 | 名称 |
|---|---|
| AudioSampleRate | sample_rate |
| AudioChannel | channel |
| int64_t | timestamp_us |
| uint8_t* | data |
| int64_t | data_size |
| bool | deep_copy |
AudioSampleRate bytertc::AudioFrameBuilder::sample_rate;cpp
音频采样率
AudioChannel bytertc::AudioFrameBuilder::channel;cpp
音频通道数
int64_t bytertc::AudioFrameBuilder::timestamp_us = 0;
cpp音频帧时间戳,单位:微秒
uint8_t* bytertc::AudioFrameBuilder::data;
cpp音频帧数据
int64_t bytertc::AudioFrameBuilder::data_size = 0;
cpp音频帧数据大小
bool bytertc::AudioFrameBuilder::deep_copy = true;
cpp是否深拷贝
class bytertc::IAudioFrame
cpp音频帧
| 返回 | 名称 |
|---|---|
| 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 |
virtual int64_t bytertc::IAudioFrame::timestampUs() const
cpp获取音频帧时间戳。
返回值
音频帧时间戳,单位:微秒
virtual AudioSampleRate bytertc::IAudioFrame::sampleRate() const
cpp获取音频采样率。参看 AudioSampleRate
返回值
音频采样率,单位:Hz
virtual AudioChannel bytertc::IAudioFrame::channel() const
cpp获取音频通道数。参看 AudioChannel
返回值
音频通道数
注意
双声道的情况下,左右声道的音频帧数据以 LRLRLR 形式排布。
virtual uint8_t* bytertc::IAudioFrame::data() const
cpp获取音频帧内存块地址
返回值
音频帧内存块地址
virtual int bytertc::IAudioFrame::dataSize() const
cpp获取音频帧数据大小
返回值
音频帧数据大小,单位:字节。
virtual AudioFrameType bytertc::IAudioFrame::frameType() const
cpp获取音频帧类型
返回值
音频帧类型,目前只支持 PCM,详见 AudioFrameType
virtual void bytertc::IAudioFrame::release()
cpp释放音频帧
virtual bool bytertc::IAudioFrame::isMutedData() const
cpp获取音频静音标志
返回值
是否静音数据
enum class bytertc::AudioFrameCallbackMethod
cpp音频回调方法
| 类型 | 说明 |
|---|---|
| kAudioFrameCallbackRecord | 本地麦克风录制的音频数据回调 |
| kAudioFrameCallbackPlayback | 订阅的远端所有用户混音后的音频数据回调 |
| kAudioFrameCallbackMixed | 本地麦克风录制和订阅的远端所有用户混音后的音频数据回调 |
| kAudioFrameCallbackRemoteUser | 订阅的远端每个用户混音前的音频数据回调 |
| kAudioFrameCallbackRecordScreen | 本地屏幕录制的音频数据回调 |
enum bytertc::ReturnStatus
cpp方法调用结果。
| 类型 | 说明 |
|---|---|
| kReturnStatusSuccess | 成功。 |
| kReturnStatusFailure | 失败。 |
| kReturnStatusParameterErr | 参数错误。 |
| kReturnStatusWrongState | 接口状态错误。 |
| kReturnStatusHasInRoom | 失败,用户已在房间内。 |
| kReturnStatusHasInLogin | 失败,用户已登录。 |
| kReturnStatusHasInEchoTest | 失败,用户已经在进行通话回路测试中。 |
| kReturnStatusNeitherVideoNorAudio | 失败,音视频均未采集。 |
| kReturnStatusRoomIdInUse | 失败,该 roomId 已被使用。 |
| kReturnStatusScreenNotSupport | 失败,屏幕流不支持。 |
| kReturnStatusNotSupport | 失败,不支持该操作。 |
| kReturnStatusResourceOverflow | 失败,资源已占用。 |
| kReturnStatusVideoNotSupport | 失败,不支持视频接口调用。 |
| kReturnStatusAudioNoFrame | 失败,没有音频帧。 |
| kReturnStatusAudioNotImplemented | 失败,未实现。 |
| kReturnStatusAudioNoPermission | 失败,采集设备无麦克风权限,尝试初始化设备失败。 |
| kReturnStatusAudioDeviceNotExists | 失败,设备不存在。当前没有设备或设备被移除时返回该值。 |
| kReturnStatusAudioDeviceFormatNotSupport | 失败,设备音频格式不支持。 |
| kReturnStatusAudioDeviceNoDevice | 失败,系统无可用设备。 |
| kReturnStatusAudioDeviceCannotUse | 失败,当前设备不可用,需更换设备。 |
| kReturnStatusAudioDeviceInitFailed | 系统错误,设备初始化失败。 |
| kReturnStatusAudioDeviceStartFailed | 系统错误,设备开启失败。 |
| kReturnStatusNativeInvalid | 失败,无效对象。 |
enum bytertc::StreamRemoveReason
cpp房间内远端流被移除的原因。
| 类型 | 说明 |
|---|---|
| kStreamRemoveReasonUnpublish | 远端用户停止发布流。 |
| kStreamRemoveReasonPublishFailed | 远端用户发布流失败。 |
| kStreamRemoveReasonKeepLiveFailed | 保活失败。 |
| kStreamRemoveReasonClientDisconnected | 远端用户断网。 |
| kStreamRemoveReasonRepublish | 远端用户重新发布流。 |
| kStreamRemoveReasonOther | 其他原因。 |
| kStreamRemoveReasonPrivilegeTokenExpired | 远端用户 Token 发布权限过期。 |
enum bytertc::UserVisibilityChangeError
cpp用户可见性状态改变错误码。
| 类型 | 说明 |
|---|---|
| kUserVisibilityChangeErrorOk | 成功。 |
| kUserVisibilityChangeErrorUnknown | 未知错误。 |
| kUserVisibilityChangeErrorTooManyVisibleUser | 房间内可见用户达到上限。 |
enum bytertc::DataMessageSourceType
cpp数据消息来源
| 类型 | 说明 |
|---|---|
| kDataMessageSourceTypeDefault | 通过客户端或服务端的插入的自定义消息。 |
| kDataMessageSourceTypeSystem | 系统数据,包含音量指示信息。 |
enum bytertc::SEICountPerFrame
cppSEI 发送模式。
| 类型 | 说明 |
|---|---|
| kSingleSEIPerFrame | 单发模式。即在 1 帧间隔内多次发送 SEI 数据时,多个 SEI 按队列逐帧发送。 |
| kMultiSEIPerFrame | 多发模式。即在 1 帧间隔内多次发送 SEI 数据时,多个 SEI 随下个视频帧同时发送。 |
struct bytertc::NetworkQualityStats
cpp上行/下行网络质量
| 类型 | 名称 |
|---|---|
| const char* | uid |
| double | fraction_lost |
| int | rtt |
| int | total_bandwidth |
| NetworkQuality | tx_quality |
| NetworkQuality | rx_quality |
const char* bytertc::NetworkQualityStats::uid;
cpp用户 ID
double bytertc::NetworkQualityStats::fraction_lost;
cpp本端的上行/下行的丢包率,范围 [0.0,1.0]
当 uid 为本地用户时,代表发布流的上行丢包率。
当 uid 为远端用户时,代表接收所有订阅流的下行丢包率。
int bytertc::NetworkQualityStats::rtt;
cpp当 uid 为本地用户时有效,客户端到服务端的往返延时(RTT),单位:ms
int bytertc::NetworkQualityStats::total_bandwidth;
cpp本端的音视频 RTP 包 2 秒内的平均传输速率,单位:bps
当 uid 为本地用户时,代表发送速率。
当 uid 为远端用户时,代表所有订阅流的接收速率。
NetworkQuality bytertc::NetworkQualityStats::tx_quality;cpp
上行网络质量评分,详见 NetworkQuality。
NetworkQuality bytertc::NetworkQualityStats::rx_quality;cpp
下行网络质量评分,详见 NetworkQuality。
enum bytertc::RoomProfileType
cpp房间模式
根据所需场景,选择合适的房间模式,应用不同的音视频算法、视频参数和网络配置
调用 setAudioProfile 改变音频参数配置
| 类型 | 说明 |
|---|---|
| kRoomProfileTypeCommunication | 默认场景,通用模式 与 kRoomProfileTypeMeeting = 16 配置相同。你可以联系技术支持更换默认配置参数。 |
| kRoomProfileTypeGame | 游戏语音模式,低功耗、低流量消耗。 低端机在此模式下运行时,进行了额外的性能优化: + 部分低端机型配置编码帧长 40/60 + 部分低端机型关闭软件 3A 音频处理 增强对 iOS 其他屏幕录制进行的兼容性,避免音频录制被 RTC 打断。 |
| kRoomProfileTypeCloudGame | 云游戏模式。 如果你的游戏场景需要低延迟的配置,使用此设置。 此设置下,弱网抗性较差。 |
| kRoomProfileTypeLowLatency | 云渲染模式。超低延时配置。 如果你的应用并非游戏但又对延时要求较高时,选用此模式 该模式下,音视频通话延时会明显降低,但同时弱网抗性、通话音质等均会受到一定影响。 |
| kRoomProfileTypeChat | 适用于 1 vs 1 音视频通话 |
| kRoomProfileTypeChatRoom | 适用于 3 人及以上纯语音通话。 通话中,闭麦时为是媒体模式,上麦后切换为通话模式。 |
| kRoomProfileTypeLwTogether | 实现多端同步播放音视频,适用于 “一起看” 或 “一起听” 场景。 该场景中,使用 RTC 信令同步播放进度,共享的音频内容不通过 RTC 进行传输。 |
| kRoomProfileTypeGameHD | 适用于对音质要求较高的游戏场景,优化音频 3A 策略,只通过媒体模式播放音频 |
| kRoomProfileTypeCoHost | 适用于直播中主播之间连麦的业务场景。 直播时通过 CDN,发起连麦 PK 时使用 RTC。 |
| kRoomProfileTypeInteractivePodcast | 适用于单主播和观众进行音视频互动的直播。通话模式,上下麦不会有模式切换,避免音量突变现象 |
| kRoomProfileTypeKTV | 线上 KTV 场景,音乐音质,低延迟 使用 RTC 传输伴奏音乐,混音后的歌声,适合独唱或单通合唱 |
| kRoomProfileTypeChorus | 适合在线实时合唱场景,高音质,超低延迟。使用本配置前请联系技术支持进行协助完成其他配置。 |
| kRoomProfileTypeVRChat | 适用于 VR 场景。支持最高 192 KHz 音频采样率,可开启球形立体声。 |
| kRoomProfileTypeGameStreaming | 适用于 1 vs 1 游戏串流,支持公网或局域网。 |
| kRoomProfileTypeLanLiveStreaming | 适用于局域网的 1 对多视频直播,最高支持 8K, 60 帧/秒, 100 Mbps 码率 需要在局域网配置私有化部署媒体服务器。 |
| kRoomProfileTypeMeeting | 适用于云端会议中的个人设备 |
| kRoomProfileTypeMeetingRoom | 适用于云端会议中的会议室终端设备,例如 Rooms,投屏盒子等。 |
| kRoomProfileTypeClassroom | 适用于课堂互动,房间内所有成员都可以进行音视频互动 当你的场景中需要同时互动的成员超过 10人时使用此模式 |
| [deprecated] kRoomProfileTypeLiveBroadcasting | 直播模式。 当你对音视频通话的音质和画质要求较高时,应使用此设置。 此设置下,当用户使用蓝牙耳机收听时,蓝牙耳机使用媒体模式。 |
struct bytertc::AudioRoomConfig
cpp多房间参数配置
| 类型 | 名称 |
|---|---|
| RoomProfileType | room_profile_type |
| bool | is_auto_subscribe_audio |
| bool | is_auto_publish_audio |
RoomProfileType bytertc::AudioRoomConfig::room_profile_type = kRoomProfileTypeCommunication;cpp
房间模式,参看 RoomProfileType,默认为 kRoomProfileTypeCommunication,进房后不可更改。
bool bytertc::AudioRoomConfig::is_auto_subscribe_audio = true;
cpp是否自动订阅音频流,默认为自动订阅。
bool bytertc::AudioRoomConfig::is_auto_publish_audio = true;
cpp是否自动发布音视频流,默认为自动发布。
若调用 setUserVisibility 将自身可见性设为 false,无论是默认的自动发布流还是手动设置的自动发布流都不会进行发布,你需要将自身可见性设为 true 后方可发布。
多房间场景下,若已在其中一个房间成功设置了自动发布,其他房间的自动发布设置均不会生效。若每个房间均不做设置,则默认在第一个加入的房间内自动发布流。
enum bytertc::MediaDeviceType
cpp媒体设备类型
| 类型 | 说明 |
|---|---|
| kMediaDeviceTypeAudioUnknown | 未知设备 |
| kMediaDeviceTypeAudioRenderDevice | 音频渲染设备 |
| kMediaDeviceTypeAudioCaptureDevice | 音频采集设备 |
| kMediaDeviceTypeVideoCaptureDevice | 视频采集设备 |
| kMediaDeviceTypeScreenVideoCaptureDevice | 屏幕流视频设备 |
| kMediaDeviceTypeScreenAudioCaptureDevice | 屏幕流音频设备 |
enum bytertc::MediaDeviceState
cpp媒体设备状态。
| 类型 | 说明 |
|---|---|
| kMediaDeviceStateStarted | 设备已开启 |
| kMediaDeviceStateStopped | 设备已停止 |
| kMediaDeviceStateRuntimeError | 设备运行时错误 例如,当媒体设备的预期行为是正常采集,但没有收到采集数据时,将回调该状态。 |
| kMediaDeviceStatePaused | 设备已暂停。包括: + 采集过程中,目标应用窗体最小化到任务栏。 + 开启采集或采集过程中,目标应用窗体被隐藏。 + 采集过程中,目标应用窗体正在被拉伸。 + 采集过程中,目标应用窗体正在被拖动。 |
| kMediaDeviceStateResumed | 设备已恢复 |
| kMediaDeviceStateAdded | 设备已插入 |
| kMediaDeviceStateRemoved | 设备被移除 |
| kMediaDeviceInterruptionBegan | 用户合盖打断了视频通话。如果系统未休眠或关机,将在开盖后自动恢复视频通话。 |
| kMediaDeviceInterruptionEnded | 视频通话已从合盖打断中恢复 |
| kMediaDeviceBecomeSystemDefault | 设备成为系统默认 |
| kMediaDeviceResignSystemDefault | 设备不再是系统默认 |
| kMediaDeviceListUpdated | 设备列表更新通知。请调用 enumerateVideoCaptureDevices 更新设备列表。 |
enum bytertc::MediaDeviceError
cpp媒体设备错误类型
| 类型 | 说明 |
|---|---|
| kMediaDeviceErrorOK | 媒体设备正常 |
| kMediaDeviceErrorDeviceNoPermission | 没有权限启动媒体设备 |
| kMediaDeviceErrorDeviceBusy | 媒体设备已经在使用中 |
| kMediaDeviceErrorDeviceFailure | 媒体设备错误 |
| kMediaDeviceErrorDeviceNotFound | 未找到指定的媒体设备 |
| kMediaDeviceErrorDeviceDisconnected | 媒体设备被移除。 对象为采集屏幕流时,表明窗体被关闭或显示器被移除。 |
| kMediaDeviceErrorDeviceNoCallback | 设备没有数据回调 |
| kMediaDeviceErrorDeviceUNSupportFormat | 设备采样率不支持 |
enum bytertc::MediaDeviceWarning
cpp媒体设备警告
| 类型 | 说明 |
|---|---|
| kMediaDeviceWarningOK | 无警告 |
| kMediaDeviceWarningOperationDenied | 非法设备操作。在使用外部设备时,调用了 SDK 内部设备 API。 |
| kMediaDeviceWarningCaptureSilence | 采集静音。 |
| kMediaDeviceWarningDetectLeakEcho | 通话中出现回声现象。 当 RoomProfileType 为 kRoomProfileTypeMeeting 和kRoomProfileTypeMeetingRoom,且 AEC 关闭时,SDK 自动启动回声检测,如果检测到回声问题,将通过onAudioDeviceWarning 返回本枚举值。 |
enum bytertc::SubscribeState
cpp订阅媒体流状态
| 类型 | 说明 |
|---|---|
| kSubscribeStateSuccess | 订阅/取消订阅流成功 |
| kSubscribeStateFailedNotInRoom | 订阅/取消订阅流失败,本地用户未在房间中 |
| kSubscribeStateFailedStreamNotFound | 订阅/取消订阅流失败,房间内未找到指定的音视频流 |
| kSubscribeStateFailedOverLimit | 超过订阅流数上限 |
enum bytertc::RemoteUserPriority
cpp远端用户优先级,在性能不足需要回退时,会优先回退优先级低的用户的音视频流
| 类型 | 说明 |
|---|---|
| kRemoteUserPriorityLow | 用户优先级为低(默认值) |
| kRemoteUserPriorityMedium | 用户优先级为正常 |
| kRemoteUserPriorityHigh | 用户优先级为高 |
enum bytertc::PublishFallbackOption
cpp发布端音视频流回退选项
| 类型 | 说明 |
|---|---|
| kPublishFallbackOptionDisabled | 上行网络不佳或设备性能不足时,不对音视频流作回退处理。默认设置。 |
| kPublishFallbackOptionSimulcast | 上行网络不佳或设备性能不足时,发布的视频流会从大流到小流依次降级,直到与当前网络性能匹配,具体降级规则参看性能回退文档。 |
enum bytertc::SubscribeFallbackOption
cpp订阅端音视频流回退选项。
| 类型 | 说明 |
|---|---|
| kSubscribeFallbackOptionDisable | 下行网络不佳或设备性能不足时,不对音视频流作回退处理。默认设置。 |
| kSubscribeFallbackOptionVideoStreamLow | 下行网络不佳或设备性能不足时,对视频流做降级处理,具体降级规则参看音视频流回退。 该设置仅对发布端调用 enableSimulcastMode 开启发送多路流功能的情况生效。 |
| kSubscribeFallbackOptionAudioOnly | 下行网络不佳或设备性能不足时,先对视频流做回退处理。当网络状况不满足接收弱流时,则自动取消接收视频,仅接收音频。 该设置仅对发布端调用 enableSimulcastMode 开启发送多路流功能的情况生效。 |
enum bytertc::FallbackOrRecoverReason
cpp远端订阅流发生回退或恢复的原因
| 类型 | 说明 |
|---|---|
| kFallbackOrRecoverReasonUnknown | 其他原因,非带宽和性能原因引起的回退或恢复。默认值 |
| kFallbackOrRecoverReasonSubscribeFallbackByBandwidth | 由带宽不足导致的订阅端音视频流回退。 |
| kFallbackOrRecoverReasonSubscribeFallbackByPerformance | 由性能不足导致的订阅端音视频流回退。 |
| kFallbackOrRecoverReasonSubscribeRecoverByBandwidth | 由带宽恢复导致的订阅端音视频流恢复。 |
| kFallbackOrRecoverReasonSubscribeRecoverByPerformance | 由性能恢复导致的订阅端音视频流恢复。 |
| kFallbackOrRecoverReasonPublishFallbackByBandwidth | 由带宽不足导致的发布端音视频流回退。 |
| kFallbackOrRecoverReasonPublishFallbackByPerformance | 由性能不足导致的发布端音视频流回退。 |
| kFallbackOrRecoverReasonPublishRecoverByBandwidth | 由带宽恢复导致的发布端音视频流恢复。 |
| kFallbackOrRecoverReasonPublishRecoverByPerformance | 由性能恢复导致的发布端音视频流恢复。 |
enum bytertc::PerformanceAlarmReason
cpp性能相关告警的原因
| 类型 | 说明 |
|---|---|
| kPerformanceAlarmReasonBandwidthFallbacked | 网络原因差,造成了发送性能回退。仅在开启发送性能回退时,会收到此原因。 |
| kPerformanceAlarmReasonBandwidthResumed | 网络性能恢复,发送性能回退恢复。仅在开启发送性能回退时,会收到此原因。 |
| kPerformanceAlarmReasonPerformanceFallbacked | 如果未开启发送性能回退,收到此告警时,意味着性能不足; 如果开启了发送性能回退,收到此告警时,意味着性能不足,且已发生发送性能回退。 |
| kPerformanceAlarmReasonPerformanceResumed | 如果未开启发送性能回退,收到此告警时,意味着性能不足已恢复; 如果开启了发送性能回退,收到此告警时,意味着性能不足已恢复,且已发生发送性能回退恢复。 |
enum bytertc::PerformanceAlarmMode
cpp是否开启发布性能回退
| 类型 | 说明 |
|---|---|
| kPerformanceAlarmModeNormal | 未开启发布性能回退 |
| kPerformanceAlarmModeSimulcast | 已开启发布性能回退 |
enum bytertc::LocalAudioStreamState
cpp本地音频流状态。
| 类型 | 说明 |
|---|---|
| kLocalAudioStreamStateStopped | 本地音频默认初始状态。 麦克风停止工作时回调该状态,对应错误码 kLocalAudioStreamErrorOk |
| kLocalAudioStreamStateRecording | 本地音频录制设备启动成功。 采集到音频首帧时回调该状态,对应错误码 kLocalAudioStreamErrorOk |
| kLocalAudioStreamStateEncoding | 本地音频首帧编码成功。 音频首帧编码成功时回调该状态,对应错误码 kLocalAudioStreamErrorOk |
| kLocalAudioStreamStateFailed | 本地音频启动失败,在以下时机回调该状态: + 本地录音设备启动失败,对应错误码 kLocalAudioStreamErrorRecordFailure + 检测到没有录音设备权限,对应错误码 kLocalAudioStreamErrorDeviceNoPermission + 音频编码失败,对应错误码 kLocalAudioStreamErrorEncodeFailure |
| kLocalAudioStreamMute | 本地音频静音成功后回调该状态。 调用 setAudioCaptureDeviceMute 成功后回调,对应错误码 LocalAudioStreamError 中的 kLocalAudioStreamErrorOk 。 |
| kLocalAudioStreamUnmute | 本地音频解除静音成功后回调该状态。 调用 setAudioCaptureDeviceMute 成功后回调,对应错误码 LocalAudioStreamError 中的 kLocalAudioStreamErrorOk 。 |
enum bytertc::LocalAudioStreamError
cpp本地音频流状态改变时的错误码。
| 类型 | 说明 |
|---|---|
| kLocalAudioStreamErrorOk | 本地音频状态正常 |
| kLocalAudioStreamErrorFailure | 本地音频出错原因未知 |
| kLocalAudioStreamErrorDeviceNoPermission | 没有权限启动本地音频录制设备 |
| kLocalAudioStreamErrorRecordFailure | 本地音频录制失败,建议你检查录制设备是否正常工作 |
| kLocalAudioStreamErrorEncodeFailure | 本地音频编码失败 |
| kLocalAudioStreamErrorNoRecordingDevice | 没有可用的音频录制设备 |
enum bytertc::LocalVideoStreamState
cpp本地视频流状态
| 类型 | 说明 |
|---|---|
| kLocalVideoStreamStateStopped | 本地视频采集停止状态 |
| kLocalVideoStreamStateRecording | 本地视频采集设备启动成功 |
| kLocalVideoStreamStateEncoding | 本地视频采集后,首帧编码成功 |
| kLocalVideoStreamStateFailed | 本地视频采集设备启动失败 |
enum bytertc::RemoteAudioState
cpp远端音频流状态。
| 类型 | 说明 |
|---|---|
| kRemoteAudioStateStopped | 不接收远端音频流。 |
| kRemoteAudioStateStarting | 开始接收远端音频流首包。 |
| kRemoteAudioStateDecoding | 远端音频流正在解码,正常播放。 |
| kRemoteAudioStateFrozen | 远端音频流卡顿。 |
enum bytertc::RemoteAudioStateChangeReason
cpp接收远端音频流状态改变的原因。
| 类型 | 说明 |
|---|---|
| kRemoteAudioStateChangeReasonInternal | 内部原因 |
| kRemoteAudioStateChangeReasonNetworkCongestion | 网络阻塞 |
| kRemoteAudioStateChangeReasonNetworkRecovery | 网络恢复正常 |
| kRemoteAudioStateChangeReasonLocalMuted | 本地用户停止接收远端音频流 |
| kRemoteAudioStateChangeReasonLocalUnmuted | 本地用户恢复接收远端音频流 |
| kRemoteAudioStateChangeReasonRemoteMuted | 远端用户停止发送音频流 |
| kRemoteAudioStateChangeReasonRemoteUnmuted | 远端用户恢复发送音频流 |
| kRemoteAudioStateChangeReasonRemoteOffline | 远端用户离开房间 |
enum bytertc::RemoteVideoState
cpp远端视频流状态。状态改变时,会收到 onRemoteVideoStateChanged 回调
| 类型 | 说明 |
|---|---|
| kRemoteVideoStateStopped | 远端视频流默认初始状态,视频尚未开始播放。 |
| kRemoteVideoStateStarting | 本地用户已接收远端视频流首包。 |
| kRemoteVideoStateDecoding | 远端视频流正在解码,正常播放。 |
| kRemoteVideoStateFrozen | 远端视频流卡顿,可能有网络等原因。 |
| kRemoteVideoStateFailed | 远端视频流播放失败。 |
enum bytertc::RemoteVideoStateChangeReason
cpp远端视频流状态改变的原因
| 类型 | 说明 |
|---|---|
| kRemoteVideoStateChangeReasonInternal | 内部原因 |
| kRemoteVideoStateChangeReasonNetworkCongestion | 网络阻塞 |
| kRemoteVideoStateChangeReasonNetworkRecovery | 网络恢复正常 |
| kRemoteVideoStateChangeReasonLocalMuted | 本地用户停止接收远端视频流或本地用户禁用视频模块 |
| kRemoteVideoStateChangeReasonLocalUnmuted | 本地用户恢复接收远端视频流或本地用户启用视频模块 |
| kRemoteVideoStateChangeReasonRemoteMuted | 远端用户停止发送视频流或远端用户禁用视频模块 |
| kRemoteVideoStateChangeReasonRemoteUnmuted | 远端用户恢复发送视频流或远端用户启用视频模块 |
| kRemoteVideoStateChangeReasonRemoteOffline | 远端用户离开频道。状态转换参考 onUserUnPublishStream。 |
enum bytertc::SEIStreamEventType
cpp黑帧视频流状态
| 类型 | 说明 |
|---|---|
| kSEIStreamEventTypeStreamAdd | 远端用户发布黑帧视频流。 纯语音通话场景下,远端用户调用 sendSEIMessage 发送 SEI 数据时,SDK 会自动发布一路黑帧视频流,并触发该回调。 |
| kSEIStreamEventTypeStreamRemove | 远端黑帧视频流移除。该回调的触发时机包括: + 远端用户开启摄像头采集,由语音通话切换至视频通话,黑帧视频流停止发布; + 远端用户调用 sendSEIMessage 后 1min 内未有 SEI 数据发送,黑帧视频流停止发布; + 远端用户调用 setVideoSourceType 切换至自定义视频采集时,黑帧视频流停止发布。 |
struct bytertc::SourceWantedData
cpp性能回退相关数据
| 类型 | 名称 |
|---|---|
| int | width |
| int | height |
| int | frame_rate |
int bytertc::SourceWantedData::width;
cppint bytertc::SourceWantedData::height;
cpp如果未开启发送性能回退,此值表示推荐的视频输入高度;
如果开启了发送性能回退,此值表示当前推流的最大高度。
int bytertc::SourceWantedData::frame_rate;
cpp如果未开启发送性能回退,此值表示推荐的视频输入帧率,单位 fps;
如果开启了发送性能回退,此值表示当前推流的最大帧率,单位 fps。
struct bytertc::UserInfo
cpp用户信息
| 类型 | 名称 |
|---|---|
| const char* | uid |
| const char* | extra_info |
const char* bytertc::UserInfo::uid = nullptr;
cpp用户 ID。该字符串符合正则表达式:[a-zA-Z0-9_@\-\.]{1,128}。
const char* bytertc::UserInfo::extra_info = nullptr;
cpp用户的额外信息,最大长度为 200 字节。会在 onUserJoined 中回调给远端用户。
struct bytertc::RtcRoomStats
cpp通话相关的统计信息
| 类型 | 名称 |
|---|---|
| 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 |
| unsigned short | tx_cellular_kbitrate |
| unsigned short | rx_cellular_kbitrate |
float bytertc::RtcRoomStats::txLostrate;
cpp当前应用的上行丢包率,取值范围为 [0, 1]
float bytertc::RtcRoomStats::rxLostrate;
cpp当前应用的下行丢包率,取值范围为 [0, 1]
int bytertc::RtcRoomStats::rtt;
cpp客户端到服务端数据传输的往返时延(单位 ms)
unsigned int bytertc::RtcRoomStats::duration;
cpp进房到退房之间累计时长,单位为 s
unsigned int bytertc::RtcRoomStats::tx_bytes;
cpp本地用户的总发送字节数 (bytes),累计值
unsigned int bytertc::RtcRoomStats::rx_bytes;
cpp本地用户的总接收字节数 (bytes),累计值
unsigned short bytertc::RtcRoomStats::tx_kbitrate;
cpp发送码率(kbps),获取该数据时的瞬时值
unsigned short bytertc::RtcRoomStats::rx_kbitrate;
cpp接收码率(kbps),获取该数据时的瞬时值
unsigned short bytertc::RtcRoomStats::rx_audio_kbitrate;
cpp音频接收码率(kbps),获取该数据时的瞬时值
unsigned short bytertc::RtcRoomStats::tx_audio_kbitrate;
cpp音频包的发送码率(kbps),获取该数据时的瞬时值
unsigned short bytertc::RtcRoomStats::rx_video_kbitrate;
cpp视频接收码率(kbps),获取该数据时的瞬时值
unsigned short bytertc::RtcRoomStats::tx_video_kbitrate;
cpp视频发送码率(kbps),获取该数据时的瞬时值
unsigned short bytertc::RtcRoomStats::rx_screen_kbitrate;
cpp屏幕接收码率,获取该数据时的瞬时值,单位为 Kbps
unsigned short bytertc::RtcRoomStats::tx_screen_kbitrate;
cpp屏幕发送码率,获取该数据时的瞬时值,单位为 Kbps
unsigned int bytertc::RtcRoomStats::user_count;
cpp当前房间内的可见用户人数
double bytertc::RtcRoomStats::cpu_app_usage;
cpp当前应用的 CPU 使用率 (%)
unsigned short bytertc::RtcRoomStats::tx_cellular_kbitrate;
cpp蜂窝路径发送的码率 (kbps),为获取该数据时的瞬时值
unsigned short bytertc::RtcRoomStats::rx_cellular_kbitrate;
cpp蜂窝路径接收码率 (kbps),为获取该数据时的瞬时值
enum bytertc::VideoCodecType
cpp视频的编码类型
| 类型 | 说明 |
|---|---|
| kVideoCodecTypeUnknown | 未知类型 |
| kVideoCodecTypeH264 | 标准 H264 编码格式 |
| kVideoCodecTypeByteVC1 | ByteVC1 编码格式 |
struct bytertc::LocalAudioStats
cpp本地音频流统计信息,统计周期为 2s 。
本地用户发布音频流成功后,SDK 会周期性地通过 onLocalStreamStats
通知用户发布的音频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。
| 类型 | 名称 |
|---|---|
| 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 |
float bytertc::LocalAudioStats::audio_loss_rate;
cpp音频丢包率。此次统计周期内的音频上行丢包率,单位为 % ,取值范围为 [0, 1]。
int bytertc::LocalAudioStats::send_kbitrate;
cpp发送码率。此次统计周期内的音频发送码率,单位为 kbps 。
int bytertc::LocalAudioStats::record_sample_rate;
cpp采集采样率。此次统计周期内的音频采集采样率信息,单位为 Hz 。
int bytertc::LocalAudioStats::stats_interval;
cpp统计间隔。此次统计周期的间隔,单位为 ms 。
此字段用于设置回调的统计周期,默认设置为 2s 。
int bytertc::LocalAudioStats::rtt;
cpp往返时延。单位为 ms 。
int bytertc::LocalAudioStats::num_channels;
cpp音频声道数。
int bytertc::LocalAudioStats::sent_sample_rate;
cpp音频发送采样率。此次统计周期内的音频发送采样率信息,单位为 Hz 。
int bytertc::LocalAudioStats::jitter;
cpp音频上行网络抖动,单位为 ms 。
struct bytertc::RemoteAudioStats
cpp远端音频流统计信息,统计周期为 2s。
本地用户订阅远端音频流成功后,SDK 会周期性地通过 onRemoteStreamStats 通知本地用户订阅的音频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。
| 类型 | 名称 |
|---|---|
| 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 |
float bytertc::RemoteAudioStats::audio_loss_rate;
cpp音频丢包率。统计周期内的音频下行丢包率,取值范围为 [0, 1] 。
int bytertc::RemoteAudioStats::received_kbitrate;
cpp接收码率。统计周期内的音频接收码率,单位为 kbps 。
int bytertc::RemoteAudioStats::stall_count;
cpp音频卡顿次数。统计周期内的卡顿次数。
int bytertc::RemoteAudioStats::stall_duration;
cpp音频卡顿时长。统计周期内的卡顿时长,单位为 ms 。
long bytertc::RemoteAudioStats::e2e_delay;
cpp用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。
int bytertc::RemoteAudioStats::playout_sample_rate;
cpp播放采样率。统计周期内的音频播放采样率信息,单位为 Hz 。
int bytertc::RemoteAudioStats::stats_interval;
cpp统计间隔。此次统计周期的间隔,单位为 ms 。
int bytertc::RemoteAudioStats::rtt;
cpp客户端到服务端数据传输的往返时延,单位为 ms。
int bytertc::RemoteAudioStats::total_rtt;
cpp发送端——服务端——接收端全链路数据传输往返时延。单位为 ms 。
int bytertc::RemoteAudioStats::quality;
cpp远端用户发送的音频流质量。远端用户发送的音频流质量。值含义参考 NetworkQuality。
int bytertc::RemoteAudioStats::jitter_buffer_delay;
cpp因引入 jitter buffer 机制导致的延时。单位为 ms 。
int bytertc::RemoteAudioStats::num_channels;
cpp音频声道数。
int bytertc::RemoteAudioStats::received_sample_rate;
cpp音频接收采样率。统计周期内接收到的远端音频采样率信息,单位为 Hz 。
int bytertc::RemoteAudioStats::frozen_rate;
cpp远端用户在加入房间后发生音频卡顿的累计时长占音频总有效时长的百分比。音频有效时长是指远端用户进房发布音频流后,除停止发送音频流和禁用音频模块之外的音频时长。
int bytertc::RemoteAudioStats::concealed_samples;
cpp音频丢包补偿(PLC) 样点总个数。
int bytertc::RemoteAudioStats::concealment_event;
cpp音频丢包补偿(PLC) 累计次数。
int bytertc::RemoteAudioStats::dec_sample_rate;
cpp音频解码采样率。统计周期内的音频解码采样率信息,单位为 Hz 。
int bytertc::RemoteAudioStats::dec_duration;
cpp此次订阅中,对远端音频流进行解码的累计耗时。单位为 s。
int bytertc::RemoteAudioStats::jitter;
cpp音频下行网络抖动,单位为 ms 。
struct bytertc::LocalVideoStats
cpp本地视频流统计信息,统计周期为 2s 。
本地用户发布视频流成功后,SDK 会周期性地通过 onLocalStreamStats
通知用户发布的视频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。
| 类型 | 名称 |
|---|---|
| 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 |
| int | codec_elapse_per_frame |
int bytertc::LocalVideoStats::sent_kbitrate;
cpp发送码率。此次统计周期内实际发送的分辨率最大的视频流的发送码率,单位为 Kbps
int bytertc::LocalVideoStats::input_frame_rate;
cpp采集帧率。此次统计周期内的视频采集帧率,单位为 fps 。
int bytertc::LocalVideoStats::sent_frame_rate;
cpp发送帧率。此次统计周期内实际发送的分辨率最大的视频流的视频发送帧率,单位为 fps 。
int bytertc::LocalVideoStats::encoder_output_frame_rate;
cpp编码器输出帧率。当前编码器在此次统计周期内实际发送的分辨率最大的视频流的输出帧率,单位为 fps 。
int bytertc::LocalVideoStats::renderer_output_frame_rate;
cpp本地渲染帧率。此次统计周期内的本地视频渲染帧率,单位为 fps 。
int bytertc::LocalVideoStats::stats_interval;
cpp统计间隔,单位为 ms 。
此字段用于设置回调的统计周期,默认设置为 2s 。
float bytertc::LocalVideoStats::video_loss_rate;
cpp视频丢包率。此次统计周期内的视频上行丢包率,取值范围为 [0,1] 。
int bytertc::LocalVideoStats::rtt;
cpp往返时延,单位为 ms 。
int bytertc::LocalVideoStats::encoded_bitrate;
cpp视频编码码率。此次统计周期内的实际发送的分辨率最大的视频流视频编码码率,单位为 Kbps 。
int bytertc::LocalVideoStats::encoded_frame_width;
cpp实际发送的分辨率最大的视频流的视频编码宽度,单位为 px 。
int bytertc::LocalVideoStats::encoded_frame_height;
cpp实际发送的分辨率最大的视频流的视频编码高度,单位为 px 。
int bytertc::LocalVideoStats::encoded_frame_count;
cpp此次统计周期内实际发送的分辨率最大的视频流的发送的视频帧总数。
VideoCodecType bytertc::LocalVideoStats::codec_type;cpp
视频的编码类型,具体参考 VideoCodecType 。
bool bytertc::LocalVideoStats::is_screen;
cpp所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。
int bytertc::LocalVideoStats::jitter;
cpp视频上行网络抖动,单位为 ms 。
int bytertc::LocalVideoStats::codec_elapse_per_frame;
cpp视频编码平均耗时,单位ms。
struct bytertc::RemoteVideoStats
cpp远端视频流统计信息,统计周期为 2s 。
本地用户订阅远端视频流成功后,SDK 会周期性地通过 onRemoteStreamStats
通知本地用户订阅的远端视频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。
| 类型 | 名称 |
|---|---|
| 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 |
| VideoCodecType | codec_type |
| int | video_index |
| int | jitter |
| int | codec_elapse_per_frame |
int bytertc::RemoteVideoStats::width;
cpp视频宽度
int bytertc::RemoteVideoStats::height;
cpp视频高度
float bytertc::RemoteVideoStats::video_loss_rate;
cpp视频丢包率。统计周期内的视频下行丢包率,单位为 % ,取值范围:[0,1] 。
int bytertc::RemoteVideoStats::received_kbitrate;
cpp接收码率。统计周期内的视频接收码率,单位为 kbps 。
int bytertc::RemoteVideoStats::decoder_output_frame_rate;
cpp解码器输出帧率。统计周期内的视频解码器输出帧率,单位 fps 。
int bytertc::RemoteVideoStats::renderer_output_frame_rate;
cpp渲染帧率。统计周期内的视频渲染帧率,单位 fps 。
int bytertc::RemoteVideoStats::stall_count;
cpp卡顿次数。统计周期内的卡顿次数。
int bytertc::RemoteVideoStats::stall_duration;
cpp卡顿时长。统计周期内的视频卡顿总时长。单位 ms 。
long bytertc::RemoteVideoStats::e2e_delay;
cpp用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。
bool bytertc::RemoteVideoStats::is_screen;
cpp所属用户的媒体流是否为屏幕流。你可以知道当前数据来自主流还是屏幕流。
int bytertc::RemoteVideoStats::stats_interval;
cpp统计间隔,此次统计周期的间隔,单位为 ms 。
此字段用于设置回调的统计周期,目前设置为 2s 。
int bytertc::RemoteVideoStats::rtt;
cpp往返时延,单位为 ms 。
int bytertc::RemoteVideoStats::frozen_rate;
cpp远端用户在进房后发生视频卡顿的累计时长占视频总有效时长的百分比(%)。视频有效时长是指远端用户进房发布视频流后,除停止发送视频流和禁用视频模块之外的视频时长。
VideoCodecType bytertc::RemoteVideoStats::codec_type;cpp
视频的编码类型,具体参考 VideoCodecType 。
int bytertc::RemoteVideoStats::video_index;
cpp对应多种分辨率的流的下标。
int bytertc::RemoteVideoStats::jitter;
cpp视频下行网络抖动,单位为 ms。
int bytertc::RemoteVideoStats::codec_elapse_per_frame;
cpp视频解码平均耗时,单位ms。
struct bytertc::LocalStreamStats
cpp本地音/视频流统计信息以及网络状况,统计周期为 2s 。
本地用户发布音/视频流成功后,SDK 会周期性地通过 onLocalStreamStats
通知本地用户发布的音/视频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。
| 类型 | 名称 |
|---|---|
| LocalAudioStats | audio_stats |
| LocalVideoStats | video_stats |
| bool | is_screen |
| NetworkQuality | [deprecated] local_tx_quality |
| NetworkQuality | [deprecated] local_rx_quality |
LocalAudioStats bytertc::LocalStreamStats::audio_stats;cpp
本地设备发送音频流的统计信息,详见 LocalAudioStats
LocalVideoStats bytertc::LocalStreamStats::video_stats;cpp
本地设备发送视频流的统计信息,详见 LocalVideoStats
NetworkQuality bytertc::LocalStreamStats::local_tx_quality;cpp
所属用户的媒体流上行网络质量,详见 NetworkQuality
Deprecated since 3.36 and will be deleted in 3.51, use onNetworkQuality instead.
NetworkQuality bytertc::LocalStreamStats::local_rx_quality;cpp
所属用户的媒体流下行网络质量,详见 NetworkQuality
Deprecated since 3.36 and will be deleted in 3.51, use onNetworkQuality instead.
bool bytertc::LocalStreamStats::is_screen;
cpp所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。
struct bytertc::RemoteStreamStats
cpp用户订阅的远端音/视频流统计信息以及网络状况,统计周期为 2s 。
订阅远端用户发布音/视频流成功后,SDK 会周期性地通过 onRemoteStreamStats
通知本地用户订阅的远端音/视频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。
| 类型 | 名称 |
|---|---|
| const char* | uid |
| RemoteAudioStats | audio_stats |
| RemoteVideoStats | video_stats |
| bool | is_screen |
| NetworkQuality | [deprecated] remote_tx_quality |
| NetworkQuality | [deprecated] remote_rx_quality |
const char* bytertc::RemoteStreamStats::uid;
cpp用户 ID 。音/视频来源的远端用户 ID 。
RemoteAudioStats bytertc::RemoteStreamStats::audio_stats;
cpp远端音频流的统计信息,详见 RemoteAudioStats
RemoteVideoStats bytertc::RemoteStreamStats::video_stats;
cpp远端视频流的统计信息,详见 RemoteVideoStats
NetworkQuality bytertc::RemoteStreamStats::remote_tx_quality;cpp
所属用户的媒体流上行网络质量,详见 NetworkQuality
Deprecated since 3.36 and will be deleted in 3.51, use onNetworkQuality instead.
NetworkQuality bytertc::RemoteStreamStats::remote_rx_quality;cpp
所属用户的媒体流下行网络质量,详见 NetworkQuality
Deprecated since 3.36 and will be deleted in 3.51, use onNetworkQuality instead.
bool bytertc::RemoteStreamStats::is_screen;
cpp所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。
enum bytertc::ProblemFeedbackOption
cpp音视频质量反馈问题类型
| 类型 | 说明 |
|---|---|
| kProblemFeedbackOptionNone | 没有问题 |
| kProblemFeedbackOptionOtherMessage | 其他问题 |
| kProblemFeedbackOptionDisconnected | 连接失败 |
| kProblemFeedbackOptionEarBackDelay | 耳返延迟大 |
| kProblemFeedbackOptionLocalNoise | 本端有杂音 |
| kProblemFeedbackOptionLocalAudioLagging | 本端声音卡顿 |
| kProblemFeedbackOptionLocalNoAudio | 本端无声音 |
| kProblemFeedbackOptionLocalAudioStrength | 本端声音大/小 |
| kProblemFeedbackOptionLocalEcho | 本端有回声 |
| kProblemFeedbackOptionLocalVideoFuzzy | 本端视频模糊 |
| kProblemFeedbackOptionLocalNotSync | 本端音视频不同步 |
| kProblemFeedbackOptionLocalVideoLagging | 本端视频卡顿 |
| kProblemFeedbackOptionLocalNoVideo | 本端无画面 |
| kProblemFeedbackOptionRemoteNoise | 远端有杂音 |
| kProblemFeedbackOptionRemoteAudioLagging | 远端声音卡顿 |
| kProblemFeedbackOptionRemoteNoAudio | 远端无声音 |
| kProblemFeedbackOptionRemoteAudioStrength | 远端声音大/小 |
| kProblemFeedbackOptionRemoteEcho | 远端有回声 |
| kProblemFeedbackOptionRemoteVideoFuzzy | 远端视频模糊 |
| kProblemFeedbackOptionRemoteNotSync | 远端音视频不同步 |
| kProblemFeedbackOptionRemoteVideoLagging | 远端视频卡顿 |
| kProblemFeedbackOptionRemoteNoVideo | 远端无画面 |
struct bytertc::ProblemFeedbackRoomInfo
cpp音视频质量反馈的房间信息
| 类型 | 名称 |
|---|---|
| const char* | room_id |
| const char* | user_id |
const char* bytertc::ProblemFeedbackRoomInfo::room_id = nullptr;
cpp房间 ID。
const char* bytertc::ProblemFeedbackRoomInfo::user_id = nullptr;
cpp本地用户 ID。
struct bytertc::ProblemFeedbackInfo
cpp音视频质量反馈的信息
| 类型 | 名称 |
|---|---|
| const char* | problem_desc |
| ProblemFeedbackRoomInfo* | room_info |
| int | room_info_count |
const char* bytertc::ProblemFeedbackInfo::problem_desc = nullptr;
cpp预设问题以外的其他问题的具体描述。
ProblemFeedbackRoomInfo* bytertc::ProblemFeedbackInfo::room_info = nullptr;
cpp音视频质量反馈的房间信息。查看 ProblemFeedbackRoomInfo。
int bytertc::ProblemFeedbackInfo::room_info_count = 0;
cppFeedbackRoomInfo 的数组长度。
enum bytertc::EncryptType
cpp自定义加密类型
| 类型 | 说明 |
|---|---|
| kEncryptTypeCustomize | 不使用内置加密。默认值。 |
| kEncryptTypeAES128CBC | AES-128-CBC 加密算法 |
| kEncryptTypeAES256CBC | AES-256-CBC 加密算法 |
| kEncryptTypeAES128ECB | AES-128-ECB 加密算法 |
| kEncryptTypeAES256ECB | AES-256-ECB 加密算法 |
struct bytertc::RtcUser
cpp用户信息
| 类型 | 名称 |
|---|---|
| const char* | user_id |
| const char* | meta_data |
const char* bytertc::RtcUser::user_id;
cppconst char* bytertc::RtcUser::meta_data;
cppenum bytertc::FirstFrameSendState
cpp首帧发送状态
| 类型 | 说明 |
|---|---|
| kFirstFrameSendStateSending | 发送中 |
| kFirstFrameSendStateSent | 发送成功 |
| kFirstFrameSendStateEnd | 发送失败 |
enum bytertc::FirstFramePlayState
cpp首帧播放状态
| 类型 | 说明 |
|---|---|
| kFirstFramePlayStatePlaying | 播放中 |
| kFirstFramePlayStatePlayed | 播放成功 |
| kFirstFramePlayStateEnd | 播放失败 |
enum bytertc::MuteState
cpp音视频流的发送/播放状态
| 类型 | 说明 |
|---|---|
| kMuteStateOff | 发送 |
| kMuteStateOn | 停止发送 |
enum bytertc::StreamIndex
cpp流属性
| 类型 | 说明 |
|---|---|
| kStreamIndexMain | 主流。包括: + 由摄像头/麦克风通过内部采集机制,采集到的视频/音频; + 通过自定义采集,采集到的视频/音频。 |
| kStreamIndexScreen | 屏幕流。屏幕共享时共享的视频流,或来自声卡的本地播放音频流。 |
struct bytertc::RemoteStreamKey
cpp远端流信息
| 类型 | 名称 |
|---|---|
| const char* | room_id |
| const char* | user_id |
| StreamIndex | stream_index |
const char* bytertc::RemoteStreamKey::room_id;
cpp媒体流所在房间的房间 ID。
如果此媒体流是通过 startForwardStreamToRooms 转发到你所在房间的媒体流时,你应将房间 ID 设置为你所在的房间 ID。
const char* bytertc::RemoteStreamKey::user_id;
cpp用户 ID
StreamIndex bytertc::RemoteStreamKey::stream_index;cpp
流属性,主流或屏幕流。参看 StreamIndex
enum bytertc::RecordingFileType
cpp本地录制文件的存储格式
| 类型 | 说明 |
|---|---|
| kRecordingFileTypeAAC | aac 格式文件 |
| kRecordingFileTypeMP4 | mp4 格式文件 |
enum bytertc::RecordingState
cpp本地录制的状态
| 类型 | 说明 |
|---|---|
| kRecordingStateError | 录制异常 |
| kRecordingStateProcessing | 录制进行中 |
| kRecordingStateSuccess | 录制文件保存成功,调用 stopFileRecording 结束录制之后才会收到该状态码。 |
enum bytertc::RecordingErrorCode
cpp本地录制的错误码
| 类型 | 说明 |
|---|---|
| kRecordingErrorCodeOk | 录制正常 |
| kRecordingErrorCodeNoPermission | 没有文件写权限 |
| kRecordingErrorCodeNotSupport | 当前版本 SDK 不支持本地录制功能,请联系技术支持人员 |
| kRecordingErrorCodeOther | 其他异常 |
struct bytertc::RecordingProgress
cpp本地录制进度
| 类型 | 名称 |
|---|---|
| unsigned long long | duration |
| unsigned long long | file_size |
unsigned long long bytertc::RecordingProgress::duration;
cpp当前文件的累计录制时长,单位:毫秒
unsigned long long bytertc::RecordingProgress::file_size;
cpp当前录制文件的大小,单位:byte
struct bytertc::RecordingInfo
cpp本地录制的详细信息
| 类型 | 名称 |
|---|---|
| const char* | file_path |
| VideoCodecType | video_codec_type |
| int | width |
| int | height |
const char* bytertc::RecordingInfo::file_path;
cpp录制文件的绝对路径,包含文件名和文件后缀
VideoCodecType bytertc::RecordingInfo::video_codec_type;cpp
录制文件的视频编码类型,参看 VideoCodecType
int bytertc::RecordingInfo::width;
cpp录制视频的宽,单位:像素。纯音频录制请忽略该字段
int bytertc::RecordingInfo::height;
cpp录制视频的高,单位:像素。纯音频录制请忽略该字段
struct bytertc::RecordingConfig
cpp本地录制参数配置
| 类型 | 名称 |
|---|---|
| const char* | dir_path |
| RecordingFileType | file_type |
const char* bytertc::RecordingConfig::dir_path;
cpp录制文件保存的绝对路径,需精确到文件夹,文件名由 RTC 自动生成。你需要确保对该路径具有读写权限。
RecordingFileType bytertc::RecordingConfig::file_type;cpp
录制存储文件格式,参看 RecordingFileType
enum bytertc::UserWorkerType
cpp定义linux用户的用户功能
| 类型 | 说明 |
|---|---|
| UserWorkerNormal | 正常用户,没有任何特殊属性 |
| UserWorkerSupportSip | 用户支持SIP流,信令只下发SIP流 |
| UserWorkerByteVc1Transcoder | 用户支持屏幕流的bytevc1到H264转码 |
| UserWorkerNeedUserListAndCb | 用户需要信令服务器下发全量的用户列表和回调函数 |
| UserWorkerNeedStreamCallBack | 用户需要在房间进入多人模式时获取房间内所有流的相关回调 |
| UserWorkerAudioSelectionExemption | 用户选择设置不支持音频选路功能 |
enum bytertc::AVSyncState
cpp音视频同步状态
| 类型 | 说明 |
|---|---|
| kAVSyncStateAVStreamSyncBegin | 音视频开始同步 |
| kAVSyncStateAudioStreamRemove | 音视频同步过程中音频移除,但不影响当前的同步关系 |
| kAVSyncStateVdieoStreamRemove | 音视频同步过程中视频移除,但不影响当前的同步关系 |
enum bytertc::SyncInfoStreamType
cpp媒体流信息同步的流类型
| 类型 | 说明 |
|---|---|
| kSyncInfoStreamTypeAudio | 音频流 |
struct bytertc::StreamSycnInfoConfig
cpp媒体流信息同步的相关配置
| 类型 | 名称 |
|---|---|
| StreamIndex | stream_index |
| int | repeat_count |
| SyncInfoStreamType | stream_type |
StreamIndex bytertc::StreamSycnInfoConfig::stream_index;cpp
流属性,主流或屏幕流。见 StreamIndex
int bytertc::StreamSycnInfoConfig::repeat_count;
cpp消息发送的重复次数,取值范围是 [0,25],建议设置为 [3,5]。
SyncInfoStreamType bytertc::StreamSycnInfoConfig::stream_type;cpp
媒体流信息同步的流类型,见 SyncInfoStreamType
struct bytertc::ForwardStreamInfo
cpp媒体流跨房间转发的目标房间的相关信息
| 类型 | 名称 |
|---|---|
| const char* | token |
| const char* | room_id |
const char* bytertc::ForwardStreamInfo::token;
cpp使用转发目标房间 roomID 和 UserID 生成 Token。
测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
如果 Token 无效,转发失败。
const char* bytertc::ForwardStreamInfo::room_id;
cpp跨间转发媒体流过程中目标房间 ID
struct bytertc::ForwardStreamConfiguration
cpp媒体流跨房间转发的目标房间的相关信息
| 类型 | 名称 |
|---|---|
| ForwardStreamInfo* | forward_stream_dests |
| int | dest_count |
ForwardStreamInfo* bytertc::ForwardStreamConfiguration::forward_stream_dests = nullptr;
cpp目标房间信息,数组中的每个元素包含一个房间的信息。
int bytertc::ForwardStreamConfiguration::dest_count = 0;
cpp目标房间数量。媒体流同时转发的目标房间数量建议小于等于 4 个。
enum bytertc::ForwardStreamState
cpp媒体流跨房间转发状态
| 类型 | 说明 |
|---|---|
| kForwardStreamStateIdle | 空闲状态 + 成功调用 stopForwardStreamToRooms 后,所有目标房间为空闲状态。+ 成功调用 updateForwardStreamToRooms 减少目标房间后,本次减少的目标房间为空闲状态。 |
| kForwardStreamStateSuccess | 开始转发 + 调用 startForwardStreamToRooms 成功向所有房间开始转发媒体流后,返回此状态。+ 调用 updateForwardStreamToRooms 后,成功向新增目标房间开始转发媒体流后,返回此状态。 |
| kForwardStreamStateFailure | 转发失败,失败详情参考 ForwardStreamError 调用 startForwardStreamToRooms 或 updateForwardStreamToRooms 后,如遇转发失败,返回此状态。 |
enum bytertc::ForwardStreamError
cpp媒体流跨房间转发过程中抛出的错误码
| 类型 | 说明 |
|---|---|
| kForwardStreamErrorOK | 正常 |
| kForwardStreamErrorInvalidArgument | 参数异常 |
| kForwardStreamErrorInvalidToken | token 错误 |
| kForwardStreamErrorResponse | 服务端异常 |
| kForwardStreamErrorRemoteKicked | 目标房间有相同 user id 的用户加入,转发中断 |
| kForwardStreamErrorNotSupport | 服务端不支持转发功能 |
enum bytertc::ForwardStreamEvent
cpp媒体流跨房间转发事件
| 类型 | 说明 |
|---|---|
| kForwardStreamEventDisconnected | 本端与服务器网络连接断开,暂停转发。 |
| kForwardStreamEventConnected | 本端与服务器网络连接恢复,转发服务连接成功。 |
| kForwardStreamEventInterrupt | 转发中断。转发过程中,如果相同 user_id 的用户进入目标房间,转发中断。 |
| kForwardStreamEventDstRoomUpdated | 目标房间已更新,由 updateForwardStreamToRooms 触发。 |
| kForwardStreamEventUnExpectAPICall | API 调用时序错误。例如,在调用 startForwardStreamToRooms 之前调用 updateForwardStreamToRooms 。 |
struct bytertc::ForwardStreamStateInfo
cpp跨房间转发媒体流过程中的不同目标房间的状态和错误信息
| 类型 | 名称 |
|---|---|
| const char* | room_id |
| ForwardStreamState | state |
| ForwardStreamError | error |
const char* bytertc::ForwardStreamStateInfo::room_id;
cpp跨间转发媒体流过程中目标房间 ID
ForwardStreamState bytertc::ForwardStreamStateInfo::state;
cpp跨房间转发媒体流过程中该目标房间的状态,参看 ForwardStreamState
ForwardStreamError bytertc::ForwardStreamStateInfo::error;cpp
跨房间转发媒体流过程中该目标房间抛出的错误码,参看 ForwardStreamError
struct bytertc::ForwardStreamEventInfo
cpp跨房间转发媒体流过程中的不同目标房间发生的事件
| 类型 | 名称 |
|---|---|
| const char* | room_id |
| ForwardStreamEvent | event |
const char* bytertc::ForwardStreamEventInfo::room_id;
cpp跨房间转发媒体流过程中的发生该事件的目标房间 ID
空字符串代表所有目标房间
ForwardStreamEvent bytertc::ForwardStreamEventInfo::event;cpp
跨房间转发媒体流过程中该目标房间发生的事件,参看 ForwardStreamEvent
struct bytertc::ByteWatermark
cpp水印图片相对视频流的位置和大小。
| 类型 | 名称 |
|---|---|
| float | x |
| float | y |
| float | width |
| float | height |
float bytertc::ByteWatermark::x;
cpp水印图片相对视频流左上角的横向偏移与视频流宽度的比值,取值范围为 [0,1)。
float bytertc::ByteWatermark::y;
cpp水印图片相对视频流左上角的纵向偏移与视频流高度的比值,取值范围为 [0,1)。
float bytertc::ByteWatermark::width;
cpp水印图片宽度与视频流宽度的比值,取值范围 [0,1)。
float bytertc::ByteWatermark::height;
cpp水印图片高度与视频流高度的比值,取值范围为 [0,1)。
struct bytertc::RTCWatermarkConfig
cpp水印参数
| 类型 | 名称 |
|---|---|
| bool | visibleInPreview |
| ByteWatermark | positionInLandscapeMode |
| ByteWatermark | positionInPortraitMode |
bool bytertc::RTCWatermarkConfig::visibleInPreview = true;
cpp水印是否在视频预览中可见,默认可见。
ByteWatermark bytertc::RTCWatermarkConfig::positionInLandscapeMode;cpp
横屏时的水印位置和大小,参看 ByteWatermark。
ByteWatermark bytertc::RTCWatermarkConfig::positionInPortraitMode;cpp
视频编码的方向模式为竖屏时的水印位置和大小,参看 ByteWatermark。
enum bytertc::DeviceTransportType
cpp设备的传输方式
| 类型 | 说明 |
|---|---|
| kDeviceTransportTypeUnknown | 未知类型 |
| kDeviceTransportTypeBuiltIn | 系统内置 |
| kDeviceTransportTypeBlueToothUnknownMode | 未知模式蓝牙 |
| kDeviceTransportTypeBlueToothHandsFreeMode | 免提模式蓝牙 |
| kDeviceTransportTypeBlueToothStereoMode | 立体声模式蓝牙 |
| kDeviceTransportTypeDisplayAudio | 显示器/电视机音频设备 |
| kDeviceTransportTypeVirtual | 虚拟设备 |
| kDeviceTransportTypeUSB | USB设备 |
| kDeviceTransportTypePCI | PCI设备 |
| kDeviceTransportTypeAirPlay | AirPlay设备 |
| kDeviceTransportTypeContinuityCamera | 连续互通相机 |
enum class bytertc::EchoTestResult
cpp音视频回路测试结果
| 类型 | 说明 |
|---|---|
| kTestSuccess | 接收到采集的音视频的回放,通话回路检测成功 |
| kTestTimeout | 测试超过 60s 仍未完成,已自动停止 |
| kTestIntervalShort | 上一次测试结束和下一次测试开始之间的时间间隔少于 5s |
| kAudioDeviceError | 音频采集异常 |
| kVideoDeviceError | 视频采集异常 |
| kAudioReceiveError | 音频接收异常 |
| kVideoReceiveError | 视频接收异常 |
| kInternalError | 内部错误,不可恢复 |
struct bytertc::EchoTestConfig
cpp音视频回路测试参数
| 类型 | 名称 |
|---|---|
| void* | view |
| bool | enableAudio |
| bool | enableVideo |
| int | audioPropertiesReportInterval |
| const char* | uid |
| const char* | roomId |
| const char* | token |
void* bytertc::EchoTestConfig::view;
cpp用于渲染接收到的视频的视图
bool bytertc::EchoTestConfig::enableAudio;
cpp是否检测音频。检测设备为系统默认音频设备。
onLocalAudioPropertiesReport 回调,你可以根据该回调判断麦克风的工作状态 bool bytertc::EchoTestConfig::enableVideo;
cpp是否检测视频。PC 端默认检测列表中第一个视频设备。
注意:
视频的发布参数固定为:分辨率 640px × 360px,帧率 15fps。
视频的发布参数固定为:分辨率 640px × 360px,帧率 15fps。
int bytertc::EchoTestConfig::audioPropertiesReportInterval;
cpp音量信息提示间隔,单位:ms,默认为 100ms
<= 0: 关闭信息提示 (0,100]: 开启信息提示,不合法的 interval 值,SDK 自动设置为 100ms > 100: 开启信息提示,并将信息提示间隔设置为此值 const char* bytertc::EchoTestConfig::uid;
cpp进行音视频通话回路测试的用户 ID
const char* bytertc::EchoTestConfig::roomId;
cpp测试用户加入的房间 ID。
const char* bytertc::EchoTestConfig::token;
cpp对用户进房时进行鉴权验证的动态密钥,用于保证音视频通话回路测试的安全性。
enum bytertc::AudioDumpStatus
cpp音频dump状态。
| 类型 | 说明 |
|---|---|
| kAudioDumpStartFailure | 音频dump启动失败 |
| kAudioDumpStartSuccess | 音频dump启动成功 |
| kAudioDumpStopFailure | 音频dump停止失败 |
| kAudioDumpStopSuccess | 音频dump停止成功 |
| kAudioDumpRunningFailure | 音频dump运行失败 |
| kAudioDumpRunningSuccess | 音频dump运行成功 |
enum bytertc::NetworkDetectionStopReason
cpp通话前探测的停止原因onNetworkDetectionStopped 回调的参数类型
| 类型 | 说明 |
|---|---|
| kNetworkDetectionStopReasonUser | 用户主动停止 |
| kNetworkDetectionStopReasonTimeout | 探测超过三分钟 |
| kNetworkDetectionStopReasonConnectionLost | 探测网络连接断开。 当超过 12s 没有收到回复,SDK 将断开网络连接,并且不再尝试重连。 |
| kNetworkDetectionStopReasonStreaming | 本地开始推拉流,停止探测 |
| kNetworkDetectionStopReasonInnerErr | 网络探测失败,内部异常 |
enum bytertc::NetworkDetectionLinkType
cpp通话前探测链接的类型。onNetworkDetectionResult 回调的参数类型
| 类型 | 说明 |
|---|---|
| kNetworkDetectionLinkTypeUp | 上行网络探测 |
| kNetworkDetectionLinkTypeDown | 下行网络探测 |
struct bytertc::NetworkTimeInfo
cpp网络时间信息
| 类型 | 名称 |
|---|---|
| int64_t | timestamp |
int64_t bytertc::NetworkTimeInfo::timestamp;
cpp网络时间,单位:ms
enum bytertc::HardwareEchoDetectionResult
cpp通话前回声检测结果
| 类型 | 说明 |
|---|---|
| kHardwareEchoDetectionCanceled | 主动调用 stopHardwareEchoDetection 结束流程时,未有回声检测结果。 |
| kHardwareEchoDetectionUnknown | 未检测出结果。建议重试,如果仍然失败请联系技术支持协助排查。 |
| kHardwareEchoDetectionNormal | 无回声 |
| kHardwareEchoDetectionPoor | 有回声。可通过 UI 建议用户使用耳机设备入会。 |
enum bytertc::AudioSelectionPriority
cpp音频选路优先级设置
| 类型 | 说明 |
|---|---|
| kAudioSelectionPriorityNormal | 正常,参加音频选路 |
| kAudioSelectionPriorityHigh | 高优先级,跳过音频选路 |
enum bytertc::SetRoomExtraInfoResult
cpp设置房间附加消息结果。
| 类型 | 说明 |
|---|---|
| kSetRoomExtraInfoSuccess | 设置房间附加信息成功 |
| kSetRoomExtraInfoErrorNotJoinRoom | 设置失败,尚未加入房间 |
| kSetRoomExtraInfoErrorKeyIsNull | 设置失败,key 指针为空 |
| kSetRoomExtraInfoErrorValueIsNull | 设置失败,value 指针为空 |
| kSetRoomExtraInfoResultUnknow | 设置失败,未知错误 |
| kSetRoomExtraInfoErrorKeyIsEmpty | 设置失败,key 长度为 0 |
| kSetRoomExtraInfoErrorTooOften | 调用 setRoomExtraInfo 过于频繁,建议不超过 10 次/秒。 |
| kSetRoomExtraInfoErrorSilentUser | 设置失败,用户已调用 setUserVisibility 将自身设为隐身状态。 |
| kSetRoomExtraInfoErrorKeyTooLong | 设置失败,Key 长度超过 10 字节 |
| kSetRoomExtraInfoErrorValueTooLong | 设置失败,value 长度超过 128 字节 |
| kSetRoomExtraInfoErrorServer | 设置失败,服务器错误 |
enum bytertc::SubtitleState
cpp字幕任务状态。
| 类型 | 说明 |
|---|---|
| kSubtitleStateStarted | 开启字幕。 |
| kSubtitleStateStoped | 关闭字幕。 |
| kSubtitleStateError | 字幕任务出现错误。 |
enum bytertc::SubtitleMode
cpp字幕模式。
| 类型 | 说明 |
|---|---|
| kSubtitleModeRecognition | 识别模式。在此模式下,房间内用户语音会被转为文字。 |
| kSubtitleModeTranslation | 翻译模式。在此模式下,房间内用户语音会先被转为文字,再被翻译为目标语言。 |
struct bytertc::SubtitleConfig
cpp字幕配置信息。
| 类型 | 名称 |
|---|---|
| SubtitleMode | mode |
| const char* | target_language |
SubtitleMode bytertc::SubtitleConfig::mode = kSubtitleModeRecognition;cpp
字幕模式。可以根据需要选择识别和翻译两种模式。开启识别模式,会将识别后的用户语音转化成文字;开启翻译模式,会在语音识别后进行翻译。参看 SubtitleMode。
const char* bytertc::SubtitleConfig::target_language = "";
cpp目标翻译语言。可点击 语言支持 查看翻译服务最新支持的语种信息。
struct bytertc::SubtitleMessage
cpp字幕具体内容。
| 类型 | 名称 |
|---|---|
| const char* | user_id |
| const char* | text |
| int | sequence |
| bool | definite |
const char* bytertc::SubtitleMessage::user_id;
cpp说话者的用户ID。
const char* bytertc::SubtitleMessage::text;
cpp语音识别或翻译后的文本, 采用 UTF-8 编码。
int bytertc::SubtitleMessage::sequence;
cpp语音识别或翻译后形成的文本的序列号,同一发言人的完整发言和不完整发言会按递增顺序单独分别编号。
bool bytertc::SubtitleMessage::definite;
cpp语音识别出的文本是否为一段完整的一句话。 True 代表是, False 代表不是。
enum bytertc::MediaPlayerCustomSourceMode
cpp自定义音频源模式
| 类型 | 说明 |
|---|---|
| kMediaPlayerCustomSourceModePush | 当播放来自本地的 PCM 数据时,使用此选项。 |
| kMediaPlayerCustomSourceModePull | 当播放来自内存的音频数据时,使用此选项。 |
enum bytertc::MediaPlayerCustomSourceSeekWhence
cpp音频数据的起始读取位置。
| 类型 | 说明 |
|---|---|
| kMediaPlayerCustomSourceSeekWhenceSet | 从音频数据的头开始读取,读取的实际偏移量为参数 offset 的值。 |
| kMediaPlayerCustomSourceSeekWhenceCur | 从音频数据的某一位置开始读取,读取的实际偏移量为音频数据当前的读取位置位置加上参数 offset 的值。 |
| kMediaPlayerCustomSourceSeekWhenceEnd | 从音频数据的尾开始读取,读取的实际数据偏移量为用户传入的音频数据大小加上参数 offset 的值。 |
| kMediaPlayerCustomSourceSeekWhenceSize | 返回音频数据的大小。 |
enum bytertc::MediaPlayerCustomSourceStreamType
cpp自定义音频流类型
| 类型 | 说明 |
|---|---|
| kMediaPlayerCustomSourceStreamTypeRaw | 当播放来自本地的 PCM 数据时,使用此选项。 |
| kMediaPlayerCustomSourceStreamTypeEncoded | 当播放来自内存的音频数据时,使用此选项。 |
struct bytertc::MediaPlayerCustomSource
cpp音频源
| 类型 | 名称 |
|---|---|
| IMediaPlayerCustomSourceProvider* | provider |
| MediaPlayerCustomSourceMode | mode |
| MediaPlayerCustomSourceStreamType | type |
IMediaPlayerCustomSourceProvider* bytertc::MediaPlayerCustomSource::provider = nullptr;
cpp仅在使用内存播放时,传入对应的 IMediaPlayerCustomSourceProvider 实例。
MediaPlayerCustomSourceMode bytertc::MediaPlayerCustomSource::mode = kMediaPlayerCustomSourceModePush;cpp
数据源模式,详见 MediaPlayerCustomSourceMode。
MediaPlayerCustomSourceStreamType bytertc::MediaPlayerCustomSource::type = kMediaPlayerCustomSourceStreamTypeRaw;
cpp数据源类型,详见 MediaPlayerCustomSourceStreamType
enum bytertc::StreamLayoutMode
cpp公共流的布局模式
| 类型 | 说明 |
|---|---|
| kLayoutAutoMode | 自动布局 |
| kLayoutCustomerMode | 自定义 |
typedef struct bytertc::SourceCrop
cpp公共流视频裁剪配置
| 类型 | 名称 |
|---|---|
| float | LocationX |
| float | LocationY |
| float | WidthProportion |
| float | HeightProportion |
float bytertc::SourceCrop::LocationX = 0.0;
cpp裁剪后得到的视频帧左上角横坐标相对于裁剪前整体画面的归一化比例,取值范围[0.0, 1.0)
float bytertc::SourceCrop::LocationY = 0.0;
cpp裁剪后得到的视频帧左上角纵坐标相对于裁剪前整体画面的归一化比例,取值范围[0.0, 1.0)
float bytertc::SourceCrop::WidthProportion = 0.0;
cpp裁剪后得到的视频帧宽度相对于裁剪前整体画面的归一化比例,取值范围(0.0, 1.0]
float bytertc::SourceCrop::HeightProportion = 0.0;
cpp裁剪后得到的视频帧高度相对于裁剪前整体画面的归一化比例,取值范围(0.0, 1.0]
typedef struct bytertc::PublicStreamVideoParam
cpp公共流视频编码参数
| 类型 | 名称 |
|---|---|
| int32_t | width |
| int32_t | height |
| int32_t | fps |
| int32_t | bitrate_kpbs |
int32_t bytertc::PublicStreamVideoParam::width;
cpp公共流视频宽度,必填。单位为 px,范围为 [2, 1920],必须是偶数。
int32_t bytertc::PublicStreamVideoParam::height;
cpp公共流视频高度,必填。单位为 px,范围为 [16, 1280],必须是偶数。
int32_t bytertc::PublicStreamVideoParam::fps;
cpp公共流视频帧率。必填
范围:[1, 60]
int32_t bytertc::PublicStreamVideoParam::bitrate_kpbs;
cpp视频码率,必填
范围:[1,10000000]
单位为 bps
typedef struct bytertc::PublicStreamLayoutRegion
cpp单个视频流在公共流中的布局信息。
在多路视频流公共流时,你需要设置每一路视频流在公共流中的布局信息。
| 类型 | 名称 |
|---|---|
| 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 |
const char* bytertc::PublicStreamLayoutRegion::user_id = "";
cpp目标公共流用户的 ID, 不能为空
const char* bytertc::PublicStreamLayoutRegion::room_id = "";
cpp跨房间订阅流时,目标流所在的房间 ID, 不能为空
const char* bytertc::PublicStreamLayoutRegion::alternate_image_uri = "";
cpp背景图片地址
float bytertc::PublicStreamLayoutRegion::x;
cpp用户视频布局相对画布左侧的偏移量,取值的范围为 [0.0, 1.0)。必填。
float bytertc::PublicStreamLayoutRegion::y;
cpp用户视频布局相对画布顶端的偏移量,取值的范围为 [0.0, 1.0)。必填。
float bytertc::PublicStreamLayoutRegion::width;
cpp用户视频宽度相对画布宽度的比例,取值的范围为 (0.0, 1.0]。必填。
float bytertc::PublicStreamLayoutRegion::height;
cpp用户视频高度相对画布高度的比例,取值的范围为 (0.0, 1.0]。必填。
float bytertc::PublicStreamLayoutRegion::alpha;
cpp透明度,取值范围 [0,255], 0 为全透明,255 为不透明
int32_t bytertc::PublicStreamLayoutRegion::z_order;
cpp用户视频布局在画布中的层级,取值范围 [0,100],0(默认)为底层,100 为顶层。
int bytertc::PublicStreamLayoutRegion::stream_type = 0;
cpp必填。媒体流类型:
TranscoderContentControlType bytertc::PublicStreamLayoutRegion::media_type;cpp
公共流输出类型,参看 TranscoderContentControlType
RenderMode bytertc::PublicStreamLayoutRegion::render_mode;cpp
渲染时,视频内容缩放模式,必填。参看 RenderMode
SourceCrop bytertc::PublicStreamLayoutRegion::source_crop;cpp
支持对每一路参与公共流的视频进行裁剪,参看 SourceCrop
struct bytertc::PublicStreamLayout
cpp公共流布局设置。
| 类型 | 名称 |
|---|---|
| int | layoutMode |
| int | interMode |
| const char* | background_image |
| const char* | background_color |
| PublicStreamLayoutRegion* | regions |
| int | regions_num |
int bytertc::PublicStreamLayout::layoutMode;
cpp布局模式。必填。
0: 自动模式。默认值。 2: 自定义模式。int bytertc::PublicStreamLayout::interMode;
cpp插帧模式
0: 补最后一帧1: 补背景图片,如果没有设置背景图片则补黑帧const char* bytertc::PublicStreamLayout::background_image = nullptr;
cpp背景图片
const char* bytertc::PublicStreamLayout::background_color = nullptr;
cpp公共流视频的背景颜色,格式为 RGB 定义下的 Hex 值,如 #FFB6C1 表示浅粉色。默认值 #000000,表示为黑色
PublicStreamLayoutRegion* bytertc::PublicStreamLayout::regions = nullptr;
cpp各路流的布局信息列表。每一个该类型对象为一路单独的视频流的布局信息。详见 PublicStreamLayoutRegion
int bytertc::PublicStreamLayout::regions_num = 0;
cpp参与合流的数量
class bytertc::IPublicStreamParam
cpp公共流参数
本类型继承了 ITranscoderParamBase 中的所有接口。
| 返回 | 名称 |
|---|---|
| virtual StreamLayoutMode | layoutMode |
| virtual int | interpolationMode |
| virtual const char* | backgroundImageUri |
| virtual PublicStreamVideoParam | videoParam |
| virtual PublicStreamLayoutRegion | layoutRegionByIndex |
| virtual void | setInterpolationMode |
| virtual void | setBackgroundImageUri |
| virtual void | setVideoParam |
| virtual void | setLayoutParam |
| virtual IPublicStreamParam* | inflatten |
| virtual bool | checkParameter |
virtual StreamLayoutMode bytertc::IPublicStreamParam::layoutMode()
cpp获取公共流的布局模式,多路媒体流将按照指定的布局模式,合成为一路公共流。
返回值
公共流的布局模式,参看 StreamLayoutMode
virtual int bytertc::IPublicStreamParam::interpolationMode()
cpp获取补帧模式
返回值
补帧模式
0: 补最后一帧1: 补背景图片,如果没有设置背景图片则补黑帧virtual const char* bytertc::IPublicStreamParam::backgroundImageUri()
cpp获取背景图片链接
返回值
背景图片链接
virtual PublicStreamVideoParam bytertc::IPublicStreamParam::videoParam()
cpp获取公共流视频编码参数
返回值
公共流视频参数内容,参看 PublicStreamVideoParam
virtual PublicStreamLayoutRegion bytertc::IPublicStreamParam::layoutRegionByIndex(
int32_t index)
cpp获取公共流视窗布局信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | int32_t | 视窗对应下标 |
返回值
公共流视窗布局信息,参看 PublicStreamLayoutRegion
virtual void bytertc::IPublicStreamParam::setInterpolationMode(
int mode)
cpp设置补帧模式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mode | int | 补帧模式 • 0: 补最后一帧• 1: 补背景图片,如果没有设置背景图片则补黑帧 |
virtual void bytertc::IPublicStreamParam::setBackgroundImageUri(
const char* uri)
cpp设置背景图片的地址
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uri | const char* | 公共流的背景图片的地址 |
virtual void bytertc::IPublicStreamParam::setVideoParam(
const PublicStreamVideoParam& video_param)
cpp设置视频编码参数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| video_param | const PublicStreamVideoParam& | 视频编码参数,参看 PublicStreamVideoParam |
virtual void bytertc::IPublicStreamParam::setLayoutParam(
PublicStreamLayoutRegion regions[],
int32_t regions_size,
const char* bg_color,
StreamLayoutMode mode)
cpp设置公共流布局参数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| regions[] | PublicStreamLayoutRegion | 必填。公共流布局参数,参看 PublicStreamLayoutRegion |
| regions_size | int32_t | 必填。公共流视窗数量 |
| bg_color | const char* | 公共流背景颜色。格式为 RGB 定义下的 Hex 值,如 #FFB6C1 表示浅粉色。默认值 #000000,表示为黑色 |
| mode | StreamLayoutMode | 必填。布局参数,参看 StreamLayoutMode |
virtual IPublicStreamParam* bytertc::IPublicStreamParam::inflatten(
const char* json_str)
cpp将输入的 json 格式的字符串转成 ITranscoderParam 结构体
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| json_str | const char* | json 格式字符串 |
返回值
转换后的 ITranscoderParam 结构体
virtual bool bytertc::IPublicStreamParam::checkParameter(
const char* json_str)
cpp参数校验
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| json_str | const char* | 传入参数,json 格式字符串 |
返回值
检查结果true: 所有参数都合法false: 存在不合法参数
struct bytertc::ReceiveRange
cpp本地用户能收听到、且具有衰减效果的音频接收范围
| 类型 | 名称 |
|---|---|
| int | min |
| int | max |
int bytertc::ReceiveRange::min;
cpp能够接收语音、并且具有衰减效果的最小距离值,该值须 ≥ 0,但 ≤ max。
小于该值的范围内没有范围语音效果,即收听到的音频音量相同。
int bytertc::ReceiveRange::max;
cpp能够收听语音的最大距离值,该值须 > 0 且 ≥ min。
当收听者和声源距离处于 [min, max) 之间时,收听到的音量根据距离呈衰减效果。
超出该值范围的音频将无法收听到。
enum bytertc::AttenuationType
cpp空间音频音量随距离衰减模式
| 类型 | 说明 |
|---|---|
| kAttenuationTypeNone | 不随距离衰减 |
| kAttenuationTypeLinear | 线性衰减,音量随距离增大而线性减小 |
| kAttenuationTypeExponential | 指数型衰减,音量随距离增大进行指数衰减 |
enum bytertc::UserOfflineReason
cpp用户离开房间的原因。
| 类型 | 说明 |
|---|---|
| kUserOfflineReasonQuit | 远端用户调用 leaveRoom 方法退出房间。 |
| kUserOfflineReasonDropped | 远端用户因网络等原因掉线。 |
| kUserOfflineReasonSwitchToInvisible | 远端用户切换至隐身状态。 |
| kUserOfflineReasonKickedByAdmin | 远端用户被踢出出房间。 因调用踢出用户的 OpenAPI,远端用户被踢出房间。 |
enum bytertc::JoinRoomType
cpp用户加入房间的类型。
| 类型 | 说明 |
|---|---|
| kJoinRoomTypeFirst | 首次加入房间。用户手动调用 joinRoom 加入房间。 |
| kJoinRoomTypeReconnected | 重新加入房间。用户网络较差,失去与服务器的连接,进行重连时收到加入成功。 |
enum bytertc::LoginType
cpp用户登录的类型
| 类型 | 说明 |
|---|---|
| kLoginTypeFirst | 首次登录。用户手动调用 login,收到登录成功。 |
| kLoginTypeReconnected | 重连。用户网络较差,失去与服务器的连接,SDK 自动重连登录成功。 |
enum bytertc::USER_ONLINE_STATUS
cpp用户在线状态。
| 类型 | 说明 |
|---|---|
| kUserOnlineStatusOffline | 对端用户离线 对端用户已调用 logout,或者没有调用 login 进行登录。 |
| kUserOnlineStatusOnline | 对端用户在线 对端用户调用 login 登录,并且连接状态正常。 |
| kUserOnlineStatusUnreachable | 无法获取对端用户在线状态 发生级联错误、对端用户在线状态异常时返回。 |
struct bytertc::ServerACKMsg
cpp服务端消息发送结果回调内容
| 类型 | 名称 |
|---|---|
| int | length |
| char* | ACKMsg |
int bytertc::ServerACKMsg::length;
cpp回调消息长度
char* bytertc::ServerACKMsg::ACKMsg;
cpp回调消息内容
enum bytertc::MessageConfig
cpp消息类型
| 类型 | 说明 |
|---|---|
| kMessageConfigReliableOrdered | 低延时可靠有序消息 |
| kMessageConfigUnreliableOrdered | 超低延时有序消息 |
| kMessageConfigUnreliableUnordered | 超低延时无序消息 |
enum bytertc::UserMessageSendResult
cpp发送消息结果,成功或失败,及失败原因
| 类型 | 说明 |
|---|---|
| kUserMessageSendResultSuccess | 发送消息成功 |
| kUserMessageSendResultTimeout | 发送超时,没有发送成功 |
| kUserMessageSendResultNetworkDisconnected | 通道断开,没有发送 |
| kUserMessageSendResultNoReceiver | 找不到接收方 |
| kUserMessageSendResultNoRelayPath | 远端用户没有登录或进房 |
| kUserMessageSendResultExceedQPS | 超过 QPS 限制 |
| kUserMessageSendResultNotJoin | 消息发送方没有加入房间 |
| kUserMessageSendResultInit | 连接未完成初始化,没有可用的数据传输通道连接 |
| kUserMessageSendResultNoConnection | 没有可用的数据传输通道连接 |
| kUserMessageSendResultExceedMaxLength | 消息超过最大长度,当前为 64 KB |
| kUserMessageSendResultEmptyUser | 接收消息的单个用户 id 为空 |
| kUserMessageSendResultNotLogin | 房间外或应用服务器消息发送方没有登录 |
| kUserMessageSendResultServerParamsNotSet | 发送消息给业务方服务器之前没有设置参数 |
| kUserMessageSendResultUnknown | 未知错误 |
enum bytertc::RoomMessageSendResult
cpp房间内广播消息发送结果
| 类型 | 说明 |
|---|---|
| kRoomMessageSendResultSuccess | 消息发送成功 |
| kRoomMessageSendResultTimeout | 发送超时,没有发送 |
| kRoomMessageSendResultNetworkDisconnected | 通道断开,没有发送 |
| kRoomMessageSendResultExceedQPS | 超过 QPS 限制 |
| kRoomMessageSendResultNotJoin | 失败,发送方未加入房间 |
| kRoomMessageSendResultNoConnection | 失败,没有可用的数据传输通道连接 |
| kRoomMessageSendResultExceedMaxLength | 失败,消息超过最大长度,当前为 64KB |
| kRoomMessageSendResultUnknown | 失败,未知错误 |
enum bytertc::ConnectionState
cppSDK 与信令服务器连接状态。
| 类型 | 说明 |
|---|---|
| kConnectionStateDisconnected | 连接断开超过 12s,此时 SDK 会尝试自动重连。 |
| kConnectionStateConnecting | 首次请求建立连接,正在连接中。 |
| kConnectionStateConnected | 首次连接成功。 |
| kConnectionStateReconnecting | 涵盖了以下情况: + 首次连接时,10秒连接不成功; + 连接成功后,断连 10 秒。自动重连中。 |
| kConnectionStateReconnected | 连接断开后,重连成功。 |
| kConnectionStateLost | 处于 kConnectionStateDisconnected 状态超过 10 秒,且期间重连未成功。SDK 仍将继续尝试重连。 |
| kConnectionStateFailed | 连接失败,服务端状态异常。SDK 不会自动重连,请重新进房,或联系技术支持。 |
enum bytertc::NetworkQuality
cpp媒体流网络质量。
| 类型 | 说明 |
|---|---|
| kNetworkQualityUnknown | 网络质量未知。 |
| kNetworkQualityExcellent | 网络质量极好。 |
| kNetworkQualityGood | 主观感觉和 kNetworkQualityExcellent 差不多,但码率可能略低。 |
| kNetworkQualityPoor | 主观感受有瑕疵但不影响沟通。 |
| kNetworkQualityBad | 勉强能沟通但不顺畅。 |
| kNetworkQualityVbad | 网络质量非常差,基本不能沟通。 |
| kNetworkQualityDown | 网络连接断开,无法通话。网络可能由于 12s 内无应答、开启飞行模式、拔掉网线等原因断开。 更多网络状态信息参见 连接状态提示。 |
enum bytertc::NetworkType
cppSDK 网络连接类型。
| 类型 | 说明 |
|---|---|
| kNetworkTypeUnknown | 网络连接类型未知。 |
| kNetworkTypeDisconnected | 网络连接已断开。 |
| kNetworkTypeLAN | 网络连接类型为 LAN 。 |
| kNetworkTypeWIFI | 网络连接类型为 Wi-Fi(包含热点)。 |
| kNetworkTypeMobile2G | 网络连接类型为 2G 移动网络。 |
| kNetworkTypeMobile3G | 网络连接类型为 3G 移动网络。 |
| kNetworkTypeMobile4G | 网络连接类型为 4G 移动网络。 |
| kNetworkTypeMobile5G | 网络连接类型为 5G 移动网络。 |
enum bytertc::BusinessCheckCode
cpp事务检查码
用户调用 setBusinessId 方法设置业务标识参数的返回错误码。
| 类型 | 说明 |
|---|---|
| ERROR_ALREADY_IN_ROOM | 用户已经在房间中。 业务标识需要在加入房间之前设置,加入后设置无效。 |
| ERROR_INPUT_INVALIDATE | 输入参数非法。 用户传入的业务标识参数非法,参数合法性参考 setBusinessId 方法的参数说明。 |
struct bytertc::SysStats
cppApp 使用的 CPU 和内存信息。
该信息由 SDK 周期性(2s)通过 onSysStats 回调通知给用户。
| 类型 | 名称 |
|---|---|
| unsigned int | cpu_cores |
| double | cpu_app_usage |
| double | memory_usage |
| unsigned long long | full_memory |
| unsigned long long | total_memory_usage |
| unsigned long long | free_memory |
| double | memory_ratio |
| double | total_memory_ratio |
unsigned int bytertc::SysStats::cpu_cores;
cpp当前系统 CPU 核数。
double bytertc::SysStats::cpu_app_usage;
cpp当前应用的 CPU 使用率,取值范围为 [0, 1]。
double bytertc::SysStats::memory_usage;
cpp当前应用的内存使用量(单位 MB)。
unsigned long long bytertc::SysStats::full_memory;
cpp全量内存(单位MB)。
unsigned long long bytertc::SysStats::total_memory_usage;
cpp系统已使用内存(单位MB)。
unsigned long long bytertc::SysStats::free_memory;
cpp空闲可分配内存(单位MB)。
double bytertc::SysStats::memory_ratio;
cpp当前应用的内存使用率(单位 %)。
double bytertc::SysStats::total_memory_ratio;
cpp系统内存使用率(单位 %)。
enum bytertc::HttpProxyState
cppHTTP/HTTPS 代理状态
| 类型 | 说明 |
|---|---|
| kHttpInit | HTTP/HTTPS 初始化状态 |
| kHttpConnected | HTTP/HTTPS 连接成功 |
| kHttpError | HTTP/HTTPS 连接失败 |
enum bytertc::Socks5ProxyState
cppSOCKS5 代理连接状态
| 类型 | 说明 |
|---|---|
| kSocks5Init | SOCKS5 连接初始化 |
| kSocks5Connected | SOCKS5 连接成功 |
| kSocks5Error | SOCKS5 连接错误 |
| kSocks5TcpConnectFail | TCP 连接失败 |
| kSocks5TcpClose | TCP 连接关闭 |
| kSocks5ProtocolTcpFail | SOCKS 协议 TCP 协商阶段失败 |
| kSocks5ProtocolUdpFail | UDP 连接失败 |
| kSocks5AuthFail | 授权失败 |
| kSocks5Unknown | 未知状态 |
struct bytertc::CloudProxyInfo
cpp云代理信息
| 类型 | 名称 |
|---|---|
| const char* | cloud_proxy_ip |
| int | cloud_proxy_port |
const char* bytertc::CloudProxyInfo::cloud_proxy_ip;
cpp云代理服务器 IP
int bytertc::CloudProxyInfo::cloud_proxy_port;
cpp云代理服务器端口
struct bytertc::CloudProxyConfiguration
cpp云代理相关信息
| 类型 | 名称 |
|---|---|
| CloudProxyInfo* | cloud_proxies |
| int | cloud_proxy_count |
CloudProxyInfo* bytertc::CloudProxyConfiguration::cloud_proxies = nullptr;
cpp云代理信息。
int bytertc::CloudProxyConfiguration::cloud_proxy_count = 0;
cpp云代理数量。
enum bytertc::LocalProxyType
cpp本地代理的类型。
| 类型 | 说明 |
|---|---|
| kLocalProxyTypeSocks5 | Socks5 代理。选用此代理服务器,需满足 Socks5 协议标准文档的要求。 |
| kLocalProxyTypeHttpTunnel | Http 隧道代理。 |
struct bytertc::LocalProxyConfiguration
cpp本地代理配置详细信息。
| 类型 | 名称 |
|---|---|
| LocalProxyType | local_proxy_type |
| const char* | local_proxy_ip |
| int | local_proxy_port |
| const char* | local_proxy_username |
| const char* | local_proxy_password |
LocalProxyType bytertc::LocalProxyConfiguration::local_proxy_type;cpp
本地代理类型,参看 LocalProxyType。
const char* bytertc::LocalProxyConfiguration::local_proxy_ip;
cpp本地代理服务器 IP。
int bytertc::LocalProxyConfiguration::local_proxy_port;
cpp本地代理服务器端口。
const char* bytertc::LocalProxyConfiguration::local_proxy_username;
cpp本地代理用户名。
const char* bytertc::LocalProxyConfiguration::local_proxy_password;
cpp本地代理密码。
enum bytertc::LocalProxyState
cpp本地代理连接状态。
| 类型 | 说明 |
|---|---|
| kLocalProxyStateInited | TCP 代理服务器连接成功。 |
| kLocalProxyStateConnected | 本地代理连接成功。 |
| kLocalProxyStateError | 本地代理连接出现错误。 |
enum bytertc::LocalProxyError
cpp本地代理错误。
| 类型 | 说明 |
|---|---|
| kLocalProxyErrorOK | 本地代理服务器无错误。 |
| kLocalProxyErrorSocks5VersionError | 代理服务器回复的版本号不符合 Socks5 协议标准文档的规定,导致 Socks5 代理连接失败。请检查代理服务器是否存在异常。 |
| kLocalProxyErrorSocks5FormatError | 代理服务器回复的格式错误不符合 Socks5 协议标准文档的规定,导致 Socks5 代理连接失败。请检查代理服务器是否存在异常。 |
| kLocalProxyErrorSocks5InvalidValue | 代理服务器回复的字段值不符合 Socks5 协议标准文档的规定,导致 Socks5 代理连接失败。请检查代理服务器是否存在异常。 |
| kLocalProxyErrorSocks5UserPassNotGiven | 未提供代理服务器的用户名及密码,导致 Socks5 代理连接失败。请重新调用 setLocalProxy,在设置本地代理时填入用户名和密码。 |
| kLocalProxyErrorSocks5TcpClosed | TCP 关闭,导致 Socks5 代理连接失败。请检查网络或者代理服务器是否存在异常。 |
| kLocalProxyErrorHttpTunnelFailed | Http 隧道代理错误。请检查 Http 隧道代理服务器或者网络是否存在异常。 |
enum class bytertc::LocalLogLevel
cpp本地日志输出等级。
| 类型 | 说明 |
|---|---|
| kInfo | 信息级别。 |
| kWarning | (默认值)警告级别。 |
| kError | 错误级别。 |
| kNone | 关闭日志。 |
struct bytertc::LogConfig
cpp本地日志参数。
| 类型 | 名称 |
|---|---|
| const char* | log_path |
| LocalLogLevel | log_level |
| uint32_t | log_file_size |
const char* bytertc::LogConfig::log_path = nullptr;
cpp日志存储路径,必填。
LocalLogLevel bytertc::LogConfig::log_level = LocalLogLevel::kWarning;
cpp日志等级,参看 LocalLogLevel,默认为警告级别,选填。
uint32_t bytertc::LogConfig::log_file_size = 10;
cpp日志文件最大占用的总空间,单位为 MB,选填。取值范围为 1~100 MB,默认值为 10 MB。
若 log_file_size < 1,取 1 MB。若 log_file_size > 100,取 100 MB。
其中,单个日志文件最大为 2 MB:
log_file_size ≤ 2,则会生成一个日志文件。log_file_size > 2,假设 log_file_size/2 的整数部分为 N,则前 N 个文件,每个文件会写满 2 MB,第 N+1 个文件大小不超过 log_file_size mod 2,否则会删除最老的文件,以此类推。struct bytertc::PositionInfo
cpp用户在空间音频坐标系里的位置信息。
| 类型 | 名称 |
|---|---|
| Position | position |
| HumanOrientation | orientation |
Position bytertc::PositionInfo::position;cpp
用户在空间音频坐标系里的位置,需自行建立空间直角坐标系。参看 Position。
HumanOrientation bytertc::PositionInfo::orientation;cpp
用户在空间音频坐标系里的三维朝向信息。三个向量需要两两垂直。参看 HumanOrientation。
enum bytertc::TranscoderContentControlType
cpp合流输出内容类型
| 类型 | 说明 |
|---|---|
| kHasAudioAndVideo | 输出的混流包含音频和视频 |
| kHasAudioOnly | 输出的混流只包含音频 |
| kHasVideoOnly | 输出的混流只包含视频 |
class bytertc::ITranscoderParamBase
cpp合流转码参数
| 返回 | 名称 |
|---|---|
| virtual const char* | roomID |
| virtual const char* | other |
| virtual const char* | jsonContent |
| virtual int32_t | layoutRegionsSize |
| virtual const char* | backgroundColor |
| virtual void | setRoomID |
| virtual void | setJsonContent |
| virtual void | setOther |
| virtual const char* | flatten |
virtual const char* bytertc::ITranscoderParamBase::roomID()
cpp获取合流房间 ID
返回值
合流房间 ID
virtual const char* bytertc::ITranscoderParamBase::other()
cpp获取 other 数据
返回值
Other数据
virtual const char* bytertc::ITranscoderParamBase::jsonContent()
cpp获取通过 flatten 方法转换得到的 json 格式内容
返回值
json 格式数据
virtual int32_t bytertc::ITranscoderParamBase::layoutRegionsSize()
cpp获取合流参数中视窗的数量
返回值
合流参数中视窗的数量
virtual const char* bytertc::ITranscoderParamBase::backgroundColor()
cpp获取背景颜色
返回值
背景颜色
virtual void bytertc::ITranscoderParamBase::setRoomID(
const char* room_id)
cpp设置合流房间 ID
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_id | const char* | 发起合流的用户所在的房间 ID |
virtual void bytertc::ITranscoderParamBase::setJsonContent(
const char* json_content)
cpp设置 jsonContent
传入通过 flatten 方法转换得到的 json 格式内容
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| json_content | const char* | json 格式内容 |
virtual void bytertc::ITranscoderParamBase::setOther(
const char* other)
cpp设置 other 数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| other | const char* | other 数据 |
virtual const char* bytertc::ITranscoderParamBase::flatten(
const char* contentType,
const char* action)
cpp将合流参数转成 json 字符串
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| contentType | const char* | 内容属性,表明是合流信令 |
| action | const char* | 合流状态,可选取值如下: • started: 开启合流 • layoutChanged: 更新合流布局 • stopped: 停止合流 |
返回值
转换后的 json 字符串
enum bytertc::StreamMixingEvent
cpp转推直播事件
| 类型 | 说明 |
|---|---|
| kStreamMixingStart | 请求发起转推直播任务 |
| kStreamMixingStartSuccess | 发起转推直播任务成功 |
| kStreamMixingStartFailed | 发起转推直播任务失败 |
| kStreamMixingUpdate | 请求更新转推直播任务配置 |
| kStreamMixingUpdateSuccess | 成功更新转推直播任务配置 |
| kStreamMixingUpdateFailed | 更新转推直播任务配置失败 |
| kStreamMixingStop | 请求结束转推直播任务 |
| kStreamMixingStopSuccess | 结束转推直播任务成功 |
| kStreamMixingStopFailed | 结束转推直播任务失败 |
| kStreamMixingChangeMixType | 更新转推直播任务配置的请求超时 |
| kStreamMixingFirstAudioFrameByClientMix | 得到客户端合流音频首帧 |
| kStreamMixingFirstVideoFrameByClientMix | 收到客户端合流视频首帧 |
| kStreamMixingUpdateTimeout | 更新转推直播任务配置超时 |
| kStreamMixingStartTimeout | 发起转推直播任务配置超时 |
| kStreamMixingRequestParamError | 合流布局参数错误 |
| kStreamMixingMixImageEvent | 合流加图片 |
enum bytertc::MixedStreamType
cpp合流类型。(新)
| 类型 | 说明 |
|---|---|
| kMixedStreamTypeByServer | 服务端合流 |
| kMixedStreamTypeByClient | 端云一体合流。SDK 智能决策在客户端或服务端完成合流。 使用前,请联系技术支持同学开通,否则不生效。 |
enum bytertc::MixedStreamAudioProfile
cppAAC 编码规格。(新)
| 类型 | 说明 |
|---|---|
| kMixedStreamAudioProfileLC | AAC-LC 规格,默认值。 |
| kMixedStreamAudioProfileHEv1 | HE-AAC v1 规格。 |
| kMixedStreamAudioProfileHEv2 | HE-AAC v2 规格。 |
enum bytertc::MixedStreamAudioCodecType
cpp音频编码格式。(新)
| 类型 | 说明 |
|---|---|
| kMixedStreamAudioCodecTypeAAC | AAC 格式。 |
enum bytertc::MixedStreamVideoCodecType
cpp视频编码格式。(新)
| 类型 | 说明 |
|---|---|
| kMixedStreamVideoCodecTypeH264 | H.264 格式,默认值。 |
| kMixedStreamVideoCodecTypeByteVC1 | ByteVC1 格式。 |
enum bytertc::MixedStreamRenderMode
cpp图片或视频流的缩放模式。(新)
| 类型 | 说明 |
|---|---|
| kMixedStreamRenderModeHidden | 视窗填满优先,默认值。 视频尺寸等比缩放,直至视窗被填满。当视频尺寸与显示窗口尺寸不一致时,多出的视频将被截掉。 |
| kMixedStreamRenderModeFit | 视频帧内容全部显示优先。 视频尺寸等比缩放,优先保证视频内容全部显示。当视频尺寸与显示窗口尺寸不一致时,会把窗口未被填满的区域填充成背景颜色。 |
| kMixedStreamRenderModeAdaptive | 视频帧自适应画布。 视频尺寸非等比例缩放,把窗口充满。在此过程中,视频帧的长宽比例可能会发生变化。 |
enum bytertc::MixedStreamMediaType
cpp合流输出内容类型。(新)
| 类型 | 说明 |
|---|---|
| kMixedStreamMediaTypeAudioAndVideo | 输出的混流包含音频和视频 |
| kMixedStreamMediaTypeAudioOnly | 输出的混流只包含音频 |
| kMixedStreamMediaTypeVideoOnly | 输出的混流只包含视频 |
enum bytertc::MixedStreamLayoutRegionType
cpp合流布局区域类型。(新)
| 类型 | 说明 |
|---|---|
| kMixedStreamLayoutRegionTypeVideoStream | 合流布局区域类型为视频。 |
| kMixedStreamLayoutRegionTypeImage | 合流布局区域类型为图片。 |
enum bytertc::MixedStreamClientMixVideoFormat
cpp客户端合流回调视频格式。(新)
设置为系统不支持的格式时,自动回调系统默认格式。
| 类型 | 说明 |
|---|---|
| kMixedStreamClientMixVideoFormatI420 | YUV I420。Android、Windows 默认回调格式。支持系统:Android、Windows。 |
| kMixedStreamClientMixVideoFormatTexture2D | OpenGL GL_TEXTURE_2D 格式纹理。支持系统:安卓。 |
| kMixedStreamClientMixVideoFormatCVPixelBufferBGRA | CVPixelBuffer BGRA。iOS 默认回调格式。支持系统: iOS。 |
| kMixedStreamClientMixVideoFormatNV12 | YUV NV12。macOS 默认回调格式。支持系统: macOS。 |
enum bytertc::MixedStreamVideoType
cppregion 中流的类型属性
| 类型 | 说明 |
|---|---|
| kMixedStreamVideoTypeMain | 主流。包括: + 由摄像头/麦克风通过内部采集机制,采集到的流 + 通过自定义采集,采集到的流。 |
| kMixedStreamVideoTypeScreen | 屏幕流。 |
typedef struct bytertc::MixedStreamAudioConfig
cpp音频合流配置参数。(新)
值不合法或未设置时,自动使用默认值。
| 类型 | 名称 |
|---|---|
| int32_t | sample_rate |
| int32_t | channels |
| int32_t | bitrate |
| MixedStreamAudioProfile | audio_profile |
| MixedStreamAudioCodecType | audio_codec |
int32_t bytertc::MixedStreamAudioConfig::sample_rate = 48000;
cpp音频采样率,单位 Hz。可取 32000 Hz、44100 Hz、48000 Hz,默认值为 48000 Hz。建议设置。
int32_t bytertc::MixedStreamAudioConfig::channels = 2;
cpp音频声道数。可取 1(单声道)、2(双声道),默认值为 2。建议设置。
int32_t bytertc::MixedStreamAudioConfig::bitrate = 64;
cpp音频码率,单位 Kbps。可取范围 [32, 192],默认值为 64 Kbps。建议设置。
MixedStreamAudioProfile bytertc::MixedStreamAudioConfig::audio_profile = MixedStreamAudioProfile::kMixedStreamAudioProfileLC;
cppAAC 编码规格,参看 MixedStreamAudioProfile。默认值为 0。建议设置。
MixedStreamAudioCodecType bytertc::MixedStreamAudioConfig::audio_codec = MixedStreamAudioCodecType::kMixedStreamAudioCodecTyp/;"
cpp音频编码格式,参看 MixedStreamAudioCodecType。默认值为 0。建议设置。
typedef struct bytertc::MixedStreamVideoConfig
cpp视频合流配置参数。(新)
值不合法或未设置时,自动使用默认值。
| 类型 | 名称 |
|---|---|
| int32_t | width |
| int32_t | height |
| int32_t | fps |
| int32_t | gop |
| int32_t | bitrate |
| MixedStreamVideoCodecType | video_codec |
| bool | enable_Bframe |
int32_t bytertc::MixedStreamVideoConfig::width = 360;
cpp合流视频宽度。单位为 px,范围为 [2, 1920],必须是偶数。默认值为 360 px。建议设置。
设置值为非偶数时,自动向上取偶数。
int32_t bytertc::MixedStreamVideoConfig::height = 640;
cpp合流视频高度。单位为 px,范围为 [2, 1920],必须是偶数。默认值为 640 px。建议设置。
设置值为非偶数时,自动向上取偶数。
int32_t bytertc::MixedStreamVideoConfig::fps = 15;
cpp合流视频帧率。单位为 FPS,取值范围为 [1,60],默认值为 15 FPS。建议设置。
int32_t bytertc::MixedStreamVideoConfig::gop = 2;
cpp视频 I 帧时间间隔。单位为秒,取值范围为 [1, 5],默认值为 2 秒。建议设置。
本参数不支持过程中更新。
int32_t bytertc::MixedStreamVideoConfig::bitrate = 500;
cpp合流视频码率。单位为 Kbps,取值范围为 [1,10000],默认值为自适应模式。建议设置。
MixedStreamVideoCodecType bytertc::MixedStreamVideoConfig::video_codec = MixedStreamVideoCodecType::kMixedStreamVideoCodecTyp/;"
cpp视频编码格式,参看 MixedStreamVideoCodecType。默认值为 0。
本参数不支持过程中更新。建议设置。
bool bytertc::MixedStreamVideoConfig::enable_Bframe = false;
cpp是否在合流中开启B帧,仅服务端合流支持:
typedef struct bytertc::MixedStreamClientMixConfig
cpp客户端合流参数。(新)
| 类型 | 名称 |
|---|---|
| bool | use_audio_mixer |
| MixedStreamClientMixVideoFormat | video_format |
bool bytertc::MixedStreamClientMixConfig::use_audio_mixer = true;
cpp客户端合流是否使用混音,默认为 true。
MixedStreamClientMixVideoFormat bytertc::MixedStreamClientMixConfig::video_format;cpp
客户端合流回调视频格式,参看 MixedStreamClientMixVideoFormat。
typedef struct bytertc::MixedStreamLayoutRegionImageWaterMarkConfig
cpp图片合流相关参数。(新)
| 类型 | 名称 |
|---|---|
| int | image_width |
| int | image_height |
int bytertc::MixedStreamLayoutRegionImageWaterMarkConfig::image_width = 0;
cpp原始图片的宽度,单位为 px。
int bytertc::MixedStreamLayoutRegionImageWaterMarkConfig::image_height = 0;
cpp原始图片的高度,单位为 px。
typedef struct bytertc::MixedStreamSpatialAudioConfig
cpp推流 CDN 的空间音频参数。(新)
| 类型 | 名称 |
|---|---|
| bool | enable_spatial_render |
| Position | audience_spatial_position |
| HumanOrientation | audience_spatial_orientation |
bool bytertc::MixedStreamSpatialAudioConfig::enable_spatial_render;
cpp是否开启推流 CDN 时的空间音频效果。
注意:
当你启用此效果时,你需要设定推流中各个 MixedStreamLayoutRegionConfig 的 spatial_position 值,实现空间音频效果。
当你启用此效果时,你需要设定推流中各个 MixedStreamLayoutRegionConfig 的 spatial_position 值,实现空间音频效果。
Position bytertc::MixedStreamSpatialAudioConfig::audience_spatial_position;cpp
听众的空间位置。参看 Position。
听众指收听来自 CDN 的音频流的用户。
HumanOrientation bytertc::MixedStreamSpatialAudioConfig::audience_spatial_orientation;cpp
听众的空间朝向。参看 HumanOrientation。
听众指收听来自 CDN 的音频流的用户。
typedef struct bytertc::MixedStreamLayoutRegionConfig
cpp单个图片或视频流在合流中的布局信息。(新)
开启合流功能后,在多路图片或视频流合流时,你可以设置其中一路流在合流中的预设布局信息。
| 类型 | 名称 |
|---|---|
| const char* | region_id |
| const char* | room_id |
| float | location_x |
| float | location_y |
| float | width_proportion |
| float | height_proportion |
| float | alpha |
| float | corner_radius |
| int32_t | z_order |
| bool | is_local_user |
| MixedStreamVideoType | stream_type |
| MixedStreamMediaType | media_type |
| MixedStreamRenderMode | render_mode |
| MixedStreamLayoutRegionType | region_content_type |
| uint8_t* | image_water_mark |
| MixedStreamLayoutRegionImageWaterMarkConfig | image_water_mark_param |
| Position | spatial_position |
| bool | apply_spatial_audio |
const char* bytertc::MixedStreamLayoutRegionConfig::region_id = nullptr;
cpp合流用户的 ID。建议设置。
const char* bytertc::MixedStreamLayoutRegionConfig::room_id = nullptr;
cpp图片或视频流所在房间的房间 ID。建议设置。
如果此图片或视频流是通过 startForwardStreamToRooms 转发到你所在房间的媒体流时,你应将房间 ID 设置为你所在的房间 ID。
float bytertc::MixedStreamLayoutRegionConfig::location_x = 0.0f;
cpp视频流对应区域左上角的横坐标相对整体画面的归一化比例,取值的范围为 [0.0, 1.0)。默认值为 0.0。建议设置。
float bytertc::MixedStreamLayoutRegionConfig::location_y = 0.0f;
cpp视频流对应区域左上角的纵坐标相对整体画面的归一化比例,取值的范围为 [0.0, 1.0)。默认值为 0.0。建议设置。
float bytertc::MixedStreamLayoutRegionConfig::width_proportion = 1.0f;
cpp视频流对应区域宽度相对整体画面的归一化比例,取值的范围为 [0.0, 1.0]。默认值为 1.0。建议设置。
float bytertc::MixedStreamLayoutRegionConfig::height_proportion = 1.0f;
cpp视频流对应区域高度相对整体画面的归一化比例,取值的范围为 [0.0, 1.0]。默认值为 1.0。建议设置。
float bytertc::MixedStreamLayoutRegionConfig::alpha = 1.0f;
cpp透明度,可选范围为 (0.0, 1.0],0.0 为全透明。默认值为 1.0。
float bytertc::MixedStreamLayoutRegionConfig::corner_radius = 0;
cpp圆角半径相对画布宽度的比例。默认值为 0.0。
注意:
做范围判定时,首先根据画布的宽高,将 width,height,和 corner_radius 分别转换为像素值:width_px,height_px,和 corner_radius_px。然后判定是否满足 corner_radius_px < min(width_px/2, height_px/2):若满足,则设置成功;若不满足,则将 corner_radius_px 设定为 min(width_px/2, height_px/2),然后将 corner_radius 设定为 corner_radius_px 相对画布宽度的比例值。
做范围判定时,首先根据画布的宽高,将 width,height,和 corner_radius 分别转换为像素值:width_px,height_px,和 corner_radius_px。然后判定是否满足 corner_radius_px < min(width_px/2, height_px/2):若满足,则设置成功;若不满足,则将 corner_radius_px 设定为 min(width_px/2, height_px/2),然后将 corner_radius 设定为 corner_radius_px 相对画布宽度的比例值。
int32_t bytertc::MixedStreamLayoutRegionConfig::z_order = 0;
cpp用户视频布局在画布中的层级。取值范围为 [0 - 100],0 为底层,值越大越上层。默认值为 0。
bool bytertc::MixedStreamLayoutRegionConfig::is_local_user = false;
cpp是否为本地用户:
MixedStreamVideoType bytertc::MixedStreamLayoutRegionConfig::stream_type = MixedStreamVideoType::kMixedStreamVideoTypeMain;
cpp是否为屏幕流:
MixedStreamMediaType bytertc::MixedStreamLayoutRegionConfig::media_type = MixedStreamMediaType::kMixedStreamMediaTypeAudioAndVideo;
cpp合流内容控制。默认值为 kMediaTypeAudioAndVideo,参看 MixedStreamMediaType。
MixedStreamRenderMode bytertc::MixedStreamLayoutRegionConfig::render_mode = MixedStreamRenderMode::kMixedStreamRenderModeHidden;
cpp图片或视频流的缩放模式,参看 MixedStreamRenderMode。默认值为 1。建议设置。
MixedStreamLayoutRegionType bytertc::MixedStreamLayoutRegionConfig::region_content_type = MixedStreamLayoutRegionType:: kMixedStrea/;"
cpp合流布局区域类型,参看 MixedStreamLayoutRegionType。
uint8_t* bytertc::MixedStreamLayoutRegionConfig::image_water_mark = nullptr;
cpp图片合流布局区域类型对应的数据。类型为图片时传入图片 RGBA 数据,当类型为视频流时传空。
MixedStreamLayoutRegionImageWaterMarkConfig bytertc::MixedStreamLayoutRegionConfig::image_water_mark_param;cpp
合流布局区域数据的对应参数。当类型为视频流时传空,类型为图片时传入对应图片的参数,参看 MixedStreamLayoutRegionImageWaterMarkConfig。
Position bytertc::MixedStreamLayoutRegionConfig::spatial_position;cpp
空间位置。参看 Position。
bool bytertc::MixedStreamLayoutRegionConfig::apply_spatial_audio = true;
cppenum bytertc::StreamMixingType
cpp合流类型
| 类型 | 说明 |
|---|---|
| kStreamMixingTypeByServer | 服务端合流。 |
| kStreamMixingTypeByClient | 端云一体合流。SDK 智能决策在客户端或服务端完成合流。 |
enum bytertc::TranscoderAudioCodecProfile
cppAAC 编码规格。
| 类型 | 说明 |
|---|---|
| kByteAACProfileLC | AAC-LC 规格,默认值。 |
| kByteAACProfileHEv1 | HE-AAC v1 规格。 |
| kByteAACProfileHEv2 | HE-AAC v2 规格。 |
enum bytertc::TranscoderAudioCodecType
cpp音频编码格式。
| 类型 | 说明 |
|---|---|
| kTranscodeAudioCodecAAC | AAC 格式。 |
enum bytertc::TranscoderVideoCodecType
cpp视频编码格式。
| 类型 | 说明 |
|---|---|
| kTranscodeVideoCodecH264 | H.264 格式,默认值。 |
| kTranscodeVideoCodecH265 | ByteVC1 格式。 |
enum bytertc::TranscoderRenderMode
cpp图片或视频流的缩放模式。
| 类型 | 说明 |
|---|---|
| kRenderHidden | 视窗填满优先,默认值。 视频尺寸等比缩放,直至视窗被填满。当视频尺寸与显示窗口尺寸不一致时,多出的视频将被截掉。 |
| kRenderFit | 视频帧内容全部显示优先。 视频尺寸等比缩放,优先保证视频内容全部显示。当视频尺寸与显示窗口尺寸不一致时,会把窗口未被填满的区域填充成背景颜色。 |
| kRenderAdaptive | 视频帧自适应画布。 视频尺寸非等比例缩放,把窗口充满。在此过程中,视频帧的长宽比例可能会发生变化。 |
| [deprecated] kRenderUnknown |
enum bytertc::TranscoderLayoutRegionType
cpp合流布局区域类型
| 类型 | 说明 |
|---|---|
| kLayoutRegionTypeVideoStream | 合流布局区域类型为视频。 |
| kLayoutRegionTypeImage | 合流布局区域类型为图片。 |
typedef struct bytertc::TranscoderLayoutRegionDataParam
cpp图片合流相关参数
| 类型 | 名称 |
|---|---|
| int | image_width |
| int | image_height |
int bytertc::TranscoderLayoutRegionDataParam::image_width = 0;
cpp原始图片的宽度,单位为 px。
int bytertc::TranscoderLayoutRegionDataParam::image_height = 0;
cpp原始图片的高度,单位为 px。
enum bytertc::TranscoderClientMixVideoFormat
cpp客户端合流回调视频格式。设置为系统不支持的格式时,自动回调系统默认格式。
| 类型 | 说明 |
|---|---|
| kClientMixVideoFormatI420 | YUV I420。Android、Windows 默认回调格式。支持系统:Android、Windows。 |
| kClientMixVideoFormatTexture2D | OpenGL GL_TEXTURE_2D 格式纹理。支持系统:安卓。 |
| kClientMixVideoFormatCVPixelBufferBGRA | CVPixelBuffer BGRA。iOS 默认回调格式。支持系统: iOS。 |
| kClientMixVideoFormatNV12 | YUV NV12。macOS 默认回调格式。支持系统: macOS。 |
enum bytertc::DataFrameType
cpp数据帧类型
| 类型 | 说明 |
|---|---|
| kDataFrameTypeSei | SEI 视频帧 |
typedef struct bytertc::IDataFrame
cpp数据帧
| 类型 | 名称 |
|---|---|
| DataFrameType | frame_type |
| uint8_t* | u8_data |
| uint32_t | u32_data_size |
| uint64_t | u64_ts_us |
DataFrameType bytertc::IDataFrame::frame_type = kDataFrameTypeSei;cpp
数据帧类型,参看 DataFrameType
uint8_t* bytertc::IDataFrame::u8_data = nullptr;
cpp数据帧数据
uint32_t bytertc::IDataFrame::u32_data_size = 0;
cpp数据帧数据大小
uint64_t bytertc::IDataFrame::u64_ts_us = 0;
cpp数据帧时间戳,单位:微秒
typedef struct bytertc::TranscoderLayoutRegion
cpp单个图片或视频流在合流中的布局信息。
开启转推直播功能后,在多路图片或视频流合流时,你可以设置其中一路流在合流中的预设布局信息。
| 类型 | 名称 |
|---|---|
| const char* | region_id |
| const char* | room_id |
| float | x |
| float | y |
| float | width |
| float | height |
| float | alpha |
| float | corner_radius |
| 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 |
| Position | spatial_position |
| bool | apply_spatial_audio |
const char* bytertc::TranscoderLayoutRegion::region_id = nullptr;
cpp合流用户的 ID。必填。
const char* bytertc::TranscoderLayoutRegion::room_id = nullptr;
cpp图片或视频流所在房间的房间 ID。必填。
如果此图片或视频流是通过 startForwardStreamToRooms 转发到你所在房间的媒体流时,你应将房间 ID 设置为你所在的房间 ID。
float bytertc::TranscoderLayoutRegion::x = 0.0f;
cpp视频流对应区域左上角的横坐标相对整体画面的归一化比例,取值的范围为 [0.0, 1.0)。默认值为 0.0。
float bytertc::TranscoderLayoutRegion::y = 0.0f;
cpp视频流对应区域左上角的纵坐标相对整体画面的归一化比例,取值的范围为 [0.0, 1.0)。默认值为 0.0。
float bytertc::TranscoderLayoutRegion::width = 1.0f;
cpp视频流对应区域宽度相对整体画面的归一化比例,取值的范围为 [0.0, 1.0]。默认值为 1.0。
float bytertc::TranscoderLayoutRegion::height = 1.0f;
cpp视频流对应区域高度相对整体画面的归一化比例,取值的范围为 [0.0, 1.0]。默认值为 1.0。
float bytertc::TranscoderLayoutRegion::alpha = 1.0f;
cpp(仅服务端合流支持设置)透明度,可选范围为 (0.0, 1.0],0.0 为全透明。默认值为 1.0。
float bytertc::TranscoderLayoutRegion::corner_radius = 0;
cpp(仅服务端合流支持设置)圆角半径相对画布宽度的比例。默认值为 0.0。
注意:
做范围判定时,首先根据画布的宽高,将 width,height,和 corner_radius 分别转换为像素值:width_px,height_px,和 corner_radius_px。然后判定是否满足 corner_radius_px < min(width_px/2, height_px/2):若满足,则设置成功;若不满足,则将 corner_radius_px 设定为 min(width_px/2, height_px/2),然后将 corner_radius 设定为 corner_radius_px 相对画布宽度的比例值。
做范围判定时,首先根据画布的宽高,将 width,height,和 corner_radius 分别转换为像素值:width_px,height_px,和 corner_radius_px。然后判定是否满足 corner_radius_px < min(width_px/2, height_px/2):若满足,则设置成功;若不满足,则将 corner_radius_px 设定为 min(width_px/2, height_px/2),然后将 corner_radius 设定为 corner_radius_px 相对画布宽度的比例值。
int32_t bytertc::TranscoderLayoutRegion::i32_z_order = 0;
cpp用户视频布局在画布中的层级。取值范围为 [0 - 100],0 为底层,值越大越上层。默认值为 0。
bool bytertc::TranscoderLayoutRegion::local_user = false;
cpp是否为本地用户:
bool bytertc::TranscoderLayoutRegion::screen_stream = false;
cpp(仅服务端合流支持合屏幕流)是否为屏幕流:
TranscoderContentControlType bytertc::TranscoderLayoutRegion::content_control = kHasAudioAndVideo;cpp
(仅服务端合流支持设置)合流内容控制。默认值为 kHasAudioAndVideo,参看 TranscoderContentControlType。
TranscoderRenderMode bytertc::TranscoderLayoutRegion::render_mode = kRenderHidden;cpp
图片或视频流的缩放模式,参看 TranscoderRenderMode。默认值为 1。
TranscoderLayoutRegionType bytertc::TranscoderLayoutRegion::type = kLayoutRegionTypeVideoStream;
cpp合流布局区域类型,参看 TranscoderLayoutRegionType。
uint8_t* bytertc::TranscoderLayoutRegion::data = nullptr;
cpp图片合流布局区域类型对应的数据。类型为图片时传入图片 RGBA 数据,当类型为视频流时传空。
TranscoderLayoutRegionDataParam bytertc::TranscoderLayoutRegion::data_param;cpp
合流布局区域数据的对应参数。当类型为视频流时传空,类型为图片时传入对应图片的参数,参看 TranscoderLayoutRegionDataParam。
Position bytertc::TranscoderLayoutRegion::spatial_position;cpp
空间位置。参看 Position。
bool bytertc::TranscoderLayoutRegion::apply_spatial_audio = true;
cpptypedef struct bytertc::TranscoderAudioParam
cpp音频转码配置参数。值不合法或未设置时,自动使用默认值。
| 类型 | 名称 |
|---|---|
| int32_t | i32_sample_rate |
| int32_t | i32_channel_num |
| int32_t | i32_bitrate_kbps |
| TranscoderAudioCodecProfile | audio_codec_profile |
| TranscoderAudioCodecType | audio_codec_type |
int32_t bytertc::TranscoderAudioParam::i32_sample_rate = 48000;
cpp音频采样率,单位 Hz。可取 32000 Hz、44100 Hz、48000 Hz,默认值为 48000 Hz。
int32_t bytertc::TranscoderAudioParam::i32_channel_num = 2;
cpp音频声道数。可取 1(单声道)、2(双声道),默认值为 2。
int32_t bytertc::TranscoderAudioParam::i32_bitrate_kbps = 64;
cpp音频码率,单位 Kbps。可取范围 [32, 192],默认值为 64 Kbps。
TranscoderAudioCodecProfile bytertc::TranscoderAudioParam::audio_codec_profile = kByteAACProfileLC;cpp
AAC 编码规格,参看 TranscoderAudioCodecProfile。默认值为 0。
TranscoderAudioCodecType bytertc::TranscoderAudioParam::audio_codec_type = kTranscodeAudioCodecAAC;cpp
音频编码格式,参看 TranscoderAudioCodecType。默认值为 0。
typedef struct bytertc::TranscoderVideoParam
cpp视频转码配置参数。值不合法或未设置时,自动使用默认值。
| 类型 | 名称 |
|---|---|
| int32_t | i32_width |
| int32_t | i32_height |
| int32_t | i32_fps |
| int32_t | i32_gop |
| int32_t | i32_bitrate_kbps |
| TranscoderVideoCodecType | video_codec_type |
| bool | bFrame |
int32_t bytertc::TranscoderVideoParam::i32_width = 360;
cpp合流视频宽度。单位为 px,范围为 [2, 1920],必须是偶数。默认值为 360 px。
设置值为非偶数时,自动向上取偶数。
int32_t bytertc::TranscoderVideoParam::i32_height = 640;
cpp合流视频高度。单位为 px,范围为 [2, 1920],必须是偶数。默认值为 640 px。
设置值为非偶数时,自动向上取偶数。
int32_t bytertc::TranscoderVideoParam::i32_fps = 15;
cpp合流视频帧率。单位为 FPS,取值范围为 [1,60],默认值为 15 FPS。
int32_t bytertc::TranscoderVideoParam::i32_gop = 2;
cpp视频 I 帧时间间隔。单位为秒,取值范围为 [1, 5],默认值为 2 秒。
本参数不支持过程中更新。
int32_t bytertc::TranscoderVideoParam::i32_bitrate_kbps = 500;
cpp合流视频码率。单位为 Kbps,取值范围为 [1,10000],默认值为自适应模式。
TranscoderVideoCodecType bytertc::TranscoderVideoParam::video_codec_type = kTranscodeVideoCodecH264;cpp
视频编码格式,参看 TranscoderVideoCodecType。默认值为 0。
本参数不支持过程中更新。
bool bytertc::TranscoderVideoParam::bFrame = false;
cpp是否在合流中开启B帧,仅服务端合流支持:
typedef struct bytertc::TranscoderClientMixParam
cpp客户端合流参数。
| 类型 | 名称 |
|---|---|
| bool | client_mix_use_original_frame |
| bool | client_mix_use_audio_mixer |
| TranscoderClientMixVideoFormat | client_mix_video_format_ |
bool bytertc::TranscoderClientMixParam::client_mix_use_original_frame = false;
cpp是否使用原始视频帧。默认为 False。
bool bytertc::TranscoderClientMixParam::client_mix_use_audio_mixer = true;
cpp客户端合流是否使用音频混音,默认为 true。
TranscoderClientMixVideoFormat bytertc::TranscoderClientMixParam::client_mix_video_format_;cpp
客户端合流回调视频格式,参看 TranscoderClientMixVideoFormat。
typedef struct bytertc::TranscoderSpatialConfig
cpp推流 CDN 的空间音频参数。
| 类型 | 名称 |
|---|---|
| bool | enable_spatial_render |
| Position | audience_spatial_position |
| HumanOrientation | audience_spatial_orientation |
bool bytertc::TranscoderSpatialConfig::enable_spatial_render;
cpp是否开启推流 CDN 时的空间音频效果。
注意:
当你启用此效果时,你需要设定推流中各个 TranscoderLayoutRegion 的 spatial_position 值,实现空间音频效果。
当你启用此效果时,你需要设定推流中各个 TranscoderLayoutRegion 的 spatial_position 值,实现空间音频效果。
Position bytertc::TranscoderSpatialConfig::audience_spatial_position;cpp
听众的空间位置。参看 Position。
听众指收听来自 CDN 的音频流的用户。
HumanOrientation bytertc::TranscoderSpatialConfig::audience_spatial_orientation;cpp
听众的空间朝向。参看 HumanOrientation。
听众指收听来自 CDN 的音频流的用户。
class bytertc::ITranscoderParam
cpp转推直播配置参数。
| 返回 | 名称 |
|---|---|
| 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 TranscoderClientMixParam | clientMixParam |
| virtual void | setExpectedMixingType |
| virtual void | setUserID |
| virtual void | setUri |
| virtual void | setAudioParam |
| virtual void | setVideoParam |
| virtual void | setLayoutParam |
| virtual ITranscoderParam* | inflatten |
| virtual ITranscoderParam* | defaultTranscoding |
virtual StreamMixingType bytertc::ITranscoderParam::expectedMixingType()
cpp获取合流类型。
返回值
合流类型,参看 StreamMixingType
注意
本参数不支持过程中更新。
virtual const char* bytertc::ITranscoderParam::userID()
cpp获取推流用户 ID。
返回值
推流用户 ID。
virtual const char* bytertc::ITranscoderParam::uri()
cpp获取推流 CDN 地址。
返回值
推流地址。
virtual const char* bytertc::ITranscoderParam::appData()
cpp获取 SEI 信息。
返回值
SEI 信息。
virtual TranscoderAudioParam bytertc::ITranscoderParam::audioParam()
cpp获取合流音频参数。
返回值
合流音频参数内容,参看 TranscoderAudioParam。
virtual TranscoderVideoParam bytertc::ITranscoderParam::videoParam()
cpp获取合流视频转码参数。
返回值
合流视频转码参数内容,参看 TranscoderVideoParam。
virtual TranscoderLayoutRegion bytertc::ITranscoderParam::layoutRegionByIndex(
int32_t index)
cpp获取合流视窗布局信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | int32_t | 视窗对应下标。 |
返回值
合流视窗布局信息,参看 TranscoderLayoutRegion。
virtual TranscoderClientMixParam bytertc::ITranscoderParam::clientMixParam()
cppAvailable since 3.50
获取客户端合流信息。
返回值
客户端合流信息,参看 TranscoderClientMixParam。
virtual void bytertc::ITranscoderParam::setExpectedMixingType(
StreamMixingType expected_mix_type)
cpp设置合流类型。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| expected_mix_type | StreamMixingType | 合流类型,参看 StreamMixingType |
virtual void bytertc::ITranscoderParam::setUserID(
const char* user_id)
cpp设置推流用户 ID。room_id 和 user_id 长度相加不得超过 126 字节。
本参数不支持过程中更新。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 推流用户 ID。 |
virtual void bytertc::ITranscoderParam::setUri(
const char* uri)
cpp设置推流 CDN 地址。仅支持 RTMP 协议,Url 必须满足正则 /^rtmps?:\/\//。
本参数不支持过程中更新。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uri | const char* | 推流地址。 |
virtual void bytertc::ITranscoderParam::setAudioParam(
const TranscoderAudioParam&)
cpp设置音频参数。参看 TranscoderAudioParam。
本参数不支持过程中更新。
virtual void bytertc::ITranscoderParam::setVideoParam(
const TranscoderVideoParam&)
cpp设置视频参数。参看 TranscoderVideoParam。
virtual void bytertc::ITranscoderParam::setLayoutParam(
TranscoderLayoutRegion regions[],
int32_t regions_size,
const char* bg_color,
const char* app_data)
cpp设置视频流合流整体布局信息。建议设置。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| regions[] | TranscoderLayoutRegion | 用户布局信息列表。为 TranscoderLayoutRegion 数据类型的数组。每一个该类型对象为一路单独的视频流的布局信息。 值不合法或未设置时,自动使用默认值。建议设置。 |
| regions_size | int32_t | 合流视窗数量。建议设置。 |
| bg_color | const char* | 合流背景颜色,用十六进制颜色码(HEX)表示。例如,#FFFFFF 表示纯白,#000000 表示纯黑。默认值为 #000000。 值不合法或未设置时,自动使用默认值。建议设置。 |
| app_data | const char* | 透传的 App 数据,长度不超过 4 KB。 |
virtual ITranscoderParam* bytertc::ITranscoderParam::inflatten(
const char* json_str)
cpp将输入的 json 格式的字符串转成 ITranscoderParam 结构体
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| json_str | const char* | json 格式字符串 |
返回值
转换后的 ITranscoderParam 结构体
virtual ITranscoderParam* bytertc::ITranscoderParam::defaultTranscoding()
cpp获取默认的合流转推参数
返回值
生成的 ITranscoderParam 结构体
class bytertc::IMixedStreamConfig
cpp转推直播配置参数。(新)
| 返回 | 名称 |
|---|---|
| virtual MixedStreamType | getExpectedMixingType |
| virtual const char* | getUserID |
| virtual const char* | getPushURL |
| virtual const char* | getUserConfigExtraInfo |
| virtual MixedStreamAudioConfig | getAudioConfig |
| virtual MixedStreamVideoConfig | getVideoConfig |
| virtual MixedStreamLayoutRegionConfig | getLayoutByIndex |
| virtual MixedStreamClientMixConfig | getClientMixConfig |
| virtual void | setExpectedMixingType |
| virtual void | setUserID |
| virtual void | setPushURL |
| virtual void | setAudioConfig |
| virtual void | setVideoConfig |
| virtual void | setLayoutConfig |
| virtual void | setClientMixConfig |
| virtual IMixedStreamConfig* | defaultMixedStreamConfig |
virtual MixedStreamType bytertc::IMixedStreamConfig::getExpectedMixingType()
cpp获取合流类型。
返回值
合流类型,参看 MixedStreamType
virtual const char* bytertc::IMixedStreamConfig::getUserID()
cpp获取推流用户 ID。
返回值
推流用户 ID。
virtual const char* bytertc::IMixedStreamConfig::getPushURL()
cpp获取推流 CDN 地址。
返回值
推流地址。
virtual const char* bytertc::IMixedStreamConfig::getUserConfigExtraInfo()
cpp获取用户配置的额外信息。
返回值
UserConfigExtraInfo 信息。
virtual MixedStreamAudioConfig bytertc::IMixedStreamConfig::getAudioConfig()
cpp获取合流音频参数。
返回值
合流音频参数内容,参看 MixedStreamAudioConfig。
virtual MixedStreamVideoConfig bytertc::IMixedStreamConfig::getVideoConfig()
cpp获取合流视频转码参数。
返回值
合流视频转码参数内容,参看 MixedStreamVideoConfig。
virtual MixedStreamLayoutRegionConfig bytertc::IMixedStreamConfig::getLayoutByIndex(
int32_t index)
cpp获取合流视窗布局信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | int32_t | 视窗对应下标。 |
返回值
合流视窗布局信息,参看 MixedStreamLayoutRegionConfig。
virtual MixedStreamClientMixConfig bytertc::IMixedStreamConfig::getClientMixConfig()
cpp获取客户端合流信息。
返回值
客户端合流信息,参看 MixedStreamClientMixConfig。
virtual void bytertc::IMixedStreamConfig::setExpectedMixingType(
MixedStreamType expected_mix_type)
cpp设置合流类型。建议设置。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| expected_mix_type | MixedStreamType | 合流类型,参看 MixedStreamType |
virtual void bytertc::IMixedStreamConfig::setUserID(
const char* user_id)
cpp设置推流用户 ID。room_id 和 user_id 长度相加不得超过 126 字节。建议设置。
本参数不支持过程中更新。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 推流用户 ID。 |
virtual void bytertc::IMixedStreamConfig::setPushURL(
const char* push_url)
cpp设置推流 CDN 地址。仅支持 RTMP 协议,Url 必须满足正则 /^rtmps?:\/\//。建议设置。
本参数不支持过程中更新。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| url | const char push_* | 推流地址。 |
virtual void bytertc::IMixedStreamConfig::setAudioConfig(
const MixedStreamAudioConfig&)
cpp设置音频参数。参看 MixedStreamAudioConfig。建议设置。
本参数不支持过程中更新。
virtual void bytertc::IMixedStreamConfig::setVideoConfig(
const MixedStreamVideoConfig&)
cpp设置视频参数。参看 MixedStreamVideoConfig。建议设置。
virtual void bytertc::IMixedStreamConfig::setLayoutConfig(
MixedStreamLayoutRegionConfig regions[],
int32_t regions_size,
const char* background_color,
const char* user_extra_info)
cpp设置视频流合流整体布局信息。建议设置。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| regions[] | MixedStreamLayoutRegionConfig | 用户布局信息列表。为 MixedStreamLayoutRegionConfig 数据类型的数组。每一个该类型对象为一路单独的视频流的布局信息。 值不合法或未设置时,自动使用默认值。 |
| regions_size | int32_t | 合流视窗数量。 |
| background_color | const char* | 合流背景颜色,用十六进制颜色码(HEX)表示。例如,#FFFFFF 表示纯白,#000000 表示纯黑。默认值为 #000000。 值不合法或未设置时,自动使用默认值。 |
| user_extra_info | const char* | 透传的 App 数据。 |
virtual void bytertc::IMixedStreamConfig::setClientMixConfig(
MixedStreamClientMixConfig&)
cpp设置客户端合流信息,参看 MixedStreamClientMixConfig。
virtual IMixedStreamConfig* bytertc::IMixedStreamConfig::defaultMixedStreamConfig()
cpp获取默认的合流转推参数
返回值
生成的 IMixedStreamConfig 结构体
typedef struct bytertc::PushSingleStreamParam
cpp单流转推直播配置参数。
| 类型 | 名称 |
|---|---|
| const char* | room_id |
| const char* | user_id |
| const char* | uri |
| const bool | is_screen_stream |
const char* bytertc::PushSingleStreamParam::room_id;
cpp媒体流所在的房间 ID
const char* bytertc::PushSingleStreamParam::user_id;
cpp媒体流所属的用户 ID
const char* bytertc::PushSingleStreamParam::uri;
cpp推流 CDN 地址。仅支持 RTMP 协议,Url 必须满足正则 /^rtmps?:\/\//。
本参数不支持过程中更新。
const bool bytertc::PushSingleStreamParam::is_screen_stream;
cpp媒体流是否为屏幕流。
enum bytertc::RenderMode
cpp渲染模式
| 类型 | 说明 |
|---|---|
| kRenderModeHidden | 视窗填满优先,默认值。 视频帧等比缩放,直至视窗被视频填满。如果视频帧长宽比例与视窗不同,视频帧的多出部分将无法显示。 缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长大于等于视窗对应边长。 |
| kRenderModeFit | 视频帧内容全部显示优先。 视频帧等比缩放,直至视频帧能够在视窗上全部显示。如果视频帧长宽比例与视窗不同,视窗上未被视频帧填满区域将被涂黑。 缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长小于等于视窗对应边长。 |
| kRenderModeFill | 视频帧自适应画布。 视频帧非等比缩放,直至画布被填满。在此过程中,视频帧的长宽比例可能会发生变化。 |
enum bytertc::SubscribeMediaType
cpp订阅媒体的类型
| 类型 | 说明 |
|---|---|
| kRTCSubscribeMediaTypeNone | 既不订阅音频,也不订阅视频 |
| kRTCSubscribeMediaTypeAudioOnly | 只订阅音频,不订阅视频 |
| kRTCSubscribeMediaTypeVideoOnly | 只订阅视频,不订阅音频 |
| kRTCSubscribeMediaTypeVideoAndAudio | 同时订阅音频和视频 |
enum bytertc::PauseResumeControlMediaType
cpp暂停/恢复接收远端的媒体流类型。
| 类型 | 说明 |
|---|---|
| kRTCPauseResumeControlMediaTypeAudio | 只控制音频,不影响视频 |
| kRTCPauseResumeControlMediaTypeVideo | 只控制视频,不影响音频 |
| kRTCPauseResumeControlMediaTypeVideoAndAudio | 同时控制音频和视频 |
enum bytertc::SVCLayer
cpp时域分层定义
| 类型 | 说明 |
|---|---|
| kSVCLayerDefault | 不指定分层(默认值) |
| kSVCLayerBase | T0层 |
| kSVCLayerMain | T0+T1层 |
| kSVCLayerHigh | T0+T1+T2层 |
struct bytertc::RemoteStreamSwitch
cpp流切换信息。本地用户订阅的远端流触发回退策略时的流切换信息。
| 类型 | 名称 |
|---|---|
| const char* | uid |
| bool | is_screen |
| int | before_video_index |
| int | after_video_index |
| bool | before_enable |
| bool | after_enable |
| FallbackOrRecoverReason | reason |
const char* bytertc::RemoteStreamSwitch::uid;
cpp订阅的音视频流的发布者的用户 ID。
bool bytertc::RemoteStreamSwitch::is_screen;
cpp是否是屏幕流。
int bytertc::RemoteStreamSwitch::before_video_index;
cpp流切换前本地用户订阅的视频流的分辨率对应的索引。
int bytertc::RemoteStreamSwitch::after_video_index;
cpp流切换后本地用户订阅的视频流的分辨率对应的索引。
bool bytertc::RemoteStreamSwitch::before_enable;
cpp流切换前是否有视频流。
bool bytertc::RemoteStreamSwitch::after_enable;
cpp流切换后是否有视频流。
FallbackOrRecoverReason bytertc::RemoteStreamSwitch::reason;cpp
触发流回退的原因,详见类型 FallbackOrRecoverReason 。
enum bytertc::LiveTranscodingContentControl
cpp转推直播包含内容。
| 类型 | 说明 |
|---|---|
| kVideoAndAudio | 输出的混流包含音频和视频 |
| kAudioOnly | 输出的混流只包含音频 |
| kVideoOnly | 输出的混流只包含视频 |
enum bytertc::LiveTranscodingVideoCodec
cpp转推直播视频编码器格式。
| 类型 | 说明 |
|---|---|
| kLiveTranscondingH264 | 使用 H264 编码格式 |
| kLiveTranscodingByteVC1 | 自定义编码器 |
enum bytertc::LiveTranscodingAudioCodec
cpp转推直播音频编码格式。
| 类型 | 说明 |
|---|---|
| kLiveTranscodingAAC | 使用 AAC 编码格式 |
enum bytertc::LiveTranscodingAudioProfile
cppAAC 编码等级。
| 类型 | 说明 |
|---|---|
| kLiveTranscodingAACLC | 编码等级 AAC-LC (默认) |
| kLiveTranscodingAACMAIN | 编码等级 AAC-MAIN |
| kLiveTranscodingHEV1 | 编码等级 HE-AAC v1 |
| KLiveTranscodingHEV2 | 编码等级 HE-AAC v2 |
struct bytertc::LiveTranscodingVideoConfig
cpp转推视频配置。
| 类型 | 名称 |
|---|---|
| LiveTranscodingVideoCodec | codec |
| int | fps |
| int | gop |
| bool | low_latency |
| int | bitrate |
| int | width |
| int | height |
LiveTranscodingVideoCodec bytertc::LiveTranscodingVideoConfig::codec;cpp
转推直播视频编码器格式。详见 LiveTranscodingVideoCodec
int bytertc::LiveTranscodingVideoConfig::fps;
cpp合流视频帧率信息
int bytertc::LiveTranscodingVideoConfig::gop;
cpp视频 I 帧间隔。
bool bytertc::LiveTranscodingVideoConfig::low_latency;
cpp是否使用低延时特性。取值含义如下:
int bytertc::LiveTranscodingVideoConfig::bitrate;
cpp合流视频码率,单位为 bps 。
int bytertc::LiveTranscodingVideoConfig::width;
cpp宽(像素)
int bytertc::LiveTranscodingVideoConfig::height;
cpp高(像素)
struct bytertc::LiveTranscodingAudioConfig
cpp转推音频配置。
| 类型 | 名称 |
|---|---|
| LiveTranscodingAudioCodec | codec |
| int | bitrate |
| int | sample_rate |
| int | channels |
| LiveTranscodingAudioProfile | aac_profile |
LiveTranscodingAudioCodec bytertc::LiveTranscodingAudioConfig::codec = kLiveTranscodingAAC;cpp
转推直播音频编码器格式。详见 LiveTranscodingAudioCodec
int bytertc::LiveTranscodingAudioConfig::bitrate;
cpp合流音频码率,单位为 bps 。
int bytertc::LiveTranscodingAudioConfig::sample_rate;
cpp音频帧采样率,单位 HZ。目前支持的采样率有:8000HZ, 16000HZ, 32000HZ, 44100HZ,48000HZ。
int bytertc::LiveTranscodingAudioConfig::channels;
cpp音频声道数,可取 1 或 2。
LiveTranscodingAudioProfile bytertc::LiveTranscodingAudioConfig::aac_profile = kLiveTranscodingAACLC;cpp
AAC 编码等级。详见 LiveTranscodingAudioProfile
struct bytertc::LiveTranscodingRegion
cpp单个视频流在合流中的布局信息。
| 类型 | 名称 |
|---|---|
| const char* | uid |
| const char* | roomId |
| double | x |
| double | y |
| double | w |
| double | h |
| int | zorder |
| double | alpha |
| LiveTranscodingContentControl | content_control |
| RenderMode | render_mode |
const char* bytertc::LiveTranscodingRegion::uid = nullptr;
cpp视频流发布用户的用户 ID 。必填。
const char* bytertc::LiveTranscodingRegion::roomId = nullptr;
cpp视频流发布用户的房间 ID 。必填。
double bytertc::LiveTranscodingRegion::x;
cpp用户视频布局相对画布左侧的偏移量。相对值,范围为[0.0, 1.0]。
double bytertc::LiveTranscodingRegion::y;
cpp用户视频布局相对画布顶端的偏移量。相对值,范围为[0.0, 1.0]。
double bytertc::LiveTranscodingRegion::w;
cpp用户视频宽度相对用户原始视频宽度的比例。相对值,范围为[0.0, 1.0]。
double bytertc::LiveTranscodingRegion::h;
cpp用户视频高度相对用户原始视频高度的比例。相对值,范围为[0.0, 1.0]。
int bytertc::LiveTranscodingRegion::zorder;
cpp用户视频布局在画布中的层级。0为底层,值越大越上层,范围为[0, 100]。
double bytertc::LiveTranscodingRegion::alpha;
cpp透明度。范围为 [0.0, 1.0]。
LiveTranscodingContentControl bytertc::LiveTranscodingRegion::content_control = kVideoAndAudio;cpp
转推直播包含内容。详见 LiveTranscodingContentControl
RenderMode bytertc::LiveTranscodingRegion::render_mode = kRenderModeHidden;cpp
渲染模式
struct bytertc::LiveTranscodingLayout
cpp转推流布局设置。
| 类型 | 名称 |
|---|---|
| const char* | app_data |
| const char* | background_color |
| LiveTranscodingRegion* | regions |
| int | regions_num |
const char* bytertc::LiveTranscodingLayout::app_data = nullptr;
cppSEI 信息,长度不得超 4096 bytes
const char* bytertc::LiveTranscodingLayout::background_color = nullptr;
cpp视频的背景颜色。格式为 RGB 定义下的 Hex 值,如 #FFB6C1 表示浅粉色。默认值 #000000,表示为黑色
LiveTranscodingRegion* bytertc::LiveTranscodingLayout::regions = nullptr;
cpp转推直播布局信息。详见 LiveTranscodingRegion
int bytertc::LiveTranscodingLayout::regions_num = 0;
cpp合流的数量
struct bytertc::LiveTranscodingConfig
cpp转推直播配置信息。
| 类型 | 名称 |
|---|---|
| const char* | url |
| LiveTranscodingVideoConfig | video_config |
| LiveTranscodingAudioConfig | audio_config |
| LiveTranscodingLayout | layout |
| const char* | advanced_config |
const char* bytertc::LiveTranscodingConfig::url = nullptr;
cpp设置推流地址。
LiveTranscodingVideoConfig bytertc::LiveTranscodingConfig::video_config;cpp
转推视频配置。详见 LiveTranscodingVideoConfig
LiveTranscodingAudioConfig bytertc::LiveTranscodingConfig::audio_config;cpp
转推音频配置。详见 LiveTranscodingAudioConfig
LiveTranscodingLayout bytertc::LiveTranscodingConfig::layout;cpp
转推流布局设置。详见 LiveTranscodingLayout
const char* bytertc::LiveTranscodingConfig::advanced_config = nullptr;
cpp设置动态扩展自定义参数。
enum bytertc::BackgroundMode
cpp背景模式
| 类型 | 说明 |
|---|---|
| kBackgroundModeNone | 无 |
| kBackgroundModeBlur | 虚化 |
| kBackgroundModeA | 背景 1 |
| kBackgroundModeB | 背景 2 |
enum bytertc::DivideMode
cpp分割模型
| 类型 | 说明 |
|---|---|
| kDivideModeNone | 自研 |
| kDivideModeEffect | effect |
struct bytertc::MediaStreamInfo
cpp流属性。
| 类型 | 名称 |
|---|---|
| const char* | user_id |
| bool | is_screen |
| bool | has_video |
| bool | has_audio |
| VideoSolutionDescription* | profiles |
| int | profile_count |
| VideoSolutionDescription | max_profile |
const char* bytertc::MediaStreamInfo::user_id;
cpp发布此流的用户 ID 。
bool bytertc::MediaStreamInfo::is_screen;
cpp此流是否为共享屏幕流。
bool bytertc::MediaStreamInfo::has_video;
cpp此流是否包括视频流。
bool bytertc::MediaStreamInfo::has_audio;
cpp流是否包括音频流。
VideoSolutionDescription* bytertc::MediaStreamInfo::profiles;cpp
视频流的属性。
当远端用户调用 setVideoEncoderConfig 方法发布多个配置的视频流时,此处会包含该用户发布的所有视频流的属性信息。
参看 VideoSolutionDescription。
int bytertc::MediaStreamInfo::profile_count;
cpp不同配置流的个数。
当远端用户调用 setVideoEncoderConfig 方法发布多个配置的视频流时,此处会包含该用户发布的视频流的数目。
VideoSolutionDescription bytertc::MediaStreamInfo::max_profile;cpp
最大视频流的属性。
当远端用户开启带通道划分的大小流时,回调最大视频流属性信息。用户可以使用新的订阅方式,订阅任意不超过该分辨率的流。
最终接收到的流,会受房间内其他用户的订阅行为的影响,综合确定一个最接近用户请求的分辨率的流。
struct bytertc::SubscribeVideoConfig
cpp视频订阅配置信息
| 类型 | 名称 |
|---|---|
| int | video_index |
| int | priority |
int bytertc::SubscribeVideoConfig::video_index = 0;
cpp订阅的视频流分辨率下标。
当远端用户通过调用 setVideoEncoderConfig 方法启动发布多路不同分辨率的视频流时,本地用户需通过此参数指定希望订阅的流。
默认值为 0,即订阅第一路流。
如果不想更改之前的设置,可以输入 -1。
int bytertc::SubscribeVideoConfig::priority = 0;
cpp远端用户优先级,参看 RemoteUserPriority,默认值为 0。
struct bytertc::SubscribeConfig
cpp手动订阅流的配置信息。
| 类型 | 名称 |
|---|---|
| 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 |
bool bytertc::SubscribeConfig::is_screen = false;
cpp是否是屏幕流(默认为否)。
bool bytertc::SubscribeConfig::sub_video;
cpp是否订阅视频。
bool bytertc::SubscribeConfig::sub_audio;
cpp是否订阅音频。
int bytertc::SubscribeConfig::video_index;
cpp订阅的视频流分辨率下标。
用户可以通过调用 setVideoEncoderConfig 方法在一路流中发布多个不同分辨率的视频。因此订阅流时,需要指定订阅的具体分辨率。此参数即用于指定需订阅的分辨率的下标,默认值为 0 。
int bytertc::SubscribeConfig::priority = 0;
cpp远端用户的需求优先级,参看 RemoteUserPriority,默认值为 0 。
当开启了订阅流回退选项功能(详见 setSubscribeFallbackOption 方法),弱网或性能不足时会优先保证收到的高优先级用户的流的质量。
int bytertc::SubscribeConfig::svc_layer = 0;
cpp远端用户的时域分层,参看 SVCLayer,默认值为 0 。
仅码流支持SVC特性时可以生效。
int bytertc::SubscribeConfig::framerate = 0;
cpp期望订阅的最高帧率,单位:fps,默认值为 0,设为大于 0 的值时开始生效。
当发布端帧率低于设定帧率,或订阅端开启性能回退后下行弱网,则帧率会相应下降。
仅码流支持 SVC 分级编码特性时方可生效。
int bytertc::SubscribeConfig::sub_width = 0;
cpp用户通过指定UI对应的最合适的流的宽度,单位:px
int bytertc::SubscribeConfig::sub_height = 0;
cpp用户通过指定UI对应的最合适的流的高度,单位:px
enum bytertc::VideoStreamType
cpp远端视频类型
目前C++ sdk 只支持 kVideoStreamTypeHigh 类型
| 类型 | 说明 |
|---|---|
| kVideoStreamTypeHigh | 高分辨率视频流 |
| kVideoStreamTypeLow | 低分辨率视频 |
struct bytertc::VideoCanvas
cpp视频帧渲染设置。
调用 setLocalVideoCanvas 将视频流绑定到本地视图。
| 类型 | 名称 |
|---|---|
| void* | view |
| int | render_mode |
| uint32_t | background_color |
void* bytertc::VideoCanvas::view;
cpp本地视图句柄
int bytertc::VideoCanvas::render_mode;
cpp视频渲染模式,参看 RenderMode
uint32_t bytertc::VideoCanvas::background_color;
cpp用于填充画布空白部分的背景颜色。取值范围是 [0x00000000, 0xFFFFFFFF]。默认值是 0x00000000。其中,透明度设置无效。
typedef void* bytertc::view_t
cppWindows 窗口 id, Windows 平台下传 Windows 窗口句柄
struct bytertc::Rectangle
cpp矩形区域,用于指定屏幕区域。
| 类型 | 名称 |
|---|---|
| int | x |
| int | y |
| int | width |
| int | height |
int bytertc::Rectangle::x = 0;
cpp矩形区域左上角的 x 坐标。
int bytertc::Rectangle::y = 0;
cpp矩形区域左上角的 y 坐标。
int bytertc::Rectangle::width = 0;
cpp矩形宽度。
int bytertc::Rectangle::height = 0;
cpp矩形高度。
struct bytertc::HighlightConfig
cpp屏幕共享时的边框高亮设置。
| 类型 | 名称 |
|---|---|
| bool | enable_highlight |
| uint32_t | border_color |
| int | border_width |
bool bytertc::HighlightConfig::enable_highlight = true;
cpp是否显示高亮边框,默认显示。
uint32_t bytertc::HighlightConfig::border_color = 0xFF29CCA3;
cpp边框的颜色, 颜色格式为十六进制 ARGB: 0xAARRGGB。
int bytertc::HighlightConfig::border_width = 4;
cpp边框的宽度,单位:像素。
struct bytertc::ScreenFilterConfig
cpp抓取屏幕时排除指定窗口,默认不排除任何窗体。
| 类型 | 名称 |
|---|---|
| view_t* | excluded_window_list |
| int | excluded_window_num |
view_t* bytertc::ScreenFilterConfig::excluded_window_list = nullptr;
cpp抓取屏幕时排除窗口列表。这个参数仅在抓取屏幕时生效。
int bytertc::ScreenFilterConfig::excluded_window_num = 0;
cpp排除窗口的数量。
enum bytertc::MouseCursorCaptureState
cpp内部采集屏幕视频流时,是否采集鼠标信息。
| 类型 | 说明 |
|---|---|
| kMouseCursorCaptureStateOn | 采集鼠标信息。 |
| kMouseCursorCaptureStateOff | 不采集鼠标信息。 |
struct bytertc::ScreenParameters
cpp屏幕共享参数
| 类型 | 名称 |
|---|---|
| int | frame_rate |
| int | kbitrate |
| int | min_kbitrate |
int bytertc::ScreenParameters::frame_rate = 15;
cpp编码帧率,单位为 fps
int bytertc::ScreenParameters::kbitrate = -1;
cpp屏幕采集编码码率, -1 为自动码率, SDK 会根据宽高信息选择合适的码率,单位 kbps
int bytertc::ScreenParameters::min_kbitrate = 0;
cpp视频最小编码码率, 单位 kbps。编码码率不会低于 min_kbitrate。
默认值为 0。
范围:[0, kbitrate),当 kbitrate < min_kbitrate 时,为适配码率模式。
以下情况,设置本参数无效:
kbitrate 为 0 时,不对视频流进行编码发送。kbitrate < 0 时,适配码率模式。enum bytertc::ContentHint
cpp内部采集屏幕视频流的内容类型。
| 类型 | 说明 |
|---|---|
| kContentHintDetails | 细节内容。当共享文档、图片时,建议使用该内容类型。默认值。 |
| kContentHintMotion | 动画内容。当共享视频、游戏时,建议使用该内容类型。 |
struct bytertc::ScreenCaptureParameters
cpp屏幕共享内部采集参数
| 类型 | 名称 |
|---|---|
| Rectangle | region_rect |
| MouseCursorCaptureState | capture_mouse_cursor |
| ScreenFilterConfig | filter_config |
| HighlightConfig | highlight_config |
Rectangle bytertc::ScreenCaptureParameters::region_rect;cpp
采集区域,参看 Rectangle。
MouseCursorCaptureState bytertc::ScreenCaptureParameters::capture_mouse_cursor = MouseCursorCaptureState::kMouseCursorCaptureS/;"
cpp是否采集鼠标状态,参看 MouseCursorCaptureState。
ScreenFilterConfig bytertc::ScreenCaptureParameters::filter_config;cpp
屏幕过滤设置,填写不需要采集的窗口 ID,参看 ScreenFilterConfig。
HighlightConfig bytertc::ScreenCaptureParameters::highlight_config;cpp
采集区域的边框高亮设置,参看 HighlightConfig。
struct bytertc::DesktopCaptureParameters
cpp屏幕共享的编码参数配置。
| 类型 | 名称 |
|---|---|
| int | max_width |
| int | max_height |
| int | frame_rate |
| int | bitrate |
| int | min_bitrate |
| bool | capture_mouse_cursor |
| view_t* | excluded_window_list |
| int | excluded_window_num |
| HighlightConfig | highlight_config |
int bytertc::DesktopCaptureParameters::max_width = 1920;
cpp屏幕采集编码最大宽度,单位 px。
int bytertc::DesktopCaptureParameters::max_height = 1080;
cpp屏幕采集编码最大高度,单位 px。
int bytertc::DesktopCaptureParameters::frame_rate = 15;
cpp屏幕采集编码帧率, 单位 fps。
int bytertc::DesktopCaptureParameters::bitrate = -1;
cpp屏幕采集编码码率, -1 为自动码率, SDK 会根据宽高信息选择合适的码率,单位 kbps
int bytertc::DesktopCaptureParameters::min_bitrate = 0;
cpp最小编码码率,使用 SDK 内部采集时可选设置,自定义采集时必须设置,单位:kbps。
最小编码码率必须小于或等于最大编码,否则不对视频流进行编码发送。
bool bytertc::DesktopCaptureParameters::capture_mouse_cursor = true;
cpp是否捕获鼠标光标。
view_t* bytertc::DesktopCaptureParameters::excluded_window_list = nullptr;
cpp抓取屏幕时排除窗口列表。这个参数仅在抓取屏幕时生效。
int bytertc::DesktopCaptureParameters::excluded_window_num = 0;
cpp抓取屏幕时排除的窗口数量。
HighlightConfig bytertc::DesktopCaptureParameters::highlight_config;cpp
高亮边框的配置。
class bytertc::IVideoSink
cpp自定义视频渲染器
| 返回 | 名称 |
|---|---|
| virtual bool | onFrame |
| virtual int | getRenderElapse |
| virtual void | release |
virtual bool bytertc::IVideoSink::onFrame(
IVideoFrame* video_frame)
cpp视频帧回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| video_frame | IVideoFrame* | 视频帧结构类,参看 IVideoFrame |
返回值
返回值暂未使用
virtual int bytertc::IVideoSink::getRenderElapse()
cpp获取外部渲染耗时。
注意
获取外部渲染耗时进行上报。开发者需要自己计算平均渲染耗时。
virtual void bytertc::IVideoSink::release()
cpp释放渲染器。
注意
通知开发者渲染器即将被废弃。收到该返回通知后即可释放资源。
enum bytertc::IVideoSink::PixelFormat
cpp视频帧编码格式
| 类型 | 说明 |
|---|---|
| kI420 | YUV I420 格式 |
| kRGBA | RGBA 格式, 字节序为 R8 G8 B8 A8 |
| kOriginal | 原始视频帧格式 |
enum bytertc::MirrorType
cpp镜像类型
| 类型 | 说明 |
|---|---|
| kMirrorTypeNone | 本地预览和编码传输时均无镜像效果 |
| kMirrorTypeRender | 本地预览时有镜像效果,编码传输时无镜像效果 |
| kMirrorTypeRenderAndEncoder | 本地预览和编码传输时均有镜像效果 |
enum bytertc::AdjustedMode
cpp弱光适应类型
| 类型 | 说明 |
|---|---|
| kAdjustedModeDisabled | 关闭弱光适应 |
| kAdjustedModeEnabled | 开启弱光适应 |
enum bytertc::VideoSourceType
cpp视频输入源类型
| 类型 | 说明 |
|---|---|
| kVideoSourceTypeExternal | 自定义采集视频源 |
| kVideoSourceTypeInternal | 内部采集视频源 |
| kVideoSourceTypeEncodedWithAutoSimulcast | 自定义编码视频源。 你仅需推送分辨率最大的一路编码后视频流,SDK 将自动转码生成多路小流 |
| kVideoSourceTypeEncodedWithoutAutoSimulcast | 自定义编码视频源。 SDK 不会自动生成多路流,你需要自行生成并推送多路流 |
enum bytertc::ZoomConfigType
cpp数码变焦参数类型
| 类型 | 说明 |
|---|---|
| kZoomFocusOffset | 设置缩放系数 |
| kZoomMoveOffset | 设置移动步长 |
enum bytertc::ZoomDirectionType
cpp数码变焦操作类型
| 类型 | 说明 |
|---|---|
| kCameraMoveLeft | 相机向左移动 |
| kCameraMoveRight | 相机向右移动 |
| kCameraMoveUp | 相机向上移动 |
| kCameraMoveDown | 相机向下移动 |
| kCameraZoomOut | 相机缩小焦距 |
| kCameraZoomIn | 相机放大焦距 |
| kCameraReset | 恢复到原始画面 |
struct bytertc::VideoFrameInfo
cpp视频帧信息
| 类型 | 名称 |
|---|---|
| int | width |
| int | height |
| VideoRotation | rotation |
int bytertc::VideoFrameInfo::width = 0;
cpp宽(像素)
int bytertc::VideoFrameInfo::height = 0;
cpp高(像素)
VideoRotation bytertc::VideoFrameInfo::rotation = VideoRotation::kVideoRotation0;
cpp视频帧顺时针旋转角度。参看 VideoRotation。
struct bytertc::VideoPreprocessorConfig
cpp视频前处理配置参数。
| 类型 | 名称 |
|---|---|
| VideoPixelFormat | required_pixel_format |
VideoPixelFormat bytertc::VideoPreprocessorConfig::required_pixel_format = kVideoPixelFormatUnknown;cpp
视频帧像素格式,参看 VideoPixelFormat
当前仅支持 kVideoPixelFormatI420 和 kVideoPixelFormatUnknown 格式。
struct bytertc::VideoRateInfo
cpp自定义编码流信息
| 类型 | 名称 |
|---|---|
| int | fps |
| int | bitrate_kbps |
| int | min_bitrate_kbps |
int bytertc::VideoRateInfo::fps = 0;
cpp帧率,单位 fps
int bytertc::VideoRateInfo::bitrate_kbps = 0;
cpp码率,单位 kbps
int bytertc::VideoRateInfo::min_bitrate_kbps = 0;
cpp视频最小编码码率, 单位 kbps。编码码率不会低于 min_bitrate_kbps。
默认值为 0。
范围:[0, bitrate_kbps),当 bitrate_kbps < min_bitrate_kbps 时,为适配码率模式。
以下情况,设置本参数无效:
bitrate_kbps 为 0 时,不对视频流进行编码发送。bitrate_kbps < 0 时,适配码率模式。enum bytertc::VideoDecoderConfig
cpp视频解码方式
| 类型 | 说明 |
|---|---|
| kVideoDecoderConfigRaw | 开启 SDK 内部解码,只回调解码后的数据。回调为onFrame。 |
| kVideoDecoderConfigEncode | 开启自定义解码,只回调解码前数据。回调为onRemoteEncodedVideoFrame。 |
| kVideoDecoderConfigBoth | 开启 SDK 内部解码,同时回调解码前和解码后的数据。回调为onFrame 和 onRemoteEncodedVideoFrame。 |
struct bytertc::VideoCaptureConfig
cpp视频采集配置参数。
| 类型 | 名称 |
|---|---|
| CapturePreference | capturePreference |
| int | width |
| int | height |
| int | frameRate |
CapturePreference bytertc::VideoCaptureConfig::capturePreference = CapturePreference::KAuto;
cpp视频采集模式,参看 CapturePreference
int bytertc::VideoCaptureConfig::width = 0;
cpp视频采集分辨率的宽度,单位:px。
int bytertc::VideoCaptureConfig::height = 0;
cpp视频采集分辨率的高度,单位:px。
int bytertc::VideoCaptureConfig::frameRate = 0;
cpp视频采集帧率,单位:fps。
enum bytertc::VideoCaptureConfig::CapturePreference
cpp视频采集模式
| 类型 | 说明 |
|---|---|
| KAuto | (默认)自动设置采集参数。 SDK在开启采集时根据服务端下发的采集配置结合编码参数设置最佳采集参数。 |
| KManual | 手动设置采集参数,包括采集分辨率、帧率。 |
| KAutoPerformance | 采集参数与编码参数一致,即在 setVideoEncoderConfig 中设置的参数。 |
enum bytertc::RecordingType
cpp本地录制的媒体类型
| 类型 | 说明 |
|---|---|
| kRecordAudioOnly | 只录制音频 |
| kRecordVideoOnly | 只录制视频 |
| kRecordVideoAndAudio | 同时录制音频和视频 |
enum bytertc::RTCVideoDeviceType
cpp当前视频设备类型
| 类型 | 说明 |
|---|---|
| kRTCVideoDeviceTypeUnknown | 未知设备类型 |
| kRTCVideoDeviceTypeRenderDevice | 视频渲染设备类型 |
| kRTCVideoDeviceTypeCaptureDevice | 视频采集设备类型 |
| kRTCVideoDeviceTypeScreenCaptureDevice | 屏幕流视频设备 |
enum bytertc::VideoRotationMode
cpp视频旋转模式
| 类型 | 说明 |
|---|---|
| kVideoRotationModeFollowApp | 跟随App界面方向 |
| kVideoRotationModeFollowGSensor | 跟随设备重力方向 |
enum bytertc::MediaStreamType
cpp媒体流类型
| 类型 | 说明 |
|---|---|
| kMediaStreamTypeAudio | 只控制音频 |
| kMediaStreamTypeVideo | 只控制视频 |
| kMediaStreamTypeBoth | 同时控制音频和视频 |
enum bytertc::FrameRateRatio
cpp占发布端原始帧率的比例
| 类型 | 说明 |
|---|---|
| kFrameRateRatioOriginal | 100% |
| kFrameRateRatioHalf | 50% |
| kFrameRateRatioQuarter | 25% |
struct bytertc::RemoteVideoConfig
cpp远端视频帧信息
| 类型 | 名称 |
|---|---|
| int | framerate |
| int | resolution_width |
| int | resolution_height |
int bytertc::RemoteVideoConfig::framerate = 0;
cpp期望订阅的最高帧率,单位:fps,默认值为 0 即满帧订阅,设为大于 0 的值时开始生效。
当发布端帧率低于设定帧率,或订阅端开启性能回退后下行弱网,则帧率会相应下降。
仅码流支持 SVC 分级编码特性时方可生效。
int bytertc::RemoteVideoConfig::resolution_width = 0;
cpp视频宽度,单位:px
int bytertc::RemoteVideoConfig::resolution_height = 0;
cpp视频高度,单位:px
struct bytertc::RTCRoomConfig
cpp房间参数配置。房间是 RTC 通话的抽象概念。在同一个房间中的用户可以进行音视频通话。
| 类型 | 名称 |
|---|---|
| RoomProfileType | room_profile_type |
| bool | is_auto_publish |
| bool | is_auto_subscribe_audio |
| bool | is_auto_subscribe_video |
| RemoteVideoConfig | remote_video_config |
RoomProfileType bytertc::RTCRoomConfig::room_profile_type = kRoomProfileTypeCommunication;cpp
房间模式,参看 RoomProfileType,默认为 kRoomProfileTypeCommunication,进房后不可更改。
bool bytertc::RTCRoomConfig::is_auto_publish = true;
cpp是否自动发布音视频流,默认为自动发布。
创建和加入多房间时,只能将其中一个房间设置为自动发布。若每个房间均不做设置,则默认在第一个加入的房间内自动发布流。
若调用 setUserVisibility 将自身可见性设为 false,无论是默认的自动发布流还是手动设置的自动发布流都不会进行发布,你需要将自身可见性设为 true 后方可发布。
bool bytertc::RTCRoomConfig::is_auto_subscribe_audio = true;
cpp是否自动订阅音频流,默认为自动订阅。
包含主流和屏幕流。
bool bytertc::RTCRoomConfig::is_auto_subscribe_video = true;
cpp是否自动订阅视频流,默认为自动订阅。
包含主流和屏幕流。
RemoteVideoConfig bytertc::RTCRoomConfig::remote_video_config;
cpp远端视频流参数,参看 RemoteVideoConfig
enum bytertc::ScreenMediaType
cpp屏幕采集的媒体类型
| 类型 | 说明 |
|---|---|
| kScreenMediaTypeVideoOnly | 仅采集视频 |
| kScreenMediaTypeAudioOnly | 仅采集音频 |
| kScreenMediaTypeVideoAndAudio | 同时采集音频和视频 |
enum bytertc::EffectBeautyMode
cpp基础美颜模式
| 类型 | 说明 |
|---|---|
| kEffectBeautyWhite | 美白 |
| kEffectBeautySmooth | 磨皮 |
| kEffectBeautySharpen | 锐化 |
struct bytertc::VideoDeviceInfo
cpp视频设备信息
| 类型 | 名称 |
|---|---|
| char | device_id |
| char | device_name |
| int64_t | device_vid |
| int64_t | device_pid |
| DeviceTransportType | transport_type |
char bytertc::VideoDeviceInfo::device_id[MAX_DEVICE_ID_LENGTH];
cpp设备 ID
char bytertc::VideoDeviceInfo::device_name[MAX_DEVICE_ID_LENGTH];
cpp设备名称
int64_t bytertc::VideoDeviceInfo::device_vid;
cpp设备的厂商 ID
int64_t bytertc::VideoDeviceInfo::device_pid;
cpp设备的产品编码
DeviceTransportType bytertc::VideoDeviceInfo::transport_type;cpp
设备的传输方式
enum bytertc::VideoOrientation
cpp视频帧朝向
| 类型 | 说明 |
|---|---|
| kVideoOrientationAdaptive | (默认)使用相机输出的原始视频帧的角度,不对视频帧进行额外旋转。 |
| kVideoOrientationPortrait | 固定为竖屏,将相机采集到的视频帧转换为竖屏,在整个 RTC 链路中传递竖屏帧。 |
| kVideoOrientationLandscape | 固定为横屏,将相机采集到的视频帧转换为横屏,在整个 RTC 链路中传递横屏帧。 |
enum bytertc::ScreenCaptureSourceType
cpp屏幕采集对象的类型
| 类型 | 说明 |
|---|---|
| kScreenCaptureSourceTypeUnknown | 类型未知 |
| kScreenCaptureSourceTypeWindow | 应用程序的窗口 |
| kScreenCaptureSourceTypeScreen | 桌面 |
struct bytertc::ScreenCaptureSourceInfo
cpp屏幕共享对象的详细信息
| 类型 | 名称 |
|---|---|
| ScreenCaptureSourceType | type |
| view_t | source_id |
| const char* | source_name |
| const char* | application |
| int | pid |
| bool | primaryMonitor |
| Rectangle | region_rect |
ScreenCaptureSourceType bytertc::ScreenCaptureSourceInfo::type = kScreenCaptureSourceTypeUnknown;
cpp屏幕共享对象的类型,参看 ScreenCaptureSourceType
view_t bytertc::ScreenCaptureSourceInfo::source_id = nullptr;
cpp屏幕共享对象的 ID
const char* bytertc::ScreenCaptureSourceInfo::source_name = nullptr;
cpp屏幕共享对象的名称
调用 release 时将被释放,请及时转为 string 对象保存
const char* bytertc::ScreenCaptureSourceInfo::application = nullptr;
cpp共享的应用窗体所属应用的名称
当共享对象为应用窗体时有效
调用 release 时将被释放,请及时转为 string 对象保存
int bytertc::ScreenCaptureSourceInfo::pid = 0;
cpp共享的应用窗体所属应用进程的 pid
当共享对象为应用窗体时有效
bool bytertc::ScreenCaptureSourceInfo::primaryMonitor = false;
cpp共享的屏幕是否为主屏。
当共享对象为屏幕时有效
Rectangle bytertc::ScreenCaptureSourceInfo::region_rect;cpp
屏幕共享对象的坐标。详见 Rectangle。
仅在采集源为显示器屏幕时有效。
struct bytertc::VideoMetadataBuffer
cpp视频帧中包含的 metadata 信息
| 类型 | 名称 |
|---|---|
| char* | data |
| int | size |
| int64_t | timestamp_us |
char* bytertc::VideoMetadataBuffer::data;
cpp接收或者发送的 metadata
int bytertc::VideoMetadataBuffer::size;
cpp接收或者发送的 metadata 数据大小,不能超过 1024
int64_t bytertc::VideoMetadataBuffer::timestamp_us;
cpp包含 metadata 视频帧的时间戳,单位微秒
enum bytertc::VirtualBackgroundSourceType
cpp虚拟背景类型。
| 类型 | 说明 |
|---|---|
| kVirtualBackgroundSourceColor | 使用纯色背景替换视频原有背景。 |
| kVirtualBackgroundSourceImage | 使用自定义图片替换视频原有背景。 |
struct bytertc::VirtualBackgroundSource
cpp虚拟背景对象。
| 类型 | 名称 |
|---|---|
| VirtualBackgroundSourceType | source_type |
| uint32_t | source_color |
| const char* | source_path |
VirtualBackgroundSourceType bytertc::VirtualBackgroundSource::source_type = kVirtualBackgroundSourceColor;cpp
虚拟背景类型,详见 VirtualBackgroundSourceType 。
uint32_t bytertc::VirtualBackgroundSource::source_color = 0xFFFFFFFF;
cpp纯色背景使用的颜色。
格式为 0xAARRGGBB 。
const char* bytertc::VirtualBackgroundSource::source_path = nullptr;
cpp自定义背景图片的绝对路径。
struct bytertc::FaceDetectResult
cpp人脸检测结果
| 类型 | 名称 |
|---|---|
| static const int | max_face_num |
| int | detect_result |
| int | face_count |
| Rectangle | rect |
| int | image_width |
| int | image_height |
| int64_t | frame_timestamp_us |
static const int bytertc::FaceDetectResult::max_face_num = 10;
cpp人脸信息存储上限,最多可存储 10 个人脸信息
int bytertc::FaceDetectResult::detect_result = 0;
cpp人脸检测结果
int bytertc::FaceDetectResult::face_count = 0;
cpp检测到的人脸的数量
Rectangle bytertc::FaceDetectResult::rect[max_face_num];cpp
识别到人脸的矩形框。数组的长度和检测到的人脸数量一致。参看 Rectangle。
int bytertc::FaceDetectResult::image_width = 0;
cpp原始图片宽度(px)
int bytertc::FaceDetectResult::image_height = 0;
cpp原始图片高度(px)
int64_t bytertc::FaceDetectResult::frame_timestamp_us = 0;
cpp进行人脸识别的视频帧的时间戳。
enum bytertc::VideoPictureType
cpp编码帧类型
| 类型 | 说明 |
|---|---|
| kVideoPictureTypeUnknown | 未知类型 |
| kVideoPictureTypeI | I帧,关键帧,编解码不需要参考其他视频帧 |
| kVideoPictureTypeP | P帧,向前参考帧,编解码需要参考前一帧视频帧 |
| kVideoPictureTypeB | B帧,前后参考帧,编解码需要参考前后两帧视频帧 |
enum bytertc::VideoRotation
cpp视频帧旋转信息
| 类型 | 说明 |
|---|---|
| kVideoRotation0 | 不旋转 |
| kVideoRotation90 | 顺时针旋转 90 度 |
| kVideoRotation180 | 顺时针旋转 180 度 |
| kVideoRotation270 | 顺时针旋转 270 度 |
enum bytertc::VideoStreamScaleMode
cpp视频帧缩放模式,默认值为 FitWithCropping。
| 类型 | 说明 |
|---|---|
| kVideoStreamScaleModeAuto | 自动模式 |
| kVideoStreamScaleModeStretch | 对视频帧进行缩放,直至充满和视窗分辨率一致为止。这一过程不保证等比缩放。 |
| kVideoStreamScaleModeFitWithCropping | 视窗填满优先。 视频帧等比缩放,直至视窗被视频填满。如果视频帧长宽比例与视窗不同,视频帧的多出部分将无法显示。 缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长大于等于视窗对应边长。 |
| kVideoStreamScaleModeFitWithFilling | 视频帧内容全部显示优先。 视频帧等比缩放,直至视频帧能够在视窗上全部显示。如果视频帧长宽比例与视窗不同,视窗上未被视频帧填满区域将被涂黑。 缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长小于等于视窗对应边长。 |
enum bytertc::VideoCodecMode
cpp视频编码模式
| 类型 | 说明 |
|---|---|
| kCodecModeAuto | 自动选择 |
| kCodecModeHardware | 硬编码 |
| kCodecModeSoftware | 软编码 |
enum bytertc::VideoEncodePreference
cpp编码策略偏好。
| 类型 | 说明 |
|---|---|
| kVideoEncodePreferenceDisabled | 无偏好。不降低帧率和分辨率。 |
| kVideoEncodePreferenceFramerate | (默认值)帧率优先。分辨率不变。 |
| kVideoEncodePreferenceQuality | 分辨率优先。 |
| kVideoEncodePreferenceBalance | 平衡帧率与分辨率。 |
enum bytertc::CameraID
cpp摄像头。
| 类型 | 说明 |
|---|---|
| kCameraIDFront | 移动端前置摄像头,PC端内置摄像头 |
| kCameraIDBack | 移动端后置摄像头,PC端无定义 |
| kCameraIDInvalid | 无效值 |
struct bytertc::VideoSolution
cpp视频流参数
| 类型 | 名称 |
|---|---|
| int | width |
| int | height |
| int | fps |
| int | max_send_kbps |
| int | min_send_kbps |
| VideoEncodePreference | encode_preference |
int bytertc::VideoSolution::width;
cpp视频宽度,单位:像素
int bytertc::VideoSolution::height;
cpp视频高度,单位:像素
int bytertc::VideoSolution::fps;
cpp视频帧率
int bytertc::VideoSolution::max_send_kbps = SEND_KBPS_AUTO_CALCULATE;
cpp最大发送编码码率(kbps),建议使用默认的自动码率。
int bytertc::VideoSolution::min_send_kbps = 0;
cppVideoEncodePreference bytertc::VideoSolution::encode_preference = VideoEncodePreference::kVideoEncodePreferenceFrame/;"
cpp视频编码质量策略,参看 VideoEncodePreference
struct bytertc::VideoEncoderConfig
cpp视频编码配置。参考 设置视频发布参数
| 类型 | 名称 |
|---|---|
| int | width |
| int | height |
| int | frameRate |
| int | maxBitrate |
| int | minBitrate |
| VideoEncodePreference | encoderPreference |
int bytertc::VideoEncoderConfig::width;
cpp视频宽度,单位:像素
int bytertc::VideoEncoderConfig::height;
cpp视频高度,单位:像素
int bytertc::VideoEncoderConfig::frameRate;
cpp视频帧率,单位:fps
int bytertc::VideoEncoderConfig::maxBitrate = SEND_KBPS_AUTO_CALCULATE;
cpp最大编码码率,使用 SDK 内部采集时可选设置,自定义采集时必须设置,单位:kbps。
内部采集模式下默认值为 -1,即适配码率模式,系统将根据输入的分辨率和帧率自动计算适用的码率。
设为 0 则不对视频流进行编码发送。
int bytertc::VideoEncoderConfig::minBitrate = 0;
cpp视频最小编码码率, 单位 kbps。编码码率不会低于 minBitrate。
默认值为 0。
范围:[0, maxBitrate),当 maxBitrate < minBitrate 时,为适配码率模式。
以下情况,设置本参数无效:
maxBitrate 为 0 时,不对视频流进行编码发送。maxBitrate < 0 时,适配码率模式。VideoEncodePreference bytertc::VideoEncoderConfig::encoderPreference = VideoEncodePreference::kVideoEncodePreferenceFrame/;"
cpp编码策略偏好,默认为帧率优先。参看 VideoEncodePreference。
struct bytertc::VideoSolutionDescription
cpp视频属性
| 类型 | 名称 |
|---|---|
| int | width |
| int | height |
| int | fps |
| int | max_send_kbps |
| int | min_send_kbps |
| VideoStreamScaleMode | scale_mode |
| VideoCodecType | codec_name |
| VideoCodecMode | codec_mode |
| VideoEncodePreference | encode_preference |
int bytertc::VideoSolutionDescription::width;
cpp宽(像素)
默认值为 1920
为 0 时,保持源的宽。
int bytertc::VideoSolutionDescription::height;
cpp高(像素)
默认值为 1080
为 0 时,保持源的高。
int bytertc::VideoSolutionDescription::fps;
cpp视频帧率(fps),默认为 15 fps
int bytertc::VideoSolutionDescription::max_send_kbps;
cpp最大发送速率(千比特每秒)。
默认为 -1,适配码率模式,系统将根据输入的分辨率和帧率自动计算适用的码率
int bytertc::VideoSolutionDescription::min_send_kbps;
cppVideoStreamScaleMode bytertc::VideoSolutionDescription::scale_mode = VideoStreamScaleMode::kVideoStreamScaleModeAuto;
cpp缩放模式。参看 VideoStreamScaleMode
VideoCodecType bytertc::VideoSolutionDescription::codec_name = VideoCodecType::kVideoCodecTypeUnknown;
cpp视频的编码类型。参看 VideoCodecType
VideoCodecMode bytertc::VideoSolutionDescription::codec_mode = VideoCodecMode::kCodecModeAuto;
cpp视频的编码模式。参看 VideoCodecMode
VideoEncodePreference bytertc::VideoSolutionDescription::encode_preference = VideoEncodePreference::kVideoEncodePreferenceFrame/;"
cpp视频编码质量偏好策略。参看 VideoEncodePreference
typedef VideoSolutionDescription bytertc::VideoProfile
cppenum bytertc::VideoPixelFormat
cpp视频帧颜色编码格式
| 类型 | 说明 |
|---|---|
| kVideoPixelFormatUnknown | 未知的颜色编码格式 |
| kVideoPixelFormatI420 | YUV I420 格式 |
| kVideoPixelFormatNV12 | YUV NV12 格式 |
| kVideoPixelFormatNV21 | YUV NV21 格式 |
| kVideoPixelFormatRGB24 | RGB 24bit格式, |
| kVideoPixelFormatRGBA | RGBA 编码格式 |
| kVideoPixelFormatARGB | ARGB 编码格式 |
| kVideoPixelFormatBGRA | BGRA 编码格式 |
| kVideoPixelFormatTexture2D | Texture2D格式 |
| kVideoPixelFormatTextureOES | TextureOES格式 |
enum bytertc::VideoContentType
cpp视频内容类型
| 类型 | 说明 |
|---|---|
| kVideoContentTypeNormalFrame | 普通视频 |
| kVideoContentTypeBlackFrame | 黑帧视频 |
enum bytertc::ColorSpace
cpp视频YUV格式颜色空间
| 类型 | 说明 |
|---|---|
| kColorSpaceUnknown | |
| kColorSpaceYCbCrBT601LimitedRange | BT.601数字编码标准,颜色空间[16-235] |
| kColorSpaceYCbCrBT601FullRange | BT.601数字编码标准,颜色空间[0-255] |
| kColorSpaceYCbCrBT709LimitedRange | BT.7091数字编码标准,颜色空间[16-235] |
| kColorSpaceYCbCrBT709FullRange | BT.7091数字编码标准,颜色空间[0-255] |
enum bytertc::VideoFrameType
cpp视频帧格式
| 类型 | 说明 |
|---|---|
| kVideoFrameTypeRawMemory | 原始数据格式,按照内存存储 |
| kVideoFrameTypeCVPixelBuffer | CVPixelBufferRef类型,支持 iOS and macOS 平台 |
| kVideoFrameTypeGLTexture | open gl 纹理数据类型 |
| kVideoFrameTypeCuda | cuda 数据类型 |
| kVideoFrameTypeD3D11 | direct3d 11 数据格式 |
| kVideoFrameTypeD3D9 | direct3d 9 数据格式 |
| kVideoFrameTypeJavaFrame | Java的VideoFrame 数据格式 |
| kVideoFrameTypeVAAPI | vaapi 数据格式 |
| kVideoFrameTypeNvidiaJetsonDma | nvidia jetson dma 数据格式 |
struct bytertc::ManagedMemory
cpp自定义内存释放器
| 类型 | 名称 |
|---|---|
| uint8_t* | data |
| int | size |
| void* | user_opaque |
| int ()(uint8_t data, int size, void user_opaque)* | memory_deleter |
| VideoFrameType | [deprecated] type |
VideoFrameType bytertc::ManagedMemory::type = kVideoFrameTypeRawMemory;
cpp内存数据数据类型,默认为 cpu 内存,详见 VideoFrameType:VideoFrameType
Deprecated since 3.21 and will be deleted in 3.51.注意:
该字段不可用,目前只有 cpu 内存
该字段不可用,目前只有 cpu 内存
uint8_t* bytertc::ManagedMemory::data = nullptr;
cpp内存数据地址
int bytertc::ManagedMemory::size = 0;
cpp内存空间的大小
void* bytertc::ManagedMemory::user_opaque = nullptr;
cpp用户自定义数据
int (*bytertc::ManagedMemory::memory_deleter)(uint8_t* data, int size, void* user_opaque) = nullptr;
cpp自定义内存释放方法指针,如果指针不为空,方法会被调用,用来释放内存空间。
函数传入的参数分别是本结构体内 data、size、user_opaque 3个字段。
typedef struct bytertc::VideoFrameBuilder
cpp视频帧构建类
| 类型 | 名称 |
|---|---|
| VideoFrameType | frame_type |
| VideoPixelFormat | pixel_fmt |
| ColorSpace | color_space |
| 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 |
VideoFrameType bytertc::VideoFrameBuilder::frame_type = kVideoFrameTypeRawMemory;cpp
内存数据数据类型,默认为 cpu 内存,详见 VideoFrameType
VideoPixelFormat bytertc::VideoFrameBuilder::pixel_fmt = kVideoPixelFormatUnknown;cpp
视频帧像素格式,详见 VideoPixelFormat
ColorSpace bytertc::VideoFrameBuilder::color_space = kColorSpaceUnknown;cpp
视频帧颜色空间,参看 ColorSpace
uint8_t* bytertc::VideoFrameBuilder::data[ByteRTCNumDataPointers] = { 0 };
cpp视频帧数据平面指针数组
int bytertc::VideoFrameBuilder::linesize[ByteRTCNumDataPointers] = { 0 };
cpp视频帧数据平面行长度
uint8_t* bytertc::VideoFrameBuilder::extra_data = nullptr;
cppSEI 数据地址
int bytertc::VideoFrameBuilder::extra_data_size = 0;
cppSEI 数据大小
uint8_t* bytertc::VideoFrameBuilder::supplementary_info = nullptr;
cpp补充数据地址
int bytertc::VideoFrameBuilder::supplementary_info_size = 0;
cpp补充数据大小
int bytertc::VideoFrameBuilder::size = 0;
cpp视频帧内存空间大小
int bytertc::VideoFrameBuilder::width = 0;
cpp视频帧宽度
int bytertc::VideoFrameBuilder::height = 0;
cpp视频帧高度
VideoRotation bytertc::VideoFrameBuilder::rotation = kVideoRotation0;cpp
视频旋转角度,参看 VideoRotation。
当视频接收端使用 RTC SDK 内部渲染时,引擎会根据设定的 rotation 处理旋转角度后再行渲染;
当视频接收端使用自定义渲染时,此处设置的 rotation 无效,可以通过 IVideoFrame::rotation() 接口获取 rotation 信息。
void* bytertc::VideoFrameBuilder::hwaccel_buffer = nullptr;
cpp硬件加速缓冲区指针
void* bytertc::VideoFrameBuilder::user_opaque = nullptr;
cpp用户私有数据指针
int64_t bytertc::VideoFrameBuilder::timestamp_us = 0;
cpp视频帧时间戳
void* bytertc::VideoFrameBuilder::hwaccel_context = nullptr;
cpp硬件加速Context对象(AKA Opengl Context, Vulkan Context)
jobject bytertc::VideoFrameBuilder::android_hwaccel_context = nullptr;
cpp硬件加速Context的Java对象(Only for Android, AKA Opengl Context)
float bytertc::VideoFrameBuilder::tex_matrix[16] = { };
cpp纹理矩阵(仅针对纹理类型的frame生效)
uint32_t bytertc::VideoFrameBuilder::texture_id = 0;
cpp纹理ID(仅针对纹理类型的frame生效)
int (*bytertc::VideoFrameBuilder::memory_deleter)(struct VideoFrameBuilder* builder) = nullptr;
cpp用户定义的视频帧释放回调函数指针,如果指针不为空,方法会被调用用来释放内存空间
class bytertc::IVideoFrame
cpp设置视频帧
| 返回 | 名称 |
|---|---|
| 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 |
virtual VideoFrameType bytertc::IVideoFrame::frameType() const
cpp获取视频帧类型,参看 VideoFrameType
virtual VideoPixelFormat bytertc::IVideoFrame::pixelFormat() const
cpp获取视频帧格式,参看 VideoPixelFormat
virtual VideoContentType bytertc::IVideoFrame::videoContentType() const
cpp获取视频内容类型,参看 VideoContentType。
virtual int64_t bytertc::IVideoFrame::timestampUs() const
cpp获取视频帧时间戳,单位:微秒
virtual int bytertc::IVideoFrame::width() const
cpp获取视频帧宽度,单位:px
virtual int bytertc::IVideoFrame::height() const
cpp获取视频帧高度,单位:px
virtual VideoRotation bytertc::IVideoFrame::rotation() const
cpp获取视频帧旋转角度,参看 VideoRotation
virtual ColorSpace bytertc::IVideoFrame::colorSpace() const
cpp获取视频帧颜色空间,参看 ColorSpace
virtual int bytertc::IVideoFrame::numberOfPlanes() const
cpp视频帧颜色 plane 数量
注意
yuv 数据存储格式分为打包(packed)存储格式和平面(planar)存储格式,planar 格式中 Y、U、V 分平面存储,packed 格式中 Y、U、V 交叉存储
virtual uint8_t* bytertc::IVideoFrame::getPlaneData(
int plane_index)
cpp获取 plane 数据指针
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| plane_index | int | plane 数据索引 |
virtual int bytertc::IVideoFrame::getPlaneStride(
int plane_index)
cpp获取 plane 中数据行的长度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| plane_index | int | plane 数据索引 |
virtual uint8_t* bytertc::IVideoFrame::getExtraDataInfo(
int& size)
cpp获取扩展数据指针
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| size | int& | 扩展数据字节数 |
virtual uint8_t* bytertc::IVideoFrame::getSupplementaryInfo(
int& size)
cpp获取补充数据指针
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| size | int& | 补充数据字节数 |
virtual void* bytertc::IVideoFrame::getHwaccelBuffer()
cpp获取本地缓冲区指针
virtual void* bytertc::IVideoFrame::getHwaccelContext()
cpp获取硬件加速Context对象(AKA Opengl Context, Vulkan Context)
virtual jobject bytertc::IVideoFrame::getAndroidHwaccelContext()
cpp获取硬件加速Context的Java对象(Only for Android, AKA Opengl Context)
返回值
返回JavaLocalRef, 当不再使用时,需要手动执行DeleteLocalRef(env, jobject)方法释放该对象
virtual void bytertc::IVideoFrame::getTexMatrix(
float matrix[16])
cpp获取纹理矩阵(仅针对纹理类型的frame生效)
virtual uint32_t bytertc::IVideoFrame::getTextureId()
cpp获取纹理ID(仅针对纹理类型的frame生效)
virtual IVideoFrame* bytertc::IVideoFrame::shallowCopy()
cpp浅拷贝视频帧并返回指针
virtual void bytertc::IVideoFrame::release()
cpp释放视频帧
注意
调用 pushExternalVideoFrame 推送视频帧后,你不需要再调用此方法释放资源。
virtual void bytertc::IVideoFrame::toI420()
cpp转换为i420格式的视频帧
virtual CameraID bytertc::IVideoFrame::getCameraId() const
cpp获取视频帧的摄像头信息,参看 CameraID
typedef struct bytertc::EncodedVideoFrameBuilder
cpp视频帧参数
| 类型 | 名称 |
|---|---|
| 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 |
VideoCodecType bytertc::EncodedVideoFrameBuilder::codec_type = kVideoCodecTypeUnknown;cpp
视频帧编码格式,参看 VideoCodecType
VideoPictureType bytertc::EncodedVideoFrameBuilder::picture_type = kVideoPictureTypeUnknown;cpp
视频帧编码类型,参看 VideoPictureType
VideoRotation bytertc::EncodedVideoFrameBuilder::rotation = kVideoRotation0;cpp
视频帧旋转角度,参看 VideoRotation
uint8_t* bytertc::EncodedVideoFrameBuilder::data = nullptr;
cpp视频帧数据指针
注意:
IEncodedVideoFrame 会获取数据的所有权
IEncodedVideoFrame 会获取数据的所有权
int bytertc::EncodedVideoFrameBuilder::size = 0;
cpp视频帧数据大小
int bytertc::EncodedVideoFrameBuilder::width = 0;
cpp视频帧宽度,单位:px
int bytertc::EncodedVideoFrameBuilder::height = 0;
cpp视频帧高度,单位:px
int64_t bytertc::EncodedVideoFrameBuilder::timestamp_us = 0;
cpp视频采集时间戳,单位:微秒
int64_t bytertc::EncodedVideoFrameBuilder::timestamp_dts_us = 0;
cpp视频编码时间戳,单位:微秒
int (*bytertc::EncodedVideoFrameBuilder::memory_deleter)(uint8_t* data, int size, void* user_opaque) = nullptr;
cpp用户定义的视频帧释放回调函数指针,如果指针不为空,方法会被调用用来释放内存空间
class bytertc::IEncodedVideoFrame
cpp视频帧信息
| 返回 | 名称 |
|---|---|
| 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 |
virtual VideoCodecType bytertc::IEncodedVideoFrame::codecType() const
cpp获取视频编码类型
返回值
视频编码类型,参看 VideoCodecType
virtual int64_t bytertc::IEncodedVideoFrame::timestampUs() const
cpp获取视频采集时间戳
返回值
视频采集时间戳,单位:微秒
virtual int64_t bytertc::IEncodedVideoFrame::timestampDtsUs() const
cpp获取视频编码时间戳
返回值
视频编码时间戳,单位:微秒
virtual int bytertc::IEncodedVideoFrame::width() const
cpp获取视频帧宽度
返回值
视频帧宽度,单位:px
virtual int bytertc::IEncodedVideoFrame::height() const
cpp获取视频帧高度
返回值
视频帧高度,单位:px
virtual VideoPictureType bytertc::IEncodedVideoFrame::pictureType() const
cpp获取视频编码帧类型
返回值
视频编码帧类型,参看 VideoPictureType
virtual VideoRotation bytertc::IEncodedVideoFrame::rotation() const
cpp获取视频帧旋转角度
返回值
视频帧旋转角度,参看 VideoRotation
virtual uint8_t* bytertc::IEncodedVideoFrame::data() const
cpp获取视频帧数据指针地址
返回值
视频帧数据指针地址
virtual int bytertc::IEncodedVideoFrame::dataSize() const
cpp获取视频帧数据大小
返回值
视频帧数据大小
virtual IEncodedVideoFrame* bytertc::IEncodedVideoFrame::shallowCopy() const
cpp浅拷贝视频帧并返回指针
virtual void bytertc::IEncodedVideoFrame::release()
cpp释放视频帧
enum bytertc::ScreenVideoEncodePreference
cpp屏幕流编码模式。默认采用清晰模式。若在采集时设置 ScreenFilterConfig 排除指定窗口,共享视频时帧率无法达到 30fps。
| 类型 | 说明 |
|---|---|
| kScreenVideoEncodePreferenceFramerate | 流畅模式,优先保障帧率。适用于共享游戏、视频等动态画面。 |
| kScreenVideoEncodePreferenceQuality | 清晰模式,优先保障分辨率。适用于共享PPT、文档、图片等静态画面。 |
struct bytertc::ScreenVideoEncoderConfig
cpp屏幕编码配置。参考 设置视频发布参数。
| 类型 | 名称 |
|---|---|
| int | width |
| int | height |
| int | frameRate |
| int | maxBitrate |
| int | minBitrate |
| ScreenVideoEncodePreference | encoderPreference |
int bytertc::ScreenVideoEncoderConfig::width;
cpp视频宽度,单位:像素。
int bytertc::ScreenVideoEncoderConfig::height;
cpp视频高度,单位:像素。
int bytertc::ScreenVideoEncoderConfig::frameRate;
cpp视频帧率,单位:fps。
int bytertc::ScreenVideoEncoderConfig::maxBitrate = SEND_KBPS_AUTO_CALCULATE;
cpp最大编码码率,使用 SDK 内部采集时可选设置,自定义采集时必须设置,单位:kbps。
设为 -1 即适配码率模式,系统将根据输入的分辨率和帧率自动计算适用的码率。
设为 0 则不对视频流进行编码发送。
3.44 及以上版本,内部采集时默认值为 -1,3.44 以前版本无默认值,需手动设置。
int bytertc::ScreenVideoEncoderConfig::minBitrate = 0;
cpp最小编码码率,使用 SDK 内部采集时可选设置,自定义采集时必须设置,单位:kbps。
最小编码码率必须小于或等于最大编码,否则不对视频流进行编码发送。
ScreenVideoEncodePreference bytertc::ScreenVideoEncoderConfig::encoderPreference = ScreenVideoEncodePreference::kScreenVideoEnc/;"
cpp屏幕流编码模式。参见 ScreenVideoEncodePreference。