Public API

函数

返回 名称
BYTE_API int Feedback
BYTE_API bytertc::IRtcEngine* CreateByteRtcEngine
BYTE_API void DestroyByteRtcEngine
BYTE_API void EnablePerformanceCollect

函数说明

Feedback

BYTE_API int bytertc::Feedback(
    const char* data)

本次通话质量打分评价。

传入参数

参数名 类型 说明
data const char* 反馈数据为 JSON 格式,必须包含以下 5 个上报项,缺少则上报失败。
1. grade: 分值,[1,5]的整数闭区间,分值越大越好。
2. type: 反馈问题类型,参考 PROBLEM_FEEDBACK 。
3. problem_desc: 问题描述。
4. os_version: 操作系统版本,参考{Windows_10

返回值

注意

CreateByteRtcEngine

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 实例。

注意

DestroyByteRtcEngine

BYTE_API void bytertc::DestroyByteRtcEngine(
    bytertc::IRtcEngine* engine)

销毁由 CreateByteRtcEngine 创建的 RTCEngine 实例,并释放所有相关资源。

传入参数

参数名 类型 说明
engine bytertc::IRtcEngine* 由 CreateByteRtcEngine 返回的实例。

注意

EnablePerformanceCollect

BYTE_API void bytertc::EnablePerformanceCollect(
    bool enable)

设置引擎是否开启性能采集功能,默认为开启。

传入参数

参数名 类型 说明
enable bool • true:开启
• false:不开启

注意

开启后,SDK内部会采集CPU、内存使用量。可能会对性能有影响。

IRtcEngine

class bytertc::IRtcEngine

引擎API IRtcEngine用IRtcEngineEventHandler 注册接口类方法向应用程序发送回调通知

Defined in : byte_rtc_engine_interface.h

成员函数

返回 名称
virtual int JoinChannel

函数说明

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 为空,失败

注意

IRtcEngineLite

class bytertc::IRtcEngineLite

引擎 API

Defined in : byte_rtc_engine_lite_interface.h

成员函数

返回 名称
virtual const char* GetVersion
virtual void AdjustRecordingSignalVolume
virtual void AdjustPlaybackSignalVolume
virtual void EnableAudioLoopBackCapture
virtual void AdjustAudioLoopbackCaptureVolume
virtual int EnableLocalAudio
virtual int MuteLocalAudioStream
virtual void SetExternalAudioSource
virtual void SetAudioDeviceObserver
virtual bool PushExternalAudioFrame
virtual bool PullExternalAudioFrame
virtual int StartAudioMixing
virtual void StopAudioMixing
virtual int PauseAudioMixing
virtual int ResumeAudioMixing
virtual int AdjustAudioMixingVolume
virtual int AdjustAudioMixingPlayoutVolume
virtual int AdjustAudioMixingPublishVolume
virtual int GetAudioMixingDuration
virtual int GetAudioMixingCurrentPosition
virtual int SetAudioMixingPosition
virtual int GetEffectVolume
virtual int SetVolumeOfEffect
virtual int PlayEffect
virtual int PreloadEffect
virtual int UnloadEffect
virtual int StopEffect
virtual int PauseEffect
virtual int ResumeEffect
virtual void SetEffectsVolume
virtual void StopAllEffects
virtual void PauseAllEffects
virtual void ResumeAllEffects
virtual void UnloadAllEffects
virtual void SetAudioPlayoutMixStream
virtual int GetAudioMixingStreamCachedFrameNum
virtual bool PushAudioMixingStreamData
virtual int EnableLocalVideo
virtual int SetVideoProfiles
virtual int SetupLocalVideo
virtual int SetLocalVideoRender
virtual void RemoveLocalVideo
virtual int SetupLocalScreen
virtual int SetLocalScreenRender
virtual void RemoveLocalScreen
virtual int MuteLocalVideoStream
virtual int StartPreview
virtual int StopPreview
virtual int SwitchCamera
virtual bool PushScreenFrame
virtual int StartScreenCaptureByWindowId
virtual int StartScreenCaptureByScreenRect
virtual int UpdateScreenCaptureRegion
virtual int UpdateScreenCaptureParameters
virtual void StopScreenCapture
virtual void SetExternalVideoSource
virtual bool PushExternalVideoFrame
virtual int SetPublishFallbackOption
virtual int SetSubscribeFallbackOption
virtual int SetRemoteUserPriority
virtual int SetBusinessId
virtual int ReplaceBackground
virtual void DisableBackground
virtual void SetLocalVideoMirrorMode
virtual bool GetLocalVideoMirrorMode
virtual void SetAudioPerfProfile
virtual void SetEncryptInfo
virtual void SetCustomizeEncryptHandler
virtual void SetRecordingAudioFrameParameters
virtual void SetPlaybackAudioFrameParameters
virtual void SetMixedAudioFrameParameters
virtual void RegisterAudioFrameObserver
virtual void RegisterVideoFrameObserver
virtual void RegisterMetadataObserver
virtual void EnableAutoPublish
virtual IVideoDeviceManager* GetVideoDeviceManager
virtual IAudioDeviceManager* GetAudioDeviceManager
virtual void RegisterRemoteAudioFrameObserver

函数说明

GetVersion

virtual const char* bytertc::IRtcEngineLite::GetVersion(
    int* build)

获取当前 SDK 版本信息。

传入参数

参数名 类型 说明
build int* 保留值,暂时没用。

返回值

当前 SDK 版本信息。

AdjustRecordingSignalVolume

virtual void bytertc::IRtcEngineLite::AdjustRecordingSignalVolume(
    const int volume)

调节录音音量

传入参数

参数名 类型 说明
volume const int 录音音量,可在 0~400 范围内进行调节
• 0: 静音
• 100: 原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

注意

为保证更好的通话质量,建议将 volume 值设为 [0,100]

AdjustPlaybackSignalVolume

virtual void bytertc::IRtcEngineLite::AdjustPlaybackSignalVolume(
    const int volume)

调节本地播放的所有远端用户音量

传入参数

参数名 类型 说明
volume const int 播放音量,可在 0~400 范围内进行调节
• 0: 静音
• 100: 原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

注意

EnableAudioLoopBackCapture

virtual void bytertc::IRtcEngineLite::EnableAudioLoopBackCapture(
    bool enable)

开启声卡采集 开启声卡采集后,声卡播放的声音会被合到本地音频流中,从而可以发送到远端,一般会用于屏幕共享的场景,声卡采集的声音可以通过 AdjustAudioLoopbackCaptureVolume 调节

传入参数

参数名 类型 说明
enable bool 是否开启声卡采集
• true: 开启声卡采集
• false: 关闭声卡采集(默认)

AdjustAudioLoopbackCaptureVolume

virtual void bytertc::IRtcEngineLite::AdjustAudioLoopbackCaptureVolume(
    int volume)

调节声卡采集音量 开启声卡采集后,声卡采集的声音可通过此 API 调节,开启声卡采集详情参考 EnableAudioLoopBackCapture

传入参数

参数名 类型 说明
volume int 声卡采集音量,可在 0~400 范围内进行调节
• 0: 静音
• 100: 原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

EnableLocalAudio

virtual int bytertc::IRtcEngineLite::EnableLocalAudio(
    bool enable)

开启/关闭本地音频采集。
调用该方法后,房间中的其他用户会收到 OnUserEnableLocalAudio 事件回调。

传入参数

参数名 类型 说明
enable bool • true: 开启本地音频采集(默认)
• false: 关闭本地音频采集

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

注意

关闭本地音频采集后,依然会编码发送静音包,因此依然会有少量 CPU 和 网络带宽开销。

MuteLocalAudioStream

virtual int bytertc::IRtcEngineLite::MuteLocalAudioStream(
    bool mute)

静音本地音频流

传入参数

参数名 类型 说明
mute bool 是否静音本地音频流
• true: 静音本地音频流
• false: 关闭静音本地音频流(默认)

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

注意

SetExternalAudioSource

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)

