Public API

函数

返回 名称
BYTERTC_API IVideoFrame* buildVideoFrame
BYTERTC_API bool pushExternalVideoFrame
BYTERTC_API IAudioFrame* buildAudioFrame
BYTERTC_API bytertc::IRtcEngine* createRtcEngine
BYTERTC_API void destroyRtcEngine
BYTERTC_API const char* getErrorDescription
BYTERTC_API const char* getSDKVersion
STREAMING_RTC_API IStreamingRTCEngine* CreateStreamingRTCEngine
STREAMING_RTC_API void DestroyStreamingRTCEngine

函数说明

buildVideoFrame

BYTERTC_API IVideoFrame* bytertc::buildVideoFrame(
    const VideoFrameBuilder& builder)

创建 IVideoFrame

传入参数

参数名 类型 说明
builder const VideoFrameBuilder& 视频帧构建实例,参看 VideoFrameBuilder

返回值 IVideoFrame 实例

pushExternalVideoFrame

BYTERTC_API bool bytertc::pushExternalVideoFrame(
    void* engine,
    const IVideoFrame* frame)

发送外部源视频数据

传入参数

参数名 类型 说明
engine void* 要设置的引擎,详见 IRtcEngineIRTCVideo
frame const IVideoFrame* 输入视频帧,详见 IVideoFrame

注意 1.支持 YUV420P,NV12,D3D texture,Cuda 内存,OpenGL texture等格式的视频帧。 2.该函数运行在用户调用线程内

buildAudioFrame

BYTERTC_API IAudioFrame* bytertc::buildAudioFrame(
    const AudioFrameBuilder& builder)

创建 IAudioFrame

传入参数

参数名 类型 说明
builder const AudioFrameBuilder& 音频帧构建实例,参看 AudioFrameBuilder

返回值 详见 IAudioFrame

createRtcEngine

BYTERTC_API bytertc::IRtcEngine* bytertc::createRtcEngine(
    const char* app_id,
    bytertc::IRtcEngineEventHandler* event_handler,
    const char* parameters)

创建 RTCEngine 实例。
如果当前线程中未创建引擎实例,那么你必须先使用此方法,以使用 RTC 提供的各种音视频能力。
如果当前线程中已创建了引擎实例,再次调用此方法时,会创建另一个独立的引擎实例。

传入参数

参数名 类型 说明
app_id const char* 每个应用的唯一标识符。只有使用相同的 app_id 生成的实例,才能够进行音视频通信。
event_handler bytertc::IRtcEngineEventHandler* SDK 回调给应用层的 Callback 对象,详见 IRtcEngineEventHandler 。
parameters const char* 用以覆盖默认参数的本引擎实例参数。JSON 字符串格式。

返回值

注意

destroyRtcEngine

BYTERTC_API void bytertc::destroyRtcEngine(
    bytertc::IRtcEngine* engine)

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

传入参数

参数名 类型 说明
engine bytertc::IRtcEngine* createRtcEngine 时,返回的实例。

注意

getErrorDescription

BYTERTC_API const char* bytertc::getErrorDescription(
    int code)

获取错误码的描述

传入参数

参数名 类型 说明
code int 需要获取描述的错误码

返回值 错误码的描述

注意 该接口是通用功能,调用时不需要依赖引擎对象。

getSDKVersion

BYTERTC_API const char* bytertc::getSDKVersion();

获取当前 SDK 版本信息。

返回值 当前 SDK 版本信息。

CreateStreamingRTCEngine

STREAMING_RTC_API IStreamingRTCEngine* bytertc::CreateStreamingRTCEngine(
    const streamingrtc::EngineConfig& config,
    IStreamingRTCEventHandler* handler,
    const char* parameters)

创建 IStreamingRTCEngine 实例。
如果当前线程中未创建引擎实例,那么你必须先使用此方法,以使用 IStreamingRTCEngine 提供的各种音视频能力。
如果当前线程中已创建了引擎实例,再次调用此方法时,会创建另一个独立的引擎实例。

传入参数

参数名 类型 说明
config const streamingrtc::EngineConfig& 设置引擎类型服务端或客户端,端口范围,和appid
handler IStreamingRTCEventHandler* SDK 回调给应用层的回调对象,详见 IStreamingRTCEventHandler 。
parameters const char* 用以覆盖默认参数的本引擎实例参数。JSON 字符串格式。

返回值

注意

DestroyStreamingRTCEngine

STREAMING_RTC_API void bytertc::DestroyStreamingRTCEngine(
    IStreamingRTCEngine* engine)

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

传入参数

参数名 类型 说明
engine IStreamingRTCEngine* CreateStreamingRTCEngine 时,返回的实例。

注意

IDeviceCollection

class bytertc::IDeviceCollection

音视频设备相关的信息

Defined in : bytertc_audio_device_manager.h

成员函数

返回 名称
virtual int getCount
virtual int getDevice
virtual void release

函数说明

getCount

virtual int bytertc::IDeviceCollection::getCount()

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

返回值 音视频设备数量

getDevice

virtual int bytertc::IDeviceCollection::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

返回值

release

virtual void bytertc::IDeviceCollection::release()

释放当前 IAudioDeviceCollection 对象占用的资源。

注意 不需要返回音视频设备相关信息列表时应该调用本方法释放相关资源。

IAudioDeviceCollection

class bytertc::IAudioDeviceCollection

音频设备相关的信息

Defined in : bytertc_audio_device_manager.h

成员函数

返回 名称
virtual int getCount
virtual int getDevice
virtual void release
virtual int getDevice

函数说明

getCount

virtual int bytertc::IAudioDeviceCollection::getCount() override

获取当前系统内音频设备数量

返回值 音频设备数量

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 设备名称
device_id char 设备 ID

返回值

release

virtual void bytertc::IAudioDeviceCollection::release()override

释放当前 IAudioDeviceCollection 对象占用的资源。

注意 不需要返回音频设备相关信息列表时应该调用本方法释放相关资源。

getDevice

virtual int bytertc::IAudioDeviceCollection::getDevice(
    int index,
    AudioDeviceInfo* audio_device_info)

根据索引号,获取设备信息

传入参数

参数名 类型 说明
index int 设备索引号,从 0 开始,注意需小于 getCount 返回值。
audio_device_info AudioDeviceInfo* 设备信息

返回值

IAudioDeviceManager

class bytertc::IAudioDeviceManager

音频设备管理类

Defined in : bytertc_audio_device_manager.h

成员函数

返回 名称
virtual IAudioDeviceCollection* enumerateAudioPlaybackDevices
virtual IAudioDeviceCollection* enumerateAudioCaptureDevices
virtual void followSystemPlaybackDevice
virtual void followSystemCaptureDevice
virtual int setAudioPlaybackDevice
virtual int setAudioCaptureDevice
virtual int setAudioPlaybackDeviceVolume
virtual int getAudioPlaybackDeviceVolume
virtual int setAudioCaptureDeviceVolume
virtual int getAudioCaptureDeviceVolume
virtual int setAudioPlaybackDeviceMute
virtual int getAudioPlaybackDeviceMute
virtual int setAudioCaptureDeviceMute
virtual int getAudioCaptureDeviceMute
virtual int getAudioPlaybackDevice
virtual int getAudioCaptureDevice
virtual int initAudioPlaybackDeviceForTest
virtual int initAudioCaptureDeviceForTest
virtual int startAudioPlaybackDeviceTest
virtual int stopAudioPlaybackDeviceTest
virtual int startAudioDeviceRecordTest
virtual int stopAudioDeviceRecordAndPlayTest
virtual int stopAudioDevicePlayTest

函数说明

enumerateAudioPlaybackDevices

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

获取当前系统内音频播放设备列表。如果后续设备有变更,你会收到 OnMediaDeviceStateChanged 回调通知,然后需要重新调用本接口以获得新的设备列表。

返回值 包含系统中所有音频播放设备的列表,参看 IAudioDeviceCollection。

enumerateAudioCaptureDevices

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

获取当前系统内音频采集设备列表。如果后续设备有变更,你需要重新调用本接口以获得新的设备列表。

返回值 一个包含系统中所有音频采集设备列表的对象,详见 IAudioDeviceCollection。

注意 当不再使用返回的对象时,你需要调用 release 进行释放。

followSystemPlaybackDevice

virtual void bytertc::IAudioDeviceManager::followSystemPlaybackDevice(
    bool followed)

设置音频播放路由是否跟随系统。

传入参数

参数名 类型 说明
followed bool • true: 跟随。此时,调用 setAudioPlaybackDevice 会失败。
• false: 不跟随系统。此时,可以调用 setAudioPlaybackDevice 进行设置。

followSystemCaptureDevice

virtual void bytertc::IAudioDeviceManager::followSystemCaptureDevice(
    bool followed)

设置音频采集路由是否跟随系统。

传入参数

参数名 类型 说明
followed bool • true: 跟随。此时,调用 setAudioCaptureDevice 会失败。
• false: 不跟随系统。此时,可以调用 setAudioCaptureDevice 进行设置。

setAudioPlaybackDevice

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

设置音频播放设备。

传入参数

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

返回值

注意 当你调用 followSystemPlaybackDevice 设置音频播放设备跟随系统后,将无法调用此接口设置音频播放设备。

setAudioCaptureDevice

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

设置音频采集设备。

传入参数

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

返回值 方法调用结果

注意 当你调用 followSystemCaptureDevice 设置音频采集设备跟随系统后,将无法调用此接口设置音频采集设备。

setAudioPlaybackDeviceVolume

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

设置当前音频播放设备音量

传入参数

参数名 类型 说明
volume unsigned int 音频播放设备音量,取值范围为 [0,255], 超出此范围设置无效。
• [0,25] 接近无声;
• [25,75] 为低音量;
• [76,204] 为中音量;
• [205,255] 为高音量。

返回值 方法调用结果

getAudioPlaybackDeviceVolume

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

获取当前音频播放设备音量

传入参数

参数名 类型 说明
volume unsigned int* 音频播放设备音量,范围应在 [0,255] 内。
• [0,25] 接近无声;
• [25,75] 为低音量;
• [76,204] 为中音量;
• [205,255] 为高音量。

返回值 方法调用结果

setAudioCaptureDeviceVolume

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

设置当前音频采集设备音量

传入参数

参数名 类型 说明
volume unsigned int 音频采集设备音量,取值范围为 [0,255], 超出此范围设置无效。
• [0,25] 接近无声;
• [25,75] 为低音量;
• [76,204] 为中音量;
• [205,255] 为高音量。

返回值 方法调用结果

getAudioCaptureDeviceVolume

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

获取当前音频采集设备音量

传入参数

参数名 类型 说明
volume unsigned int* 音频采集设备音量,范围应在 [0,255] 内。
• [0,25] 接近无声;
• [25,75] 为低音量;
• [76,204] 为中音量;
• [205,255] 为高音量。

返回值 方法调用结果

setAudioPlaybackDeviceMute

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

设置当前音频播放设备静音状态,默认为非静音。

传入参数

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

返回值 方法调用结果

getAudioPlaybackDeviceMute

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

获取当前音频播放设备是否静音的信息。

传入参数

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

返回值 方法调用结果

setAudioCaptureDeviceMute

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

设置当前音频采集设备静音状态,默认为非静音。

传入参数

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

返回值 方法调用结果

getAudioCaptureDeviceMute

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

获取当前音频采集设备是否静音的信息。

传入参数

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

返回值 方法调用结果

getAudioPlaybackDevice

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

获取当前音频播放设备 ID。

传入参数

参数名 类型 说明
device_id char 音频播放设备 ID

返回值 方法调用结果

getAudioCaptureDevice

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

获取当前音频采集设备 ID。

传入参数

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

返回值 方法调用结果

initAudioPlaybackDeviceForTest

virtual int bytertc::IAudioDeviceManager::initAudioPlaybackDeviceForTest(
    const char deviceId[MAX_DEVICE_ID_LENGTH])

尝试初始化音频播放设备,可检测出设备不存在、权限被拒绝/禁用等异常问题。

传入参数

参数名 类型 说明
deviceId const char 设备索引号

返回值 设备状态错误码

注意 1. 该接口需在进房前调用; 2. 检测成功不代表设备一定可以启动成功,还可能因设备被其他应用进程独占,或 CPU/内存不足等原因导致启动失败。

initAudioCaptureDeviceForTest

virtual int bytertc::IAudioDeviceManager::initAudioCaptureDeviceForTest(
    const char deviceId[MAX_DEVICE_ID_LENGTH])

尝试初始化音频采集设备,可检测设备不存在、权限被拒绝/禁用等异常问题。

传入参数

参数名 类型 说明
deviceId const char 设备索引

返回值 设备状态错误码

注意 1. 该接口需在进房前调用; 2. 检测成功不代表设备一定可以启动成功,还可能因设备被其他应用进程独占,或 CPU/内存不足等原因导致启动失败。

startAudioPlaybackDeviceTest

virtual int bytertc::IAudioDeviceManager::startAudioPlaybackDeviceTest(
    const char* test_audio_file_path,
    int indication_interval)

启动音频播放设备检测。测试启动后,循环播放指定的音频文件,同时将通过 onAudioPlaybackDeviceTestVolume 回调播放时的音量信息。

传入参数

参数名 类型 说明
test_audio_file_path const char* 指定播放设备检测的音频文件网络地址。支持的格式包括 mp3,aac,m4a,3gp 和 wav。
indication_interval int 设置 onAudioPlaybackDeviceTestVolume 音量回调的时间间隔,推荐设置为 200 毫秒或以上。单位为毫秒。最小值为 10 毫秒。

返回值 方法调用结果

注意

stopAudioPlaybackDeviceTest

virtual int bytertc::IAudioDeviceManager::stopAudioPlaybackDeviceTest()

停止音频播放测试。

返回值 方法调用结果

注意 调用 startAudioPlaybackDeviceTest 后,调用本方法停止测试。

startAudioDeviceRecordTest

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

开始音频采集设备和音频播放设备测试。
建议提前调用 enableAudioPropertiesReport 注册音量提示回调,测试开始后,音频设备开始采集本地声音,可以通过 onLocalAudioPropertiesReport 获取采集音量。

传入参数

参数名 类型 说明
indication_interval int 测试录音播放时触发 onLocalAudioPropertiesReport 播放音量回调,本参数指定了该周期回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。最小不得少于 10 毫秒。

返回值 方法调用结果

注意

stopAudioDeviceRecordAndPlayTest

virtual int bytertc::IAudioDeviceManager::stopAudioDeviceRecordAndPlayTest()

停止采集本地音频,并开始播放采集到的声音。录音播放完毕后,设备测试流程结束。
调用 startAudioDeviceRecordTest 30 s 内调用本接口来停止采集并开始播放此前采集到的声音。

返回值 方法调用结果

注意 调用本接口开始播放录音后,可以在播放过程中调用 stopAudioDevicePlayTest 停止播放。

stopAudioDevicePlayTest

virtual int bytertc::IAudioDeviceManager::stopAudioDevicePlayTest()

停止由调用 startAudioDeviceRecordTest 开始的音频播放设备测试。
在音频播放设备测试自动结束前,可调用本接口停止音频采集与播放测试。

返回值 方法调用结果

IAudioMixingManager

class bytertc::IAudioMixingManager

混音管理类

Defined in : bytertc_audio_mixing_manager.h

成员函数

返回 名称
virtual void startAudioMixing
virtual void stopAudioMixing
virtual void pauseAudioMixing
virtual void resumeAudioMixing
virtual void preloadAudioMixing
virtual void unloadAudioMixing
virtual void setAudioMixingVolume
virtual int getAudioMixingDuration
virtual int getAudioMixingCurrentPosition
virtual void setAudioMixingPosition
virtual void setAudioMixingDualMonoMode
virtual void setAudioMixingPitch
virtual int setAudioMixingPlaybackSpeed
virtual void setAudioMixingProgressInterval
virtual void setAudioMixingLoudness
virtual void enableAudioMixingFrame
virtual void disableAudioMixingFrame
virtual int pushAudioMixingFrame
virtual int getAudioTrackCount
virtual void selectAudioTrack

