| 返回 | 名称 |
|---|---|
| BYTE_API bytertc::IRtcEngine* | CreateByteRtcEngine |
| BYTE_API bytertc::IRtcEngine* | CreateByteRtcEngineWithParameters |
| BYTE_API void | DestroyByteRtcEngine |
| BYTE_API void | EnablePerformanceCollect |
BYTE_API bytertc::IRtcEngine* bytertc::CreateByteRtcEngine(
const char* app_id,
bytertc::IRtcEngineEventHandler* event_handler)
创建 RTCEngine 实例。
此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个 RTCEngine 实例,来使用 SDK 的其他能力。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| app_id | const char* | 每个应用的唯一标识符,由 VRTC 控制台随机生成的。不同的 AppId 生成的实例在 VRTC 中进行音视频通话完全独立,无法互通。 |
| event_handler | bytertc::IRtcEngineEventHandler* | SDK 回调给应用层的 Callback 对象,详见 IRtcEngineEventHandler 。 |
返回值
可用的 IRtcEngine 实例。
注意
BYTE_API bytertc::IRtcEngine* bytertc::CreateByteRtcEngineWithParameters(
const char* app_id,
bytertc::IRtcEngineEventHandler* event_handler,
const char* parameters)
创建 RTCEngine 实例。
此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个 RTCEngine 实例,来使用 SDK 的其他能力。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| app_id | const char* | 每个应用的唯一标识符,由 VRTC 控制台随机生成的。不同的 AppId 生成的实例在 VRTC 中进行音视频通话完全独立,无法互通。 |
| event_handler | bytertc::IRtcEngineEventHandler* | SDK 回调给应用层的 Callback 对象,详见 IRtcEngineEventHandler 。 |
| parameters | const char* | JSON字符串,用以覆盖全局参数,详情可见 SetParameters |
返回值
可用的 IRtcEngine 实例。
注意
BYTE_API void bytertc::DestroyByteRtcEngine(
bytertc::IRtcEngine* engine)
销毁由 CreateByteRtcEngine 创建的 RTCEngine 实例,并释放所有相关资源。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | bytertc::IRtcEngine* | 由 CreateByteRtcEngine 返回的实例。 |
注意
BYTE_API void bytertc::EnablePerformanceCollect(
bool enable)
设置引擎是否开启性能采集功能,默认为开启。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | • true:开启 • false:不开启 |
注意
class bytertc::IRtcEngine
引擎API IRtcEngine用IRtcEngineEventHandler 注册接口类方法向应用程序发送回调通知
Defined in : byte_rtc_engine_interface.h
| 返回 | 名称 |
|---|---|
| virtual int | JoinChannel |
virtual int bytertc::IRtcEngine::JoinChannel(
const char* token,
const char* channel_id,
const char* uid,
const char* info)
加入房间。用户调用此方法加入房间,在一个房间内的用户间可以相互通话。
用户调用 CreateByteRtcEngine 创建 RTC 引擎后,需调用此方法加入房间实现同其他用户进行音视频通话。如果用户调用此方法加入房间,则后续重复调用此方法均会失败,用户必须调用 LeaveChannel 退出当前房间后,才能加入下一个房间。
用户调用此方法加入房间成功后,会收到 OnJoinChannelSuccess 回调通知。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| token | const char* | 动态密钥,用于对登录用户进行鉴权验证。 进入房间需要携带 Token。测试时可使用控制台生成临时 Token ,正式上线需要使用密钥 SDK 在您的服务端生成并下发 Token 。 |
| channel_id | const char* | 房间ID ,用户调用此接口加入的房间的房间ID 。 房间ID 为最大长度为128字节的非空字符串,支持的字符集范围为: 1. 26个大写字母 A ~ Z 。 2. 26个小写字母 a ~ z 。 3. 10个数字 0 ~ 9 。 4. 下划线"_", at符"@", 减号"-"。 |
| uid | const char* | 用户ID ,用户调用此接口加入的房间时使用的用户ID 。 用户ID 为最大长度为128字节的非空字符串,支持的字符集范围为: 1. 26个大写字母 A ~ Z 。 2. 26个小写字母 a ~ z 。 3. 10个数字 0 ~ 9 。 4. 下划线"_", at符"@", 减号"-"。 |
| info | const char* | 预留参数。 |
返回值
方法调用结果。
+ 0: 成功
+ -1: channel_id 为空,失败
+ -2: uid 为空,失败
注意
class bytertc::IRtcEngineLite
引擎 API
Defined in : byte_rtc_engine_lite_interface.h
virtual const char* bytertc::IRtcEngineLite::GetVersion(
int* build)
获取当前 SDK 版本信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| build | int* | 保留值,暂时没用。 |
返回值
当前 SDK 版本信息。
virtual void bytertc::IRtcEngineLite::AdjustRecordingSignalVolume(
const int volume)
调节录音音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | const int | 录音音量,可在 0~400 范围内进行调节 • 0: 静音 • 100: 原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护) |
注意
为保证更好的通话质量,建议将 volume 值设为 [0,100]
virtual void bytertc::IRtcEngineLite::AdjustPlaybackSignalVolume(
const int volume)
调节本地播放的所有远端用户音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | const int | 播放音量,可在 0~400 范围内进行调节 • 0: 静音 • 100: 原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护) |
注意
virtual void bytertc::IRtcEngineLite::EnableAudioLoopBackCapture(
bool enable)
开启声卡采集 开启声卡采集后,声卡播放的声音会被合到本地音频流中,从而可以发送到远端,一般会用于屏幕共享的场景,声卡采集的声音可以通过 AdjustAudioLoopbackCaptureVolume 调节
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | 是否开启声卡采集 • true: 开启声卡采集 • false: 关闭声卡采集(默认) |
virtual void bytertc::IRtcEngineLite::AdjustAudioLoopbackCaptureVolume(
int volume)
调节声卡采集音量 开启声卡采集后,声卡采集的声音可通过此 API 调节,开启声卡采集详情参考 EnableAudioLoopBackCapture
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 声卡采集音量,可在 0~400 范围内进行调节 • 0: 静音 • 100: 原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护) |
virtual int bytertc::IRtcEngineLite::EnableLocalAudio(
bool enable)
开启/关闭本地音频采集。
调用该方法后,房间中的其他用户会收到 OnUserEnableLocalAudio 事件回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | • true: 开启本地音频采集(默认) • false: 关闭本地音频采集 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
注意
关闭本地音频采集后,依然会编码发送静音包,因此依然会有少量 CPU 和 网络带宽开销。
virtual int bytertc::IRtcEngineLite::MuteLocalAudioStream(
bool mute)
静音本地音频流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute | bool | 是否静音本地音频流 • true: 静音本地音频流 • false: 关闭静音本地音频流(默认) |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
注意
virtual void bytertc::IRtcEngineLite::SetExternalAudioSource(
bool enable,
int sample_rate,
unsigned int record_channels,
unsigned int playout_channels)
设置是否启用外部音频采集渲染。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | • true: 启用自定义音频采集渲染 • false: 不启用自定义音频采集渲染 |
| sample_rate | int | 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000 |
| record_channels | unsigned int | 外部音频采集通道数,支持单通道(1)和双通道(2) |
| playout_channels | unsigned int | 外部音频渲染通道数,支持单通道(1)和双通道(2) |
注意
virtual void bytertc::IRtcEngineLite::SetAudioDeviceObserver(
IAudioDeviceObserver* obs)
启动音频外部源采集渲染时,添加音频外部设备事件监控
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| obs | IAudioDeviceObserver* | 音频外部设备事件监控,详见:IAudioDeviceObserver |
virtual bool bytertc::IRtcEngineLite::PushExternalAudioFrame(
int8_t* data,
int samples)
推送外部音频数据。使用 SetExternalAudioSource 启用自定义音频采集渲染后,可以使用本方法推送外部音频数据。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| data | int8_t* | pcm 数据,内存大小应该为 samples |
| samples | int | 采样点数量,应该为 SetExternalAudioSource 中设置的 sample_rate / 100。 当设置采样率为48000时, 每次应该推送480个采样点 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
注意
virtual bool bytertc::IRtcEngineLite::PullExternalAudioFrame(
int8_t* data,
int samples)
拉取远端音频数据。使用 SetExternalAudioSource 启用自定义音频采集渲染后,可以使用本方法拉取远端音频数据。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| data | int8_t* | pcm 数据,内存大小应该为 samples |
| samples | int | 采样点数量,应该为 SetExternalAudioSource 中设置的 sample_rate / 100。 当设置采样率为 48000 时, 每次应该拉取 480 个采样点 |
返回值
方法调用结果
+ true:方法调用成功
+ false:方法调用失败
注意
virtual int bytertc::IRtcEngineLite::StartAudioMixing(
const char* file_path,
bool loopback,
bool replace,
int cycle)
开始播放音乐文件及混音。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| file_path | const char* | 指定需要混音的本地文件的绝对路径。支持音频文件格式有: mp3,aac,m4a,3gp,wav。 |
| loopback | bool | • true: 只有本地可以听到混音或替换后的音频流。 • false: 本地和对方都可以听到混音或替换后的音频流 |
| replace | bool | • true: 只推送设置的本地音频文件,不传输麦克风采集的音频。 • false: 音频文件内容将会和麦克风采集的音频流进行混音 |
| cycle | int | 指定音频文件循环播放的次数。 • >0: 循环的次数。 • -1: 无限循环 |
返回值
注意
virtual void bytertc::IRtcEngineLite::StopAudioMixing()
停止播放音乐文件及混音
注意
virtual int bytertc::IRtcEngineLite::PauseAudioMixing()
暂停播放音乐文件
返回值
注意
virtual int bytertc::IRtcEngineLite::ResumeAudioMixing()
恢复播放音乐文件
返回值
注意
virtual int bytertc::IRtcEngineLite::AdjustAudioMixingVolume(
int volume)
调节音乐文件的文件音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音乐文件播放音量范围为 0~400。 • 0:静音 • 100:原始音量 • 400: 最大可调音量 (自带溢出保护) |
返回值
注意
virtual int bytertc::IRtcEngineLite::AdjustAudioMixingPlayoutVolume(
int volume)
调节音乐文件的本地播放音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音乐文件播放音量范围为 0~400。 • 0:静音 • 100:原始音量 • 400: 最大可调音量 (自带溢出保护) |
返回值
注意
virtual int bytertc::IRtcEngineLite::AdjustAudioMixingPublishVolume(
int volume)
调节音乐文件的远端播放音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音乐文件播放音量范围为 0~400。 • 0:静音 • 100:原始音量 • 400: 最大可调音量 (自带溢出保护) |
返回值
注意
virtual int bytertc::IRtcEngineLite::GetAudioMixingDuration()
获取音乐文件时长
返回值
注意
请在房间内调用该方法。
virtual int bytertc::IRtcEngineLite::GetAudioMixingCurrentPosition()
获取音乐文件播放进度
返回值
注意
请在房间内调用该方法。
virtual int bytertc::IRtcEngineLite::SetAudioMixingPosition(
int pos)
设置音频文件的播放位置
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| pos | int | 整数。进度条位置,单位为毫秒。 |
返回值
注意
该方法可以设置音频文件的播放位置,这样你可以根据实际情况从指定的位置播放音乐文件,无需从头到尾完整播放一个音乐文件。
virtual int bytertc::IRtcEngineLite::GetEffectVolume(
int sound_id)
获取指定音效文件的文件音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性。确保此处的 sound_id 与 PlayEffect 设置的 sound_id 相同。 |
返回值
注意
请在房间内调用该方法。
virtual int bytertc::IRtcEngineLite::SetVolumeOfEffect(
int sound_id,
int volume)
调节指定音效文件的文件音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性。确保此处的 sound_id 与 PlayEffect 设置的 sound_id 相同。 |
| volume | int | 音乐文件播放音量范围为 0~400。默认 100 为原始文件音量 |
返回值
注意
virtual int bytertc::IRtcEngineLite::PlayEffect(
int sound_id,
const char * file_path,
bool loopback,
int cycle,
int volume)
开始播放指定音效文件。你可以在该方法中设置音效文件的播放次数、音量大小,以及远端用户是否能听到该音效。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性。如果已经通过 PreloadEffect 将音效加载至内存,确保此处的 sound_id 与 PreloadEffect 设置的 sound_id 相同。 |
| file_path | const char* | 指定需要混音的音频文件名和文件路径名。支持以下音频格式: mp3,aac,m4a,3gp,wav |
| loopback | bool | • true: 只有本地可以听到该音效。 • false: 本地和远端用户都可以听到该音效。 |
| cycle | int | 指定音频文件循环播放的次数。 • >0:循环的次数。 • -1:无限循环,直至调用 StopEffect 或 StopAllEffects 后停止。 |
| volume | int | 音效文件播放音量范围为 0~400。默认 100 为原始文件音量。 |
返回值
注意
virtual int bytertc::IRtcEngineLite::PreloadEffect(
int sound_id,
const char * file_path)
预加载指定音效文件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性。 |
| file_path | const char* | 指定需要混音的音频文件名和文件路径名。支持以下音频格式: mp3,aac,m4a,3gp,wav。 |
返回值
注意
virtual int bytertc::IRtcEngineLite::UnloadEffect(
int sound_id)
卸载指定音效文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性。 |
返回值
注意
virtual int bytertc::IRtcEngineLite::StopEffect(
int sound_id)
停止播放指定音效文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性。如果已经通过 PreloadEffect 将音效加载至内存,确保此处的 sound_id 与 PreloadEffect 设置的 sound_id 相同。 |
返回值
注意
virtual int bytertc::IRtcEngineLite::PauseEffect(
int sound_id)
暂停播放指定音效文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性 |
返回值
注意
调用该方法暂停播放指定音效文件,可以调用 ResumeEffect 方法恢复播放。
virtual int bytertc::IRtcEngineLite::ResumeEffect(
int sound_id)
恢复播放指定音效文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性。 |
返回值
注意
virtual void bytertc::IRtcEngineLite::SetEffectsVolume(
int volume)
调节所有音效文件的文件音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音乐文件播放音量范围为 0~400。默认 100 为原始文件音量。 |
注意
virtual void bytertc::IRtcEngineLite::StopAllEffects()
停止所有音效文件的播放
注意
该方法停止所有音效文件的播放。
virtual void bytertc::IRtcEngineLite::PauseAllEffects()
暂停所有音效文件的播放。
注意
调用该方法暂停所有音效文件的播放,可调用 ResumeAllEffects 方法恢复播放。
virtual void bytertc::IRtcEngineLite::ResumeAllEffects()
恢复所有音效文件的播放
注意
virtual void bytertc::IRtcEngineLite::UnloadAllEffects()
卸载所有音效文件
注意
virtual void bytertc::IRtcEngineLite::SetAudioPlayoutMixStream(
bool enable,
int sample_rate,
int channel_num)
启动/停止外部音频流混音, 并设置混音数据格式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | • true: 启用外部音频流混音。 • false: 停止外部音频流混音。 |
| sample_rate | int | 音频采样率,单位HZ。目前支持的采样率有:8000HZ, 16000HZ, 32000HZ, 44100HZ,48000HZ。 |
| channel_num | int | 音频声道个数。目前支持单通道(1),双通道(2) |
注意
virtual int bytertc::IRtcEngineLite::GetAudioMixingStreamCachedFrameNum()
获取SDK当前缓冲数据
返回值
注意
调用该方法可以实时获取缓存数据量,并以此数据为基准调整数据推送节奏来避免内存溢出
virtual bool bytertc::IRtcEngineLite::PushAudioMixingStreamData(
int8_t* audio_frame,
int frame_num)
向SDK推送混音的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_frame | int8_t* | PCM音频数据,其格式与 SetAudioPlayoutMixStream 保持一致。 |
| frame_num | int | 采样点数量,应该为 SetAudioPlayoutMixStream 中设置的 sample_rate / 100。 当设置采样率为48000时, 每次应该推送480个采样点 |
返回值
注意
virtual int bytertc::IRtcEngineLite::EnableLocalVideo(
bool enable)
该方法开启或关闭本地视频采集。本地视频采集默认为开启。
调用该方法后,房间中的其他用户会收到 OnUserEnableLocalVideo 回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | • true: 开启本地视频采集(默认) • false: 关闭本地视频采集 |
返回值
注意
virtual int bytertc::IRtcEngineLite::SetVideoProfiles(
const VideoSolution* solutions,
int solution_num)
设置 SimulCast(联播模式)发布的一组视频分辨率,需要指定每个分辨率 VideoSolution 的宽、高、帧率、码率。 当发布的视频分辨率与采集的视频的长宽比与不同的时候,根据 ScaleMode 进行裁剪。 调用该方法代表使用 SimulCast 进行视频发布。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| solutions | const VideoSolution* | 发布的分辨率数组首地址 |
| solution_num | int | 分辨率数组长度 |
返回值
注意
virtual int bytertc::IRtcEngineLite::SetupLocalVideo(
const VideoCanvas& canvas)
设置本地视频画布 该方法设置本地视频显示信息。应用通过调用此接口绑定本地视频流的显示视窗 canvas,并设置本地用户视图的渲染模式。 在应用开发中,通常在初始化后调用该方法进行本地视频设置,然后再加入房间。退出房间后,绑定仍然有效。 如果需要解除绑定,可以指定空 canvas 调用该函数。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| canvas | const VideoCanvas& | 画布信息,详见:VideoCanvas |
返回值
virtual int bytertc::IRtcEngineLite::SetLocalVideoRender(
IVideoSink *sink)
设置本地视频渲染器 该方法设置本地视频外部渲染器。应用程序通过调用此接口绑定本地视频流的渲染器canvas。 在应用程序开发中,通常在初始化后调用该方法进行本地视频设置,然后再加入频道。退出频道后,绑定仍然有效, 如果需要解除绑定,可以指定空的VideoSink。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sink | IVideoSink* | 外部渲染器,详见:IVideoSink |
返回值
virtual void bytertc::IRtcEngineLite::RemoveLocalVideo()
解除绑定本地视频画布
注意
该方法设置本地视频显示信息。等同于 setupLocalVideo(canvas)setupLocalVideo 中指定空 canvas 调用。
virtual int bytertc::IRtcEngineLite::SetupLocalScreen(
const VideoCanvas& canvas)
设置屏幕共享本地视图 该方法设置屏幕共享本地视图信息。应用通过调用此接口绑定本地屏幕共享流的显示视图 VideoCanvas 。 在应用开发中,通常在初始化后调用该方法进行本地屏幕共享设置,然后再加入房间。退出房间后,绑定仍然有效, 可调用 RemoveLocalScreen 解除绑定。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| canvas | const VideoCanvas& | 本地视图,详见:VideoCanvas |
返回值
0 :成功; -1 :失败;
virtual int bytertc::IRtcEngineLite::SetLocalScreenRender(
IVideoSink* sink)
设置屏幕共享本地渲染器 该方法设置屏幕共享本地外部渲染器。应用通过调用此接口绑定本地屏幕共享流的渲染器 IVideoSink 。 在应用开发中,通常在初始化后调用该方法进行本地屏幕共享设置,然后再加入房间。退出房间后,绑定仍然有效, 如果需要解除绑定,可以指定空的 VideoSinkIVideoSink。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sink | IVideoSink* | 外部渲染器,详见:IVideoSink |
返回值
0 :成功; -1 :失败;
virtual void bytertc::IRtcEngineLite::RemoveLocalScreen()
清除屏幕共享本地视图
virtual int bytertc::IRtcEngineLite::MuteLocalVideoStream(
bool mute)
停止/启动发送本地视频流 该方法停止/启动发送本地视频流;调用该方法后,房间中的其他用户会收到 OnUserMuteVideo 的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute | bool | • true:停止本地的视频 • false:开启本地的视频 |
返回值
注意
本方法只是停止本地视频流的发送,并未关闭本地视频采集设备。
virtual int bytertc::IRtcEngineLite::StartPreview()
开启本地视频预览
返回值
注意
virtual int bytertc::IRtcEngineLite::StopPreview()
停止本地视频预览
返回值
注意
退出房间会自动关闭相机
virtual int bytertc::IRtcEngineLite::SwitchCamera()
切换前后摄像头
返回值
注意
virtual bool bytertc::IRtcEngineLite::PushScreenFrame(
IByteVideoFrame* frame)
发送屏幕共享本地视频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | IByteVideoFrame* | 设置屏幕视频帧,详见:IByteVideoFrame |
返回值
注意
virtual int bytertc::IRtcEngineLite::StartScreenCaptureByWindowId(
view_t window_id,
const Rectangle& region_rect,
const DesktopCaptureParameters& capture_params)
该方法共享一个窗口或该窗口的部分区域。用户需要在该方法中指定想要共享的窗口 id 。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| window_id | view_t | 指定待共享的窗口 id,详见:view_t |
| region_rect | const Rectangle& | 指定共享区域相对于整个窗口的位置,当值都为0时共享整个窗口,详见:Rectangle |
| capture_params | const DesktopCaptureParameters& | 屏幕共享的编码参数配置,详见:DesktopCaptureParameters |
返回值
注意
virtual int bytertc::IRtcEngineLite::StartScreenCaptureByScreenRect(
const Rectangle& screen_rect,
const Rectangle& region_rect,
const DesktopCaptureParameters& capture_params)
通过指定区域共享屏幕,共享一个屏幕或该屏幕的部分区域。用户需要在该方法中指定想要共享的屏幕区域。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| screen_rect | const Rectangle& | 指定待共享的屏幕相对于虚拟屏的位置,虚拟屏指所有屏幕组成的图像区域,详见:Rectangle |
| region_rect | const Rectangle& | 指定待共享区域相对于screen_rect的位置,详见:Rectangle |
| capture_params | const DesktopCaptureParameters& | 屏幕共享的编码参数配置,详见:DesktopCaptureParameters |
返回值
注意
virtual int bytertc::IRtcEngineLite::UpdateScreenCaptureRegion(
const Rectangle & region_rect)
更新屏幕共享区域。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| region_rect | const Rectangle & | • 当共享屏幕时,指定待共享区域相对于虚拟屏幕的位置,详见:Rectangle • 当共享窗口时,指定待共享区域相对于整个窗口的位置,详见:Rectangle |
返回值
virtual int bytertc::IRtcEngineLite::UpdateScreenCaptureParameters(
const DesktopCaptureParameters& capture_params)
更新屏幕共享的编码参数配置。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| capture_params | const DesktopCaptureParameters& | 屏幕共享的编码参数配置,详见:DesktopCaptureParameters |
返回值
virtual void bytertc::IRtcEngineLite::StopScreenCapture()
停止屏幕或者窗口共享。
注意
virtual void bytertc::IRtcEngineLite::SetExternalVideoSource(
bool enable)
设置外部视频输入源
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | • true: 采用外部输入源 • false: 不采用外部输入源 |
注意
该方法应该在 StartPreview 与 JoinChannel 前使用
virtual bool bytertc::IRtcEngineLite::PushExternalVideoFrame(
IByteVideoFrame* frame)
发送外部源视频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | IByteVideoFrame* | 设置视频帧,详见 IByteVideoFrame |
注意
virtual int bytertc::IRtcEngineLite::SetPublishFallbackOption(
int option)
设置发布的音视频流回退选项
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| option | int | 本地发布的音视频流回退选项 • 0:(默认)上行网络较弱或性能不佳时,不对音视频流作回退处理。 • 1:上行网络较弱或性能不佳时,只发送视频小流。 |
返回值
注意
virtual int bytertc::IRtcEngineLite::SetSubscribeFallbackOption(
SubscribeFallbackOptions option)
设置订阅的音视频流回退选项
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| option | SubscribeFallbackOptions | 远端订阅流回退处理选项,详见枚举类型 SubscribeFallbackOptions |
返回值
0: 方法调用成功
+ <0: 方法调用失败
注意
virtual int bytertc::IRtcEngineLite::SetRemoteUserPriority(
const char* user_id,
RemoteUserPriority priority)
设置用户优先级
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 远端用户的 ID |
| priority | RemoteUserPriority | 远端用户的需求优先级,详见枚举类型RemoteUserPriority |
返回值
0: 方法调用成功
+ <0: 方法调用失败
注意
virtual int bytertc::IRtcEngineLite::SetBusinessId(
const char* business_id)
设置业务标识参数。
可通过 business_id 区分不同的业务场景(角色/策略等)。business_id 由客户自定义,相当于一个“标签”,
可以分担和细化现在 AppId 的逻辑划分的功能。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| business_id | const char* | 用户设置的自己的 business_id 值。business_id 相当于一个 sub AppId,可以分担和细化现在 AppId 的逻辑划分的功能, 但不需要鉴权。business_id 只是一个标签,颗粒度需要用户自定义。 |
返回值
注意
virtual int bytertc::IRtcEngineLite::ReplaceBackground(
BACKGROUND_MODE mode,
DIVIDE_MODEL divide_model)
开启背景并设置背景模式与分割模式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mode | BACKGROUND_MODE | 背景模式,详见枚举类型 BACKGROUND_MODE |
| divide_model | DIVIDE_MODEL | 分割模型,详见枚举类型 DIVIDE_MODEL |
返回值
virtual void bytertc::IRtcEngineLite::DisableBackground()
关闭背景
virtual void bytertc::IRtcEngineLite::SetLocalVideoMirrorMode(
bool enable)
设置本地视频镜像
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | 是否开启镜像模式 • true:开启镜像模式 • false:不开启镜像模式 |
virtual bool bytertc::IRtcEngineLite::GetLocalVideoMirrorMode()
获得当前本地镜像状态
返回值
virtual void bytertc::IRtcEngineLite::SetAudioPerfProfile(
AudioPerfProfile profile)
设置音频处理复杂度。对于希望性能占用较低,可设置较低的音频处理复杂度,如果更在意通话质量,可选择设置更高的音频处理复杂度。 加入房间时,会携带本接口传入的机型等级,然后从服务端拉起相应音频配置。如果传入的是 auto,服务端会查询数据库,获得机型等级,再下发配置。 不同复杂度会开关 AEC、ANS、AGC 算法,调整播放 sample rate 等, 进行性能和质量的控制。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| profile | AudioPerfProfile | 机型等级, 详见枚举类 AudioPerfProfile |
注意
virtual void bytertc::IRtcEngineLite::SetEncryptInfo(
ByteEngineEncryptType encrypt_type,
const char* key,
int key_size)
设置AES加密算法和加密密钥
有四种内置的加密算法,详见 ByteEngineEncryptType
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| encrypt_type | ByteEngineEncryptType | 加密类型,详见 ByteEngineEncryptType |
| key | const char* | 加密密钥,长度限制为36位,超出部分将会被截断 |
| key_size | int | 参数 key 的长度 |
注意
virtual void bytertc::IRtcEngineLite::SetCustomizeEncryptHandler(
IByteEngineEncryptHandler* handler)
设置自定义加密
需要实现对应的加密/解密方法,详情参考 ByteEngineEncryptType
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| handler | IByteEngineEncryptHandler* | 自定义加密 handler,需要实现 handler 的加密和解密方法 |
注意
virtual void bytertc::IRtcEngineLite::SetRecordingAudioFrameParameters(
int sample_rate,
int channels)
设置本地麦克风录制的音频数据回调参数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sample_rate | int | 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000 |
| channels | int | 音频通道数,支持单声道(1)和双声道(2) |
注意
使用本方法设置参数,并使用RegisterAudioFrameObserver注册数据观察者,之后可以在IAudioFrameObserver的 OnRecordAudioFrame收到数据
virtual void bytertc::IRtcEngineLite::SetPlaybackAudioFrameParameters(
int sample_rate,
int channels)
设置远端所有用户音频数据混音后的音频数据回调参数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sample_rate | int | 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000 |
| channels | int | 音频通道数,支持单声道(1)和双声道(2) |
注意
使用本方法设置参数,并使用RegisterAudioFrameObserver注册数据观察者,之后可以在IAudioFrameObserver的 OnPlaybackAudioFrame收到数据
virtual void bytertc::IRtcEngineLite::SetMixedAudioFrameParameters(
int sample_rate,
int channels)
设置本地麦克风录制音频数据和远端所有用户音频数据混音后的音频数据回调参数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sample_rate | int | 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000 |
| channels | int | 音频通道数,支持单声道(1)和双声道(2) |
注意
使用本方法设置参数,并使用RegisterAudioFrameObserver注册数据观察者,之后可以在IAudioFrameObserver的 OnMixedAudioFrame收到数据
virtual void bytertc::IRtcEngineLite::RegisterAudioFrameObserver(
IAudioFrameObserver* observer)
注册音频数据回调观察者
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | IAudioFrameObserver* | 音频数据观察者,详见:IAudioFrameObserver |
注意
本方法需要与下面3个方法配合使用:SetRecordingAudioFrameParameters、 SetPlaybackAudioFrameParameters、 SetMixedAudioFrameParameters
virtual void bytertc::IRtcEngineLite::RegisterVideoFrameObserver(
IVideoFrameObserver* observer)
注册视频数据回调观察者
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | IVideoFrameObserver* | 数据回调函数,详见: IVideoFrameObserver 。 |
注意
virtual void bytertc::IRtcEngineLite::RegisterMetadataObserver(
IMetadataObserver* observer)
注册 metadata 观察者,用于接收或发送 metadata,底层通过在视频帧中添加 SEI 数据实现该功能。
注册观察者后,发送的视频帧里面没有 SEI 信息, 会触发 OnReadyToSendMetadata 回调。
注册观察者后,接收的视频帧里面有 SEI 信息,会触发接收 OnMetadataReceived 回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | IMetadataObserver* | metadata 观察者,详见:IMetadataObserver |
注意
virtual void bytertc::IRtcEngineLite::EnableAutoPublish(
bool auto_publish)
设置引擎自动发布属性
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | bool auto_publish | 要设置的引擎,详见:IRtcEngine |
| auto_publish | bool | 是否自动发布流,默认是true自动发布,设置false时可通过engine->publish()、engine->unpublish()来发布和取消发布本地流 |
注意
设置引擎是否自动发布用户的本地流,必须在joinChannel前调用。engine引擎默认auto_publish为true。当auto_publish为true时engine->publish()、 engine->unpublish()接口不应当被调用。
virtual IVideoDeviceManager* bytertc::IRtcEngineLite::GetVideoDeviceManager()
创建视频设备管理实例
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | **** | 用于创建视频设备管理实例的引擎,详见IRtcEngine |
返回值
视频设备管理实例,详见IVideoDeviceManager
注意
当不再使用IVideoDeviceManager实例时,调用该实例的 Release 接口,以免资源泄露
virtual IAudioDeviceManager* bytertc::IRtcEngineLite::GetAudioDeviceManager()
设备音频管理接口创建
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | **** | 要设置的引擎,详见:IRtcEngine |
返回值
音频设备管理接口
virtual void bytertc::IRtcEngineLite::RegisterRemoteAudioFrameObserver(
IRemoteAudioFrameObserver* observer)
注册音频数据回调观察者
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | IRemoteAudioFrameObserver* observer | 要设置的引擎,详见:IRtcEngine |
| observer | IRemoteAudioFrameObserver* | 音频数据回调观察者,详见:IRemoteAudioFrameObserver |
注意
注册该回调,可以收到单个远端用户的PCM数据
class bytertc::IRtcRoom
房间接口
Defined in : byte_rtc_room_interface.h
virtual void bytertc::IRtcRoom::SetClientRole(
CLIENT_ROLE_TYPE role)
设置用户角色。
用户可通过设置用户角色,控制:1.是否发布音视频流;2.用户自身是否在房间中隐身。详见用户角色 CLIENT_ROLE_TYPE。
默认用户角色为主播角色 CLIENT_ROLE_BROADCASTER
房间模式(通过调用接口 SetChannelProfile 可设置房间模式)为直播模式、游戏模式、云游戏模式时,设置用户角色生效。房间模式为通信模式时不区分用户角色。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| role | CLIENT_ROLE_TYPE | 用户角色,详见 CLIENT_ROLE_TYPE 。 |
注意
virtual void bytertc::IRtcRoom::SetChannelProfile(
CHANNEL_PROFILE_TYPE profile_type)
设置房间模式。
通过设置房间模式,用户可以选择应用 SDK 针对不同房间模式场景的优化策略。
默认的房间模式为通信模式 CHANNEL_PROFILE_COMMUNICATION
房间模式必须在调用 JoinChannel 加入房间前设置,加入房间后设置不生效。设置用户角色(通过方法 SetClientRole )建议在设置完房间模式后。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| profile_type | CHANNEL_PROFILE_TYPE | 房间模式,详见 CHANNEL_PROFILE_TYPE 枚举类型。 |
注意
virtual void bytertc::IRtcRoom::LeaveChannel()
离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
调用 JoinChannel 方法加入房间后,在通话结束时必须调用此方法结束通话,否则无法开始下一次通话。无论当前是否在房间中,都可以调用此方法。重复调用此方法不会有负面影响。
此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 OnLeaveChannel 回调通知。
注意
virtual void bytertc::IRtcRoom::RenewToken(
const char* token)
更新 Token。
Token 有一定的有效期,当 Token 过期时,用户需调用此方法更新房间的 Token 信息。
用户调用 JoinChannel 方法加入房间时,如果使用了过期的 Token 将导致加入房间失败,并会收到 OnChannelError 回调通知,回调错误码为 BRERR_INVALID_TOKEN 。此时需要重新获取 Token ,并调用此方法更新 Token。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| token | const char* | 更新的动态密钥。Token 用于对登录用户进行鉴权验证。 |
注意
virtual long bytertc::IRtcRoom::SendDataChannelMessage(
const char* uid,
const char* message)
给房间内指定的用户发送消息,返回这次发送消息的编号。
调用该函数后会收到一次 OnDataChannelMessageSendResult
回调,告知发送结果。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 指定用户 ID 。 |
| message | const char* | 发送的消息内容。 |
返回值
这次发送消息的编号,从 1 开始递增。
注意
virtual void bytertc::IRtcRoom::PublishScreen(
const ScreenParameters& paramters)
发布本地屏幕共享流到房间。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| paramters | const ScreenParameters& | 屏幕共享流编码参数,详见 ScreenParameters |
注意
virtual void bytertc::IRtcRoom::UnpublishScreen()
停止发布本地屏幕共享流到房间。
注意
远端会收到 OnStreamRemove 事件。
virtual void bytertc::IRtcRoom::SubscribeStream(
const char* stream_id,
const SubscribeConfig& info)
订阅指定的房间内远端音视频流。
关闭自动订阅功能,使用手动订阅模式时用户调用此方法按需订阅房间中的音视频流。
此方法仅在关闭自动订阅功能时生效。用户需在加入房间前调用 EnableAutoSubscribe 方法关闭自动订阅功能以使用手动订阅模式。
用户在自动订阅功能开启时调用此方法,SDK 不会订阅音视频流,并通过 OnChannelWarning 回调通知用户订阅失败,回调警告码为 BRWARN_SUBSCRIBE_STREAM_FORBIDEN 。
订阅流失败时,SDK 会按失败原因回调 OnChannelError 通知用户,具体错误可参考错误码 RTC_ERROR_CODE 描述。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_id | const char* | 指定订阅的远端音视频流的流ID 。 |
| info | const SubscribeConfig& | 选择订阅配置,详见数据结构 SubscribeConfig 。 |
注意
virtual void bytertc::IRtcRoom::Unsubscribe(
const char* stream_id)
停止订阅指定的房间内远端音视频流。
关闭自动订阅功能,使用手动订阅模式时用户调用此方法停止订阅已订阅的音视频流。
此方法仅在关闭自动订阅功能时生效。用户需在加入房间前调用 EnableAutoSubscribe 方法关闭自动订阅功能以使用手动订阅模式。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_id | const char* | 指定停止订阅的远端音视频流的流ID。 |
注意
virtual void bytertc::IRtcRoom::EnableAudioVolumeIndication(
int interval,
int smooth)
启用说话者音量提示。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| interval | int | 指定音量提示的时间间隔 • ≤ 0:禁用音量提示功能。 • > 0:返回音量提示的间隔,单位为毫秒。建议设置到大于等于200 毫秒。少于 10 毫秒时,行为未定义。 |
| smooth | int | 该参数未使用 |
注意
virtual void bytertc::IRtcRoom::AdjustRemoteAudioVolume(
const char* uid,
int volume)
调节远端用户音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 远端用户ID |
| volume | int | 播放音量,可在 0~400 范围内进行调节 • 0: 静音 • 100: 原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护) |
virtual void bytertc::IRtcRoom::SetDefaultMuteAllRemoteAudioStreams(
bool mute)
设置是否默认静音所有远端音频流。默认状态为非静音所有远端音频流。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute | bool | 是否默认静音所有远端音频流 • true: 默认静音所有远端音频流 • false: 默认取消静音所有远端音频流(默认) |
注意
virtual void bytertc::IRtcRoom::MuteAllRemoteAudioStreams()
静音所有音频流。默认状态为非静音所有远端音频流。
注意
virtual void bytertc::IRtcRoom::UnmuteAllRemoteAudioStreams()
取消静音所有远端音频流。默认状态为非静音所有远端音频流。
注意
virtual void bytertc::IRtcRoom::MuteRemoteAudioStream(
const char* uid)
静音指定用户音频流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 指定远端用户ID |
注意
virtual void bytertc::IRtcRoom::UnmuteRemoteAudioStream(
const char* uid)
取消对指定用户音频流的静音
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 指定远端用户ID |
注意
virtual void bytertc::IRtcRoom::SetupRemoteVideo(
const VideoCanvas& canvas)
设置远端视频渲染画布信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| canvas | const VideoCanvas& | 画布信息,详见:VideoCanvas |
注意
virtual void bytertc::IRtcRoom::SetRemoteVideoRender(
const char* uid,
IVideoSink* render)
设置远端视频外部渲染器
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 远端用户ID |
| render | IVideoSink* | 外部渲染器,详见:IVideoSink |
注意
该方法绑定远程用户视频流的渲染器,如需解绑,设置为空即可。
virtual void bytertc::IRtcRoom::RemoveRemoteVideo(
const char* userid)
去除特定用户的远端视频,通过用户ID锁定。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userid | const char* | 远端用户ID |
virtual void bytertc::IRtcRoom::RemoveAllRemoteVideo()
去除所有远端视频。
virtual void bytertc::IRtcRoom::SetupRemoteScreen(
const VideoCanvas& canvas)
设置屏幕共享远端视图。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| canvas | const VideoCanvas& | 远端视图信息,详见:VideoCanvas |
注意
该方法绑定远端视图,即设定用户ID的视图显示。调用该接口时需要指定远端屏幕共享用户ID。
virtual void bytertc::IRtcRoom::SetRemoteScreenRender(
const char* uid,
IVideoSink* render)
设置屏幕共享远端外部渲染器
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 远端用户ID |
| render | IVideoSink* | 外部渲染器,详见:IVideoSink |
注意
该方法绑定远端用户屏幕共享流的渲染器,如需解绑,设置为空即可。
virtual void bytertc::IRtcRoom::RemoveRemoteScreen(
const char* userid)
去除特定远端屏幕,通过用户ID锁定。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userid:远端用户ID | const char* userid |
virtual void bytertc::IRtcRoom::RemoveAllRemoteScreen()
去除屏幕共享所有远端视图。
virtual void bytertc::IRtcRoom::SetDefaultMuteAllRemoteVideoStreams(
bool mute)
设置是否默认接收视频流.
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute | bool | • true:禁止远端的视频 • false:开启远端的视频 |
注意
该方法在加入房间前后都可调用。如果在加入房间后调用,会接收不到后面加入房间的用户的视频流
virtual int bytertc::IRtcRoom::RemoteFirstVideoFrameRender(
const char* userid,
unsigned int elapse,
int64_t timestamp)
远端首帧视频帧渲染.
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userid | const char* | 远端用户ID |
| elapse | unsigned int | 加入频道开始到该回调触发过去的时间(ms) |
| timestamp | int64_t | 当前时间的时间戳(ms) |
返回值
virtual void bytertc::IRtcRoom::MuteAllRemoteVideoStreams()
关闭所有远端视频流
注意
本方法只控制收到的远端流视频播放属性,并不能控制远端视频设备
virtual void bytertc::IRtcRoom::UnmuteAllRemoteVideoStreams()
开启所有远端视频流
注意
本方法只控制收到的远端流视频播放属性,并不能控制远端视频设备
virtual void bytertc::IRtcRoom::MuteRemoteVideoStream(
const char* userid)
关闭远端视频流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userid | const char* | 要操控的远端用户ID |
注意
本方法只控制收到的远端流视频播放属性,并不能控制远端视频设备
virtual void bytertc::IRtcRoom::UnmuteRemoteVideoStream(
const char* userid)
开启远端视频流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userid | const char* | 要操控的远端用户ID |
注意
本方法只控制收到的远端流视频播放属性,并不能控制远端视频设备
virtual void bytertc::IRtcRoom::SendCustomMessage(
const char* message)
给房间内的所有其他用户发送广播消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| message | const char* | 发送的广播消息内容。 |
注意
virtual void bytertc::IRtcRoom::EnableAutoSubscribe(
bool auto_subscribe)
开启/关闭自动订阅功能。
用户调用此方法设置房间中是否开启自动订阅功能。SDK 默认开启自动订阅功能。
如需开启手动订阅功能,建议在调用 JoinChannel 方法加入房间前设置完成。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| auto_subscribe | bool | 开启/关闭自动订阅功能。 • true: 开启自动订阅功能。 • false: 关闭自动订阅功能。 |
注意
class bytertc::IByteVideoFrame
视频帧
Defined in : byte_rtc_video_frame.h
| 返回 | 名称 |
|---|---|
| static IByteVideoFrame* | build_video_frame |
| 返回 | 名称 |
|---|---|
| virtual int | frame_type |
| virtual int | pixel_format |
| virtual int64_t | timestamp_us |
| virtual int | width |
| virtual int | height |
| virtual int | rotation |
| virtual int | color_space |
| virtual int | number_of_planes |
| virtual uint8_t* | get_plane_data |
| virtual int | get_plane_line_size |
| virtual uint8_t* | get_extra_data_info |
| virtual uint8_t* | get_supplementary_info |
| virtual void* | get_hwaccel_buffer |
| virtual IByteVideoFrame* | shallow_copy |
| virtual void | release |
| virtual void | to_i420 |
static IByteVideoFrame* bytertc::IByteVideoFrame::build_video_frame(
const ByteVideoFrameBuilder& builder)
根据视频帧参数创建视频帧并返回指针
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| ByteVideoFrameBuilder | const | 视频帧创建类对象,详见 ByteVideoFrameBuilder:ByteVideoFrameBuilder |
返回值
返回后的视频帧指针
virtual int bytertc::IByteVideoFrame::frame_type() const
获取视频帧类型
返回值
视频帧类型
virtual int bytertc::IByteVideoFrame::pixel_format() const
获取视频帧格式
返回值
视频帧格式
virtual int64_t bytertc::IByteVideoFrame::timestamp_us() const
获取视频帧时间戳
返回值
视频帧时间戳,单位:微妙
virtual int bytertc::IByteVideoFrame::width() const
获取视频帧宽度
返回值
视频帧宽度
virtual int bytertc::IByteVideoFrame::height() const
获取视频帧高度
返回值
视频帧高度
virtual int bytertc::IByteVideoFrame::rotation() const
获取视频帧旋转角度
返回值
视频帧旋转角度
virtual int bytertc::IByteVideoFrame::color_space() const
获取视频帧颜色空间
返回值
视频帧颜色空间
virtual int bytertc::IByteVideoFrame::number_of_planes() const
视频帧颜色 plane 数量
返回值
视频帧颜色 plane 数量
注意
yuv数据存储格式分为 plane 存储格式和pack存储格式,plane 格式中有 y,u,v 分开存储,pack 中 yuv 数据
virtual uint8_t* bytertc::IByteVideoFrame::get_plane_data(
int plane_index)
获取 plane 数据指针
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| plane_index | int | plane 数据索引 |
virtual int bytertc::IByteVideoFrame::get_plane_line_size(
int plane_index)
获取 plane 中数据行的长度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| plane_index | int | plane 数据索引 |
virtual uint8_t* bytertc::IByteVideoFrame::get_extra_data_info(
int& size)
获取扩展数据指针
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| size | int& | 扩展数据字节数 |
返回值
扩展数据的指针
virtual uint8_t* bytertc::IByteVideoFrame::get_supplementary_info(
int& size)
获取补充数据指针
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| size | int& | 补充数据字节数 |
返回值
补充数据的指针
virtual void* bytertc::IByteVideoFrame::get_hwaccel_buffer()
获取本地缓冲区指针
返回值
本地缓冲区指针
virtual IByteVideoFrame* bytertc::IByteVideoFrame::shallow_copy()
浅拷贝视频帧并返回指针
返回值
浅拷贝的视频帧的指针
virtual void bytertc::IByteVideoFrame::release()
释放视频帧
virtual void bytertc::IByteVideoFrame::to_i420()
视频帧数据转为 YUV I420 格式
class bytertc::IVideoDeviceCollection
获取视频设备相关的信息
Defined in : byte_rtc_device_manager.h
| 返回 | 名称 |
|---|---|
| virtual int | GetCount |
| virtual int | GetDevice |
| virtual void | Release |
virtual int bytertc::IVideoDeviceCollection::GetCount()
获取当前系统内视频采集设备数量
返回值
视频采集设备数量
virtual int bytertc::IVideoDeviceCollection::GetDevice(
int index,
char device_name[MAX_DEVICE_ID_LENGTH],
char device_id[MAX_DEVICE_ID_LENGTH])
根据索引号,获取设备信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | int | 视频设备索引号,从0开始, 注意小于GetCount返回值 |
| device_name | char | 视频设备名称 |
| device_id | char | 视频设备ID |
返回值
注意
使用方负责按MAX_DEVICE_ID_LENGTH大小,分配与释放内存
virtual void bytertc::IVideoDeviceCollection::Release()
释放当前IVideoDeviceCollection对象占用的资源
注意
该结构不需要的时候应该调用本函数释放视频操作相关的资源
class bytertc::IVideoDeviceManager
主要用于枚举、设置视频采集设备
Defined in : byte_rtc_device_manager.h
| 返回 | 名称 |
|---|---|
| virtual IVideoDeviceCollection* | EnumerateVideoDevices |
| virtual int | SetDevice |
| virtual int | GetDevice |
| virtual void | Release |
virtual IVideoDeviceCollection* bytertc::IVideoDeviceManager::EnumerateVideoDevices()
获取当前系统视频设备列表
返回值
一个包含系统中所有视频设备列表的对象,详见 IVideoDeviceCollection
注意
virtual int bytertc::IVideoDeviceManager::SetDevice(
const char device_id[MAX_DEVICE_ID_LENGTH])
设置当前视频采集设备
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | const char | 视频设备ID,可以通过EnumerateVideoDevices获取 |
返回值
virtual int bytertc::IVideoDeviceManager::GetDevice(
char device_id[MAX_DEVICE_ID_LENGTH])
获取当前SDK正在使用的设备信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | char | 视频设备ID |
返回值
注意
使用方负责按MAX_DEVICE_ID_LENGTH大小,分配与释放内存
virtual void bytertc::IVideoDeviceManager::Release()
注意
不需要的时候应该调用本函数释放视频设备管理实例
class bytertc::IAudioDeviceCollection
音频设备列表。 EnumeratePlaybackDevices 返回音频播放设备列表。 EnumerateRecordingDevices 返回音频采集设备列表。
Defined in : byte_rtc_device_manager.h
| 返回 | 名称 |
|---|---|
| virtual int | GetCount |
| virtual int | GetDevice |
| virtual void | Release |
virtual int bytertc::IAudioDeviceCollection::GetCount()
获取设备列表中设备个数
返回值
设备列表中设备个数
注意
virtual int bytertc::IAudioDeviceCollection::GetDevice(
int index,
char device_name[MAX_DEVICE_ID_LENGTH],
char device_id[MAX_DEVICE_ID_LENGTH])
根据索引,获取当前设备列表中设备信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | int | 设备索引号,从0开始,注意小于 GetCount返回值 |
| device_name | char | 设备名称,使用方负责按 MAX_DEVICE_ID_LENGTH 大小,分配与释放内存 |
| device_id | char | 设备ID,使用方负责按 MAX_DEVICE_ID_LENGTH 大小,分配与释放内存 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
注意
virtual void bytertc::IAudioDeviceCollection::Release()
析构当前对象,释放内存
注意
严禁调用 delete 该结构体,该结构不需要的时候应该调用本函数释放音频操作相关的资源
class bytertc::IAudioDeviceManager
音频设备管理类
Defined in : byte_rtc_device_manager.h
| 返回 | 名称 |
|---|---|
| virtual IAudioDeviceCollection* | EnumeratePlaybackDevices |
| virtual IAudioDeviceCollection* | EnumerateRecordingDevices |
| virtual int | SetPlaybackDevice |
| virtual int | SetRecordingDevice |
| virtual int | SetPlaybackDeviceVolume |
| virtual int | GetPlaybackDeviceVolume |
| virtual int | SetRecordingDeviceVolume |
| virtual int | GetRecordingDeviceVolume |
| virtual int | SetPlaybackDeviceMute |
| virtual int | GetPlaybackDeviceMute |
| virtual int | SetRecordingDeviceMute |
| virtual int | GetRecordingDeviceMute |
| virtual int | GetPlaybackDevice |
| virtual int | GetPlaybackDeviceInfo |
| virtual int | GetRecordingDevice |
| virtual int | GetRecordingDeviceInfo |
| virtual int | StartPlaybackDeviceTest |
| virtual int | StopPlaybackDeviceTest |
| virtual int | StartAudioRecordingDeviceTest |
| virtual int | StopAudioRecordingDeviceTest |
| virtual int | StartAudioDeviceLoopbackTest |
| virtual int | StopAudioDeviceLoopbackTest |
| virtual void | Release |
virtual IAudioDeviceCollection* bytertc::IAudioDeviceManager::EnumeratePlaybackDevices()
创建音频播放设备列表,该集合包含你调用本接口时系统中的音频播放设备。如果后续设备有变更,你需要重新调用本接口以获得新的设备列表.
返回值
音频播放设备列表,详见 IAudioDeviceCollection
注意
当不再使用返回的列表时,需要使用 Release 进行释放
virtual IAudioDeviceCollection* bytertc::IAudioDeviceManager::EnumerateRecordingDevices()
创建音频采集设备列表,该集合包含你调用本接口时系统中的音频采集设备。如果后续设备有变更,你需要重新调用本接口以获得新的设备列表.
返回值
音频采集设备列表,详见 IAudioDeviceCollection
注意
当不再使用返回的列表时,需要使用 Release 进行释放
virtual int bytertc::IAudioDeviceManager::SetPlaybackDevice(
const char device_id[MAX_DEVICE_ID_LENGTH])
设置音频播放设备
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | const char | 音频播放设备ID, 可通过 EnumeratePlaybackDevices 获取。 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
virtual int bytertc::IAudioDeviceManager::SetRecordingDevice(
const char device_id[MAX_DEVICE_ID_LENGTH])
设置音频采集设备
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | const char | 音频采集设备ID, 可通过 EnumerateRecordingDevices 获取。 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
virtual int bytertc::IAudioDeviceManager::SetPlaybackDeviceVolume(
unsigned int volume)
设置音频播放设备音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | unsigned int | 音频播放设备音量, 取值范围 [0,255], 超出此范围设置无效 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
virtual int bytertc::IAudioDeviceManager::GetPlaybackDeviceVolume(
unsigned int* volume)
获取音频播放设备音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | unsigned int* | 音频播放设备音量, 取值范围 [0,255] |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
virtual int bytertc::IAudioDeviceManager::SetRecordingDeviceVolume(
unsigned int volume)
设置音频采集设备音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | unsigned int | 音频采集设备音量, 取值范围 [0,255], 超出此范围设置无效 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
virtual int bytertc::IAudioDeviceManager::GetRecordingDeviceVolume(
unsigned int* volume)
获取音频采集设备音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | unsigned int* | 音频采集设备音量, 取值范围 [0,255] |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
virtual int bytertc::IAudioDeviceManager::SetPlaybackDeviceMute(
bool mute)
设置音频播放设备静音,默认为非静音。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute | bool | • true:静音 • false:非静音 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
virtual int bytertc::IAudioDeviceManager::GetPlaybackDeviceMute(
bool* mute)
获取音频播放设备静音信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute | bool* | • true:静音 • false:非静音 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
virtual int bytertc::IAudioDeviceManager::SetRecordingDeviceMute(
bool mute)
设置音频采集设备静音,默认为非静音
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute | bool | • true:静音 • false:非静音 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
virtual int bytertc::IAudioDeviceManager::GetRecordingDeviceMute(
bool* mute)
获取音频采集设备静音信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute | bool* | • true:静音 • false:非静音 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
virtual int bytertc::IAudioDeviceManager::GetPlaybackDevice(
char device_id[MAX_DEVICE_ID_LENGTH])
获取当前使用的音频播放设备ID
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | char | 设备ID,使用方负责按 MAX_DEVICE_ID_LENGTH 大小,分配与释放内存 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
virtual int bytertc::IAudioDeviceManager::GetPlaybackDeviceInfo(
char device_id[MAX_DEVICE_ID_LENGTH],
char device_name[MAX_DEVICE_ID_LENGTH])
获取当前音频播放设备信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | char | 设备ID,使用方负责按 MAX_DEVICE_ID_LENGTH 大小,分配与释放内存 |
| device_name | char | 设备名称,使用方负责按 MAX_DEVICE_ID_LENGTH 大小,分配与释放内存 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
注意
virtual int bytertc::IAudioDeviceManager::GetRecordingDevice(
char device_id[MAX_DEVICE_ID_LENGTH])
获取当前音频采集设备ID
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | char | 设备ID,使用方负责按 MAX_DEVICE_ID_LENGTH 大小,分配与释放内存 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
virtual int bytertc::IAudioDeviceManager::GetRecordingDeviceInfo(
char device_id[MAX_DEVICE_ID_LENGTH],
char device_name[MAX_DEVICE_ID_LENGTH])
获取当前音频采集设备信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | char | 设备ID,使用方负责按 MAX_DEVICE_ID_LENGTH 大小,分配与释放内存 |
| device_name | char | 设备名称,使用方负责按 MAX_DEVICE_ID_LENGTH 大小,分配与释放内存 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
注意
virtual int bytertc::IAudioDeviceManager::StartPlaybackDeviceTest(
const char* test_audio_file_path)
启动音频播放设备测试 该方法测试播放设备是否能正常工作。SDK 播放指定的音频文件,测试者如果能听到声音,说明播放设备能正常工作。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| test_audio_file_path | const char* | 音频文件的绝对路径,路径字符串使用 UTF-8 编码格式,支持以下音频格式: mp3,aac,m4a,3gp,wav |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
注意
virtual int bytertc::IAudioDeviceManager::StopPlaybackDeviceTest()
停止音频播放设备测试。
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
注意
调用 StartPlaybackDeviceTest 后,调用本方法停止测试。
virtual int bytertc::IAudioDeviceManager::StartAudioRecordingDeviceTest(
int indication_interval)
启动音频采集设备测试。 该方法测试音频采集是否能正常工作,启动测试后,SDK 通过 OnAudioVolumeIndication 回调方法向应用上报音量信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| indication_interval | int | OnAudioVolumeIndication 回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。最小不得少于 10 毫秒。小于10ms行为未定义 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
注意
virtual int bytertc::IAudioDeviceManager::StopAudioRecordingDeviceTest()
停止音频采集设备测试。
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
注意
调用 StartAudioRecordingDeviceTest 后,调用本方法停止测试。
virtual int bytertc::IAudioDeviceManager::StartAudioDeviceLoopbackTest(
int indication_interval)
开始音频设备回路测试。 该方法测试音频采集设备和音频播放设备是否能正常工作。一旦测试开始,音频采集设备会采集本地讲话声音 然后使用音频播放设备播放出来,同时 SDK 会通过 OnAudioVolumeIndication 回调向应用程序上报音量信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| indication_interval | int | OnAudioVolumeIndication 回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。最小不得少于 10 毫秒。小于10ms行为未定义 |
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
注意
virtual int bytertc::IAudioDeviceManager::StopAudioDeviceLoopbackTest()
停止音频设备回路测试。
返回值
方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败
注意
调用 StartAudioDeviceLoopbackTest 后,调用本方法停止测试。
virtual void bytertc::IAudioDeviceManager::Release()
析构当前对象,释放内存
注意
严禁调用 delete 该结构体,该结构不需要的时候应该调用本函数释放音频操作相关的资源