注意

SetAudioDeviceObserver

virtual void bytertc::IRtcEngineLite::SetAudioDeviceObserver(
    IAudioDeviceObserver* obs)

启动音频外部源采集渲染时,添加音频外部设备事件监控

传入参数

参数名 类型 说明
obs IAudioDeviceObserver* 音频外部设备事件监控,详见:IAudioDeviceObserver

PushExternalAudioFrame

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:方法调用失败

注意

PullExternalAudioFrame

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:方法调用失败

注意

StartAudioMixing

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: 无限循环

返回值

注意

StopAudioMixing

virtual void bytertc::IRtcEngineLite::StopAudioMixing()

停止播放音乐文件及混音

注意

PauseAudioMixing

virtual int bytertc::IRtcEngineLite::PauseAudioMixing()

暂停播放音乐文件

返回值

注意

ResumeAudioMixing

virtual int bytertc::IRtcEngineLite::ResumeAudioMixing()

恢复播放音乐文件

返回值

注意

AdjustAudioMixingVolume

virtual int bytertc::IRtcEngineLite::AdjustAudioMixingVolume(
    int volume)

调节音乐文件的文件音量。为保证更好的音质,建议将 volume 值设为 [0,100]。

传入参数

参数名 类型 说明
volume int 音乐文件播放音量范围为 0~400。
• 0:静音
• 100:原始音量
• 400: 最大可调音量 (自带溢出保护)

返回值

注意

AdjustAudioMixingPlayoutVolume

virtual int bytertc::IRtcEngineLite::AdjustAudioMixingPlayoutVolume(
    int volume)

调节音乐文件的本地播放音量。为保证更好的音质,建议将 volume 值设为 [0,100]。

传入参数

参数名 类型 说明
volume int 音乐文件播放音量范围为 0~400。
• 0:静音
• 100:原始音量
• 400: 最大可调音量 (自带溢出保护)

返回值

注意

AdjustAudioMixingPublishVolume

virtual int bytertc::IRtcEngineLite::AdjustAudioMixingPublishVolume(
    int volume)

调节音乐文件的远端播放音量。为保证更好的音质,建议将 volume 值设为 [0,100]。

传入参数

参数名 类型 说明
volume int 音乐文件播放音量范围为 0~400。
• 0:静音
• 100:原始音量
• 400: 最大可调音量 (自带溢出保护)

返回值

注意

GetAudioMixingDuration

virtual int bytertc::IRtcEngineLite::GetAudioMixingDuration()

获取音乐文件时长

返回值

注意

请在房间内调用该方法。

GetAudioMixingCurrentPosition

virtual int bytertc::IRtcEngineLite::GetAudioMixingCurrentPosition()

获取音乐文件播放进度

返回值

注意

请在房间内调用该方法。

SetAudioMixingPosition

virtual int bytertc::IRtcEngineLite::SetAudioMixingPosition(
    int pos)

设置音频文件的播放位置

传入参数

参数名 类型 说明
pos int 整数。进度条位置,单位为毫秒。

返回值

注意

该方法可以设置音频文件的播放位置,这样你可以根据实际情况从指定的位置播放音乐文件,无需从头到尾完整播放一个音乐文件。

GetEffectVolume

virtual int bytertc::IRtcEngineLite::GetEffectVolume(
    int sound_id)

获取指定音效文件的文件音量

传入参数

参数名 类型 说明
sound_id int 音效ID,应用调用者维护,请保证唯一性。确保此处的 sound_id 与 PlayEffect 设置的 sound_id 相同。

返回值

注意

请在房间内调用该方法。

SetVolumeOfEffect

virtual int bytertc::IRtcEngineLite::SetVolumeOfEffect(
    int sound_id,
    int volume)

调节指定音效文件的文件音量

传入参数

参数名 类型 说明
sound_id int 音效ID,应用调用者维护,请保证唯一性。确保此处的 sound_id 与 PlayEffect 设置的 sound_id 相同。
volume int 音乐文件播放音量范围为 0~400。默认 100 为原始文件音量

返回值

注意

PlayEffect

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 为原始文件音量。

返回值

注意

PreloadEffect

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。

返回值

注意

UnloadEffect

virtual int bytertc::IRtcEngineLite::UnloadEffect(
    int sound_id)

卸载指定音效文件

传入参数

参数名 类型 说明
sound_id int 音效ID,应用调用者维护,请保证唯一性。

返回值

注意

StopEffect

virtual int bytertc::IRtcEngineLite::StopEffect(
    int sound_id)

停止播放指定音效文件

传入参数

参数名 类型 说明
sound_id int 音效ID,应用调用者维护,请保证唯一性。如果已经通过 PreloadEffect 将音效加载至内存,确保此处的 sound_id 与 PreloadEffect 设置的 sound_id 相同。

返回值

注意

PauseEffect

virtual int bytertc::IRtcEngineLite::PauseEffect(
    int sound_id)

暂停播放指定音效文件

传入参数

参数名 类型 说明
sound_id int 音效ID,应用调用者维护,请保证唯一性

返回值

注意

调用该方法暂停播放指定音效文件,可以调用 ResumeEffect 方法恢复播放。

ResumeEffect

virtual int bytertc::IRtcEngineLite::ResumeEffect(
    int sound_id)

恢复播放指定音效文件

传入参数

参数名 类型 说明
sound_id int 音效ID,应用调用者维护,请保证唯一性。

返回值

注意

SetEffectsVolume