函数说明

startAudioMixing

virtual void bytertc::IAudioMixingManager::startAudioMixing(
    int mix_id,
    const char * file_path,
    const AudioMixingConfig& config)

开始播放音频文件。
可以通过传入不同的 ID 和 filepath 多次调用本方法,以实现同时播放多个混音文件,实现混音叠加。

传入参数

参数名 类型 说明
mix_id int 混音 ID。用于标识混音,请保证混音 ID 唯一性。
如果使用相同的 ID 重复调用本方法后,前一次混音会停止,后一次混音开始,SDK 会使用 onAudioMixingStateChanged 回调通知前一次混音已停止。
file_path const char* 用于混音文件路径。
支持在线文件的 URL、和本地文件的绝对路径。对于在线文件的 URL,仅支持 https 协议。
不同平台支持的音频文件格式:





mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYYYY
iOSYYYYYY
WindowsYYYYYYYY
config const AudioMixingConfig& 混音配置
可以设置混音的播放次数、是否本地播放混音、以及是否将混音发送至远端,详见 AudioMixingConfig。

注意

stopAudioMixing

virtual void bytertc::IAudioMixingManager::stopAudioMixing(
    int mix_id)

停止播放音乐文件及混音

传入参数

参数名 类型 说明
mix_id int 混音 ID

注意

pauseAudioMixing

virtual void bytertc::IAudioMixingManager::pauseAudioMixing(
    int mix_id)

暂停播放音乐文件及混音

传入参数

参数名 类型 说明
mix_id int 混音 ID

注意

resumeAudioMixing

virtual void bytertc::IAudioMixingManager::resumeAudioMixing(
    int mix_id)

恢复播放音乐文件及混音

传入参数

参数名 类型 说明
mix_id int 混音 ID

注意

preloadAudioMixing

virtual void bytertc::IAudioMixingManager::preloadAudioMixing(
    int mix_id,
    const char* file_path)

预加载指定音频文件到内存中,以避免频繁播放时的重复加载。

传入参数

参数名 类型 说明
mix_id int 混音 ID。用于标识混音,请保证混音 ID 唯一性。
如果使用相同的 ID 重复调用本方法,后一次会覆盖前一次。
如果先调用 startAudioMixing,再使用相同的 ID 调用本方法 ,会先回调 onAudioMixingStateChanged 通知上一个混音停止,然后加载后一个混音。
使用一个 ID 调用本方法预加载 A.mp3 后,如果需要使用相同的 ID 调用 startAudioMixing 播放 B.mp3,请先调用 unloadAudioMixing 卸载 A.mp3。
file_path const char* 混音文件路径。
支持在线文件的 URL,和本地文件的绝对路径。对于在线文件的 URL,仅支持 https 协议。预加载的文件长度不得超过 20s。
不同平台支持的音频文件格式:





mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYYYY
iOSYYYYYY
WindowsYYYYYYYY

注意

unloadAudioMixing

virtual void bytertc::IAudioMixingManager::unloadAudioMixing(
    int mix_id)

卸载指定音乐文件

传入参数

参数名 类型 说明
mix_id int 混音 ID

注意 不论音乐文件是否播放,调用本方法卸载该文件后,SDK 会回调通知混音已停止,见 onAudioMixingStateChanged。

setAudioMixingVolume

virtual void bytertc::IAudioMixingManager::setAudioMixingVolume(
    int mix_id,
    int volume,
    AudioMixingType type)

调节混音的音量大小,包括音频文件混音和 PCM 混音。

传入参数

参数名 类型 说明
mix_id int 混音 ID
volume int 混音音量相对原音量的比值。范围为 [0, 400],建议范围是 [0, 100]。
• 0:静音
• 100:原始音量(默认值)
• 400: 最大可调音量 (自带溢出保护)
type AudioMixingType 混音类型。是否本地播放、以及是否发送到远端,详见 AudioMixingType。

getAudioMixingDuration

virtual int bytertc::IAudioMixingManager::getAudioMixingDuration(
    int mix_id)

获取音乐文件时长

传入参数

参数名 类型 说明
mix_id int 混音 ID

返回值

注意 调用本方法获取音乐文件时长前,需要先调用 preloadAudioMixing 或 startAudioMixing。

getAudioMixingCurrentPosition

virtual int bytertc::IAudioMixingManager::getAudioMixingCurrentPosition(
    int mix_id)

获取音乐文件播放进度

传入参数

参数名 类型 说明
mix_id int 混音 ID

返回值

注意 调用本方法获取音乐文件播放进度前,需要先调用 startAudioMixing 开始播放音乐文件。

setAudioMixingPosition

virtual void bytertc::IAudioMixingManager::setAudioMixingPosition(
    int mix_id,
    int position)

设置音频文件的起始播放位置

传入参数

参数名 类型 说明
mix_id int 混音 ID
position int 音频文件起始播放位置,单位为毫秒。
你可以通过 getAudioMixingDuration 获取音频文件总时长,position 的值应小于音频文件总时长。

注意 在播放在线文件时,调用此接口可能造成播放延迟的现象。

setAudioMixingDualMonoMode

virtual void bytertc::IAudioMixingManager::setAudioMixingDualMonoMode(
    int mix_id,
    AudioMixingDualMonoMode mode)

设置当前音频文件的声道模式

传入参数

参数名 类型 说明
mix_id int 混音 ID
mode AudioMixingDualMonoMode 声道模式。默认的声道模式和源文件一致,详见 AudioMixingDualMonoMode。

注意

setAudioMixingPitch

virtual void bytertc::IAudioMixingManager::setAudioMixingPitch(
    int mix_id,
    int pitch)

开启本地播放音乐文件变调功能,多用于 K 歌场景。
使用该方法,你可以对本地播放音乐文件的音调进行升调或降调等调整。

传入参数

参数名 类型 说明
mix_id int 混音 ID
pitch int 相对于音乐文件原始音调的升高/降低值,取值范围[-12,12],默认值为 0,即不做调整。
取值范围内每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调,设置的绝对值越大表示音调升高或降低越多。
超出取值范围则设置失败,并且会触发 onAudioMixingStateChanged 回调,提示 AudioMixingState 状态为 AUDIO_MIXING_STATE_FAILED 混音播放失败,AudioMixingError 错误码为 AUDIO_MIXING_ERROR_ID_TYPE_INVALID_PITCH 设置混音文件音调不合法。

注意 本方法需要在调用 startAudioMixing 开始播放音频文件后、调用 stopAudioMixing 停止播放音频文件前使用,否则会触发 onAudioMixingStateChanged 回调报错

setAudioMixingPlaybackSpeed

virtual int bytertc::IAudioMixingManager::setAudioMixingPlaybackSpeed(
    int mix_id,
    int speed)

设置混音时音频文件的播放速度

传入参数

参数名 类型 说明
mix_id int 混音 ID
speed int 播放速度与原始文件速度的比例,单位:%,取值范围为 [50,200],默认值为 100。
超出取值范围则设置失败,你会收到 onAudioMixingStateChanged 回调,提示 AudioMixingState 状态为 kAudioMixingStateFailed 混音播放失败,AudioMixingError 错误码为 kAudioMixingErrorInValidPlaybackSpeed 设置混音文件的播放速度不合法。

注意

setAudioMixingProgressInterval

virtual void bytertc::IAudioMixingManager::setAudioMixingProgressInterval(
    int mix_id,
    int64_t interval)

设置混音时音频文件播放进度回调的间隔

传入参数

参数名 类型 说明
mix_id int 混音 ID
可以通过多次调用本接口传入不同的 ID 对多个 ID 进行间隔设置。
interval int64_t 音频文件播放进度回调的时间间隔,单位毫秒。
• interval 的值为大于 0 的 10 的倍数,当设置的值不能被 10 整除时,则默认向上取整 10,如设为 52ms 时会默认调整为 60ms。设置完成后 SDK 将会按照设置的时间间隔触发 onAudioMixingPlayingProgress 回调。
• interval 的值小于等于 0 时,不会触发进度回调。

注意 本方法需要在调用 startAudioMixing 开始播放音频文件后、调用 stopAudioMixing 停止播放音频文件前使用,否则会触发 onAudioMixingStateChanged 回调报错。 若想在音乐文件开始播放前设置播放进度回调间隔,你需调用 startAudioMixing 在 AudioMixingConfig 中设置时间间隔,开始播放后可以通过此接口更新回调间隔。

setAudioMixingLoudness

virtual void bytertc::IAudioMixingManager::setAudioMixingLoudness(
    int mix_id,
    float loudness)

如果你需要使用 enableVocalInstrumentBalance 对混音使音频文件/PCM 音频数据进行音量调整,你必须通过此接口传入其原始响度。

传入参数

参数名 类型 说明
mixId float loudness 混音 ID
loudness float 原始响度,单位:lufs,取值范围为 [-70.0, 0.0]。
当设置的值小于 -70.0lufs 时,则默认调整为 -70.0lufs,大于 0.0lufs 时,则不对该响度做音均衡处理。默认值为 1.0lufs,即不做处理。

注意 建议在 startAudioMixing 开始播放音频文件之前调用该接口,以免播放过程中的音量突变导致听感体验下降。

enableAudioMixingFrame

virtual void bytertc::IAudioMixingManager::enableAudioMixingFrame(
    int mix_id,
    AudioMixingType type)

启动外部音频流混音 启动 PCM 音频数据混音。
要实现多个 PCM 音频数据混音,多次调用本方法,并传入不同的 mix_id。

传入参数

参数名 类型 说明
mix_id int 混音 ID,用于标识混音,保证混音 ID 唯一性。
如果使用相同的 ID 重复调用本方法后,前一次混音会停止,后一次混音开始,会收到 onAudioMixingStateChanged 通知前一次混音已停止。
type AudioMixingType 混音播放类型
是否本地播放、以及是否发送到远端,详见 AudioMixingType。

注意

disableAudioMixingFrame

virtual void bytertc::IAudioMixingManager::disableAudioMixingFrame(
    int mix_id)

关闭 PCM 混音

传入参数

参数名 类型 说明
mix_id int 混音 ID。

pushAudioMixingFrame

virtual int bytertc::IAudioMixingManager::pushAudioMixingFrame(
    int mix_id,
    IAudioFrame* audio_frame)

推送 PCM 音频帧数据用于混音

传入参数

参数名 类型 说明
mix_id int 混音 ID。
audioFrame IAudioFrame* audio_frame 音频帧,详见 IAudioFrame。

返回值

注意

getAudioTrackCount

virtual int bytertc::IAudioMixingManager::getAudioTrackCount(
    int mix_id)

获取当前音频文件的音轨索引

传入参数

参数名 类型 说明
mix_id int 混音 ID

返回值 方法调用结果

注意

selectAudioTrack

virtual void bytertc::IAudioMixingManager::selectAudioTrack(
    int mix_id,
    int audio_track_index)

指定当前音频文件的播放音轨

传入参数

参数名 类型 说明
mix_id int 混音 ID
audio_track_index int 指定的播放音轨
设置的参数值需要小于或等于 getAudioTrackCount 的返回值

注意

IRtcEngine

class bytertc::IRtcEngine

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

Defined in : bytertc_engine_interface.h

成员函数

返回 名称
virtual int joinRoom
virtual void setCaptureVolume
virtual void setPlaybackVolume
virtual void startAudioCapture
virtual void stopAudioCapture
virtual int setVoiceChangerType
virtual int setVoiceReverbType
virtual void setAudioProfile
virtual void enableExternalAudioDevice
virtual void disableExternalAudioDevice
virtual bool pushExternalAudioFrame
virtual bool pullExternalAudioFrame
virtual int setAudioSourceType
virtual int setAudioRenderType
virtual bool pushExternalAudioFrame
virtual bool pullExternalAudioFrame
virtual void startVideoCapture
virtual void stopVideoCapture
virtual int setVideoCaptureConfig
virtual int enableSimulcastMode
virtual int setVideoEncoderConfig
virtual int setVideoEncoderConfig
virtual int setScreenVideoEncoderConfig
virtual int setLocalVideoCanvas
virtual void updateLocalVideoCanvas
virtual void setRemoteStreamVideoCanvas
virtual void updateRemoteStreamVideoCanvas
virtual void setLocalVideoSink
virtual void setRemoteVideoSink
virtual bool pushScreenFrame
virtual int startScreenCaptureByDisplayId
virtual void updateScreenCaptureRegion
virtual int startScreenVideoCapture
virtual void stopScreenVideoCapture
virtual void updateScreenCaptureHighlightConfig
virtual void updateScreenCaptureMouseCursor
virtual void updateScreenCaptureFilterConfig
virtual IScreenCaptureSourceList* getScreenCaptureSourceList
virtual IVideoFrame* getThumbnail
virtual IVideoFrame* getWindowAppIcon
virtual void setVideoSourceType
virtual bool pushExternalVideoFrame
virtual int setPublishFallbackOption
virtual int setSubscribeFallbackOption
virtual int setRemoteUserPriority
virtual int setBusinessId
virtual void setLocalVideoMirrorMode
virtual void setLocalVideoMirrorType
virtual int enableEffectBeauty
virtual int setBeautyIntensity
virtual void setEncryptInfo
virtual void setCustomizeEncryptHandler
virtual void enableAudioFrameCallback
virtual void disableAudioFrameCallback
virtual void registerAudioFrameObserver
virtual void registerAudioProcessor
virtual void enableAudioProcessor
virtual void disableAudioProcessor
virtual void registerVideoFrameObserver
virtual int registerLocalVideoProcessor
virtual int sendSEIMessage
virtual IVideoDeviceManager* getVideoDeviceManager
virtual IAudioDeviceManager* getAudioDeviceManager
virtual IRangeAudio* getRangeAudio
virtual ISpatialAudio* getSpatialAudio
virtual int startFileRecording
virtual void stopFileRecording
virtual void enableExternalSoundCard
virtual void setRuntimeParameters
virtual void startASR
virtual void stopASR
virtual int feedback
virtual IAudioMixingManager* getAudioMixingManager
virtual int64_t login
virtual void logout
virtual void updateLoginToken
virtual void setServerParams
virtual void getPeerOnlineStatus
virtual int64_t sendUserMessageOutsideRoom
virtual int64_t sendUserBinaryMessageOutsideRoom
virtual int64_t sendServerMessage
virtual int64_t sendServerBinaryMessage
virtual NetworkDetectionStartReturn startNetworkDetection
virtual void stopNetworkDetection
virtual void setScreenAudioSourceType
virtual void setScreenAudioStreamIndex
virtual void startScreenAudioCapture
virtual void stopScreenAudioCapture
virtual int pushScreenAudioFrame
virtual void stopScreenCapture
virtual void enableAudioPropertiesReport
virtual void enableVocalInstrumentBalance
virtual void enablePlaybackDucking
virtual void registerLocalEncodedVideoFrameObserver
virtual void registerRemoteEncodedVideoFrameObserver
virtual void setExternalVideoEncoderEventHandler
virtual bool pushExternalEncodedVideoFrame
virtual void setVideoDecoderConfig
virtual void requestRemoteVideoKeyFrame
virtual int sendStreamSyncInfo
virtual void setLocalVoicePitch
virtual void muteAudioPlayback
virtual int startPlayPublicStream
virtual int stopPlayPublicStream
virtual int setPublicStreamVideoCanvas
virtual void setPublicStreamVideoSink
virtual void setVideoWatermark
virtual void clearVideoWatermark
virtual void setUserVisibility
virtual void leaveRoom
virtual void updateToken
virtual int64_t sendUserMessage
virtual int64_t sendUserBinaryMessage
virtual int64_t sendRoomMessage
virtual int64_t sendRoomBinaryMessage
virtual void publishStream
virtual void unpublishStream
virtual void publishScreen
virtual void unpublishScreen
virtual void setRemoteVideoConfig
virtual void subscribeStream
virtual void unsubscribeStream
virtual void subscribeScreen
virtual void unsubscribeScreen
virtual void unsubscribe
virtual void setRemoteAudioPlaybackVolume
virtual void pauseAllSubscribedStream
virtual void resumeAllSubscribedStream
virtual void setMultiDeviceAVSync
virtual void startLiveTranscoding
virtual void stopLiveTranscoding
virtual void updateLiveTranscoding
virtual int startForwardStreamToRooms
virtual int updateForwardStreamToRooms
virtual void stopForwardStreamToRooms
virtual void pauseForwardStreamToAllRooms
virtual void resumeForwardStreamToAllRooms
virtual int startPushPublicStream
virtual int stopPushPublicStream
virtual int updatePublicStreamParam
virtual int startEchoTest
virtual int stopEchoTest
virtual void startCloudProxy
virtual void stopCloudProxy

函数说明

joinRoom

virtual int bytertc::IRtcEngine::joinRoom(
    const char* token,
    const char* room_id,
    const UserInfo& user_info,
    const RTCRoomConfig& room_config)

创建/加入房间:房间不存在时即创建房间;房间存在时即加入这个房间。
同一房间内的用户间可以相互通话。
进房后重复调用无效,用户必须调用 leaveRoom 退出当前房间后,才能加入下一个房间。

传入参数

参数名 类型 说明
token const char* 动态密钥,用于对登录用户进行鉴权验证。
进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在您的服务端生成并下发 Token。
请务必保证生成 Token 使用的 App ID 和创建引擎时使用的 App ID 相同,否则会导致加入房间失败。
room_id const char* 加入的房间 ID。
该字符串符合正则表达式:[a-zA-Z0-9_@\-]{1,128}
user_info const UserInfo& 用户信息,参看 UserInfo。
room_config const RTCRoomConfig& 房间参数配置,设置房间模式以及是否自动发布或订阅流。具体配置模式参看 RTCRoomConfig。

返回值

注意

setCaptureVolume

virtual void bytertc::IRtcEngine::setCaptureVolume(
    StreamIndex index,
    int volume)

调节音频采集音量

传入参数

参数名 类型 说明
index StreamIndex 流索引,指定调节主流还是调节屏幕流的音量,参看 StreamIndex
volume int 采集的音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。
为保证更好的通话质量,建议将 volume 值设为 [0,100]。
• 0:静音
• 100:原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

注意 在开启音频采集前后,你都可以使用此接口设定采集音量。

setPlaybackVolume

virtual void bytertc::IRtcEngine::setPlaybackVolume(
    const int volume)

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

传入参数

参数名 类型 说明
volume const int 音频播放音量,取值范围: [0,400]
为保证更好的通话质量,建议将 volume 值设为 [0,100]。
• 0: 静音
• 100: 原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

startAudioCapture

virtual void bytertc::IRtcEngine::startAudioCapture()

开启内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。 调用该方法开启后,本地用户会收到 onAudioDeviceStateChanged 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。

注意

stopAudioCapture

virtual void bytertc::IRtcEngine::stopAudioCapture()

立即关闭内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。 调用该方法,本地用户会收到 onAudioDeviceStateChanged 的回调。
非隐身用户进房后调用该方法后,房间中的其他用户会收到 onUserStopAudioCapture 的回调。

注意

setVoiceChangerType

virtual int bytertc::IRtcEngine::setVoiceChangerType(
    VoiceChangerType voice_changer)

设置变声特效类型

传入参数

参数名 类型 说明
voice_changer VoiceChangerType 变声特效类型,参看 VoiceChangerType

注意

setVoiceReverbType

virtual int bytertc::IRtcEngine::setVoiceReverbType(
    VoiceReverbType voice_reverb)

设置混响特效类型

传入参数

参数名 类型 说明
voice_reverb VoiceReverbType 混响特效类型,参看 VoiceReverbType

注意

setAudioProfile

virtual void bytertc::IRtcEngine::setAudioProfile(
    AudioProfileType audio_profile)

设置音质档位。当所选的 RoomProfileType 中的音频参数无法满足你的场景需求时,调用本接口切换的音质档位。

传入参数

参数名 类型 说明
audio_profile AudioProfileType 音质档位,参看 AudioProfileType

注意

enableExternalAudioDevice

virtual void bytertc::IRtcEngine::enableExternalAudioDevice(
    const AudioFormat &recording_format,
    const AudioFormat &playback_format)

启用自定义音频采集渲染

传入参数

参数名 类型 说明
recording_format const AudioFormat & 自定义音频数据采集格式,详见 AudioFormat
playback_format const AudioFormat & 自定义音频数据渲染格式,详见 AudioFormat

注意

disableExternalAudioDevice

virtual void bytertc::IRtcEngine::disableExternalAudioDevice()

禁用自定义音频采集和渲染。

注意

pushExternalAudioFrame

virtual bool bytertc::IRtcEngine::pushExternalAudioFrame(
    int8_t* data,
    int samples)

推送自定义音频数据。

传入参数

参数名 类型 说明
data int8_t* pcm 数据。音频采样格式必须为 S16。音频缓冲区内的数据格式必须为 PCM,内存大小应该为 samples × record_format.channel × 2。
samples int 采样点数量,应该为 enableExternalAudioDevice 中设置的 record_format.sample_rate / 100。 例如,当设置采样率为 48000 时, 每次应该推送 480 个采样点。

返回值 方法调用结果

注意

pullExternalAudioFrame

virtual bool bytertc::IRtcEngine::pullExternalAudioFrame(
    int8_t* data,
    int samples)

拉取远端音频数据。使用 enableExternalAudioDevice 启用自定义音频采集渲染后,可以使用本方法拉取远端音频数据。

传入参数

参数名 类型 说明
data int8_t* pcm 数据,内存大小应该为 samples × playback_format.channel × 2。
samples int 采样点数量,应该为 enableExternalAudioDevice 中设置的
playback_format.sample_rate / 100。 当设置采样率为 48000 时, 每次应该拉取 480 个采样点

返回值 方法调用结果

注意

setAudioSourceType

virtual int bytertc::IRtcEngine::setAudioSourceType (
    AudioSourceType type)

setAudioRenderType

virtual int bytertc::IRtcEngine::setAudioRenderType (
    AudioRenderType type)

pushExternalAudioFrame

virtual bool bytertc::IRtcEngine::pushExternalAudioFrame(
    IAudioFrame* audioFrame)

pullExternalAudioFrame

virtual bool bytertc::IRtcEngine::pullExternalAudioFrame(
    IAudioFrame* audioFrame)

startVideoCapture

virtual void bytertc::IRtcEngine::startVideoCapture()

立即开启内部视频采集。默认为关闭状态。
内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。
调用该方法后,本地用户会收到 onVideoDeviceStateChanged 的回调。
本地用户在非隐身状态下调用该方法后,房间中的其他用户会收到 onUserStartVideoCapture 的回调。

注意

stopVideoCapture

virtual void bytertc::IRtcEngine::stopVideoCapture()

立即关闭内部视频采集。默认为关闭状态。
内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。
调用该方法后,本地用户会收到 onVideoDeviceStateChanged 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。

注意

setVideoCaptureConfig

virtual int bytertc::IRtcEngine::setVideoCaptureConfig(
    const VideoCaptureConfig& videoCaptureConfig)

设置 RTC SDK 内部采集时的视频采集参数。
如果你的项目使用了 SDK 内部采集模块,可以通过本接口指定视频采集参数,包括模式、分辨率、帧率。

传入参数

参数名 类型 说明
videoCaptureConfig const VideoCaptureConfig& 视频采集参数。参看: VideoCaptureConfig。

返回值

注意

enableSimulcastMode

virtual int bytertc::IRtcEngine::enableSimulcastMode(
    bool enabled)

该方法设置视频流发布端是否开启发布多路编码参数不同的视频流的模式。

传入参数

参数名 类型 说明
enabled bool 是否开启推送多路视频流模式:
• True:开启
• False:关闭(默认)

返回值 方法调用结果:

注意

setVideoEncoderConfig

virtual int bytertc::IRtcEngine::setVideoEncoderConfig(
    const VideoEncoderConfig& max_solution)

视频发布端设置期望发布的最大分辨率视频流参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
该接口支持设置一路视频流参数,设置多路参数请使用重载 API:SetVideoEncoderConfig。

传入参数

参数名 类型 说明
max_solution const VideoEncoderConfig& 期望发布的最大分辨率视频流参数。参看 VideoEncoderConfig。

返回值 方法调用结果:

注意

setVideoEncoderConfig

virtual int bytertc::IRtcEngine::setVideoEncoderConfig(
    const VideoEncoderConfig* channel_solutions,
    int solution_num)

视频发布端设置推送多路流时各路流的参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。

传入参数

参数名 类型 说明
channel_solutions const VideoEncoderConfig* 要推送的多路视频流的参数需注意,所设置的分辨率是各路流的最大分辨率。参看 VideoEncoderConfig。
solution_num int 视频参数数组长度,最多支持设置 3 路参数,超过 3 路时默认取前 3 路的值。当设置了多路参数时,分辨率必须是从大到小排列。

返回值 方法调用结果:

注意

setScreenVideoEncoderConfig

virtual int bytertc::IRtcEngine::setScreenVideoEncoderConfig(
    const VideoEncoderConfig& screen_solution)

为发布的屏幕共享视频流设置期望的编码参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。

传入参数

参数名 类型 说明
screen_solution const VideoEncoderConfig& 屏幕共享视频流参数。参看 VideoEncoderConfig。

返回值 方法调用结果: 0:成功
!0:失败

注意 调用该方法之前,屏幕共享视频流默认的编码参数为:分辨率 1920px × 1080px,帧率 15fps。

setLocalVideoCanvas

virtual int bytertc::IRtcEngine::setLocalVideoCanvas(
    StreamIndex index,
    const VideoCanvas& canvas)

设置本地视频渲染时,使用的视图,并设置渲染模式。

传入参数

参数名 类型 说明
index StreamIndex 视频流属性, 参看 StreamIndex
canvas const VideoCanvas& 视图信息和渲染模式,参看:VideoCanvas

返回值

注意

updateLocalVideoCanvas

virtual void bytertc::IRtcEngine::updateLocalVideoCanvas(
    StreamIndex index,
    const enum RenderMode renderMode,
    const uint32_t backgroundColor)

修改本地视频渲染模式和背景色。

传入参数

参数名 类型 说明
index StreamIndex 视频流属性, 参看 StreamIndex
renderMode const enum RenderMode 渲染模式,参看 RenderMode
backgroundColor const uint32_t 背景颜色,参看 VideoCanvas.background_color

注意 你可以在本地视频渲染过程中,调用此接口。调用结果会实时生效。

setRemoteStreamVideoCanvas

virtual void bytertc::IRtcEngine::setRemoteStreamVideoCanvas(
    RemoteStreamKey stream_key,
    const VideoCanvas& canvas)

设置渲染指定视频流 stream_key 时,使用的视图和渲染模式。
如果需要解除某个用户的绑定视图,你可以把 canvas 设置为空。

传入参数

参数名 类型 说明
stream_key RemoteStreamKey 参看 RemoteStreamKey
canvas const VideoCanvas& 视图信息和渲染模式,参看:VideoCanvas

返回值

注意

updateRemoteStreamVideoCanvas

virtual void bytertc::IRtcEngine::updateRemoteStreamVideoCanvas(
    RemoteStreamKey stream_key,
    const enum RenderMode renderMode,
    const uint32_t backgroundColor)

修改远端视频渲染模式和背景色。

传入参数

参数名 类型 说明
stream_key RemoteStreamKey 远端流信息。参看 RemoteStreamKey
renderMode const enum RenderMode 渲染模式,参看 RenderMode
backgroundColor const uint32_t 背景颜色,参看 VideoCanvas.background_color

注意 你可以在远端视频渲染过程中,调用此接口。调用结果会实时生效。

setLocalVideoSink

virtual void bytertc::IRtcEngine::setLocalVideoSink(
    StreamIndex index,
    IVideoSink* video_sink,
    IVideoSink::PixelFormat required_format)

将本地视频流与自定义渲染器绑定。

传入参数

参数名 类型 说明
index StreamIndex 视频流属性。采集的视频流/屏幕视频流,参看 StreamIndex
video_sink IVideoSink* 自定义视频渲染器,参看 IVideoSink。
required_format IVideoSink::PixelFormat video_sink 适用的视频帧编码格式,参看 PixelFormat

注意

setRemoteVideoSink

virtual void bytertc::IRtcEngine::setRemoteVideoSink(
    RemoteStreamKey stream_key,
    IVideoSink* video_sink,
    IVideoSink::PixelFormat required_format)

将远端视频流与自定义渲染器绑定。

传入参数

参数名 类型 说明
stream_key RemoteStreamKey 远端流信息,用于指定需要渲染的视频流来源及属性,参看 RemoteStreamKey。
video_sink IVideoSink* 自定义视频渲染器,参看 IVideoSink。
required_format IVideoSink::PixelFormat video_sink 适用的视频帧编码格式,参看 PixelFormat。

注意

pushScreenFrame

virtual bool bytertc::IRtcEngine::pushScreenFrame(
    IVideoFrame* frame)

推送屏幕视频帧

传入参数

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

返回值

注意

startScreenCaptureByDisplayId

virtual int bytertc::IRtcEngine::startScreenCaptureByDisplayId(
    unsigned int display_id,
    const Rectangle& region_rect,
    const DesktopCaptureParameters& capture_params)

废弃
since 327.1, use startScreenVideoCapture and publishScreen instead

通过屏幕 id 共享屏幕,共享一个屏幕或该屏幕的部分区域。用户需要在该方法中指定想要共享的屏幕 id 。

传入参数

参数名 类型 说明
display_id unsigned int 指定待共享的屏幕 id 。
region_rect const Rectangle& 指定待共享区域相对于整个屏幕的位置,详见:Rectangle
capture_params const DesktopCaptureParameters& 屏幕共享的编码参数配置,详见:DesktopCaptureParameters

返回值

注意 共享一个窗口或该窗口的部分区域。需要在该方法中指定想要共享的窗口 id 。

updateScreenCaptureRegion

virtual void bytertc::IRtcEngine::updateScreenCaptureRegion(
    const Rectangle& region_rect)

通过 RTC SDK 提供的采集模块采集屏幕视频流时,更新采集区域。

传入参数

参数名 类型 说明
region_rect const Rectangle& 采集区域。参见 Rectangle
此参数描述了调用此接口后的采集区域,和 startScreenVideoCapture 中 source_info 设定区域的相对关系。

注意 调用此接口前,必须已通过调用 startScreenVideoCapture 开启了内部屏幕流采集。

startScreenVideoCapture

virtual int bytertc::IRtcEngine::startScreenVideoCapture(
    const ScreenCaptureSourceInfo& source_info,
    const ScreenCaptureParameters& capture_params)

采集屏幕视频流,用于共享。屏幕视频流包括:屏幕上显示的内容,应用窗口中显示的内容,或虚拟屏幕中显示的内容。
其中,虚拟屏幕中显示的内容仅在 Windows 平台上支持。

传入参数

参数名 类型 说明
source_info const ScreenCaptureSourceInfo& 待共享的屏幕源,参看 ScreenCaptureSourceInfo。
你可以调用 getScreenCaptureSourceList 获得所有可以共享的屏幕源。
capture_params const ScreenCaptureParameters& 共享参数。参看 ScreenCaptureParameters

返回值

注意

stopScreenVideoCapture

virtual void bytertc::IRtcEngine::stopScreenVideoCapture()