virtual void bytertc::IRtcEngineLite::SetEffectsVolume(
    int volume)

调节所有音效文件的文件音量

传入参数

参数名 类型 说明
volume int 音乐文件播放音量范围为 0~400。默认 100 为原始文件音量。

注意

StopAllEffects

virtual void bytertc::IRtcEngineLite::StopAllEffects()

停止所有音效文件的播放

注意

该方法停止所有音效文件的播放。

PauseAllEffects

virtual void bytertc::IRtcEngineLite::PauseAllEffects()

暂停所有音效文件的播放。

注意

调用该方法暂停所有音效文件的播放,可调用 ResumeAllEffects 方法恢复播放。

ResumeAllEffects

virtual void bytertc::IRtcEngineLite::ResumeAllEffects()

恢复所有音效文件的播放

注意

UnloadAllEffects

virtual void bytertc::IRtcEngineLite::UnloadAllEffects()

卸载所有音效文件

注意

SetAudioPlayoutMixStream

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)

注意

GetAudioMixingStreamCachedFrameNum

virtual int bytertc::IRtcEngineLite::GetAudioMixingStreamCachedFrameNum()

获取SDK当前缓冲数据

返回值

注意

调用该方法可以实时获取缓存数据量,并以此数据为基准调整数据推送节奏来避免内存溢出

PushAudioMixingStreamData

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个采样点

返回值

注意

EnableLocalVideo

virtual int bytertc::IRtcEngineLite::EnableLocalVideo(
    bool enable)

该方法开启或关闭本地视频采集。本地视频采集默认为开启。
调用该方法后,房间中的其他用户会收到 OnUserEnableLocalVideo 回调。

传入参数

参数名 类型 说明
enable bool • true: 开启本地视频采集(默认)
• false: 关闭本地视频采集

返回值

注意

SetVideoProfiles

virtual int bytertc::IRtcEngineLite::SetVideoProfiles(
    const VideoSolution* solutions,
    int solution_num)

设置 SimulCast(联播模式)发布的一组视频分辨率,需要指定每个分辨率 VideoSolution 的宽、高、帧率、码率。 当发布的视频分辨率与采集的视频的长宽比与不同的时候,根据 ScaleMode 进行裁剪。 调用该方法代表使用 SimulCast 进行视频发布。

传入参数

参数名 类型 说明
solutions const VideoSolution* 发布的分辨率数组首地址
solution_num int 分辨率数组长度

返回值

注意

SetupLocalVideo

virtual int bytertc::IRtcEngineLite::SetupLocalVideo(
    const VideoCanvas& canvas)

设置本地视频画布 该方法设置本地视频显示信息。应用通过调用此接口绑定本地视频流的显示视窗 canvas,并设置本地用户视图的渲染模式。 在应用开发中,通常在初始化后调用该方法进行本地视频设置,然后再加入房间。退出房间后,绑定仍然有效。 如果需要解除绑定,可以指定空 canvas 调用该函数。

传入参数

参数名 类型 说明
canvas const VideoCanvas& 画布信息,详见:VideoCanvas

返回值

SetLocalVideoRender

virtual int bytertc::IRtcEngineLite::SetLocalVideoRender(
    IVideoSink *sink)

设置本地视频渲染器 该方法设置本地视频外部渲染器。应用程序通过调用此接口绑定本地视频流的渲染器canvas。 在应用程序开发中,通常在初始化后调用该方法进行本地视频设置,然后再加入频道。退出频道后,绑定仍然有效, 如果需要解除绑定,可以指定空的VideoSink。

传入参数

参数名 类型 说明
sink IVideoSink* 外部渲染器,详见:IVideoSink

返回值

RemoveLocalVideo

virtual void bytertc::IRtcEngineLite::RemoveLocalVideo()

解除绑定本地视频画布

注意

该方法设置本地视频显示信息。等同于 setupLocalVideo(canvas)setupLocalVideo 中指定空 canvas 调用。

SetupLocalScreen

virtual int bytertc::IRtcEngineLite::SetupLocalScreen(
    const VideoCanvas& canvas)

设置屏幕共享本地视图 该方法设置屏幕共享本地视图信息。应用通过调用此接口绑定本地屏幕共享流的显示视图 VideoCanvas 。 在应用开发中,通常在初始化后调用该方法进行本地屏幕共享设置,然后再加入房间。退出房间后,绑定仍然有效, 可调用 RemoveLocalScreen 解除绑定。

传入参数

参数名 类型 说明
canvas const VideoCanvas& 本地视图,详见:VideoCanvas

返回值

0 :成功; -1 :失败;

SetLocalScreenRender

virtual int bytertc::IRtcEngineLite::SetLocalScreenRender(
    IVideoSink* sink)

设置屏幕共享本地渲染器 该方法设置屏幕共享本地外部渲染器。应用通过调用此接口绑定本地屏幕共享流的渲染器 IVideoSink 。 在应用开发中,通常在初始化后调用该方法进行本地屏幕共享设置,然后再加入房间。退出房间后,绑定仍然有效, 如果需要解除绑定,可以指定空的 VideoSinkIVideoSink。

传入参数

参数名 类型 说明
sink IVideoSink* 外部渲染器,详见:IVideoSink

返回值

0 :成功; -1 :失败;

RemoveLocalScreen

virtual void bytertc::IRtcEngineLite::RemoveLocalScreen()

清除屏幕共享本地视图

MuteLocalVideoStream

virtual int bytertc::IRtcEngineLite::MuteLocalVideoStream(
    bool mute)

停止/启动发送本地视频流 该方法停止/启动发送本地视频流;调用该方法后,房间中的其他用户会收到 OnUserMuteVideo 的回调。

传入参数

参数名 类型 说明
mute bool • true:停止本地的视频
• false:开启本地的视频

返回值

注意

本方法只是停止本地视频流的发送,并未关闭本地视频采集设备。

StartPreview

virtual int bytertc::IRtcEngineLite::StartPreview()

开启本地视频预览

返回值

注意

StopPreview

virtual int bytertc::IRtcEngineLite::StopPreview()

停止本地视频预览

返回值

注意

退出房间会自动关闭相机

SwitchCamera

virtual int bytertc::IRtcEngineLite::SwitchCamera()

切换前后摄像头

返回值

注意

PushScreenFrame

virtual bool bytertc::IRtcEngineLite::PushScreenFrame(
    IByteVideoFrame* frame)

发送屏幕共享本地视频数据

传入参数

参数名 类型 说明
frame IByteVideoFrame* 设置屏幕视频帧,详见:IByteVideoFrame

返回值

注意

StartScreenCaptureByWindowId

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

返回值

注意

StartScreenCaptureByScreenRect

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

返回值

注意

UpdateScreenCaptureRegion