停止屏幕视频流采集。

注意

updateScreenCaptureHighlightConfig

virtual void bytertc::IRtcEngine::updateScreenCaptureHighlightConfig(
    const HighlightConfig& highlight_config)

通过 RTC SDK 提供的采集模块采集屏幕视频流时,更新边框高亮设置。默认展示表框。

传入参数

参数名 类型 说明
highlight_config const HighlightConfig& 边框高亮设置。参见 HighlightConfig

注意 调用此接口前,必须已通过调用 startScreenVideoCapture 开启了内部屏幕流采集。

updateScreenCaptureMouseCursor

virtual void bytertc::IRtcEngine::updateScreenCaptureMouseCursor(
    MouseCursorCaptureState capture_mouse_cursor)

通过 RTC SDK 提供的采集模块采集屏幕视频流时,更新对鼠标的处理设置。默认采集鼠标。

传入参数

参数名 类型 说明
capture_mouse_cursor MouseCursorCaptureState 参看 MouseCursorCaptureState

注意 调用此接口前,必须已通过调用 startScreenVideoCapture 开启了内部屏幕流采集。

updateScreenCaptureFilterConfig

virtual void bytertc::IRtcEngine::updateScreenCaptureFilterConfig(
    const ScreenFilterConfig& filter_config)

通过 RTC SDK 提供的采集模块采集屏幕视频流时,设置需要过滤的窗口。

传入参数

参数名 类型 说明
ScreenFilterConfig const 窗口过滤设置,参看 ScreenFilterConfig

注意

getScreenCaptureSourceList

virtual IScreenCaptureSourceList* bytertc::IRtcEngine::getScreenCaptureSourceList()

获取共享对象列表。使用完之后需要调用 release 接口释放。