virtual int bytertc::IRtcEngineLite::UpdateScreenCaptureRegion(
    const Rectangle & region_rect)

更新屏幕共享区域。

传入参数

参数名 类型 说明
region_rect const Rectangle & • 当共享屏幕时,指定待共享区域相对于虚拟屏幕的位置,详见:Rectangle
• 当共享窗口时,指定待共享区域相对于整个窗口的位置,详见:Rectangle

返回值

UpdateScreenCaptureParameters

virtual int bytertc::IRtcEngineLite::UpdateScreenCaptureParameters(
    const DesktopCaptureParameters& capture_params)

更新屏幕共享的编码参数配置。

传入参数

参数名 类型 说明
capture_params const DesktopCaptureParameters& 屏幕共享的编码参数配置,详见:DesktopCaptureParameters

返回值

StopScreenCapture

virtual void bytertc::IRtcEngineLite::StopScreenCapture()

停止屏幕或者窗口共享。

注意

SetExternalVideoSource

virtual void bytertc::IRtcEngineLite::SetExternalVideoSource(
    bool enable)

设置外部视频输入源

传入参数

参数名 类型 说明
enable bool • true: 采用外部输入源
• false: 不采用外部输入源

注意

该方法应该在 StartPreview 与 JoinChannel 前使用

PushExternalVideoFrame

virtual bool bytertc::IRtcEngineLite::PushExternalVideoFrame(
    IByteVideoFrame* frame)

发送外部源视频数据

传入参数

参数名 类型 说明
frame IByteVideoFrame* 设置视频帧,详见 IByteVideoFrame

注意

SetPublishFallbackOption

virtual int bytertc::IRtcEngineLite::SetPublishFallbackOption(
    int option)

设置发布的音视频流回退选项

传入参数

参数名 类型 说明
option int 本地发布的音视频流回退选项
• 0:(默认)上行网络较弱或性能不佳时,不对音视频流作回退处理。
• 1:上行网络较弱或性能不佳时,只发送视频小流。

返回值

注意

SetSubscribeFallbackOption

virtual int bytertc::IRtcEngineLite::SetSubscribeFallbackOption(
    SubscribeFallbackOptions option)

设置订阅的音视频流回退选项

传入参数

参数名 类型 说明
option SubscribeFallbackOptions 远端订阅流回退处理选项,详见枚举类型 SubscribeFallbackOptions

返回值

0: 方法调用成功
+ <0: 方法调用失败

注意

SetRemoteUserPriority

virtual int bytertc::IRtcEngineLite::SetRemoteUserPriority(
    const char* user_id,
    RemoteUserPriority priority)

设置用户优先级

传入参数

参数名 类型 说明
user_id const char* 远端用户的 ID
priority RemoteUserPriority 远端用户的需求优先级,详见枚举类型RemoteUserPriority

返回值

0: 方法调用成功
+ <0: 方法调用失败

注意

SetBusinessId

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 只是一个标签,颗粒度需要用户自定义。

返回值

注意

ReplaceBackground

virtual int bytertc::IRtcEngineLite::ReplaceBackground(
    BACKGROUND_MODE mode,
    DIVIDE_MODEL divide_model)

开启背景并设置背景模式与分割模式

传入参数

参数名 类型 说明
mode BACKGROUND_MODE 背景模式,详见枚举类型 BACKGROUND_MODE
divide_model DIVIDE_MODEL 分割模型,详见枚举类型 DIVIDE_MODEL

返回值

DisableBackground

virtual void bytertc::IRtcEngineLite::DisableBackground()

关闭背景

SetLocalVideoMirrorMode

virtual void bytertc::IRtcEngineLite::SetLocalVideoMirrorMode(
    bool enable)

设置本地视频镜像

传入参数

参数名 类型 说明
enable bool 是否开启镜像模式
• true:开启镜像模式
• false:不开启镜像模式

GetLocalVideoMirrorMode

virtual bool bytertc::IRtcEngineLite::GetLocalVideoMirrorMode()

获得当前本地镜像状态

返回值

SetAudioPerfProfile

virtual void bytertc::IRtcEngineLite::SetAudioPerfProfile(
    AudioPerfProfile profile)

设置音频处理复杂度。对于希望性能占用较低,可设置较低的音频处理复杂度,如果更在意通话质量,可选择设置更高的音频处理复杂度。 加入房间时,会携带本接口传入的机型等级,然后从服务端拉起相应音频配置。如果传入的是 auto,服务端会查询数据库,获得机型等级,再下发配置。 不同复杂度会开关 AEC、ANS、AGC 算法,调整播放 sample rate 等, 进行性能和质量的控制。

传入参数

参数名 类型 说明
profile AudioPerfProfile 机型等级, 详见枚举类 AudioPerfProfile

注意

SetEncryptInfo

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 的长度

注意

SetCustomizeEncryptHandler

virtual void bytertc::IRtcEngineLite::SetCustomizeEncryptHandler(
    IByteEngineEncryptHandler* handler)

设置自定义加密
需要实现对应的加密/解密方法,详情参考 ByteEngineEncryptType

传入参数

参数名 类型 说明
handler IByteEngineEncryptHandler* 自定义加密 handler,需要实现 handler 的加密和解密方法

注意

SetRecordingAudioFrameParameters

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收到数据

SetPlaybackAudioFrameParameters

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收到数据

SetMixedAudioFrameParameters

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收到数据

RegisterAudioFrameObserver

virtual void bytertc::IRtcEngineLite::RegisterAudioFrameObserver(
    IAudioFrameObserver* observer)

注册音频数据回调观察者

传入参数

参数名 类型 说明
observer IAudioFrameObserver* 音频数据观察者,详见:IAudioFrameObserver

注意

本方法需要与下面3个方法配合使用:SetRecordingAudioFrameParameters、 SetPlaybackAudioFrameParameters、 SetMixedAudioFrameParameters

RegisterVideoFrameObserver

virtual void bytertc::IRtcEngineLite::RegisterVideoFrameObserver(
    IVideoFrameObserver* observer)

注册视频数据回调观察者

传入参数

参数名 类型 说明
observer IVideoFrameObserver* 数据回调函数,详见: IVideoFrameObserver 。

注意

RegisterMetadataObserver

virtual void bytertc::IRtcEngineLite::RegisterMetadataObserver(
    IMetadataObserver* observer)

注册 metadata 观察者,用于接收或发送 metadata,底层通过在视频帧中添加 SEI 数据实现该功能。
注册观察者后,发送的视频帧里面没有 SEI 信息, 会触发 OnReadyToSendMetadata 回调。
注册观察者后,接收的视频帧里面有 SEI 信息,会触发接收 OnMetadataReceived 回调。

传入参数

参数名 类型 说明
observer IMetadataObserver* metadata 观察者,详见:IMetadataObserver

注意

EnableAutoPublish

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()接口不应当被调用。

GetVideoDeviceManager

virtual IVideoDeviceManager* bytertc::IRtcEngineLite::GetVideoDeviceManager()

创建视频设备管理实例

传入参数

参数名 类型 说明
engine **** 用于创建视频设备管理实例的引擎,详见IRtcEngine

返回值

视频设备管理实例,详见IVideoDeviceManager

注意

当不再使用IVideoDeviceManager实例时,调用该实例的 Release 接口,以免资源泄露

GetAudioDeviceManager

virtual IAudioDeviceManager* bytertc::IRtcEngineLite::GetAudioDeviceManager()

设备音频管理接口创建

传入参数

参数名 类型 说明
engine **** 要设置的引擎,详见:IRtcEngine

返回值

音频设备管理接口

RegisterRemoteAudioFrameObserver

virtual void bytertc::IRtcEngineLite::RegisterRemoteAudioFrameObserver(
    IRemoteAudioFrameObserver* observer)

注册音频数据回调观察者

传入参数

参数名 类型 说明
engine IRemoteAudioFrameObserver* observer 要设置的引擎,详见:IRtcEngine
observer IRemoteAudioFrameObserver* 音频数据回调观察者,详见:IRemoteAudioFrameObserver

注意

注册该回调,可以收到单个远端用户的PCM数据

IRtcRoom

class bytertc::IRtcRoom

房间接口

Defined in : byte_rtc_room_interface.h

成员函数

返回 名称
virtual void SetClientRole
virtual void SetChannelProfile
virtual void LeaveChannel
virtual void RenewToken
virtual long SendDataChannelMessage
virtual void PublishScreen
virtual void UnpublishScreen
virtual void SubscribeStream
virtual void Unsubscribe
virtual void EnableAudioVolumeIndication
virtual void AdjustRemoteAudioVolume
virtual void SetDefaultMuteAllRemoteAudioStreams
virtual void MuteAllRemoteAudioStreams
virtual void UnmuteAllRemoteAudioStreams
virtual void MuteRemoteAudioStream
virtual void UnmuteRemoteAudioStream
virtual void SetupRemoteVideo
virtual void SetRemoteVideoRender
virtual void RemoveRemoteVideo
virtual void RemoveAllRemoteVideo
virtual void SetupRemoteScreen
virtual void SetRemoteScreenRender
virtual void RemoveRemoteScreen
virtual void RemoveAllRemoteScreen
virtual void SetDefaultMuteAllRemoteVideoStreams
virtual int RemoteFirstVideoFrameRender
virtual void MuteAllRemoteVideoStreams
virtual void UnmuteAllRemoteVideoStreams
virtual void MuteRemoteVideoStream
virtual void UnmuteRemoteVideoStream
virtual void SendCustomMessage
virtual void EnableAutoSubscribe

函数说明

SetClientRole

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 。

注意

SetChannelProfile

virtual void bytertc::IRtcRoom::SetChannelProfile(
    CHANNEL_PROFILE_TYPE profile_type)

设置房间模式。
通过设置房间模式,用户可以选择应用 SDK 针对不同房间模式场景的优化策略。
默认的房间模式为通信模式 CHANNEL_PROFILE_COMMUNICATION
房间模式必须在调用 JoinChannel 加入房间前设置,加入房间后设置不生效。设置用户角色(通过方法 SetClientRole )建议在设置完房间模式后。

传入参数

参数名 类型 说明
profile_type CHANNEL_PROFILE_TYPE 房间模式,详见 CHANNEL_PROFILE_TYPE 枚举类型。

注意

LeaveChannel

virtual void bytertc::IRtcRoom::LeaveChannel()

离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
调用 JoinChannel 方法加入房间后,在通话结束时必须调用此方法结束通话,否则无法开始下一次通话。无论当前是否在房间中,都可以调用此方法。重复调用此方法不会有负面影响。
此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 OnLeaveChannel 回调通知。

注意

RenewToken

virtual void bytertc::IRtcRoom::RenewToken(
    const char* token)

更新 Token。
Token 有一定的有效期,当 Token 过期时,用户需调用此方法更新房间的 Token 信息。
用户调用 JoinChannel 方法加入房间时,如果使用了过期的 Token 将导致加入房间失败,并会收到 OnChannelError 回调通知,回调错误码为 BRERR_INVALID_TOKEN 。此时需要重新获取 Token ,并调用此方法更新 Token。

传入参数

参数名 类型 说明
token const char* 更新的动态密钥。Token 用于对登录用户进行鉴权验证。

注意

SendDataChannelMessage

virtual long bytertc::IRtcRoom::SendDataChannelMessage(
    const char* uid,
    const char* message)

给房间内指定的用户发送消息,返回这次发送消息的编号。
调用该函数后会收到一次 OnDataChannelMessageSendResult 回调,告知发送结果。

传入参数

参数名 类型 说明
uid const char* 指定用户 ID 。
message const char* 发送的消息内容。

返回值

这次发送消息的编号,从 1 开始递增。

注意

PublishScreen

virtual void bytertc::IRtcRoom::PublishScreen(
    const ScreenParameters& paramters)

发布本地屏幕共享流到房间。

传入参数

参数名 类型 说明
paramters const ScreenParameters& 屏幕共享流编码参数,详见 ScreenParameters

注意

UnpublishScreen

virtual void bytertc::IRtcRoom::UnpublishScreen()

停止发布本地屏幕共享流到房间。

注意

远端会收到 OnStreamRemove 事件。

SubscribeStream

virtual void bytertc::IRtcRoom::SubscribeStream(
    const char* user_id,
    const SubscribeConfig& info)

订阅指定的房间内远端音视频流。
关闭自动订阅功能,使用手动订阅模式时用户调用此方法按需订阅房间中的音视频流。
此方法仅在关闭自动订阅功能时生效。用户需在加入房间前调用 EnableAutoSubscribe 方法关闭自动订阅功能以使用手动订阅模式。
用户在自动订阅功能开启时调用此方法,SDK 不会订阅音视频流,并通过 OnChannelWarning 回调通知用户订阅失败,回调警告码为 BRWARN_SUBSCRIBE_STREAM_FORBIDEN 。
订阅流失败时,SDK 会按失败原因回调 OnChannelError 通知用户,具体错误可参考错误码 RTC_ERROR_CODE 描述。

传入参数

参数名 类型 说明
user_id const char* 指定订阅的远端用户的用户ID 。
info const SubscribeConfig& 选择订阅配置,详见数据结构 SubscribeConfig 。

注意

Unsubscribe

virtual void bytertc::IRtcRoom::Unsubscribe(
    const char* user_id,
    bool is_screen)