返回值 共享对象列表,包括应用窗口和屏幕。详见 IScreenCaptureSourceList{@Link #IScreenCaptureSourceList}。由用户选择其中一个共享对象,并在调用 startScreenVideoCapture 时作为参数传给 RTC SDK。

注意

getThumbnail

virtual IVideoFrame* bytertc::IRtcEngine::getThumbnail(
    ScreenCaptureSourceType type,
    view_t source_id,
    int max_width,
    int max_height)

获取共享对象缩略图

传入参数

参数名 类型 说明
type ScreenCaptureSourceType 屏幕采集对象的类型。详见 ScreenCaptureSourceType。
source_id view_t 屏幕共享对象的 ID,可通过 getScreenCaptureSourceList 枚举共享对象列表中获取。详见 view_t
max_width int 最大宽度。保持采集对象本身的宽高比不变,将缩略图缩放到指定范围内的最大宽高。如果给出的尺寸与共享对象比例不同,得到的缩略图会有黑边。
max_height int 最大高度。参见 max_width 的说明。

返回值 共享对象缩略图,详见 IVideoFrame。

getWindowAppIcon

virtual IVideoFrame* bytertc::IRtcEngine::getWindowAppIcon(
    view_t source_id,
    int max_width)

获取应用窗体所属应用的图标。

传入参数

参数名 类型 说明
source_id view_t 屏幕共享对象的 ID,可通过 getScreenCaptureSourceList 枚举共享对象列表中获取。详见 view_t
max_width int 最大宽度。返回的图标将是宽高相等的,输入宽高不等时,取二者较小值。宽高范围为 [32,256],超出该范围将返回 nullptr,默认输出 100 x 100 的图像。
max_height int 最大高度。参见 max_width 的说明。

返回值 详见 IVideoFrame。当屏幕共享对象为应用窗体时有效,否则返回 nullptr。

setVideoSourceType

virtual void bytertc::IRtcEngine::setVideoSourceType(
    StreamIndex stream_index,
    VideoSourceType type)

设置向 SDK 输入的视频源 默认使用内部采集。内部采集指:使用 RTC SDK 内置的视频采集机制进行视频采集。

传入参数

参数名 类型 说明
stream_index StreamIndex 视频流的属性,参看 StreamIndex
type VideoSourceType 视频输入源类型,参看 VideoSourceType

注意

pushExternalVideoFrame

virtual bool bytertc::IRtcEngine::pushExternalVideoFrame(
    IVideoFrame* frame)

发送外部源视频数据

传入参数

参数名 类型 说明
frame IVideoFrame* 设置视频帧,参看 IVideoFrame。

注意 推送外部视频帧前,必须调用 setVideoSourceType 开启外部视频源采集。

setPublishFallbackOption

virtual int bytertc::IRtcEngine::setPublishFallbackOption(
    PublishFallbackOption option)

设置发布的音视频流回退选项
你可以调用这个接口来设置网络情况不佳或设备性能不足时只发送小流,以保证通话质量。

传入参数

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

返回值

注意

setSubscribeFallbackOption

virtual int bytertc::IRtcEngine::setSubscribeFallbackOption(
    SubscribeFallbackOption option)

设置订阅的音视频流回退选项
你可以通过调用该接口来设置网络情况不佳或性能不足时只订阅小流或音频流,以保证通话流畅。

传入参数

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

返回值 0: 方法调用成功

注意

setRemoteUserPriority

virtual int bytertc::IRtcEngine::setRemoteUserPriority(
    const char* user_id,
    RemoteUserPriority priority)

设置用户优先级

传入参数

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

返回值 0: 方法调用成功

注意

setBusinessId

virtual int bytertc::IRtcEngine::setBusinessId(
    const char* business_id)

设置业务标识参数
可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。

传入参数

参数名 类型 说明
business_id const char* 用户设置的自己的 businessId 值
businessId 只是一个标签,颗粒度需要用户自定义。

返回值

注意

setLocalVideoMirrorMode

virtual void bytertc::IRtcEngine::setLocalVideoMirrorMode(
    MirrorMode mirrorMode)

废弃
since 329.1, use setLocalVideoMirrorType instead

设置采用前置摄像头采集时,是否开启镜像模式。

传入参数

参数名 类型 说明
mirrorMode MirrorMode 是否开启镜像模式

setLocalVideoMirrorType

virtual void bytertc::IRtcEngine::setLocalVideoMirrorType(
    MirrorType mirrorType)

为采集到的视频流开启镜像

传入参数

参数名 类型 说明
mirrorType MirrorType 镜像类型,参看 MirrorType

注意

前置摄像头后置摄像头自定义采集视频源 桌面端摄像头
移动端本地预览镜像,编码传输不镜像 本地预览不镜像,编码传输不镜像 本地预览不镜像,编码传输不镜像 /
桌面端// 本地预览不镜像,编码传输不镜像 本地预览镜像,编码传输不镜像

enableEffectBeauty

virtual int bytertc::IRtcEngine::enableEffectBeauty(
    bool enable)

开启/关闭基础美颜

传入参数

参数名 类型 说明
enable bool 基础美颜开关
• true: 开启基础美颜
• false: 关闭基础美颜(默认)

返回值

注意

setBeautyIntensity

virtual int bytertc::IRtcEngine::setBeautyIntensity(
    EffectBeautyMode beautyMode,
    float intensity)

调整基础美颜强度

传入参数

参数名 类型 说明
beautyMode EffectBeautyMode 基础美颜模式,参看 EffectBeautyMode。
intensity float 美颜强度,取值范围为 [0,1]。强度为 0 表示关闭,默认强度为 0.5。

返回值

注意

setEncryptInfo

virtual void bytertc::IRtcEngine::setEncryptInfo(
    EncryptType encrypt_type,
    const char* key,
    int key_size)

设置传输时使用内置加密的方式

传入参数

参数名 类型 说明
encrypt_type EncryptType 加密类型,详见 EncryptType
key const char* 加密密钥,长度限制为 36 位,超出部分将会被截断
key_size int 参数 key 的长度

注意

setCustomizeEncryptHandler

virtual void bytertc::IRtcEngine::setCustomizeEncryptHandler(
    IEncryptHandler* handler)

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

传入参数

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

注意

+ 数据加密/解密为串行执行,因而视实现方式不同,可能会影响到最终渲染效率。是否使用该方法,需要由使用方谨慎评估。

enableAudioFrameCallback

virtual void bytertc::IRtcEngine::enableAudioFrameCallback(
    AudioFrameCallbackMethod method,
    AudioFormat format)

开启音频回调

传入参数

参数名 类型 说明
method AudioFrameCallbackMethod 音频回调方法,参看 AudioFrameCallbackMethod。
当音频回调方法设置为 kAudioFrameCallbackRecord、kAudioFrameCallbackPlayback、kAudioFrameCallbackMixed、kAudioFrameCallbackRecordScreen时,你需要在参数 format 中指定准确的采样率和声道,暂不支持设置为自动。
当音频回调方法设置为 kAudioFrameCallbackRemoteUser时,暂不支持音频参数格式中设置准确的采样率和声道,你需要设置为自动。
format AudioFormat 音频参数格式,参看 AudioFormat。

注意 开启音频回调并调用 registerAudioFrameObserver 后,IAudioFrameObserver 会收到对应的音频回调。两者调用顺序没有限制且相互独立。

disableAudioFrameCallback

virtual void bytertc::IRtcEngine::disableAudioFrameCallback(
    AudioFrameCallbackMethod method)

关闭音频回调

传入参数

参数名 类型 说明
method AudioFrameCallbackMethod 音频回调方法,参看 AudioFrameCallbackMethod。

注意 该方法需要在调用 enableAudioFrameCallback 之后调用。

registerAudioFrameObserver

virtual void bytertc::IRtcEngine::registerAudioFrameObserver(
    IAudioFrameObserver* observer)

注册音频数据回调观察者。

传入参数

参数名 类型 说明
observer IAudioFrameObserver* 音频数据观察者,参看 IAudioFrameObserver。如果传入 null,则取消注册。

返回值

注意 注册音频数据回调观察者并调用 enableAudioFrameCallback 后,IAudioFrameObserver 会收到对应的音频回调。

registerAudioProcessor

virtual void bytertc::IRtcEngine::registerAudioProcessor(
    IAudioFrameProcessor* processor)

注册自定义音频处理器。
注册完成后,你可以调用 enableAudioProcessor,对本地采集或接收到的远端音频进行处理。

传入参数

参数名 类型 说明
processor IAudioFrameProcessor* 自定义音频处理器,详见 IAudioFrameProcessor。
SDK 只持有 processor 的弱引用,你应保证其生命周期。

注意 重复调用此接口时,仅最后一次调用生效。

enableAudioProcessor

virtual void bytertc::IRtcEngine::enableAudioProcessor(
    AudioProcessorMethod method,
    AudioFormat format)

获取本地采集的音频帧或接收到的远端音频帧,进行自定义处理。

传入参数

参数名 类型 说明
method AudioProcessorMethod 音频帧类型,参看 AudioProcessorMethod。通过多次调用此接口,可以对不同的音频帧进行自定义处理。
选择不同的值时,收到的回调不同:
• 选择本地采集的音频时,会收到 onProcessRecordAudioFrame
• 选择远端音频流的混音音频时,会收到 onProcessPlayBackAudioFrame
• 选择远端音频流时,会收到 onProcessRemoteUserAudioFrame
format AudioFormat 设定自定义处理时获取的音频帧格式,参看 AudioFormat。

注意

disableAudioProcessor

virtual void bytertc::IRtcEngine::disableAudioProcessor(
    AudioProcessorMethod method)

关闭自定义音频处理。

传入参数

参数名 类型 说明
method AudioProcessorMethod 音频帧类型,参看 AudioProcessorMethod。

registerVideoFrameObserver

virtual void bytertc::IRtcEngine::registerVideoFrameObserver(
    IVideoFrameObserver* observer)

注册视频数据回调观察者

传入参数

参数名 类型 说明
observer IVideoFrameObserver* 数据回调函数,详见 IVideoFrameObserver,将参数设置为 nullptr 则取消注册。

注意 该方法可以在任意时间调用,建议在 joinRoom 前。

registerLocalVideoProcessor

virtual int bytertc::IRtcEngine::registerLocalVideoProcessor(
    IVideoProcessor* processor,
    VideoPreprocessorConfig config)

设置自定义视频前处理器。
使用这个视频前处理器,你可以调用 processVideoFrame 对 RTC SDK 采集得到的视频帧进行前处理,并将处理后的视频帧用于 RTC 音视频通信。

传入参数

参数名 类型 说明
processor IVideoProcessor* 自定义视频处理器,详见 IVideoProcessor。如果传入 null,则不对 RTC SDK 采集得到的视频帧进行前处理。
SDK 只持有 processor 的弱引用,你应保证其生命周期。
config VideoPreprocessorConfig 自定义视频前处理器适用的设置,详见 VideoPreprocessorConfig。
当前,config 中的 required_pixel_format 仅支持:kVideoPixelFormatI420 和 kVideoPixelFormatUnknown:
• 设置为 kVideoPixelFormatUnknown 时,RTC SDK 给出供 processor 处理的视频帧格式即采集的格式。
你可以通过 frameType 和 pixelFormat 获取实际采集的视频帧格式和像素类型。
• 设置为 kVideoPixelFormatI420 时,RTC SDK 会将采集得到的视频帧转变为对应的格式,供前处理使用。
• 设置为其他值时,此方法调用失败。

返回值

注意

sendSEIMessage

virtual int bytertc::IRtcEngine::sendSEIMessage(
    StreamIndex stream_index,
    const uint8_t* message,
    int length,
    int repeat_count)

在视频通信时,通过视频帧发送 SEI 数据。

传入参数

参数名 类型 说明
stream_index StreamIndex 媒体流类型,参看 StreamIndex
message const uint8_t* SEI 消息。长度不超过 4 kB。
length int SEI 消息长度。
repeat_count int 消息发送重复次数。取值范围是 [0, 30]。
调用此接口后,SEI 数据会添加到当前视频帧开始的连续 repeat_count 个视频帧中。

返回值

注意

getVideoDeviceManager

virtual IVideoDeviceManager* bytertc::IRtcEngine::getVideoDeviceManager()

创建视频设备管理实例

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

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

getAudioDeviceManager

virtual IAudioDeviceManager* bytertc::IRtcEngine::getAudioDeviceManager()

设备音频管理接口创建

返回值 音频设备管理接口

getRangeAudio

virtual IRangeAudio* bytertc::IRtcEngine::getRangeAudio()

获取范围语音接口实例。

返回值 方法调用结果:

注意 首次调用该方法须在创建房间后、加入房间前。

getSpatialAudio

virtual ISpatialAudio* bytertc::IRtcEngine::getSpatialAudio()

获取空间音频接口实例。

返回值 方法调用结果:

注意

startFileRecording

virtual int bytertc::IRtcEngine::startFileRecording(
    StreamIndex type,
    RecordingConfig config,
    RecordingType recording_type)

该方法将通话过程中的音视频数据录制到本地的文件中。

传入参数

参数名 类型 说明
type StreamIndex 流属性,指定录制主流还是屏幕流,参看 StreamIndex
config RecordingConfig 本地录制参数配置,参看 RecordingConfig

返回值

注意

stopFileRecording

virtual void bytertc::IRtcEngine::stopFileRecording(
    StreamIndex type)

停止本地录制

传入参数

参数名 类型 说明
type StreamIndex 流属性,指定停止主流或者屏幕流录制,参看 StreamIndex

注意

enableExternalSoundCard

virtual void bytertc::IRtcEngine::enableExternalSoundCard(
    bool enable)

启用匹配外置声卡的音频处理模式

传入参数

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

注意

setRuntimeParameters

virtual void bytertc::IRtcEngine::setRuntimeParameters(
    const char * json_string)

设置运行时的参数

传入参数

参数名 类型 说明
json_string const char* json 序列化之后的字符串

startASR

virtual void bytertc::IRtcEngine::startASR(
    const RTCASRConfig& asr_config,
    IRTCASREngineEventHandler* handler)

开启自动语音识别服务。该方法将识别后的用户语音转化成文字,并通过 onMessage 事件回调给用户。

传入参数

参数名 类型 说明
asr_config const RTCASRConfig& 校验信息,参看 RTCASRConfig
handler IRTCASREngineEventHandler* 语音识别服务使用状态回调,参看 IRTCASREngineEventHandler

stopASR

virtual void bytertc::IRtcEngine::stopASR()

关闭语音识别服务

feedback

virtual int bytertc::IRtcEngine::feedback(
    ProblemFeedbackOption *type,
    int count,
    const char* problem_desc)

将用户反馈的问题上报到 RTC

传入参数

参数名 类型 说明
type ProblemFeedbackOption* 预设问题列表,参看 ProblemFeedbackOption
count int problemDesc 的长度
problemDesc const char* problem_desc 预设问题以外的其他问题的具体描述

返回值

注意 如果用户上报时在房间内,那么问题会定位到用户当前所在的一个或多个房间;如果用户上报时不在房间内,那么问题会定位到引擎此前退出的房间。

getAudioMixingManager

virtual IAudioMixingManager* bytertc::IRtcEngine::getAudioMixingManager()

混音管理接口创建

返回值 混音管理实例,详见IAudioMixingManager

login

virtual int64_t bytertc::IRtcEngine::login(
    const char* token,
    const char* uid)

必须先登录,才能发送房间外点对点消息和向应用服务器发送消息
在调用本接口登录后,如果想要登出,需要调用 logout。

传入参数

参数名 类型 说明
token const char* 动态密钥
用户登录必须携带的 Token,用于鉴权验证。
本 Token 与加入房间时必须携带的 Token 不同。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。
uid const char* 用户 ID
用户 ID 在 appid 的维度下是唯一的。

返回值

注意

logout

virtual void bytertc::IRtcEngine::logout()

调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。

注意

updateLoginToken

virtual void bytertc::IRtcEngine::updateLoginToken(
    const char* token)

更新用户用于登录的 Token
Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。
调用 login 方法登录时,如果使用了过期的 Token 将导致登录失败,并会收到 onLoginResult 回调通知,错误码为 kLoginErrorCodeInvalidToken。此时需要重新获取 Token,并调用此方法更新 Token。

传入参数

参数名 类型 说明
token const char* 更新的动态密钥

注意

setServerParams

virtual void bytertc::IRtcEngine::setServerParams(
    const char* signature,
    const char* url)

设置应用服务器参数

传入参数

参数名 类型 说明
signature const char* 动态签名
业务服务器会使用该签名对请求进行鉴权验证。
url const char* 业务服务器的地址

注意

getPeerOnlineStatus

virtual void bytertc::IRtcEngine::getPeerOnlineStatus(
    const char* peer_user_id)

查询对端用户或本端用户的登录状态

传入参数

参数名 类型 说明
peer_user_id const char* 需要查询的用户 ID

注意

sendUserMessageOutsideRoom

virtual int64_t bytertc::IRtcEngine::sendUserMessageOutsideRoom(
    const char* uid,
    const char* message,
    MessageConfig config)

给房间外指定的用户发送文本消息(P2P)

传入参数

参数名 类型 说明
uid const char* 消息接收用户的 ID
message const char* 发送的文本消息内容
消息不超过 64 KB。
config MessageConfig 消息类型,参看 MessageConfig。

返回值

注意

sendUserBinaryMessageOutsideRoom

virtual int64_t bytertc::IRtcEngine::sendUserBinaryMessageOutsideRoom(
    const char* uid,
    int length,
    const uint8_t* message,
    MessageConfig config)

给房间外指定的用户发送二进制消息(P2P)

传入参数

参数名 类型 说明
uid const char* 消息接收用户的 ID
length int 二进制字符串的长度
message const uint8_t* 发送的二进制消息内容
消息不超过 46KB。
config MessageConfig 消息类型,参看 MessageConfig。

返回值

注意

sendServerMessage

virtual int64_t bytertc::IRtcEngine::sendServerMessage(
    const char* message)

客户端给业务服务器发送文本消息(P2Server)

传入参数

参数名 类型 说明
message const char* 发送的文本消息内容
消息不超过 64 KB。

返回值

注意

sendServerBinaryMessage

virtual int64_t bytertc::IRtcEngine::sendServerBinaryMessage(
    int length,
    const uint8_t* message)

客户端给业务服务器发送二进制消息(P2Server)

传入参数

参数名 类型 说明
length int 二进制字符串的长度
message const uint8_t* 发送的二进制消息内容
消息不超过 46KB。

返回值

注意

startNetworkDetection

virtual NetworkDetectionStartReturn bytertc::IRtcEngine::startNetworkDetection(
    bool is_test_uplink,
    int expected_uplink_bitrate,
    bool is_test_downlink,
    int expected_downlink_biterate)

开启通话前网络探测

传入参数

参数名 类型 说明
is_test_uplink bool 是否探测上行带宽
expected_uplink_bitrate int 期望上行带宽,单位:kbps范围为 {0, [100-10000]},其中, 0 表示由 SDK 指定最高码率。
is_test_downlink bool 是否探测下行带宽
expected_downlink_biterate int 期望下行带宽,单位:kbps范围为 {0, [100-10000]},其中, 0 表示由 SDK 指定最高码率。

返回值 开启通话前网络探测结果,详见 NetworkDetectionStartReturn

注意

stopNetworkDetection

virtual void bytertc::IRtcEngine::stopNetworkDetection()

停止通话前网络探测

注意

setScreenAudioSourceType

virtual void bytertc::IRtcEngine::setScreenAudioSourceType(
    AudioSourceType source_type)

在屏幕共享时,设置屏幕音频的采集方式(内部采集/自定义采集)

传入参数

参数名 类型 说明
source_type AudioSourceType 屏幕音频输入源类型, 参看 AudioSourceType

注意

setScreenAudioStreamIndex

virtual void bytertc::IRtcEngine::setScreenAudioStreamIndex(
    StreamIndex index)

在屏幕共享时,设置屏幕音频流和麦克风采集到的音频流的混流方式

传入参数

参数名 类型 说明
index StreamIndex 混流方式,参看 StreamIndex
• kStreamIndexMain: 将屏幕音频流和麦克风采集到的音频流混流
• kStreamIndexScreen: 默认值,将屏幕音频流和麦克风采集到的音频流分为两路音频流

注意 你应该在 publishScreen 之前,调用此方法。否则,你将收到 onWarning 的报错:kWarningCodeSetScreenAudioStreamIndexFailed

startScreenAudioCapture

virtual void bytertc::IRtcEngine::startScreenAudioCapture()

在屏幕共享时,开始使用 RTC SDK 内部采集方式,采集屏幕音频

注意

stopScreenAudioCapture

virtual void bytertc::IRtcEngine::stopScreenAudioCapture()

在屏幕共享时,停止使用 RTC SDK 内部采集方式,采集屏幕音频。

注意 要开始屏幕音频内部采集,调用 startScreenAudioCapture。

pushScreenAudioFrame

virtual int bytertc::IRtcEngine::pushScreenAudioFrame(
    IAudioFrame* frame)

使用自定义采集方式,采集屏幕共享时的屏幕音频时,将音频帧推送至 RTC SDK 处进行编码等处理。

传入参数

参数名 类型 说明
frame IAudioFrame* 音频数据帧,参见 IAudioFrame

返回值 方法调用结果

注意

stopScreenCapture

virtual void bytertc::IRtcEngine::stopScreenCapture()

废弃
since 327.1, use stopScreenVideoCapture instead

停止屏幕或者窗口共享。

注意

enableAudioPropertiesReport

virtual void bytertc::IRtcEngine::enableAudioPropertiesReport(
    const AudioPropertiesConfig& config)

启用音频信息提示。

传入参数

参数名 类型 说明
config const AudioPropertiesConfig& 详见 AudioPropertiesConfig

注意 开启提示后,你可以: + 通过 onLocalAudioPropertiesReport 回调获取本地麦克风和屏幕音频流采集的音频信息;

enableVocalInstrumentBalance

virtual void bytertc::IRtcEngine::enableVocalInstrumentBalance(
    bool enable)

开启/关闭音量均衡功能。
开启音量均衡功能后,人声的响度会调整为 -16lufs。如果已调用 setAudioMixingLoudness 传入了混音音乐的原始响度,此音乐播放时,响度会调整为 -20lufs。

传入参数

参数名 类型 说明
enable bool 是否开启音量均衡功能:
• True: 是
• False: 否

注意 该接口须在调用 startAudioMixing 开始播放音频文件之前调用。

enablePlaybackDucking

virtual void bytertc::IRtcEngine::enablePlaybackDucking(
    bool enable)

打开/关闭音量闪避功能,适用于“一起看”等场景。
开启该功能后,当检测到远端人声时,本地的媒体播放音量会自动减弱,从而保证远端人声的清晰可辨;当远端人声消失时,本地媒体音量会恢复到闪避前的音量水平。

传入参数

参数名 类型 说明
enable bool 是否开启音量闪避:
• True: 是
• False: 否

registerLocalEncodedVideoFrameObserver

virtual void bytertc::IRtcEngine::registerLocalEncodedVideoFrameObserver(
    ILocalEncodedVideoFrameObserver* observer)

注册本地视频帧监测器。
无论使用内部采集还是自定义采集,调用该方法后,SDK 每监测到一帧本地视频帧时,都会将视频帧信息通过 onLocalEncodedVideoFrame 回调给用户

传入参数

参数名 类型 说明
observer ILocalEncodedVideoFrameObserver* 本地视频帧监测器,参看 ILocalEncodedVideoFrameObserver。将参数设置为 nullptr 则取消注册。

注意 该方法可在进房前后的任意时间调用,在进房前调用可保证尽可能早地监测视频帧并触发回调

registerRemoteEncodedVideoFrameObserver

virtual void bytertc::IRtcEngine::registerRemoteEncodedVideoFrameObserver(
    IRemoteEncodedVideoFrameObserver* observer)

注册远端编码后视频数据回調。
完成注册后,当 SDK 监测到远端编码后视频帧时,会触发 onRemoteEncodedVideoFrame 回调

传入参数

参数名 类型 说明
observer IRemoteEncodedVideoFrameObserver* 远端编码后视频数据监测器,参看 IRemoteEncodedVideoFrameObserver

注意

setExternalVideoEncoderEventHandler

virtual void bytertc::IRtcEngine::setExternalVideoEncoderEventHandler(
    IExternalVideoEncoderEventHandler* encoder_handler)

注册自定义编码帧推送事件回调

传入参数

参数名 类型 说明
encoder_handler IExternalVideoEncoderEventHandler* 自定义编码帧回调类,参看 IExternalVideoEncoderEventHandler

注意

pushExternalEncodedVideoFrame

virtual bool bytertc::IRtcEngine::pushExternalEncodedVideoFrame(
    StreamIndex index,
    int video_index,
    IEncodedVideoFrame* video_stream)

推送自定义编码后的视频流

传入参数

参数名 类型 说明
index StreamIndex 需要推送的编码流的属性,参看 StreamIndex
video_index int 对应的编码流下标,从 0 开始,如果调用 setVideoEncoderConfig 设置了多路流,此处数量须与之保持一致
video_stream IEncodedVideoFrame* 编码流视频帧信息,参看 IEncodedVideoFrame。

注意

setVideoDecoderConfig

virtual void bytertc::IRtcEngine::setVideoDecoderConfig(
    RemoteStreamKey key,
    VideoDecoderConfig config)

在订阅远端视频流之前,设置远端视频数据解码方式

传入参数

参数名 类型 说明
key RemoteStreamKey 远端流信息,即对哪一路视频流进行解码方式设置,参看 RemoteStreamKey。
config VideoDecoderConfig 视频解码方式,参看 VideoDecoderConfig。

注意

requestRemoteVideoKeyFrame

virtual void bytertc::IRtcEngine::requestRemoteVideoKeyFrame(
    const RemoteStreamKey& stream_info)

在订阅远端视频流之后,向远端请求关键帧

传入参数

参数名 类型 说明
stream_info const RemoteStreamKey& 远端流信息,参看 RemoteStreamKey。

注意

sendStreamSyncInfo

virtual int bytertc::IRtcEngine::sendStreamSyncInfo(
    const uint8_t* data,
    int32_t length,
    const StreamSycnInfoConfig& config)

发送音频流同步信息。将消息通过音频流发送到远端,并实现与音频流同步,该接口调用成功后,远端用户会收到 onStreamSyncInfoReceived 回调。

传入参数

参数名 类型 说明
data const uint8_t* 消息内容。
length int32_t 消息长度。消息长度必须是 [1,16] 字节。
config const StreamSycnInfoConfig& 媒体流信息同步的相关配置,详见 StreamSycnInfoConfig 。

返回值

setLocalVoicePitch

virtual void bytertc::IRtcEngine::setLocalVoicePitch(
    int pitch)

开启本地语音变调功能,多用于 K 歌场景。
使用该方法,你可以对本地语音的音调进行升调或降调等调整。

传入参数

参数名 类型 说明
pitch int 相对于语音原始音调的升高/降低值,取值范围[-12,12],默认值为 0,即不做调整。
取值范围内每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调,设置的绝对值越大表示音调升高或降低越多。
超出取值范围则设置失败,并且会触发 onWarning 回调,提示 WarningCode 错误码为 WARNING_CODE_SET_SCREEN_STREAM_INVALID_VOICE_PITCH 设置语音音调不合法

muteAudioPlayback

virtual void bytertc::IRtcEngine::muteAudioPlayback(
    MuteState mute_state)

控制本地音频流播放状态:播放/不播放

传入参数

参数名 类型 说明
mute_state MuteState 播放状态,标识是否播放本地音频流,详见:MuteState

注意 本方法仅控制本地收到音频流的播放状态,并不影响本地音频播放设备。

startPlayPublicStream

virtual int bytertc::IRtcEngine::startPlayPublicStream(
    const char* public_streamid)

订阅指定公共流
无论用户是否在房间内,都可以调用本接口获取和播放指定的公共流。

传入参数

参数名 类型 说明
public_streamid const char* 公共流 ID,如果指定流暂未发布,则本地客户端将在其开始发布后接收到流数据。

返回值

注意

stopPlayPublicStream

virtual int bytertc::IRtcEngine::stopPlayPublicStream(
    const char* public_streamid)

取消订阅指定公共流
关于订阅公共流,查看 startPlayPublicStream。

传入参数

参数名 类型 说明
public_streamid const char* 公共流 ID

返回值

setPublicStreamVideoCanvas

virtual int bytertc::IRtcEngine::setPublicStreamVideoCanvas(
    const char* public_streamid,
    const VideoCanvas& canvas)

为指定公共流绑定内部渲染视图

传入参数

参数名 类型 说明
public_streamid const char* 公共流 ID
canvas const VideoCanvas& 内部渲染视图,如果需要解除视频的绑定视图,把 videoCanvas 设置为空。详见 VideoCanvas。

返回值

setPublicStreamVideoSink

virtual void bytertc::IRtcEngine::setPublicStreamVideoSink(
    const char* public_streamid,
    IVideoSink* video_sink,
    IVideoSink::PixelFormat format)

为指定公共流绑定自定义渲染器。详见自定义视频渲染。

传入参数

参数名 类型 说明
public_streamid const char* 公共流 ID
video_sink IVideoSink* 自定义视频渲染器,自定义视频渲染器,需要释放渲染器资源时,将 videoSink 设置为 null。参看 IVideoSink

返回值

setVideoWatermark

virtual void bytertc::IRtcEngine::setVideoWatermark(
    StreamIndex index,
    const char * image_path,
    RTCWatermarkConfig config)

clearVideoWatermark

virtual void bytertc::IRtcEngine::clearVideoWatermark(
    StreamIndex index)

setUserVisibility

virtual void bytertc::IRtcEngine::setUserVisibility(
    bool enable)

设置用户可见性。默认可见。

传入参数

参数名 类型 说明
enable bool 设置用户是否对房间内其他用户可见:
• true: 可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。
• false: 不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。

返回值

注意

leaveRoom

virtual void bytertc::IRtcEngine::leaveRoom()

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

注意

updateToken

virtual void bytertc::IRtcEngine::updateToken(
    const char* token)

更新 Token。
用于加入房间的 Token 有一定的有效期。在 Token 过期前 30 秒,会收到 onTokenWillExpire 回调,此时需要重新获取 Token,并调用此方法更新 Token,否则用户将因为 Token 过期被移出房间。
调用 joinRoom 方法加入房间或断网重连进入房间时,如果 Token 过期或无效,将导致加入房间失败,并会收到 onRoomStateChanged 回调通知,回调错误码为 ErrorCode 中的 ERROR_CODE_INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。 更新 Token 后,SDK 会自动加入房间。

传入参数

参数名 类型 说明
token const char* 有效的 Token。
如果传入的 Token 无效,回调错误码为 ErrorCode 中的 ERROR_CODE_UPDATE_TOKEN_WITH_INVALID_TOKEN。

注意 当 Token 过期时,用户将被移出房间并将收到 onStreamStateChanged 回调, ERROR_CODE_EXPIRED_TOKEN,此时需要重新获取 Token,并调用 joinRoom 重新加入房间。

sendUserMessage

virtual int64_t bytertc::IRtcEngine::sendUserMessage(
    const char* uid,
    const char* message,
    MessageConfig config)

给房间内指定的用户发送文本消息(P2P)

传入参数

参数名 类型 说明
uid const char* 消息接收用户的 ID
message const char* 发送的文本消息内容。
消息不超过 64 KB。
config MessageConfig 消息类型,参看 MessageConfig。

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

注意

sendUserBinaryMessage

virtual int64_t bytertc::IRtcEngine::sendUserBinaryMessage(
    const char* uid,
    int length,
    const uint8_t* message,
    MessageConfig config)

给房间内指定的用户发送二进制消息(P2P)

传入参数

参数名 类型 说明
uid const char* 消息接收用户的 ID
length int 二进制字符串的长度。
message const uint8_t* 二进制消息的内容。
消息不超过 46KB。
config MessageConfig 消息类型,参看 MessageConfig。

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

注意

sendRoomMessage

virtual int64_t bytertc::IRtcEngine::sendRoomMessage(
    const char* message)

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

传入参数

参数名 类型 说明
message const char* 用户发送的广播消息
消息不超过 64 KB。

注意

sendRoomBinaryMessage

virtual int64_t bytertc::IRtcEngine::sendRoomBinaryMessage(
    int size,
    const uint8_t* message)

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

传入参数

参数名 类型 说明
size int 发送的二进制消息长度
message const uint8_t* 用户发送的二进制广播消息
消息不超过 46KB。

注意

publishStream

virtual void bytertc::IRtcEngine::publishStream(
    MediaStreamType type)

在当前所在房间内发布本地通过摄像头/麦克风采集的媒体流

传入参数

参数名 类型 说明
type MediaStreamType 媒体流类型,用于指定发布音频/视频,参看 MediaStreamType

注意

unpublishStream

virtual void bytertc::IRtcEngine::unpublishStream(
    MediaStreamType type)

停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中

传入参数

参数名 类型 说明
type MediaStreamType 媒体流类型,用于指定停止发布音频/视频,参看 MediaStreamType

注意

publishScreen

virtual void bytertc::IRtcEngine::publishScreen(
    MediaStreamType type)

在当前所在房间内发布本地屏幕共享音视频流

传入参数

参数名 类型 说明
type MediaStreamType 媒体流类型,用于指定发布屏幕音频/视频,参看 MediaStreamType。

注意

unpublishScreen

virtual void bytertc::IRtcEngine::unpublishScreen(
    MediaStreamType type)

停止将本地屏幕共享音视频流发布到当前所在房间中

传入参数

参数名 类型 说明
type MediaStreamType 媒体流类型,用于指定停止发布屏幕音频/视频,参看 MediaStreamType

注意

setRemoteVideoConfig

virtual void bytertc::IRtcEngine::setRemoteVideoConfig(
    const char *user_id,
    const RemoteVideoConfig &remote_video_config)

设置期望订阅的远端视频流的参数。

传入参数

参数名 类型 说明
user_id const char* 期望订阅的远端视频流发布用户的 ID。
remote_video_config const RemoteVideoConfig & 期望订阅的远端视频流参数,参看 RemoteVideoConfig。

注意

subscribeStream

virtual void bytertc::IRtcEngine::subscribeStream(
    const char *user_id,
    MediaStreamType type)

订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名 类型 说明
user_id const char* 指定订阅的远端发布音视频流的用户 ID。
type MediaStreamType 媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。

注意

unsubscribeStream

virtual void bytertc::IRtcEngine::unsubscribeStream(
    const char *user_id,
    MediaStreamType type)

取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名 类型 说明
user_id const char* 指定取消订阅的远端发布音视频流的用户 ID。
type MediaStreamType 媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。

注意

subscribeScreen

virtual void bytertc::IRtcEngine::subscribeScreen(
    const char *user_id,
    MediaStreamType type)

订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名 类型 说明
user_id const char* 指定订阅的远端发布屏幕流的用户 ID。
type MediaStreamType 媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。

注意

unsubscribeScreen

virtual void bytertc::IRtcEngine::unsubscribeScreen(
    const char *user_id,
    MediaStreamType type)

取消订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名 类型 说明
user_id const char* 指定取消订阅的远端发布屏幕流的用户 ID。
type MediaStreamType 媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。

注意

unsubscribe

virtual void bytertc::IRtcEngine::unsubscribe(
    const char* user_id,
    bool is_screen)

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

传入参数

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

注意

setRemoteAudioPlaybackVolume

virtual void bytertc::IRtcEngine::setRemoteAudioPlaybackVolume(
    const char* user_id,
    int volume)

调节来自远端用户的音频播放音量

传入参数

参数名 类型 说明
user_id const char* 音频来源的远端用户 ID
volume int 音频播放音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。为保证更好的通话质量,建议将 volume 值设为 [0,100]。
• 0: 静音
• 100: 原始音量,默认值
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

pauseAllSubscribedStream

virtual void bytertc::IRtcEngine::pauseAllSubscribedStream(
    PauseResumeControlMediaType media_type)

暂停接收来自远端的媒体流。

传入参数

参数名 类型 说明
media_type PauseResumeControlMediaType 媒体流类型,指定需要暂停接收音频还是视频流,参看 PauseResumeControlMediaType。

注意

resumeAllSubscribedStream

virtual void bytertc::IRtcEngine::resumeAllSubscribedStream(
    PauseResumeControlMediaType media_type)

恢复接收来自远端的媒体流

传入参数

参数名 类型 说明
media_type PauseResumeControlMediaType 媒体流类型,指定需要暂停接收音频还是视频流,参看 PauseResumeControlMediaType

注意

setMultiDeviceAVSync

virtual void bytertc::IRtcEngine::setMultiDeviceAVSync(
    const char* audio_user_id)

设置发流端音画同步。
当同一用户同时使用两个通话设备分别采集发送音频和视频时,有可能会因两个设备所处的网络环境不一致而导致发布的流不同步,此时你可以在视频发送端调用该接口,SDK 会根据音频流的时间戳自动校准视频流,以保证接收端听到音频和看到视频在时间上的同步性。

传入参数

参数名 类型 说明
audio_user_id const char* 音频发送端的用户 ID,将该参数设为空则可解除当前音视频的同步关系。

注意

startLiveTranscoding

virtual void bytertc::IRtcEngine::startLiveTranscoding(
    const char* task_id,
    ITranscoderParam* param,
    ITranscoderObserver* observer)

新增转推直播任务,并设置合流的图片、视频视图布局和音频属性。
同一个任务中转推多路直播流时,SDK 会先将多路流合成一路流,然后再进行转推。

传入参数

参数名 类型 说明
task_id const char* 转推直播任务 ID。
你可以在同一房间内发起多个转推直播任务,并用不同的任务 ID 加以区。当你需要发起多个转推直播任务时,应使用多个 ID;当你仅需发起一个转推直播任务时,建议使用空字符串。
param ITranscoderParam* 转推直播配置参数。参看 ITranscoderParam。
observer ITranscoderObserver* 端云一体转推直播观察者。参看 ITranscoderObserver。
通过注册 observer 接收转推直播相关的回调。

注意

stopLiveTranscoding

virtual void bytertc::IRtcEngine::stopLiveTranscoding(
    const char* task_id)

停止转推直播。
关于启动转推直播,参看 startLiveTranscoding。

传入参数

参数名 类型 说明
task_id const char* 转推直播任务 ID。可以指定想要停止的转推直播任务。

updateLiveTranscoding

virtual void bytertc::IRtcEngine::updateLiveTranscoding(
    const char* task_id,
    ITranscoderParam* param)

更新转推直播参数。
使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。

传入参数

参数名 类型 说明
task_id const char* 转推直播任务 ID。指定想要更新参数设置的转推直播任务。
param ITranscoderParam* 配置参数,参看 ITranscoderParam。

startForwardStreamToRooms

virtual int bytertc::IRtcEngine::startForwardStreamToRooms(
    const ForwardStreamConfiguration& configuration)

开始跨房间转发媒体流。 在用户进入房间后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。

传入参数

参数名 类型 说明
configuration const ForwardStreamConfiguration& 跨房间媒体流转发指定房间的信息。参看 ForwardStreamConfiguration。

返回值

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

注意

updateForwardStreamToRooms

virtual int bytertc::IRtcEngine::updateForwardStreamToRooms(
    const ForwardStreamConfiguration& configuration)

更新跨房间媒体流转发信息。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。 调用本方法增加或删减房间后,将在本端触发 onForwardStreamStateChanged 回调,包含发生了变动的目标房间中媒体流转发状态。

传入参数

参数名 类型 说明
configuration const ForwardStreamConfiguration& 跨房间媒体流转发目标房间信息。参看 ForwardStreamConfiguration。

返回值

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

注意

stopForwardStreamToRooms

virtual void bytertc::IRtcEngine::stopForwardStreamToRooms()

停止跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法停止向所有目标房间转发媒体流。

注意

pauseForwardStreamToAllRooms

virtual void bytertc::IRtcEngine::pauseForwardStreamToAllRooms()

暂停跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法暂停向所有目标房间转发媒体流。 调用本方法暂停向所有目标房间转发后,你可以随时调用 resumeForwardStreamToAllRooms 快速恢复转发。

注意 调用本方法后,目标房间中的用户将接收到本地用户停止发布 onUserUnPublishStream/onUserUnPublishScreen 和退房 onUserLeave 的回调。

resumeForwardStreamToAllRooms

virtual void bytertc::IRtcEngine::resumeForwardStreamToAllRooms()

恢复跨房间媒体流转发。 调用 pauseForwardStreamToAllRooms 暂停转发之后,调用本方法恢复向所有目标房间转发媒体流。

注意 目标房间中的用户将接收到本地用户进房 onUserJoined 和发布 onUserPublishStream/onUserPublishScreen 的回调。

startPushPublicStream

virtual int bytertc::IRtcEngine::startPushPublicStream(
    const char* public_stream_id,
    IPublicStreamParam* param)

发布一路公共流
公共流是指不属于任何房间,也不属于任何用户的媒体流。使用同一 appID 的用户,可以调用 startPlayPublicStream 获取和播放指定的公共流。

传入参数

参数名 类型 说明
public_stream_id const char* 公共流 ID
param IPublicStreamParam* 公共流参数。详见 IPublicStreamParam。
一路公共流可以包含多路房间内的媒体流,按照指定的布局方式进行聚合。
如果指定的媒体流还未发布,则公共流将在指定流开始发布后实时更新。

返回值

注意

stopPushPublicStream

virtual int bytertc::IRtcEngine::stopPushPublicStream(
    const char* public_stream_id)

停止发布当前用户发布的公共流
关于发布公共流,查看 startPushPublicStream。

传入参数

参数名 类型 说明
public_stream_id const char* 公共流 ID
指定的流必须为当前用户所发布。

返回值

updatePublicStreamParam

virtual int bytertc::IRtcEngine::updatePublicStreamParam(
    const char* public_stream_id,
    IPublicStreamParam* param)

更新公共流参数
关于发布公共流,查看 startPushPublicStream。

传入参数

参数名 类型 说明
public_stream_id const char* 公共流 ID
param IPublicStreamParam* 公共流参数。详见 IPublicStreamParam。
指定的流必须为当前用户所发布的。

返回值

startEchoTest

virtual int bytertc::IRtcEngine::startEchoTest(
    EchoTestConfig echo_test_config,
    unsigned int play_delay_time)

开启音视频回路测试。
在进房前,用户可调用该接口对音视频通话全链路进行检测,包括对音视频设备以及用户上下行网络的检测,从而帮助用户判断是否可以正常发布和接收音视频流。
开始检测后,SDK 会录制你声音或视频。如果你在设置的延时范围内收到了回放,则视为音视频回路测试正常。

传入参数

参数名 类型 说明
echo_test_config EchoTestConfig 回路测试参数设置,参看 EchoTestConfig。
play_delay_time unsigned int 音视频延迟播放的时间间隔,用于指定在开始检测多长时间后期望收到回放。取值范围为 [2,10],单位为秒,默认为 2 秒。

返回值 方法调用结果:

注意

stopEchoTest

virtual int bytertc::IRtcEngine::stopEchoTest()

停止音视频回路测试。
调用 startEchoTest 开启音视频回路检测后,你必须调用该方法停止检测。

返回值 方法调用结果:

注意 音视频回路检测结束后,所有对系统设备及音视频流的控制均会恢复到开始检测前的状态。

startCloudProxy

virtual void bytertc::IRtcEngine::startCloudProxy(
    const CloudProxyConfiguration& configuration)

开启云代理

传入参数

参数名 类型 说明
configuration const CloudProxyConfiguration& 云代理服务器信息列表。参看 CloudProxyConfiguration。

注意

stopCloudProxy

virtual void bytertc::IRtcEngine::stopCloudProxy()

关闭云代理

注意 要开启云代理,调用 startCloudProxy。

IRangeAudio

class bytertc::IRangeAudio

范围语音接口实例

Defined in : bytertc_range_audio_interface.h

成员函数

返回 名称
virtual void enableRangeAudio
virtual int updateReceiveRange
virtual int updatePosition
virtual void registerRangeAudioObserver
virtual int setAttenuationModel

函数说明

enableRangeAudio

virtual void bytertc::IRangeAudio::enableRangeAudio(
    bool enable)

开启/关闭范围语音功能。
范围语音是指,在同一 RTC 房间中设定的音频接收距离范围内,本地用户收听到的远端用户音频音量会随着远端用户的靠近/远离而放大/衰减;若远端用户在房间内的位置超出设定范围,则本地用户无法接收其音频。音频接收范围设置参看 updateReceiveRange。

传入参数

参数名 类型 说明
enable bool 是否开启范围语音功能:
• true: 开启
• false: 关闭(默认)

注意 该方法进房前后都可调用,为保证进房后范围语音效果的平滑切换,你需在该方法前先调用 updatePosition 设置自身位置坐标,然后开启该方法收听范围语音效果。

updateReceiveRange

virtual int bytertc::IRangeAudio::updateReceiveRange(
    const ReceiveRange &range)

更新本地用户的音频收听范围。

传入参数

参数名 类型 说明
range const ReceiveRange & 音频收听范围,参看 ReceiveRange。

返回值 方法调用结果:

注意 若此前你已调用 registerRangeAudioObserver 注册了范围语音衰减系数监测器,房间内有任何用户调用该接口更新音频收听范围后,你都会收到 onRangeAudioInfo 回调。

updatePosition

virtual int bytertc::IRangeAudio::updatePosition(
    const Position &pos)

更新本地用户在房间内空间直角坐标系中的位置坐标。

传入参数

参数名 类型 说明
pos const Position & 三维坐标的值,默认为 [0, 0, 0],参看 Position。

返回值 方法调用结果:

注意

registerRangeAudioObserver

virtual void bytertc::IRangeAudio::registerRangeAudioObserver(
    IRangeAudioObserver* observer)

设置范围语音衰减系数监测器。

传入参数

参数名 类型 说明
observer IRangeAudioObserver* 范围语音衰减系数监测器。
设置后,SDK 会在监测到房间内有用户更新自身位置坐标或音频收听范围后,触发 onRangeAudioInfo 回调。具体参看 IRangeAudioObserver。

注意 该方法仅适用于手动订阅模式,自动订阅无需设置。

setAttenuationModel

virtual int bytertc::IRangeAudio::setAttenuationModel(
    AttenuationType type,
    float coefficient)

设置范围语音的音量衰减模式。
衰减模式更改后,onRangeAudioInfo 回调将根据最后设置的衰减模式进行计算并返回音量衰减数值

传入参数

参数名 类型 说明
type AttenuationType 音量衰减模式。默认为线性衰减。详见 AttenuationType。
coefficient float 指数衰减模式下的音量衰减系数,默认值为 1。范围 [0.1,100],推荐设置为 50。数值越大,音量的衰减速度越快。

返回值 调用是否成功

注意 音量衰减范围通过 updateReceiveRange 进行设置。

ISpatialAudio

class bytertc::ISpatialAudio

空间音频接口实例

Defined in : bytertc_spatial_audio_interface.h

成员函数

返回 名称
virtual void enableSpatialAudio
virtual int updatePosition
virtual int updateSelfOrientation
virtual void disableRemoteOrientation

函数说明

enableSpatialAudio

virtual void bytertc::ISpatialAudio::enableSpatialAudio(
    bool enable)

开启/关闭空间音频功能。

传入参数

参数名 类型 说明
enable bool 是否开启空间音频功能:
• true:开启
• false:关闭(默认)

注意 该方法仅开启空间音频功能,你须调用 updatePosition 设置自身位置坐标后方可收听空间音频效果。空间音频相关 API 和调用时序详见空间音频。

updatePosition

virtual int bytertc::ISpatialAudio::updatePosition(
    const Position& pos)

更新本地用户在房间内空间直角坐标系中的位置坐标。

传入参数

参数名 类型 说明
pos const Position& 三维坐标的值,默认为 [0, 0, 0]。参看 Position

返回值

注意 调用该接口更新坐标前,你需调用 enableSpatialAudio 开启空间音频功能。空间音频相关 API 和调用时序详见空间音频。

updateSelfOrientation

virtual int bytertc::ISpatialAudio::updateSelfOrientation(
    const HumanOrientation& orientation)

更新本地用户在空间音频坐标系下的朝向。

传入参数

参数名 类型 说明
orientation const HumanOrientation& 自身朝向信息,参看 HumanOrientation。

返回值 方法调用结果:

注意

disableRemoteOrientation

virtual void bytertc::ISpatialAudio::disableRemoteOrientation()

参与通话的各端调用本接口后,将忽略远端用户的朝向,认为所有远端用户都面向本地用户。
如果此后调用 updateSelfOrientation 更新本地用户朝向,远端用户无法感知这些变化,但本地用户接收音频时可以感知自身朝向改变带来的音频效果变化。

注意

IVideoEffect

class bytertc::IVideoEffect

视频特效接口

Defined in : bytertc_video_effect_interface.h

成员函数

返回 名称
virtual int checkLicense
virtual int getAuthMessage
virtual int freeAuthMessage
virtual int enableEffect
virtual void setAlgoModelPath
virtual int setEffectNodes
virtual int updateNode
virtual int setColorFilter
virtual int setColorFilterIntensity
virtual int initVirtualBackground
virtual int enableVirtualBackground
virtual int disableVirtualBackground
virtual int registerFaceDetectionObserver

函数说明

checkLicense

virtual int bytertc::IVideoEffect::checkLicense(
    void* androidContext,
    void* jnienv,
    const char* licensePath)

视频特效许可证检查

传入参数

参数名 类型 说明
androidContext void* Android Context 对象指针(jobject 类型)。Android 以外平台传入 nullptr
jnienv void* Android
JNIEnv 指针。Android 以外平台传入 nullptr
licensePath const char* 许可证文件绝对路径

返回值

注意 开始使用视频特效前,你必须先调用这个方法进行许可证验证

getAuthMessage

virtual int bytertc::IVideoEffect::getAuthMessage(
    char ** ppmsg,
    int * len)

从特效 SDK 获取授权消息,用于获取在线许可证。

传入参数

参数名 类型 说明
ppmsg char** 授权消息字符串地址
len int* 授权消息字符串的长度

返回值

注意

freeAuthMessage

virtual int bytertc::IVideoEffect::freeAuthMessage(
    char * pmsg)

使用完授权消息字符串后,释放内存。

传入参数

参数名 类型 说明
pmsg char* getAuthMessage 返回的授权消息字符串。

返回值

enableEffect

virtual int bytertc::IVideoEffect::enableEffect(
    bool enabled)

开启关闭视频特效

传入参数

参数名 类型 说明
enabled bool 是否开启特效,true: 开启,false: 关闭

返回值

注意 在调用CheckLicensecheckLicense和SetAlgoModelPathsetAlgoModelPath后调用此方法

setAlgoModelPath

virtual void bytertc::IVideoEffect::setAlgoModelPath(
    const char* modelPath)

设置视频特效算法模型路径

传入参数

参数名 类型 说明
modelPath const char* 模型路径

setEffectNodes

virtual int bytertc::IVideoEffect::setEffectNodes(
    const char** effectNodePaths,
    int nodeNum)

设置视频特效素材包

传入参数

参数名 类型 说明
effectNodePaths const char** 特效素材包路径数组
要取消当前视频特效,将此参数设置为 null。
nodeNum int 特效素材包个数

返回值

updateNode

virtual int bytertc::IVideoEffect::updateNode(
    const char* nodePath,
    const char* nodeKey,
    float nodeValue)

设置特效强度

传入参数

参数名 类型 说明
nodePath const char* 特效素材包路径
nodeKey const char* 需要设置的素材 key 名称,取值请参考 素材 key 对应说明。
nodeValue float 需要设置的强度值 取值范围 [0,1],超出范围时设置无效。

返回值

setColorFilter

virtual int bytertc::IVideoEffect::setColorFilter(
    const char* resPath)

设置颜色滤镜

传入参数

参数名 类型 说明
resPath const char* 滤镜资源包绝对路径。

返回值

setColorFilterIntensity

virtual int bytertc::IVideoEffect::setColorFilterIntensity(
    float intensity)

设置已启用颜色滤镜的强度

传入参数

参数名 类型 说明
intensity float 滤镜强度。取值范围 [0,1],超出范围时设置无效。

返回值

initVirtualBackground

virtual int bytertc::IVideoEffect::initVirtualBackground(
    void* androidContext,
    void* jnienv,
    const char* licensePath,
    const char* modelPath)

虚拟背景功能初始化。

传入参数

参数名 类型 说明
androidContext void* Android Context 对象指针(jobject 类型)。非 Android 平台传入 nullptr 即可。
jnienv void* Android JNIEnv 指针。非 Android 平台传入 nullptr 即可。
licensePath const char* CV 许可证文件的绝对路径
modelPath const char* 模型参数文件的绝对路径

返回值

enableVirtualBackground

virtual int bytertc::IVideoEffect::enableVirtualBackground(
    const VirtualBackgroundSource& source)

开启虚拟背景。

传入参数

参数名 类型 说明
source const VirtualBackgroundSource& 虚拟背景对象,详见 VirtualBackgroundSource 。

返回值

注意

disableVirtualBackground

virtual int bytertc::IVideoEffect::disableVirtualBackground()

关闭虚拟背景。

返回值

注意 调用 enableVirtualBackground 开启虚拟背景后,可以调用此接口关闭虚拟背景。

registerFaceDetectionObserver

virtual int bytertc::IVideoEffect::registerFaceDetectionObserver(
    IFaceDetectionObserver * observer,
    int interval_ms)

注册人脸检测结果回调观察者
注册此观察者后,你会周期性收到 onFaceDetectResult 回调。

传入参数

参数名 类型 说明
observer IFaceDetectionObserver* 人脸检测结果回调观察者,参看 IFaceDetectionObserver。
interval_ms int 时间间隔。单位:ms。实际收到回调的时间间隔大于 interval,小于 interval • 视频采集帧间隔。

返回值

IScreenCaptureSourceList

class bytertc::IScreenCaptureSourceList

屏幕共享对象信息列表 共享对象相关数据将在调用 release 后被释放。

Defined in : bytertc_video_defines.h

成员函数

返回 名称
virtual int32_t getCount
virtual ScreenCaptureSourceInfo getSourceInfo
virtual void release

函数说明

getCount

virtual int32_t bytertc::IScreenCaptureSourceList::getCount()

获取列表长度

返回值 可共享对象数量

getSourceInfo

virtual ScreenCaptureSourceInfo bytertc::IScreenCaptureSourceList::getSourceInfo(
    int32_t index)

根据索引号,获取屏幕共享列表中的元素

传入参数

参数名 类型 说明
index int32_t 列表索引号

返回值 屏幕源类型信息,详见 ScreenCaptureSourceInfo。

release

virtual void bytertc::IScreenCaptureSourceList::release()

IScreenCaptureSourceList 使用结束后,调用本接口删除对象,清空和释放内存。

IVideoDeviceCollection

class bytertc::IVideoDeviceCollection

视频设备相关的信息

Defined in : bytertc_video_device_manager.h

成员函数

返回 名称
virtual int getCount
virtual int getDevice
virtual void release
virtual int getDevice

函数说明

getCount

virtual int bytertc::IVideoDeviceCollection::getCount() override

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

返回值 视频设备数量

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

返回值

release

virtual void bytertc::IVideoDeviceCollection::release()override

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

注意 不需要返回视频设备相关信息列表时应该调用本方法释放相关资源。

getDevice

virtual int bytertc::IVideoDeviceCollection::getDevice(
    int index,
    VideoDeviceInfo* video_device_info)

根据索引号,获取设备信息

传入参数

参数名 类型 说明
index int 设备索引号,从 0 开始,注意需小于 getCount 返回值。
video_device_info VideoDeviceInfo* 设备信息

返回值

IVideoDeviceManager

class bytertc::IVideoDeviceManager

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

Defined in : bytertc_video_device_manager.h

成员函数

返回 名称
virtual IVideoDeviceCollection* enumerateVideoCaptureDevices
virtual int setVideoCaptureDevice
virtual int getVideoCaptureDevice

函数说明

enumerateVideoCaptureDevices

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

获取当前系统内视频采集设备列表。

返回值 包含系统中所有视频采集设备的列表,参看 IVideoDeviceCollection。

setVideoCaptureDevice

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

设置当前视频采集设备

传入参数

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

返回值

getVideoCaptureDevice

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

获取当前 SDK 正在使用的视频采集设备信息

传入参数

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

返回值

IVideoProcessor

class bytertc::IVideoProcessor

Defined in : bytertc_video_processor_interface.h

成员函数

返回 名称
virtual IVideoFrame* processVideoFrame

函数说明

processVideoFrame

virtual IVideoFrame* bytertc::IVideoProcessor::processVideoFrame(
    IVideoFrame* src_frame)

获取 RTC SDK 采集得到的视频帧,根据 registerLocalVideoProcessor 设置的视频前处理器,进行视频前处理,最终将处理后的视频帧给到 RTC SDK 用于编码传输。

传入参数

参数名 类型 说明
src_frame IVideoFrame* RTC SDK 采集得到的视频帧,参看 IVideoFrame。

返回值 经过视频前处理后的视频帧,返回给 RTC SDK 供编码和传输,参看 IVideoFrame。

注意

IRTCRoom

class bytertc::IRTCRoom

房间接口

Defined in : bytertc_room.h

成员函数

返回 名称
virtual void destroy
virtual void setUserVisibility
virtual void setRTCRoomEventHandler
virtual int joinRoom
virtual void leaveRoom
virtual void updateToken
virtual int64_t sendUserMessage
virtual int64_t sendUserBinaryMessage
virtual int64_t sendRoomMessage
virtual int64_t sendRoomBinaryMessage
virtual void publishStream
virtual void unpublishStream
virtual void publishScreen
virtual void unpublishScreen
virtual void setRemoteVideoConfig
virtual void subscribeStream
virtual void unsubscribeStream
virtual void subscribeScreen
virtual void unsubscribeScreen
virtual void pauseAllSubscribedStream
virtual void resumeAllSubscribedStream
virtual void setMultiDeviceAVSync
virtual int startForwardStreamToRooms
virtual int updateForwardStreamToRooms
virtual void stopForwardStreamToRooms
virtual void pauseForwardStreamToAllRooms
virtual void resumeForwardStreamToAllRooms
virtual IRangeAudio* getRangeAudio
virtual ISpatialAudio* getSpatialAudio

函数说明

destroy

virtual void bytertc::IRTCRoom::destroy()

退出并销毁调用 createRTCRoom 所创建的房间。

setUserVisibility

virtual void bytertc::IRTCRoom::setUserVisibility(
    bool enable)

设置用户可见性。默认可见。

传入参数

参数名 类型 说明
enable bool 设置用户是否对房间内其他用户可见:
• true: 可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。
• false: 不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。

返回值

注意

setRTCRoomEventHandler

virtual void bytertc::IRTCRoom::setRTCRoomEventHandler(
    IRTCRoomEventHandler* room_event_handler)

通过设置 IRTCRoom 对象的事件句柄,监听此对象对应的回调事件。

传入参数

参数名 类型 说明
room_event_handler IRTCRoomEventHandler* 参见 IRTCRoomEventHandler

joinRoom

virtual int bytertc::IRTCRoom::joinRoom(
    const char* token,
    const UserInfo& user_info,
    const RTCRoomConfig& config)

创建/加入房间:房间不存在时即创建房间;房间存在时,未加入房间的用户可加入这个房间。
同一房间内的用户间可以相互通话。
进房后重复调用无效,用户必须调用 leaveRoom 退出当前房间后,才能加入下一个房间。

传入参数

参数名 类型 说明
token const char* 动态密钥,用于对登录用户进行鉴权验证。
进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在您的服务端生成并下发 Token。
• 使用不同 App ID 的 App 是不能互通的。
• 请务必保证生成 Token 使用的 App ID 和创建引擎时使用的 App ID 相同,否则会导致加入房间失败。
room_id const RTCRoomConfig& config 加入的房间 ID。
房间 ID 为长度在 128 字节以内的非空字符串,支持以下字符集范围:
1. 26 个大写字母 A ~ Z 。
2. 26 个小写字母 a ~ z 。
3. 10 个数字 0 ~ 9 。
4. 下划线 "_",at 符 "@",减号 "-"。
user_info const UserInfo& 用户信息,参看 UserInfo。
room_config const RTCRoomConfig& config 房间参数配置,设置房间模式以及是否自动发布或订阅流。具体配置模式参看 RTCRoomConfig。

返回值

注意

leaveRoom

virtual void bytertc::IRTCRoom::leaveRoom()

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

注意

updateToken

virtual void bytertc::IRTCRoom::updateToken(
    const char* token)

更新 Token。
用于加入房间的 Token 有一定的有效期。在 Token 过期前 30 秒,会收到 onTokenWillExpire 回调,此时需要重新获取 Token,并调用此方法更新 Token,否则用户将因为 Token 过期被移出房间。
调用 joinRoom 方法加入房间或断网重连进入房间时,如果 Token 过期或无效,将导致加入房间失败,并会收到 onRoomStateChanged 回调通知,回调错误码为 ErrorCode 中的 ERROR_CODE_INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。 更新 Token 后,SDK 会自动加入房间。

传入参数

参数名 类型 说明
token const char* 有效的 Token。
如果传入的 Token 无效,回调错误码为 ErrorCode 中的 ERROR_CODE_UPDATE_TOKEN_WITH_INVALID_TOKEN。

返回值 方法调用结果。

注意 当 Token 过期时,用户将被移出房间并将收到 onStreamStateChanged 回调, ERROR_CODE_EXPIRED_TOKEN,此时需要重新获取 Token,并调用 joinRoom 重新加入房间。

sendUserMessage

virtual int64_t bytertc::IRTCRoom::sendUserMessage(
    const char* uid,
    const char* message,
    MessageConfig config)

给房间内指定的用户发送文本消息(P2P)

传入参数

参数名 类型 说明
uid const char* 消息接收用户的 ID
message const char* 发送的文本消息内容。
消息不超过 64 KB。
config MessageConfig 消息类型,参看 MessageConfig。

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

注意

sendUserBinaryMessage

virtual int64_t bytertc::IRTCRoom::sendUserBinaryMessage(
    const char* uid,
    int length,
    const uint8_t* message,
    MessageConfig config)

给房间内指定的用户发送二进制消息(P2P)

传入参数

参数名 类型 说明
uid const char* 消息接收用户的 ID
length int 二进制字符串的长度。
message const uint8_t* 二进制消息的内容。
消息不超过 46KB。
config MessageConfig 消息类型,参看 MessageConfig。

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

注意

sendRoomMessage

virtual int64_t bytertc::IRTCRoom::sendRoomMessage(
    const char* message)

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

传入参数

参数名 类型 说明
message const char* 用户发送的广播消息
消息不超过 64 KB。

注意

sendRoomBinaryMessage

virtual int64_t bytertc::IRTCRoom::sendRoomBinaryMessage(
    int size,
    const uint8_t* message)

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

传入参数

参数名 类型 说明
size int 发送的二进制消息长度
message const uint8_t* 用户发送的二进制广播消息
消息不超过 46KB。

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

注意

publishStream

virtual void bytertc::IRTCRoom::publishStream(
    MediaStreamType type)

在当前所在房间内发布本地通过摄像头/麦克风采集的媒体流

传入参数

参数名 类型 说明
type MediaStreamType 媒体流类型,用于指定发布音频/视频,参看 MediaStreamType

注意

unpublishStream

virtual void bytertc::IRTCRoom::unpublishStream(
    MediaStreamType type)

停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中

传入参数

参数名 类型 说明
type MediaStreamType 媒体流类型,用于指定停止发布音频/视频,参看 MediaStreamType

注意

publishScreen

virtual void bytertc::IRTCRoom::publishScreen(
    MediaStreamType type)

在当前所在房间内发布本地屏幕共享音视频流

传入参数

参数名 类型 说明
type MediaStreamType 媒体流类型,用于指定发布屏幕音频/视频,参看 MediaStreamType。

注意

unpublishScreen

virtual void bytertc::IRTCRoom::unpublishScreen(
    MediaStreamType type)

停止将本地屏幕共享音视频流发布到当前所在房间中

传入参数

参数名 类型 说明
type MediaStreamType 媒体流类型,用于指定停止发布屏幕音频/视频,参看 MediaStreamType

注意

setRemoteVideoConfig

virtual void bytertc::IRTCRoom::setRemoteVideoConfig(
    const char *user_id,
    const RemoteVideoConfig &remote_video_config)

设置期望订阅的远端视频流的参数。

传入参数

参数名 类型 说明
user_id const char* 期望订阅的远端视频流发布用户的 ID。
remote_video_config const RemoteVideoConfig & 期望订阅的远端视频流参数,参看 RemoteVideoConfig。

注意

subscribeStream

virtual void bytertc::IRTCRoom::subscribeStream(
    const char *user_id,
    MediaStreamType type)

订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名 类型 说明
user_id const char* 指定订阅的远端发布音视频流的用户 ID。
type MediaStreamType 媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。

注意

unsubscribeStream

virtual void bytertc::IRTCRoom::unsubscribeStream(
    const char *user_id,
    MediaStreamType type)

取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名 类型 说明
user_id const char* 指定取消订阅的远端发布音视频流的用户 ID。
type MediaStreamType 媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。

注意

subscribeScreen

virtual void bytertc::IRTCRoom::subscribeScreen(
    const char *user_id,
    MediaStreamType type)

订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名 类型 说明
user_id const char* 指定订阅的远端发布屏幕流的用户 ID。
type MediaStreamType 媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。

注意

unsubscribeScreen

virtual void bytertc::IRTCRoom::unsubscribeScreen(
    const char *user_id,
    MediaStreamType type)

取消订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。

传入参数

参数名 类型 说明
user_id const char* 指定取消订阅的远端发布屏幕流的用户 ID。
type MediaStreamType 媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。

注意

pauseAllSubscribedStream

virtual void bytertc::IRTCRoom::pauseAllSubscribedStream(
    PauseResumeControlMediaType media_type)

暂停接收来自远端的媒体流。

传入参数

参数名 类型 说明
media_type PauseResumeControlMediaType 媒体流类型,指定需要暂停接收音频还是视频流,参看 PauseResumeControlMediaType。

注意

resumeAllSubscribedStream

virtual void bytertc::IRTCRoom::resumeAllSubscribedStream(
    PauseResumeControlMediaType media_type)

恢复接收来自远端的媒体流

传入参数

参数名 类型 说明
media_type PauseResumeControlMediaType 媒体流类型,指定需要暂停接收音频还是视频流,参看 PauseResumeControlMediaType

注意

setMultiDeviceAVSync

virtual void bytertc::IRTCRoom::setMultiDeviceAVSync(
    const char* audio_user_id)

设置发流端音画同步。
当同一用户同时使用两个通话设备分别采集发送音频和视频时,有可能会因两个设备所处的网络环境不一致而导致发布的流不同步,此时你可以在视频发送端调用该接口,SDK 会根据音频流的时间戳自动校准视频流,以保证接收端听到音频和看到视频在时间上的同步性。

传入参数

参数名 类型 说明
audio_user_id const char* 音频发送端的用户 ID,将该参数设为空则可解除当前音视频的同步关系。

注意

startForwardStreamToRooms

virtual int bytertc::IRTCRoom::startForwardStreamToRooms(
    const ForwardStreamConfiguration& configuration)

开始跨房间转发媒体流。 在用户进入房间后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。

传入参数

参数名 类型 说明
configuration const ForwardStreamConfiguration& 跨房间媒体流转发指定房间的信息。参看 ForwardStreamConfiguration。

返回值

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

注意

updateForwardStreamToRooms

virtual int bytertc::IRTCRoom::updateForwardStreamToRooms(
    const ForwardStreamConfiguration& configuration)

更新跨房间媒体流转发信息。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。 调用本方法增加或删减房间后,将在本端触发 onForwardStreamStateChanged 回调,包含发生了变动的目标房间中媒体流转发状态。

传入参数

参数名 类型 说明
configuration const ForwardStreamConfiguration& 跨房间媒体流转发目标房间信息。参看 ForwardStreamConfiguration。

返回值

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

注意

stopForwardStreamToRooms

virtual void bytertc::IRTCRoom::stopForwardStreamToRooms()

停止跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法停止向所有目标房间转发媒体流。

注意

pauseForwardStreamToAllRooms

virtual void bytertc::IRTCRoom::pauseForwardStreamToAllRooms()

暂停跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法暂停向所有目标房间转发媒体流。 调用本方法暂停向所有目标房间转发后,你可以随时调用 resumeForwardStreamToAllRooms 快速恢复转发。

注意 调用本方法后,目标房间中的用户将接收到本地用户停止发布 onUserUnpublishStream/onUserUnpublishScreen 和退房 onUserLeave 的回调。

resumeForwardStreamToAllRooms

virtual void bytertc::IRTCRoom::resumeForwardStreamToAllRooms()

恢复跨房间媒体流转发。 调用 pauseForwardStreamToAllRooms 暂停转发之后,调用本方法恢复向所有目标房间转发媒体流。

注意 目标房间中的用户将接收到本地用户进房 onUserJoined 和发布 onUserPublishStream/onUserPublishScreen 的回调。

getRangeAudio

virtual IRangeAudio* bytertc::IRTCRoom::getRangeAudio()

获取范围语音接口实例。

返回值 方法调用结果:

注意 首次调用该方法须在创建房间后、加入房间前。

getSpatialAudio

virtual ISpatialAudio* bytertc::IRTCRoom::getSpatialAudio()

获取空间音频接口实例。

返回值 方法调用结果:

注意

IStreamingRTCEngine

class streamingrtc::IStreamingRTCEngine

串流引擎具有高码率,低延迟的特点,特别适合游戏串流等点对点传输的业务场景。 如果你需要使用串流引擎的能力,请联系售前或技术支持,获取包含串流引擎的 SDK 包。

Defined in : streaming_rtc_engine_interface.h

成员函数

返回 名称
virtual int Startup
virtual int Shutdown
virtual int64_t SendP2PMessage
virtual int64_t SendP2PBinaryMessage
virtual bool PullAudioFrame
virtual bool PushAudioFrame
virtual int SetVideoEncoderConfig
virtual void SetVideoDecoderConfig
virtual void SetVideoSourceType
virtual bool PushVideoFrame
virtual bool PushEncodedVideoFrame
virtual void RequestRemoteVideoKeyFrame
virtual void SetReportExtraInfo

函数说明

Startup

virtual int streamingrtc::IStreamingRTCEngine::Startup()

启动串流引擎
通过 EngineConfig 设置引擎类型服务端或客户端和端口号范围

返回值

注意 如果连接过程中断开了连接,客户端会继续不断尝试连接连接。

Shutdown

virtual int streamingrtc::IStreamingRTCEngine::Shutdown()

关闭串流引擎

返回值

SendP2PMessage

virtual int64_t streamingrtc::IStreamingRTCEngine::SendP2PMessage(
    const char* message,
    bool reliable)

发送点对点文本消息

传入参数

参数名 类型 说明
message const char* 消息文本,最大 62 KB
不可靠消息最大 1 KB
reliable bool true:如果对端存在,保证消息可靠到达对端
false:消息可能会丢失,但是速度上更快一些

返回值

SendP2PBinaryMessage

virtual int64_t streamingrtc::IStreamingRTCEngine::SendP2PBinaryMessage(
    const uint8_t* message,
    int length,
    bool reliable)

发送点对点二进制消息

传入参数

参数名 类型 说明
message const uint8_t* 消息文本
length int 消息长度,最大 62 KB。不可靠消息最大 1 KB
reliable bool true:如果对端存在,保证消息可靠到达对端
false:消息可能会丢失,但是速度上更快一些

返回值

PullAudioFrame

virtual bool streamingrtc::IStreamingRTCEngine::PullAudioFrame(
    bytertc::IAudioFrame* audio_frame)

拉取音频数据

传入参数

参数名 类型 说明
audio_frame bytertc::IAudioFrame* 接收到的音频帧,参看 IAudioFrame
关于推送音频帧,参看 PushAudioFrame

返回值

PushAudioFrame

virtual bool streamingrtc::IStreamingRTCEngine::PushAudioFrame(
    bytertc::IAudioFrame* audio_frame)

推送自定义音频数据

传入参数

参数名 类型 说明
audio_frame bytertc::IAudioFrame* 发送的音频帧,参看 IAudioFrame
创建音频帧,参看 AudioFrameBuilder 和 buildAudioFrame。
关于接收音频帧,参看 PullAudioFrame

返回值

注意 推送音频帧必须设置时间戳 AudioFrameBuilder.timestamp_us

SetVideoEncoderConfig

virtual int streamingrtc::IStreamingRTCEngine::SetVideoEncoderConfig(
    streamingrtc::StreamIndex stream_index,
    const VideoSolution* solutions,
    int solution_num)

设置推送多路流时的各路视频参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。

传入参数

参数名 类型 说明
stream_index streamingrtc::StreamIndex 视频流标识,参看 StreamIndex。
solutions const VideoSolution* 要推送的多路视频流参数,参看 VideoSolution。
最大分辨率为 4096 px × 4096 px,超过或设置的分辨率无法编码时,会导致编码推流失败。
solution_num int 视频参数数组长度。
最多支持 4 路参数。当设置了多路参数时,分辨率必须是从大到小排列。

返回值

SetVideoDecoderConfig

virtual void streamingrtc::IStreamingRTCEngine::SetVideoDecoderConfig(
    streamingrtc::StreamIndex stream_index,
    VideoDecoderConfig config)

设置远端视频数据解码方式。
需要在 Startup 之前调用本接口。

传入参数

参数名 类型 说明
stream_index streamingrtc::StreamIndex 远端流信息,即对哪一路视频流进行解码方式设置,参看 StreamIndex。
config VideoDecoderConfig 视频解码方式,参看 VideoDecoderConfig。

注意 当你想要对远端流进行自定义解码时,调用该接口将解码方式设置为自定义解码。监测到的视频数据会通过 OnP2PRemoteEncodedVideoFrame 和/或 OnP2PRemoteVideoFrame 回调出来。

SetVideoSourceType

virtual void streamingrtc::IStreamingRTCEngine::SetVideoSourceType(
    streamingrtc::StreamIndex stream_index,
    VideoSourceType type)

设置输入到串流引擎的视频源
默认使用内部采集。内部采集指:使用 SDK 内置的视频采集机制进行视频采集。

传入参数

参数名 类型 说明
stream_index streamingrtc::StreamIndex 视频流的属性,参看 StreamIndex
type VideoSourceType 视频输入源类型。参看 VideoSourceType,暂不支持内部编码模式 VideoSourceTypeInternal。

注意 该方法启动引擎前后均可调用。

PushVideoFrame

virtual bool streamingrtc::IStreamingRTCEngine::PushVideoFrame(
    streamingrtc::StreamIndex stream_index,
    IVideoFrame* frame)

发送外部源视频数据

传入参数

参数名 类型 说明
stream_index streamingrtc::StreamIndex 选择作为哪一路流发送视频帧 参看 StreamIndex
frame IVideoFrame* 设置视频帧,暂时只支持 YUV420P 格式的视频帧。参看 IVideoFrame。

返回值

注意

PushEncodedVideoFrame

virtual bool streamingrtc::IStreamingRTCEngine::PushEncodedVideoFrame(
    streamingrtc::StreamIndex stream_index,
    int video_index,
    IEncodedVideoFrame* video_stream)

推送自定义编码后的视频流

传入参数

参数名 类型 说明
stream_index streamingrtc::StreamIndex 需要推送的编码流的属性,参看 StreamIndex。
video_index int 启用多分辨率编码时的流标识,从 0 开始。如果调用 SetVideoEncoderConfig 设置了多路流,此处数量须与之保持一致。
video_stream IEncodedVideoFrame* 编码流视频帧信息,仅支持推送 H264 和 ByteVC1 格式的视频帧。参看 IEncodedVideoFrame。

返回值

注意

RequestRemoteVideoKeyFrame

virtual void streamingrtc::IStreamingRTCEngine::RequestRemoteVideoKeyFrame(
    streamingrtc::StreamIndex stream_index)

在订阅远端视频流之后,向远端请求关键帧

传入参数

参数名 类型 说明
stream_index streamingrtc::StreamIndex 选择哪一路流请求视频关键帧 参看 StreamIndex。

注意

SetReportExtraInfo

virtual void streamingrtc::IStreamingRTCEngine::SetReportExtraInfo(
    const char* extra_info)

设置上报的 trace 的 extra_info