停止订阅指定的房间内远端音视频流。
关闭自动订阅功能,使用手动订阅模式时用户调用此方法停止订阅已订阅的音视频流。
此方法仅在关闭自动订阅功能时生效。用户需在加入房间前调用 EnableAutoSubscribe 方法关闭自动订阅功能以使用手动订阅模式。

传入参数

参数名 类型 说明
user_id const char* 指定停止订阅的远端音视频流的用户的ID。
is_screen bool 指定停止的流是不是屏幕流。

注意

EnableAudioVolumeIndication

virtual void bytertc::IRtcRoom::EnableAudioVolumeIndication(
    int interval,
    int smooth)

启用说话者音量提示。

传入参数

参数名 类型 说明
interval int 指定音量提示的时间间隔
• ≤ 0:禁用音量提示功能。
• > 0:返回音量提示的间隔,单位为毫秒。建议设置到大于等于200 毫秒。少于 10 毫秒时,行为未定义。
smooth int 该参数未使用

注意

AdjustRemoteAudioVolume

virtual void bytertc::IRtcRoom::AdjustRemoteAudioVolume(
    const char* uid,
    int volume)

调节远端用户音量

传入参数

参数名 类型 说明
uid const char* 远端用户ID
volume int 播放音量,可在 0~400 范围内进行调节
• 0: 静音
• 100: 原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

SetDefaultMuteAllRemoteAudioStreams

virtual void bytertc::IRtcRoom::SetDefaultMuteAllRemoteAudioStreams(
    bool mute)

设置是否默认静音所有远端音频流。默认状态为非静音所有远端音频流。

传入参数

参数名 类型 说明
mute bool 是否默认静音所有远端音频流
• true: 默认静音所有远端音频流
• false: 默认取消静音所有远端音频流(默认)

注意

MuteAllRemoteAudioStreams

virtual void bytertc::IRtcRoom::MuteAllRemoteAudioStreams()

静音所有音频流。默认状态为非静音所有远端音频流。

注意

UnmuteAllRemoteAudioStreams

virtual void bytertc::IRtcRoom::UnmuteAllRemoteAudioStreams()

取消静音所有远端音频流。默认状态为非静音所有远端音频流。

注意

MuteRemoteAudioStream

virtual void bytertc::IRtcRoom::MuteRemoteAudioStream(
    const char* uid)

静音指定用户音频流

传入参数

参数名 类型 说明
uid const char* 指定远端用户ID

注意

UnmuteRemoteAudioStream

virtual void bytertc::IRtcRoom::UnmuteRemoteAudioStream(
    const char* uid)

取消对指定用户音频流的静音

传入参数

参数名 类型 说明
uid const char* 指定远端用户ID

注意

SetupRemoteVideo

virtual void bytertc::IRtcRoom::SetupRemoteVideo(
    const VideoCanvas& canvas)

设置远端视频渲染画布信息

传入参数

参数名 类型 说明
canvas const VideoCanvas& 画布信息,详见:VideoCanvas

注意

SetRemoteVideoRender

virtual void bytertc::IRtcRoom::SetRemoteVideoRender(
    const char* uid,
    IVideoSink* render)

设置远端视频外部渲染器

传入参数

参数名 类型 说明
uid const char* 远端用户ID
render IVideoSink* 外部渲染器,详见:IVideoSink

注意

该方法绑定远程用户视频流的渲染器,如需解绑,设置为空即可。

RemoveRemoteVideo

virtual void bytertc::IRtcRoom::RemoveRemoteVideo(
    const char* userid)

去除特定用户的远端视频,通过用户ID锁定。

传入参数

参数名 类型 说明
userid const char* 远端用户ID

RemoveAllRemoteVideo

virtual void bytertc::IRtcRoom::RemoveAllRemoteVideo()

去除所有远端视频。

SetupRemoteScreen

virtual void bytertc::IRtcRoom::SetupRemoteScreen(
    const VideoCanvas& canvas)

设置屏幕共享远端视图。

传入参数

参数名 类型 说明
canvas const VideoCanvas& 远端视图信息,详见:VideoCanvas

注意

该方法绑定远端视图,即设定用户ID的视图显示。调用该接口时需要指定远端屏幕共享用户ID。

SetRemoteScreenRender

virtual void bytertc::IRtcRoom::SetRemoteScreenRender(
    const char* uid,
    IVideoSink* render)

设置屏幕共享远端外部渲染器

传入参数

参数名 类型 说明
uid const char* 远端用户ID
render IVideoSink* 外部渲染器,详见:IVideoSink

注意

该方法绑定远端用户屏幕共享流的渲染器,如需解绑,设置为空即可。

RemoveRemoteScreen

virtual void bytertc::IRtcRoom::RemoveRemoteScreen(
    const char* userid)

去除特定远端屏幕,通过用户ID锁定。

传入参数

参数名 类型 说明
userid:远端用户ID const char* userid

RemoveAllRemoteScreen

virtual void bytertc::IRtcRoom::RemoveAllRemoteScreen()

去除屏幕共享所有远端视图。

SetDefaultMuteAllRemoteVideoStreams

virtual void bytertc::IRtcRoom::SetDefaultMuteAllRemoteVideoStreams(
    bool mute)

设置是否默认接收视频流.

传入参数

参数名 类型 说明
mute bool • true:禁止远端的视频
• false:开启远端的视频

注意

该方法在加入房间前后都可调用。如果在加入房间后调用,会接收不到后面加入房间的用户的视频流

RemoteFirstVideoFrameRender

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)

返回值

MuteAllRemoteVideoStreams

virtual void bytertc::IRtcRoom::MuteAllRemoteVideoStreams()

关闭所有远端视频流

注意

本方法只控制收到的远端流视频播放属性,并不能控制远端视频设备

UnmuteAllRemoteVideoStreams

virtual void bytertc::IRtcRoom::UnmuteAllRemoteVideoStreams()

开启所有远端视频流

注意

本方法只控制收到的远端流视频播放属性,并不能控制远端视频设备

MuteRemoteVideoStream

virtual void bytertc::IRtcRoom::MuteRemoteVideoStream(
    const char* userid)

关闭远端视频流

传入参数

参数名 类型 说明
userid const char* 要操控的远端用户ID

注意

本方法只控制收到的远端流视频播放属性,并不能控制远端视频设备

UnmuteRemoteVideoStream

virtual void bytertc::IRtcRoom::UnmuteRemoteVideoStream(
    const char* userid)

开启远端视频流

传入参数

参数名 类型 说明
userid const char* 要操控的远端用户ID

注意

本方法只控制收到的远端流视频播放属性,并不能控制远端视频设备

SendCustomMessage

virtual void bytertc::IRtcRoom::SendCustomMessage(
    const char* message)

给房间内的所有其他用户发送广播消息。

传入参数

参数名 类型 说明
message const char* 发送的广播消息内容。

注意

EnableAutoSubscribe

virtual void bytertc::IRtcRoom::EnableAutoSubscribe(
    bool auto_subscribe)

开启/关闭自动订阅功能。
用户调用此方法设置房间中是否开启自动订阅功能。SDK 默认开启自动订阅功能。
如需开启手动订阅功能,建议在调用 JoinChannel 方法加入房间前设置完成。

传入参数

参数名 类型 说明
auto_subscribe bool 开启/关闭自动订阅功能。
• true: 开启自动订阅功能。
• false: 关闭自动订阅功能。

注意

IByteVideoFrame

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

函数说明

build_video_frame

static IByteVideoFrame* bytertc::IByteVideoFrame::build_video_frame(
    const ByteVideoFrameBuilder& builder)

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

传入参数

参数名 类型 说明
ByteVideoFrameBuilder const 视频帧创建类对象,详见 ByteVideoFrameBuilder:ByteVideoFrameBuilder

返回值

返回后的视频帧指针

frame_type

virtual int bytertc::IByteVideoFrame::frame_type() const

获取视频帧类型

返回值

视频帧类型

pixel_format

virtual int bytertc::IByteVideoFrame::pixel_format() const

获取视频帧格式

返回值

视频帧格式

timestamp_us

virtual int64_t bytertc::IByteVideoFrame::timestamp_us() const

获取视频帧时间戳

返回值

视频帧时间戳,单位:微妙

width

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

获取视频帧宽度

返回值

视频帧宽度

height

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

获取视频帧高度

返回值

视频帧高度

rotation

virtual int bytertc::IByteVideoFrame::rotation() const

获取视频帧旋转角度

返回值

视频帧旋转角度

color_space

virtual int bytertc::IByteVideoFrame::color_space() const

获取视频帧颜色空间

返回值

视频帧颜色空间

number_of_planes

virtual int bytertc::IByteVideoFrame::number_of_planes() const

视频帧颜色 plane 数量

返回值

视频帧颜色 plane 数量

注意

yuv数据存储格式分为 plane 存储格式和pack存储格式,plane 格式中有 y,u,v 分开存储,pack 中 yuv 数据

get_plane_data

virtual uint8_t* bytertc::IByteVideoFrame::get_plane_data(
    int plane_index)

获取 plane 数据指针

传入参数

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

get_plane_line_size

virtual int bytertc::IByteVideoFrame::get_plane_line_size(
    int plane_index)

获取 plane 中数据行的长度

传入参数

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

get_extra_data_info

virtual uint8_t* bytertc::IByteVideoFrame::get_extra_data_info(
    int& size)

获取扩展数据指针

传入参数

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

返回值

扩展数据的指针

get_supplementary_info

virtual uint8_t* bytertc::IByteVideoFrame::get_supplementary_info(
    int& size)

获取补充数据指针

传入参数

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

返回值

补充数据的指针

get_hwaccel_buffer

virtual void* bytertc::IByteVideoFrame::get_hwaccel_buffer()

获取本地缓冲区指针

返回值

本地缓冲区指针

shallow_copy

virtual IByteVideoFrame* bytertc::IByteVideoFrame::shallow_copy()

浅拷贝视频帧并返回指针

返回值

浅拷贝的视频帧的指针

release

virtual void bytertc::IByteVideoFrame::release()

释放视频帧

to_i420

virtual void bytertc::IByteVideoFrame::to_i420()

视频帧数据转为 YUV I420 格式

IVideoDeviceCollection

class bytertc::IVideoDeviceCollection

获取视频设备相关的信息

Defined in : byte_rtc_device_manager.h

成员函数

返回 名称
virtual int GetCount
virtual int GetDevice
virtual void Release

函数说明

GetCount

virtual int bytertc::IVideoDeviceCollection::GetCount()

获取当前系统内视频采集设备数量

返回值

视频采集设备数量

GetDevice

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大小,分配与释放内存

Release

virtual void bytertc::IVideoDeviceCollection::Release()

释放当前IVideoDeviceCollection对象占用的资源

注意

该结构不需要的时候应该调用本函数释放视频操作相关的资源

IVideoDeviceManager

class bytertc::IVideoDeviceManager

主要用于枚举、设置视频采集设备

Defined in : byte_rtc_device_manager.h

成员函数

返回 名称
virtual IVideoDeviceCollection* EnumerateVideoDevices
virtual int SetDevice
virtual int GetDevice
virtual void Release

函数说明

EnumerateVideoDevices

virtual IVideoDeviceCollection* bytertc::IVideoDeviceManager::EnumerateVideoDevices()

获取当前系统视频设备列表

返回值

一个包含系统中所有视频设备列表的对象,详见 IVideoDeviceCollection

注意

SetDevice

virtual int bytertc::IVideoDeviceManager::SetDevice(
    const char device_id[MAX_DEVICE_ID_LENGTH])

设置当前视频采集设备

传入参数

参数名 类型 说明
device_id const char 视频设备ID,可以通过EnumerateVideoDevices获取

返回值

GetDevice

virtual int bytertc::IVideoDeviceManager::GetDevice(
    char device_id[MAX_DEVICE_ID_LENGTH])

获取当前SDK正在使用的设备信息

传入参数

参数名 类型 说明
device_id char 视频设备ID

返回值

注意

使用方负责按MAX_DEVICE_ID_LENGTH大小,分配与释放内存

Release

virtual void bytertc::IVideoDeviceManager::Release()

释放当前IVideoDeviceManager

注意

不需要的时候应该调用本函数释放视频设备管理实例

IAudioDeviceCollection

class bytertc::IAudioDeviceCollection

音频设备列表。 EnumeratePlaybackDevices 返回音频播放设备列表。 EnumerateRecordingDevices 返回音频采集设备列表。

Defined in : byte_rtc_device_manager.h

成员函数

返回 名称
virtual int GetCount
virtual int GetDevice
virtual void Release

函数说明

GetCount

virtual int bytertc::IAudioDeviceCollection::GetCount()

获取设备列表中设备个数

返回值

设备列表中设备个数

注意

GetDevice

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:方法调用失败

注意

Release

virtual void bytertc::IAudioDeviceCollection::Release()

析构当前对象,释放内存

注意

严禁调用 delete 该结构体,该结构不需要的时候应该调用本函数释放音频操作相关的资源

IAudioDeviceManager

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

函数说明

EnumeratePlaybackDevices

virtual IAudioDeviceCollection* bytertc::IAudioDeviceManager::EnumeratePlaybackDevices()

创建音频播放设备列表,该集合包含你调用本接口时系统中的音频播放设备。如果后续设备有变更,你需要重新调用本接口以获得新的设备列表.

返回值

音频播放设备列表,详见 IAudioDeviceCollection

注意

当不再使用返回的列表时,需要使用 Release 进行释放

EnumerateRecordingDevices

virtual IAudioDeviceCollection* bytertc::IAudioDeviceManager::EnumerateRecordingDevices()

创建音频采集设备列表,该集合包含你调用本接口时系统中的音频采集设备。如果后续设备有变更,你需要重新调用本接口以获得新的设备列表.

返回值

音频采集设备列表,详见 IAudioDeviceCollection

注意

当不再使用返回的列表时,需要使用 Release 进行释放

SetPlaybackDevice

virtual int bytertc::IAudioDeviceManager::SetPlaybackDevice(
    const char device_id[MAX_DEVICE_ID_LENGTH])

设置音频播放设备

传入参数

参数名 类型 说明
device_id const char 音频播放设备ID, 可通过 EnumeratePlaybackDevices 获取。

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

SetRecordingDevice

virtual int bytertc::IAudioDeviceManager::SetRecordingDevice(
    const char device_id[MAX_DEVICE_ID_LENGTH])

设置音频采集设备

传入参数

参数名 类型 说明
device_id const char 音频采集设备ID, 可通过 EnumerateRecordingDevices 获取。

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

SetPlaybackDeviceVolume

virtual int bytertc::IAudioDeviceManager::SetPlaybackDeviceVolume(
    unsigned int volume)

设置音频播放设备音量

传入参数

参数名 类型 说明
volume unsigned int 音频播放设备音量, 取值范围 [0,255], 超出此范围设置无效

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

GetPlaybackDeviceVolume

virtual int bytertc::IAudioDeviceManager::GetPlaybackDeviceVolume(
    unsigned int* volume)

获取音频播放设备音量

传入参数

参数名 类型 说明
volume unsigned int* 音频播放设备音量, 取值范围 [0,255]

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

SetRecordingDeviceVolume

virtual int bytertc::IAudioDeviceManager::SetRecordingDeviceVolume(
    unsigned int volume)

设置音频采集设备音量

传入参数

参数名 类型 说明
volume unsigned int 音频采集设备音量, 取值范围 [0,255], 超出此范围设置无效

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

GetRecordingDeviceVolume

virtual int bytertc::IAudioDeviceManager::GetRecordingDeviceVolume(
    unsigned int* volume)

获取音频采集设备音量

传入参数

参数名 类型 说明
volume unsigned int* 音频采集设备音量, 取值范围 [0,255]

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

SetPlaybackDeviceMute

virtual int bytertc::IAudioDeviceManager::SetPlaybackDeviceMute(
    bool mute)

设置音频播放设备静音,默认为非静音。

传入参数

参数名 类型 说明
mute bool • true:静音
• false:非静音

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

GetPlaybackDeviceMute

virtual int bytertc::IAudioDeviceManager::GetPlaybackDeviceMute(
    bool* mute)

获取音频播放设备静音信息

传入参数

参数名 类型 说明
mute bool* • true:静音
• false:非静音

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

SetRecordingDeviceMute

virtual int bytertc::IAudioDeviceManager::SetRecordingDeviceMute(
    bool mute)

设置音频采集设备静音,默认为非静音

传入参数

参数名 类型 说明
mute bool • true:静音
• false:非静音

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

GetRecordingDeviceMute

virtual int bytertc::IAudioDeviceManager::GetRecordingDeviceMute(
    bool* mute)

获取音频采集设备静音信息

传入参数

参数名 类型 说明
mute bool* • true:静音
• false:非静音

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

GetPlaybackDevice

virtual int bytertc::IAudioDeviceManager::GetPlaybackDevice(
    char device_id[MAX_DEVICE_ID_LENGTH])

获取当前使用的音频播放设备ID

传入参数

参数名 类型 说明
device_id char 设备ID,使用方负责按 MAX_DEVICE_ID_LENGTH 大小,分配与释放内存

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

GetPlaybackDeviceInfo

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:方法调用失败

注意

GetRecordingDevice

virtual int bytertc::IAudioDeviceManager::GetRecordingDevice(
    char device_id[MAX_DEVICE_ID_LENGTH])

获取当前音频采集设备ID

传入参数

参数名 类型 说明
device_id char 设备ID,使用方负责按 MAX_DEVICE_ID_LENGTH 大小,分配与释放内存

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

GetRecordingDeviceInfo

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:方法调用失败

注意

StartPlaybackDeviceTest

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:方法调用失败

注意

StopPlaybackDeviceTest

virtual int bytertc::IAudioDeviceManager::StopPlaybackDeviceTest()

停止音频播放设备测试。

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

注意

调用 StartPlaybackDeviceTest 后,调用本方法停止测试。

StartAudioRecordingDeviceTest

virtual int bytertc::IAudioDeviceManager::StartAudioRecordingDeviceTest(
    int indication_interval)

启动音频采集设备测试。 该方法测试音频采集是否能正常工作,启动测试后,SDK 通过 OnAudioVolumeIndication 回调方法向应用上报音量信息

传入参数

参数名 类型 说明
indication_interval int OnAudioVolumeIndication
回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。最小不得少于 10 毫秒。小于10ms行为未定义

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

注意

StopAudioRecordingDeviceTest

virtual int bytertc::IAudioDeviceManager::StopAudioRecordingDeviceTest()

停止音频采集设备测试。

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

注意

调用 StartAudioRecordingDeviceTest 后,调用本方法停止测试。

StartAudioDeviceLoopbackTest

virtual int bytertc::IAudioDeviceManager::StartAudioDeviceLoopbackTest(
    int indication_interval)

开始音频设备回路测试。 该方法测试音频采集设备和音频播放设备是否能正常工作。一旦测试开始,音频采集设备会采集本地讲话声音 然后使用音频播放设备播放出来,同时 SDK 会通过 OnAudioVolumeIndication 回调向应用程序上报音量信息。

传入参数

参数名 类型 说明
indication_interval int OnAudioVolumeIndication
回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。最小不得少于 10 毫秒。小于10ms行为未定义

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

注意

StopAudioDeviceLoopbackTest

virtual int bytertc::IAudioDeviceManager::StopAudioDeviceLoopbackTest()

停止音频设备回路测试。

返回值

方法调用结果
+ 0:方法调用成功
+ <0:方法调用失败

注意

调用 StartAudioDeviceLoopbackTest 后,调用本方法停止测试。

Release

virtual void bytertc::IAudioDeviceManager::Release()

析构当前对象,释放内存

注意

严禁调用 delete 该结构体,该结构不需要的时候应该调用本函数释放音频操作相关的资源