| 返回 | 名称 |
|---|---|
| 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 |
| BYTERTC_API void | destroyRTCVideo |
| BYTERTC_API const char* | getErrorDescription |
| BYTERTC_API const char* | getSDKVersion |
BYTERTC_API IVideoFrame* bytertc::buildVideoFrame(
const VideoFrameBuilder& builder)
创建 IVideoFrame
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| builder | const VideoFrameBuilder& | 视频帧构建实例,参看 VideoFrameBuilder |
BYTERTC_API bool bytertc::pushExternalVideoFrame(
IRtcEngine* engine,
const IVideoFrame* frame)
发送外部源视频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | IRtcEngine* | 要设置的引擎,详见 IRtcEngine |
| frame | const IVideoFrame* | 输入视频帧,详见 IVideoFrame |
注意 1.支持 YUV420P,NV12,D3D texture,Cuda 内存,OpenGL texture等格式的视频帧。 2.该函数运行在用户调用线程内
BYTERTC_API IAudioFrame* bytertc::buildAudioFrame(
const AudioFrameBuilder& builder)
创建 IAudioFrame
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| builder | const AudioFrameBuilder& | 音频帧构建实例,参看 AudioFrameBuilder |
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 字符串格式。 |
返回值
注意
BYTERTC_API void bytertc::destroyRtcEngine(
bytertc::IRtcEngine* engine)
销毁由 createRtcEngine 创建的 RTCEngine 实例,并释放所有相关资源。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | bytertc::IRtcEngine* | createRtcEngine 时,返回的实例。 |
注意
BYTERTC_API const char* bytertc::getErrorDescription(
int code)
获取错误码的描述
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | int | 需要获取描述的错误码 |
返回值 错误码的描述
注意 该接口是通用功能,调用时不需要依赖引擎对象。
BYTERTC_API const char* bytertc::getSDKVersion();
获取当前 SDK 版本信息。
返回值 当前 SDK 版本信息。
BYTERTC_API void bytertc::destroyRTCVideo();
销毁由 createRtcEngine 创建的 RTCEngine 实例,并释放所有相关资源。
注意
BYTERTC_API const char* bytertc::getErrorDescription(
int code)
获取错误码的描述
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | int | 需要获取描述的错误码 |
返回值 错误码的描述
注意 该接口是通用功能,调用时不需要依赖引擎对象。
BYTERTC_API const char* bytertc::getSDKVersion();
获取当前 SDK 版本信息。
返回值 当前 SDK 版本信息。
class bytertc::IDeviceCollection
音视频设备相关的信息
Defined in : bytertc_audio_device_manager.h
| 返回 | 名称 |
|---|---|
| virtual int | getCount |
| virtual int | getDevice |
| virtual void | release |
virtual int bytertc::IDeviceCollection::getCount()
获取当前系统内音视频设备数量
返回值 音视频设备数量
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 |
返回值
virtual void bytertc::IDeviceCollection::release()
释放当前 IAudioDeviceCollection 对象占用的资源。
注意 不需要返回音视频设备相关信息列表时应该调用本方法释放相关资源。
class bytertc::IAudioDeviceCollection
音频设备相关的信息
Defined in : bytertc_audio_device_manager.h
| 返回 | 名称 |
|---|---|
| virtual int | getCount |
| virtual int | getDevice |
| virtual void | release |
| virtual int | getDevice |
virtual int bytertc::IAudioDeviceCollection::getCount() override
获取当前系统内音频设备数量
返回值 音频设备数量
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 |
返回值
virtual void bytertc::IAudioDeviceCollection::release()override
释放当前 IAudioDeviceCollection 对象占用的资源。
注意 不需要返回音频设备相关信息列表时应该调用本方法释放相关资源。
virtual int bytertc::IAudioDeviceCollection::getDevice(
int index,
AudioDeviceInfo* audio_device_info)
根据索引号,获取设备信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | int | 设备索引号,从 0 开始,注意需小于 getCount 返回值。 |
| audio_device_info | AudioDeviceInfo* | 设备信息 |
返回值
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 |
virtual IAudioDeviceCollection* bytertc::IAudioDeviceManager::enumerateAudioPlaybackDevices()
获取当前系统内音频播放设备列表。如果后续设备有变更,你会收到 OnMediaDeviceStateChanged 回调通知,然后需要重新调用本接口以获得新的设备列表。
返回值 包含系统中所有音频播放设备的列表,参看 IAudioDeviceCollection。
virtual IAudioDeviceCollection* bytertc::IAudioDeviceManager::enumerateAudioCaptureDevices()
获取当前系统内音频采集设备列表。如果后续设备有变更,你需要重新调用本接口以获得新的设备列表。
返回值 一个包含系统中所有音频采集设备列表的对象,详见 IAudioDeviceCollection。
注意 当不再使用返回的对象时,你需要调用 release 进行释放。
virtual void bytertc::IAudioDeviceManager::followSystemPlaybackDevice(
bool followed)
设置音频播放路由是否跟随系统。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| followed | bool | • true: 跟随。此时,调用 setAudioPlaybackDevice 会失败。 • false: 不跟随系统。此时,可以调用 setAudioPlaybackDevice 进行设置。 |
virtual void bytertc::IAudioDeviceManager::followSystemCaptureDevice(
bool followed)
设置音频采集路由是否跟随系统。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| followed | bool | • true: 跟随。此时,调用 setAudioCaptureDevice 会失败。 • false: 不跟随系统。此时,可以调用 setAudioCaptureDevice 进行设置。 |
virtual int bytertc::IAudioDeviceManager::setAudioPlaybackDevice(
const char device_id[MAX_DEVICE_ID_LENGTH])
设置音频播放设备。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | const char | 音频播放设备 ID,可通过 enumerateAudioPlaybackDevices 获取。 |
返回值
注意 当你调用 followSystemPlaybackDevice 设置音频播放设备跟随系统后,将无法调用此接口设置音频播放设备。
virtual int bytertc::IAudioDeviceManager::setAudioCaptureDevice(
const char device_id[MAX_DEVICE_ID_LENGTH])
设置音频采集设备。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | const char | 音频采集设备 ID,可通过 enumerateAudioCaptureDevices 获取。 |
返回值 方法调用结果
注意 当你调用 followSystemCaptureDevice 设置音频采集设备跟随系统后,将无法调用此接口设置音频采集设备。
virtual int bytertc::IAudioDeviceManager::setAudioPlaybackDeviceVolume(
unsigned int volume)
设置当前音频播放设备音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | unsigned int | 音频播放设备音量,取值范围为 [0,255], 超出此范围设置无效。 • [0,25] 接近无声; • [25,75] 为低音量; • [76,204] 为中音量; • [205,255] 为高音量。 |
返回值 方法调用结果
virtual int bytertc::IAudioDeviceManager::getAudioPlaybackDeviceVolume(
unsigned int* volume)
获取当前音频播放设备音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | unsigned int* | 音频播放设备音量,范围应在 [0,255] 内。 • [0,25] 接近无声; • [25,75] 为低音量; • [76,204] 为中音量; • [205,255] 为高音量。 |
返回值 方法调用结果
virtual int bytertc::IAudioDeviceManager::setAudioCaptureDeviceVolume(
unsigned int volume)
设置当前音频采集设备音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | unsigned int | 音频采集设备音量,取值范围为 [0,255], 超出此范围设置无效。 • [0,25] 接近无声; • [25,75] 为低音量; • [76,204] 为中音量; • [205,255] 为高音量。 |
返回值 方法调用结果
virtual int bytertc::IAudioDeviceManager::getAudioCaptureDeviceVolume(
unsigned int* volume)
获取当前音频采集设备音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | unsigned int* | 音频采集设备音量,范围应在 [0,255] 内。 • [0,25] 接近无声; • [25,75] 为低音量; • [76,204] 为中音量; • [205,255] 为高音量。 |
返回值 方法调用结果
virtual int bytertc::IAudioDeviceManager::setAudioPlaybackDeviceMute(
bool mute)
设置当前音频播放设备静音状态,默认为非静音。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute | bool | • true:静音 • false:非静音 |
返回值 方法调用结果
virtual int bytertc::IAudioDeviceManager::getAudioPlaybackDeviceMute(
bool* mute)
获取当前音频播放设备是否静音的信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute | bool* | • true:静音 • false:非静音 |
返回值 方法调用结果
virtual int bytertc::IAudioDeviceManager::setAudioCaptureDeviceMute(
bool mute)
设置当前音频采集设备静音状态,默认为非静音。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute | bool | • true:静音 • false:非静音 |
返回值 方法调用结果
virtual int bytertc::IAudioDeviceManager::getAudioCaptureDeviceMute(
bool* mute)
获取当前音频采集设备是否静音的信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute | bool* | • true:静音 • false:非静音 |
返回值 方法调用结果
virtual int bytertc::IAudioDeviceManager::getAudioPlaybackDevice(
char device_id[MAX_DEVICE_ID_LENGTH])
获取当前音频播放设备 ID。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | char | 音频播放设备 ID |
返回值 方法调用结果
virtual int bytertc::IAudioDeviceManager::getAudioCaptureDevice(
char device_id[MAX_DEVICE_ID_LENGTH])
获取当前音频采集设备 ID。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | char | 音频采集设备 ID,使用方负责按 MAX_DEVICE_ID_LENGTH 大小,分配与释放内存 |
返回值 方法调用结果
virtual int bytertc::IAudioDeviceManager::initAudioPlaybackDeviceForTest(
const char deviceId[MAX_DEVICE_ID_LENGTH])
尝试初始化音频播放设备,可检测出设备不存在、权限被拒绝/禁用等异常问题。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| deviceId | const char | 设备索引号 |
返回值 设备状态错误码
注意 1. 该接口需在进房前调用; 2. 检测成功不代表设备一定可以启动成功,还可能因设备被其他应用进程独占,或 CPU/内存不足等原因导致启动失败。
virtual int bytertc::IAudioDeviceManager::initAudioCaptureDeviceForTest(
const char deviceId[MAX_DEVICE_ID_LENGTH])
尝试初始化音频采集设备,可检测设备不存在、权限被拒绝/禁用等异常问题。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| deviceId | const char | 设备索引 |
返回值 设备状态错误码
注意 1. 该接口需在进房前调用; 2. 检测成功不代表设备一定可以启动成功,还可能因设备被其他应用进程独占,或 CPU/内存不足等原因导致启动失败。
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 毫秒。 |
返回值 方法调用结果
注意
virtual int bytertc::IAudioDeviceManager::stopAudioPlaybackDeviceTest()
停止音频播放测试。
返回值 方法调用结果
注意 调用 startAudioPlaybackDeviceTest 后,调用本方法停止测试。
virtual int bytertc::IAudioDeviceManager::startAudioDeviceRecordTest(
int indication_interval)
开始音频采集设备和音频播放设备测试。
建议提前调用 enableAudioPropertiesReport 注册音量提示回调,测试开始后,音频设备开始采集本地声音,可以通过 onLocalAudioPropertiesReport 获取采集音量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| indication_interval | int | 测试录音播放时触发 onLocalAudioPropertiesReport 播放音量回调,本参数指定了该周期回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。最小不得少于 10 毫秒。 |
返回值 方法调用结果
注意
virtual int bytertc::IAudioDeviceManager::stopAudioDeviceRecordAndPlayTest()
停止采集本地音频,并开始播放采集到的声音。录音播放完毕后,设备测试流程结束。
调用 startAudioDeviceRecordTest 30 s 内调用本接口来停止采集并开始播放此前采集到的声音。
返回值 方法调用结果
注意 调用本接口开始播放录音后,可以在播放过程中调用 stopAudioDevicePlayTest 停止播放。
virtual int bytertc::IAudioDeviceManager::stopAudioDevicePlayTest()
停止由调用 startAudioDeviceRecordTest 开始的音频播放设备测试。
在音频播放设备测试自动结束前,可调用本接口停止音频采集与播放测试。
返回值 方法调用结果
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 |
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 协议。 不同平台支持的音频文件格式:
|
||||||||||||||||||||||||||||||||||||||||
| config | const AudioMixingConfig& | 混音配置 可以设置混音的播放次数、是否本地播放混音、以及是否将混音发送至远端,详见 AudioMixingConfig。 |
注意
onAudioMixingStateChanged。
virtual void bytertc::IAudioMixingManager::stopAudioMixing(
int mix_id)
停止播放音乐文件及混音
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mix_id | int | 混音 ID |
注意
onAudioMixingStateChanged。
virtual void bytertc::IAudioMixingManager::pauseAudioMixing(
int mix_id)
暂停播放音乐文件及混音
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mix_id | int | 混音 ID |
注意
onAudioMixingStateChanged。
virtual void bytertc::IAudioMixingManager::resumeAudioMixing(
int mix_id)
恢复播放音乐文件及混音
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mix_id | int | 混音 ID |
注意
onAudioMixingStateChanged。
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。 不同平台支持的音频文件格式:
|
注意
onAudioMixingStateChanged。
virtual void bytertc::IAudioMixingManager::unloadAudioMixing(
int mix_id)
卸载指定音乐文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mix_id | int | 混音 ID |
注意
不论音乐文件是否播放,调用本方法卸载该文件后,SDK 会回调通知混音已停止,见 onAudioMixingStateChanged。
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。 |
virtual int bytertc::IAudioMixingManager::getAudioMixingDuration(
int mix_id)
获取音乐文件时长
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mix_id | int | 混音 ID |
返回值
注意 调用本方法获取音乐文件时长前,需要先调用 preloadAudioMixing 或 startAudioMixing。
virtual int bytertc::IAudioMixingManager::getAudioMixingCurrentPosition(
int mix_id)
获取音乐文件播放进度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mix_id | int | 混音 ID |
返回值
注意 调用本方法获取音乐文件播放进度前,需要先调用 startAudioMixing 开始播放音乐文件。
virtual void bytertc::IAudioMixingManager::setAudioMixingPosition(
int mix_id,
int position)
设置音频文件的起始播放位置
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mix_id | int | 混音 ID |
| position | int | 音频文件起始播放位置,单位为毫秒。 你可以通过 getAudioMixingDuration 获取音频文件总时长,position 的值应小于音频文件总时长。 |
注意 在播放在线文件时,调用此接口可能造成播放延迟的现象。
virtual void bytertc::IAudioMixingManager::setAudioMixingDualMonoMode(
int mix_id,
AudioMixingDualMonoMode mode)
设置当前音频文件的声道模式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mix_id | int | 混音 ID |
| mode | AudioMixingDualMonoMode | 声道模式。默认的声道模式和源文件一致,详见 AudioMixingDualMonoMode。 |
注意
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 回调报错
virtual int bytertc::IAudioMixingManager::setAudioMixingPlaybackSpeed(
int mix_id,
int speed)
设置混音时音频文件的播放速度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mix_id | int | 混音 ID |
| speed | int | 播放速度与原始文件速度的比例,单位:%,取值范围为 [50,200],默认值为 100。 超出取值范围则设置失败,你会收到 onAudioMixingStateChanged 回调,提示 AudioMixingState 状态为 kAudioMixingStateFailed 混音播放失败,AudioMixingError 错误码为 kAudioMixingErrorInValidPlaybackSpeed 设置混音文件的播放速度不合法。 |
注意
onAudioMixingStateChanged 回调提示 AudioMixingState 状态为 kAudioMixingStatePlaying,AudioMixingError 错误码为 kAudioMixingErrorOk 之后调用该方法。 kAudioMixingStateFailed 错误码为 kAudioMixingErrorIdNotFound 的 onAudioMixingStateChanged 回调。
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 中设置时间间隔,开始播放后可以通过此接口更新回调间隔。
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 开始播放音频文件之前调用该接口,以免播放过程中的音量突变导致听感体验下降。
virtual void bytertc::IAudioMixingManager::enableAudioMixingFrame(
int mix_id,
AudioMixingType type)
启动外部音频流混音
启动 PCM 音频数据混音。
要实现多个 PCM 音频数据混音,多次调用本方法,并传入不同的 mix_id。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mix_id | int | 混音 ID,用于标识混音,保证混音 ID 唯一性。 如果使用相同的 ID 重复调用本方法后,前一次混音会停止,后一次混音开始,会收到 onAudioMixingStateChanged 通知前一次混音已停止。 |
| type | AudioMixingType | 混音播放类型 是否本地播放、以及是否发送到远端,详见 AudioMixingType。 |
注意
virtual void bytertc::IAudioMixingManager::disableAudioMixingFrame(
int mix_id)
关闭 PCM 混音
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mix_id | int | 混音 ID。 |
virtual int bytertc::IAudioMixingManager::pushAudioMixingFrame(
int mix_id,
IAudioFrame* audio_frame)
推送 PCM 音频帧数据用于混音
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mix_id | int | 混音 ID。 |
| audioFrame | IAudioFrame* audio_frame | 音频帧,详见 IAudioFrame。 |
返回值
注意
virtual int bytertc::IAudioMixingManager::getAudioTrackCount(
int mix_id)
获取当前音频文件的音轨索引
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mix_id | int | 混音 ID |
返回值 方法调用结果
注意
virtual void bytertc::IAudioMixingManager::selectAudioTrack(
int mix_id,
int audio_track_index)
指定当前音频文件的播放音轨
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mix_id | int | 混音 ID |
| audio_track_index | int | 指定的播放音轨 设置的参数值需要小于或等于 getAudioTrackCount 的返回值 |
注意
class bytertc::IRtcEngine
引擎API IRtcEngine用IRtcEngineEventHandler 注册接口类方法向应用程序发送回调通知
Defined in : bytertc_engine_interface.h
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。 |
返回值
注意
virtual void bytertc::IRtcEngine::setCaptureVolume(
StreamIndex index,
int volume)
调节音频采集音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 流索引,指定调节主流还是调节屏幕流的音量,参看 StreamIndex |
| volume | int | 采集的音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。 为保证更好的通话质量,建议将 volume 值设为 [0,100]。 • 0:静音 • 100:原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护) |
注意 在开启音频采集前后,你都可以使用此接口设定采集音量。
virtual void bytertc::IRtcEngine::setPlaybackVolume(
const int volume)
调节本地播放的所有远端用户混音后的音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | const int | 音频播放音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。 为保证更好的通话质量,建议将 volume 值设为 [0,100]。 • 0: 静音 • 100: 原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护) |
virtual void bytertc::IRtcEngine::startAudioCapture()
开启内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
调用该方法开启后,本地用户会收到 onAudioDeviceStateChanged 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。
注意
virtual void bytertc::IRtcEngine::stopAudioCapture()
立即关闭内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
调用该方法,本地用户会收到 onAudioDeviceStateChanged 的回调。
非隐身用户进房后调用该方法后,房间中的其他用户会收到 onUserStopAudioCapture 的回调。
注意
virtual int bytertc::IRtcEngine::setVoiceChangerType(
VoiceChangerType voice_changer)
设置变声特效类型
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| voice_changer | VoiceChangerType | 变声特效类型,参看 VoiceChangerType |
注意
virtual int bytertc::IRtcEngine::setVoiceReverbType(
VoiceReverbType voice_reverb)
设置混响特效类型
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| voice_reverb | VoiceReverbType | 混响特效类型,参看 VoiceReverbType |
注意
virtual void bytertc::IRtcEngine::setAudioProfile(
AudioProfileType audio_profile)
设置音质档位。你应根据业务场景需要选择适合的音质档位。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_profile | AudioProfileType | 音质档位,参看 AudioProfileType |
注意
virtual int bytertc::IRtcEngine::setAudioSourceType (
AudioSourceType type)
切换音频采集方式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | AudioSourceType | 音频数据源,详见 AudioSourceType。 默认使用内部音频采集。音频采集和渲染方式无需对应。 |
返回值 方法调用结果:
注意
virtual int bytertc::IRtcEngine::setAudioRenderType (
AudioRenderType type)
切换音频渲染方式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | AudioRenderType | 音频输出类型,详见 AudioRenderType 默认使用内部音频渲染。音频采集和渲染方式无需对应。 |
返回值 方法调用结果:
注意
virtual bool bytertc::IRtcEngine::pushExternalAudioFrame(
IAudioFrame* audioFrame)
推送自定义音频数据。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | IAudioFrame* | 10 ms 对应的音频数据。详见 IAudioFrame。 |
返回值 方法调用结果
注意
virtual bool bytertc::IRtcEngine::pullExternalAudioFrame(
IAudioFrame* audioFrame)
拉取远端音频数据。可用于自定义音频渲染。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | IAudioFrame* | 获取的 10 ms 内的音频数据。详见 IAudioFrame。 |
返回值 方法调用结果:
注意
virtual void bytertc::IRtcEngine::startVideoCapture()
立即开启内部视频采集。默认为关闭状态。
内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。
调用该方法后,本地用户会收到 onVideoDeviceStateChanged 的回调。
本地用户在非隐身状态下调用该方法后,房间中的其他用户会收到 onUserStartVideoCapture 的回调。
注意
virtual void bytertc::IRtcEngine::stopVideoCapture()
立即关闭内部视频采集。默认为关闭状态。
内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。
调用该方法后,本地用户会收到 onVideoDeviceStateChanged 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。
注意
virtual int bytertc::IRtcEngine::setVideoCaptureConfig(
const VideoCaptureConfig& videoCaptureConfig)
设置 RTC SDK 内部采集时的视频采集参数。
如果你的项目使用了 SDK 内部采集模块,可以通过本接口指定视频采集参数,包括模式、分辨率、帧率。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoCaptureConfig | const VideoCaptureConfig& | 视频采集参数。参看: VideoCaptureConfig。 |
返回值
注意
virtual int bytertc::IRtcEngine::enableSimulcastMode(
bool enabled)
该方法设置视频流发布端是否开启发布多路编码参数不同的视频流的模式。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enabled | bool | 是否开启推送多路视频流模式: • True:开启 • False:关闭(默认) |
返回值 方法调用结果:
注意
virtual int bytertc::IRtcEngine::setVideoEncoderConfig(
const VideoEncoderConfig& max_solution)
视频发布端设置期望发布的最大分辨率视频流参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
该接口支持设置一路视频流参数,设置多路参数请使用重载 API:SetVideoEncoderConfig。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| max_solution | const VideoEncoderConfig& | 期望发布的最大分辨率视频流参数。参看 VideoEncoderConfig。 |
返回值 方法调用结果:
注意
virtual int bytertc::IRtcEngine::setVideoEncoderConfig(
const VideoEncoderConfig* channel_solutions,
int solution_num)
视频发布端设置推送多路流时各路流的参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| channel_solutions | const VideoEncoderConfig* | 要推送的多路视频流的参数需注意,所设置的分辨率是各路流的最大分辨率。参看 VideoEncoderConfig。 |
| solution_num | int | 视频参数数组长度,最多支持设置 3 路参数,超过 3 路时默认取前 3 路的值。当设置了多路参数时,分辨率必须是从大到小排列。 |
返回值 方法调用结果:
注意
virtual int bytertc::IRtcEngine::setScreenVideoEncoderConfig(
const VideoEncoderConfig& screen_solution)
为发布的屏幕共享视频流设置期望的编码参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| screen_solution | const VideoEncoderConfig& | 屏幕共享视频流参数。参看 VideoEncoderConfig。 |
返回值
方法调用结果:
0:成功
!0:失败
注意 调用该方法之前,屏幕共享视频流默认的编码参数为:分辨率 1920px × 1080px,帧率 15fps。
virtual int bytertc::IRtcEngine::setLocalVideoCanvas(
StreamIndex index,
const VideoCanvas& canvas)
设置本地视频渲染时,使用的视图,并设置渲染模式。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 视频流属性, 参看 StreamIndex |
| canvas | const VideoCanvas& | 视图信息和渲染模式,参看:VideoCanvas |
返回值
注意
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 |
注意 你可以在本地视频渲染过程中,调用此接口。调用结果会实时生效。
virtual void bytertc::IRtcEngine::setRemoteStreamVideoCanvas(
RemoteStreamKey stream_key,
const VideoCanvas& canvas)
设置渲染指定视频流 stream_key 时,使用的视图和渲染模式。
如果需要解除某个用户的绑定视图,你可以把 canvas 设置为空。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_key | RemoteStreamKey | 参看 RemoteStreamKey |
| canvas | const VideoCanvas& | 视图信息和渲染模式,参看:VideoCanvas |
返回值
注意
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 |
注意 你可以在远端视频渲染过程中,调用此接口。调用结果会实时生效。
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 |
注意
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。 |
注意
virtual bool bytertc::IRtcEngine::pushScreenFrame(
IVideoFrame* frame)
推送屏幕视频帧
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | IVideoFrame* | 设置屏幕视频帧,详见:IVideoFrame。 |
返回值
注意
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 。
virtual void bytertc::IRtcEngine::updateScreenCaptureRegion(
const Rectangle& region_rect)
通过 RTC SDK 提供的采集模块采集屏幕视频流时,更新采集区域。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| region_rect | const Rectangle& | 采集区域。参见 Rectangle 此参数描述了调用此接口后的采集区域,和 startScreenVideoCapture 中 source_info 设定区域的相对关系。 |
注意 调用此接口前,必须已通过调用 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 |
返回值
注意
virtual void bytertc::IRtcEngine::stopScreenVideoCapture()
停止屏幕视频流采集。
注意
virtual void bytertc::IRtcEngine::updateScreenCaptureHighlightConfig(
const HighlightConfig& highlight_config)
通过 RTC SDK 提供的采集模块采集屏幕视频流时,更新边框高亮设置。默认展示表框。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| highlight_config | const HighlightConfig& | 边框高亮设置。参见 HighlightConfig |
注意 调用此接口前,必须已通过调用 startScreenVideoCapture 开启了内部屏幕流采集。
virtual void bytertc::IRtcEngine::updateScreenCaptureMouseCursor(
MouseCursorCaptureState capture_mouse_cursor)
通过 RTC SDK 提供的采集模块采集屏幕视频流时,更新对鼠标的处理设置。默认采集鼠标。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| capture_mouse_cursor | MouseCursorCaptureState | 参看 MouseCursorCaptureState |
注意 调用此接口前,必须已通过调用 startScreenVideoCapture 开启了内部屏幕流采集。
virtual void bytertc::IRtcEngine::updateScreenCaptureFilterConfig(
const ScreenFilterConfig& filter_config)
通过 RTC SDK 提供的采集模块采集屏幕视频流时,设置需要过滤的窗口。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| ScreenFilterConfig | const | 窗口过滤设置,参看 ScreenFilterConfig |
注意
virtual IScreenCaptureSourceList* bytertc::IRtcEngine::getScreenCaptureSourceList()
获取共享对象列表。使用完之后需要调用 release 接口释放。
返回值 共享对象列表,包括应用窗口和屏幕。详见 IScreenCaptureSourceList{@Link #IScreenCaptureSourceList}。由用户选择其中一个共享对象,并在调用 startScreenVideoCapture 时作为参数传给 RTC SDK。
注意
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。
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。
virtual void bytertc::IRtcEngine::setVideoSourceType(
StreamIndex stream_index,
VideoSourceType type)
设置向 SDK 输入的视频源
默认使用内部采集。内部采集指:使用 RTC SDK 内置的视频采集机制进行视频采集。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_index | StreamIndex | 视频流的属性,参看 StreamIndex |
| type | VideoSourceType | 视频输入源类型,参看 VideoSourceType |
注意
virtual bool bytertc::IRtcEngine::pushExternalVideoFrame(
IVideoFrame* frame)
发送外部源视频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | IVideoFrame* | 设置视频帧,参看 IVideoFrame。 |
注意 推送外部视频帧前,必须调用 setVideoSourceType 开启外部视频源采集。
virtual int bytertc::IRtcEngine::setPublishFallbackOption(
PublishFallbackOption option)
设置发布的音视频流的回退选项。
你可以调用该接口设置网络不佳或设备性能不足时从大流起进行降级处理,以保证通话质量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| option | PublishFallbackOption | 本地发布的音视频流回退选项,参看 PublishFallbackOption。 |
返回值 方法调用结果:
注意
virtual int bytertc::IRtcEngine::setSubscribeFallbackOption(
SubscribeFallbackOption option)
设置订阅的音视频流的回退选项。
你可调用该接口设置网络不佳或设备性能不足时允许订阅流进行降级或只订阅音频流,以保证通话流畅。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| option | SubscribeFallbackOption | 订阅的音视频流回退选项,参看 SubscribeFallbackOption 。 |
返回值 方法调用结果:
注意
virtual int bytertc::IRtcEngine::setRemoteUserPriority(
const char* user_id,
RemoteUserPriority priority)
设置用户优先级
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 远端用户的 ID |
| priority | RemoteUserPriority | 远端用户的需求优先级,详见枚举类型RemoteUserPriority |
返回值 0: 方法调用成功
注意
virtual int bytertc::IRtcEngine::setBusinessId(
const char* business_id)
设置业务标识参数
可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| business_id | const char* | 用户设置的自己的 businessId 值 businessId 只是一个标签,颗粒度需要用户自定义。 |
返回值
注意
virtual void bytertc::IRtcEngine::setLocalVideoMirrorType(
MirrorType mirrorType)
为采集到的视频流开启镜像
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mirrorType | MirrorType | 镜像类型,参看 MirrorType |
注意
| 前置摄像头 | 后置摄像头 | 自定义采集视频源 | 桌面端摄像头 | |
|---|---|---|---|---|
| 移动端 | 本地预览镜像,编码传输不镜像 | 本地预览不镜像,编码传输不镜像 | 本地预览不镜像,编码传输不镜像 | / |
| 桌面端 | / | / | 本地预览不镜像,编码传输不镜像 | 本地预览镜像,编码传输不镜像 |
virtual int bytertc::IRtcEngine::enableEffectBeauty(
bool enable)
开启/关闭基础美颜
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | 基础美颜开关 • true: 开启基础美颜 • false: 关闭基础美颜(默认) |
返回值
注意
virtual int bytertc::IRtcEngine::setBeautyIntensity(
EffectBeautyMode beautyMode,
float intensity)
调整基础美颜强度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| beautyMode | EffectBeautyMode | 基础美颜模式,参看 EffectBeautyMode。 |
| intensity | float | 美颜强度,取值范围为 [0,1]。强度为 0 表示关闭,默认强度为 0.5。 |
返回值
注意
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 的长度 |
注意
virtual void bytertc::IRtcEngine::setCustomizeEncryptHandler(
IEncryptHandler* handler)
设置自定义加密
需要实现对应的加密/解密方法,详情参考 EncryptType 。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| handler | IEncryptHandler* | 自定义加密 handler,需要实现 handler 的加密和解密方法 |
注意
virtual void bytertc::IRtcEngine::enableAudioFrameCallback(
AudioFrameCallbackMethod method,
AudioFormat format)
开启音频回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| method | AudioFrameCallbackMethod | 音频回调方法,参看 AudioFrameCallbackMethod。 当音频回调方法设置为 kAudioFrameCallbackRecord、kAudioFrameCallbackPlayback、kAudioFrameCallbackMixed、kAudioFrameCallbackRecordScreen时,你需要在参数 format 中指定准确的采样率和声道,暂不支持设置为自动。 当音频回调方法设置为 kAudioFrameCallbackRemoteUser时,暂不支持音频参数格式中设置准确的采样率和声道,你需要设置为自动。 |
| format | AudioFormat | 音频参数格式,参看 AudioFormat。 |
注意 开启音频回调并调用 registerAudioFrameObserver 后,IAudioFrameObserver 会收到对应的音频回调。两者调用顺序没有限制且相互独立。
virtual void bytertc::IRtcEngine::disableAudioFrameCallback(
AudioFrameCallbackMethod method)
关闭音频回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| method | AudioFrameCallbackMethod | 音频回调方法,参看 AudioFrameCallbackMethod。 |
注意 该方法需要在调用 enableAudioFrameCallback 之后调用。
virtual void bytertc::IRtcEngine::registerAudioFrameObserver(
IAudioFrameObserver* observer)
注册音频数据回调观察者。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | IAudioFrameObserver* | 音频数据观察者,参看 IAudioFrameObserver。如果传入 null,则取消注册。 |
返回值
注意 注册音频数据回调观察者并调用 enableAudioFrameCallback 后,IAudioFrameObserver 会收到对应的音频回调。
virtual void bytertc::IRtcEngine::registerAudioProcessor(
IAudioFrameProcessor* processor)
注册自定义音频处理器。
注册完成后,你可以调用 enableAudioProcessor,对本地采集或接收到的远端音频进行处理。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| processor | IAudioFrameProcessor* | 自定义音频处理器,详见 IAudioFrameProcessor。 SDK 只持有 processor 的弱引用,你应保证其生命周期。 |
注意 重复调用此接口时,仅最后一次调用生效。
virtual void bytertc::IRtcEngine::enableAudioProcessor(
AudioProcessorMethod method,
AudioFormat format)
获取本地采集的音频帧或接收到的远端音频帧,进行自定义处理。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| method | AudioProcessorMethod | 音频帧类型,参看 AudioProcessorMethod。通过多次调用此接口,可以对不同的音频帧进行自定义处理。 选择不同的值时,收到的回调不同: • 选择本地采集的音频时,会收到 onProcessRecordAudioFrame • 选择远端音频流的混音音频时,会收到 onProcessPlayBackAudioFrame • 选择远端音频流时,会收到 onProcessRemoteUserAudioFrame |
| format | AudioFormat | 设定自定义处理时获取的音频帧格式,参看 AudioFormat。 |
注意
virtual void bytertc::IRtcEngine::disableAudioProcessor(
AudioProcessorMethod method)
关闭自定义音频处理。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| method | AudioProcessorMethod | 音频帧类型,参看 AudioProcessorMethod。 |
virtual void bytertc::IRtcEngine::registerVideoFrameObserver(
IVideoFrameObserver* observer)
注册视频数据回调观察者
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | IVideoFrameObserver* | 数据回调函数,详见 IVideoFrameObserver,将参数设置为 nullptr 则取消注册。 |
注意 该方法可以在任意时间调用,建议在 joinRoom 前。
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 会将采集得到的视频帧转变为对应的格式,供前处理使用。• 设置为其他值时,此方法调用失败。 |
返回值
注意
kVideoPixelFormatI420 config 中的 required_pixel_format 设置为 kVideoPixelFormatI420,可以通过避免格式转换带来一些性能优化。
virtual int bytertc::IRtcEngine::sendSEIMessage(
StreamIndex stream_index,
const uint8_t* message,
int length,
int repeat_count)
在视频通信时,通过视频帧发送 SEI 数据。StreamMain 流当是内部源且摄像头处于关闭状态时调用本函数,SDK engine 会构造一个视频黑帧发送 SEI 信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_index | StreamIndex | 媒体流类型,参看 StreamIndex |
| message | const uint8_t* | SEI 消息。长度不超过 4 kB。 |
| length | int | SEI 消息长度。 |
| repeat_count | int | 消息发送重复次数。取值范围是 [0, 30]。 调用此接口后,SEI 数据会添加到当前视频帧开始的连续 repeatCount 个视频帧中。 |
返回值
注意
virtual IVideoDeviceManager* bytertc::IRtcEngine::getVideoDeviceManager()
创建视频设备管理实例
返回值 视频设备管理实例,详见IVideoDeviceManager
注意 当不再使用IVideoDeviceManager实例时,调用该实例的 release接口,以免资源泄露
virtual IAudioDeviceManager* bytertc::IRtcEngine::getAudioDeviceManager()
设备音频管理接口创建
返回值 音频设备管理接口
virtual IRangeAudio* bytertc::IRtcEngine::getRangeAudio()
获取范围语音接口实例。
返回值 方法调用结果:
注意 首次调用该方法须在创建房间后、加入房间前。
virtual ISpatialAudio* bytertc::IRtcEngine::getSpatialAudio()
获取空间音频接口实例。
返回值 方法调用结果:
注意
virtual int bytertc::IRtcEngine::startFileRecording(
StreamIndex type,
RecordingConfig config,
RecordingType recording_type)
该方法将通话过程中的音视频数据录制到本地的文件中。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | StreamIndex | 流属性,指定录制主流还是屏幕流,参看 StreamIndex |
| config | RecordingConfig | 本地录制参数配置,参看 RecordingConfig |
| recording_type | RecordingType | 本地录制的媒体类型,参看 RecordingType |
返回值
注意
virtual void bytertc::IRtcEngine::stopFileRecording(
StreamIndex type)
停止本地录制
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | StreamIndex | 流属性,指定停止主流或者屏幕流录制,参看 StreamIndex |
注意
virtual void bytertc::IRtcEngine::enableExternalSoundCard(
bool enable)
启用匹配外置声卡的音频处理模式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | • true: 开启 • false: 不开启(默认) |
注意
virtual void bytertc::IRtcEngine::setRuntimeParameters(
const char * json_string)
设置运行时的参数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| json_string | const char* | json 序列化之后的字符串 |
virtual void bytertc::IRtcEngine::startASR(
const RTCASRConfig& asr_config,
IRTCASREngineEventHandler* handler)
开启自动语音识别服务。该方法将识别后的用户语音转化成文字,并通过 onMessage 事件回调给用户。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| asr_config | const RTCASRConfig& | 校验信息,参看 RTCASRConfig |
| handler | IRTCASREngineEventHandler* | 语音识别服务使用状态回调,参看 IRTCASREngineEventHandler |
virtual void bytertc::IRtcEngine::stopASR()
关闭语音识别服务
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 | 预设问题以外的其他问题的具体描述 |
返回值
注意 如果用户上报时在房间内,那么问题会定位到用户当前所在的一个或多个房间;如果用户上报时不在房间内,那么问题会定位到引擎此前退出的房间。
virtual IAudioMixingManager* bytertc::IRtcEngine::getAudioMixingManager()
混音管理接口创建
返回值 混音管理实例,详见IAudioMixingManager
virtual int64_t bytertc::IRtcEngine::login(
const char* token,
const char* uid)
必须先登录,才能发送房间外点对点消息和向应用服务器发送消息
在调用本接口登录后,如果想要登出,需要调用 logout。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| token | const char* | 动态密钥 用户登录必须携带的 Token,用于鉴权验证。 登录 Token 与加入房间时必须携带的 Token 不同。测试时可使用控制台生成临时 Token, roomId 填任意值或置空,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。 |
| uid | const char* | 用户 ID 用户 ID 在 appid 的维度下是唯一的。 |
返回值
0:成功-1:失败。无效参数-2:无效调用。用户已经登录。成功登录后再次调用本接口将收到此返回值 注意 本地用户调用此方法登录后,会收到 onLoginResult} 回调通知登录结果,远端用户不会收到通知。
virtual void bytertc::IRtcEngine::logout()
调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。
注意
virtual void bytertc::IRtcEngine::updateLoginToken(
const char* token)
更新用户用于登录的 Token
Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。
调用 login 方法登录时,如果使用了过期的 Token 将导致登录失败,并会收到 onLoginResult 回调通知,错误码为 kLoginErrorCodeInvalidToken。此时需要重新获取 Token,并调用此方法更新 Token。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| token | const char* | 更新的动态密钥 |
注意
virtual void bytertc::IRtcEngine::setServerParams(
const char* signature,
const char* url)
设置应用服务器参数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| signature | const char* | 动态签名 应用服务器会使用该签名对请求进行鉴权验证。 |
| url | const char* | 应用服务器的地址 |
注意
virtual void bytertc::IRtcEngine::getPeerOnlineStatus(
const char* peer_user_id)
查询对端用户或本端用户的登录状态
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| peer_user_id | const char* | 需要查询的用户 ID |
注意
virtual int64_t bytertc::IRtcEngine::sendUserMessageOutsideRoom(
const char* uid,
const char* message,
MessageConfig config)
给房间外指定的用户发送文本消息(P2P)
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 消息接收用户的 ID |
| message | const char* | 发送的文本消息内容 消息不超过 62KB。 |
| config | MessageConfig | 消息类型,参看 MessageConfig。 |
返回值
注意
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。 |
返回值
注意
virtual int64_t bytertc::IRtcEngine::sendServerMessage(
const char* message)
客户端给应用服务器发送文本消息(P2Server)
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| message | const char* | 发送的文本消息内容 消息不超过 62KB。 |
返回值
注意
virtual int64_t bytertc::IRtcEngine::sendServerBinaryMessage(
int length,
const uint8_t* message)
客户端给应用服务器发送二进制消息(P2Server)
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| length | int | 二进制字符串的长度 |
| message | const uint8_t* | 发送的二进制消息内容 消息不超过 46KB。 |
返回值
注意
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
注意
virtual void bytertc::IRtcEngine::stopNetworkDetection()
停止通话前网络探测
注意
virtual void bytertc::IRtcEngine::setScreenAudioSourceType(
AudioSourceType source_type)
在屏幕共享时,设置屏幕音频的采集方式(内部采集/自定义采集)
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| source_type | AudioSourceType | 屏幕音频输入源类型, 参看 AudioSourceType |
注意
kWarningCodeSetScreenAudioSourceTypeFailed
virtual void bytertc::IRtcEngine::setScreenAudioStreamIndex(
StreamIndex index)
在屏幕共享时,设置屏幕音频流和麦克风采集到的音频流的混流方式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 混流方式,参看 StreamIndex • kStreamIndexMain: 将屏幕音频流和麦克风采集到的音频流混流 • kStreamIndexScreen: 将屏幕音频流和麦克风采集到的音频流分为两路音频流 |
注意
你应该在 publishScreen 之前,调用此方法。否则,你将收到 onWarning 的报错:kWarningCodeSetScreenAudioStreamIndexFailed
virtual void bytertc::IRtcEngine::startScreenAudioCapture()
在屏幕共享时,开始使用 RTC SDK 内部采集方式,采集屏幕音频
注意
virtual void bytertc::IRtcEngine::stopScreenAudioCapture()
在屏幕共享时,停止使用 RTC SDK 内部采集方式,采集屏幕音频。
注意 要开始屏幕音频内部采集,调用 startScreenAudioCapture。
virtual int bytertc::IRtcEngine::pushScreenAudioFrame(
IAudioFrame* frame)
使用自定义采集方式,采集屏幕共享时的屏幕音频时,将音频帧推送至 RTC SDK 处进行编码等处理。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | IAudioFrame* | 音频数据帧,参见 IAudioFrame |
返回值 方法调用结果
注意
virtual void bytertc::IRtcEngine::enableAudioPropertiesReport(
const AudioPropertiesConfig& config)
启用音频信息提示。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| config | const AudioPropertiesConfig& | 详见 AudioPropertiesConfig |
注意 开启提示后,你可以: + 通过 onLocalAudioPropertiesReport 回调获取本地麦克风和屏幕音频流采集的音频信息;
virtual void bytertc::IRtcEngine::enableVocalInstrumentBalance(
bool enable)
开启/关闭音量均衡功能。
开启音量均衡功能后,人声的响度会调整为 -16lufs。如果已调用 setAudioMixingLoudness 传入了混音音乐的原始响度,此音乐播放时,响度会调整为 -20lufs。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | 是否开启音量均衡功能: • True: 是 • False: 否 |
注意 该接口须在调用 startAudioMixing 开始播放音频文件之前调用。
virtual void bytertc::IRtcEngine::enablePlaybackDucking(
bool enable)
打开/关闭音量闪避功能,适用于“一起看”等场景。
开启该功能后,当检测到远端人声时,本地的媒体播放音量会自动减弱,从而保证远端人声的清晰可辨;当远端人声消失时,本地媒体音量会恢复到闪避前的音量水平。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | 是否开启音量闪避: • True: 是 • False: 否 |
virtual void bytertc::IRtcEngine::registerLocalEncodedVideoFrameObserver(
ILocalEncodedVideoFrameObserver* observer)
注册本地视频帧监测器。
无论使用内部采集还是自定义采集,调用该方法后,SDK 每监测到一帧本地视频帧时,都会将视频帧信息通过 onLocalEncodedVideoFrame 回调给用户
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | ILocalEncodedVideoFrameObserver* | 本地视频帧监测器,参看 ILocalEncodedVideoFrameObserver。将参数设置为 nullptr 则取消注册。 |
注意 该方法可在进房前后的任意时间调用,在进房前调用可保证尽可能早地监测视频帧并触发回调
virtual void bytertc::IRtcEngine::registerRemoteEncodedVideoFrameObserver(
IRemoteEncodedVideoFrameObserver* observer)
注册远端编码后视频数据回調。
完成注册后,当 SDK 监测到远端编码后视频帧时,会触发 onRemoteEncodedVideoFrame 回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | IRemoteEncodedVideoFrameObserver* | 远端编码后视频数据监测器,参看 IRemoteEncodedVideoFrameObserver |
注意
virtual void bytertc::IRtcEngine::setExternalVideoEncoderEventHandler(
IExternalVideoEncoderEventHandler* encoder_handler)
注册自定义编码帧推送事件回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| encoder_handler | IExternalVideoEncoderEventHandler* | 自定义编码帧回调类,参看 IExternalVideoEncoderEventHandler |
注意
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。 |
注意
virtual void bytertc::IRtcEngine::setVideoDecoderConfig(
RemoteStreamKey key,
VideoDecoderConfig config)
在订阅远端视频流之前,设置远端视频数据解码方式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | RemoteStreamKey | 远端流信息,即对哪一路视频流进行解码方式设置,参看 RemoteStreamKey。 |
| config | VideoDecoderConfig | 视频解码方式,参看 VideoDecoderConfig。 |
注意
virtual void bytertc::IRtcEngine::requestRemoteVideoKeyFrame(
const RemoteStreamKey& stream_info)
在订阅远端视频流之后,向远端请求关键帧
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_info | const RemoteStreamKey& | 远端流信息,参看 RemoteStreamKey。 |
注意
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 。 |
返回值
注意
在采用 kRoomProfileTypeLiveBroadcasting 作为房间模式时,此消息一定会送达。在其他房间模式下,如果本地用户未说话,此消息不一定会送达。
virtual void bytertc::IRtcEngine::setLocalVoicePitch(
int pitch)
开启本地语音变调功能,多用于 K 歌场景。
使用该方法,你可以对本地语音的音调进行升调或降调等调整。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| pitch | int | 相对于语音原始音调的升高/降低值,取值范围[-12,12],默认值为 0,即不做调整。 取值范围内每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调,设置的绝对值越大表示音调升高或降低越多。 超出取值范围则设置失败,并且会触发 onWarning 回调,提示 WarningCode 错误码为 WARNING_CODE_SET_SCREEN_STREAM_INVALID_VOICE_PITCH 设置语音音调不合法 |
virtual void bytertc::IRtcEngine::muteAudioPlayback(
MuteState mute_state)
控制本地音频流播放状态:播放/不播放
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute_state | MuteState | 播放状态,标识是否播放本地音频流,详见:MuteState |
注意 本方法仅控制本地收到音频流的播放状态,并不影响本地音频播放设备。
virtual int bytertc::IRtcEngine::startPlayPublicStream(
const char* public_streamid)
订阅指定公共流
无论用户是否在房间内,都可以调用本接口获取和播放指定的公共流。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| public_streamid | const char* | 公共流 ID,如果指定流暂未发布,则本地客户端将在其开始发布后接收到流数据。 |
返回值
注意
virtual int bytertc::IRtcEngine::stopPlayPublicStream(
const char* public_streamid)
取消订阅指定公共流
关于订阅公共流,查看 startPlayPublicStream。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| public_streamid | const char* | 公共流 ID |
返回值
virtual int bytertc::IRtcEngine::setPublicStreamVideoCanvas(
const char* public_streamid,
const VideoCanvas& canvas)
为指定公共流绑定内部渲染视图
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| public_streamid | const char* | 公共流 ID |
| canvas | const VideoCanvas& | 内部渲染视图,如果需要解除视频的绑定视图,把 videoCanvas 设置为空。详见 VideoCanvas。 |
返回值
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 |
返回值
virtual void bytertc::IRtcEngine::setVideoWatermark(
StreamIndex index,
const char * image_path,
RTCWatermarkConfig config)
在指定视频流上添加水印。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 需要添加水印的视频流属性,参看 StreamIndex。 |
| image_path | const char* | 水印图片路径,支持本地文件绝对路径和Asset 资源路径(/assets/xx.png),长度限制为 512 字节。 水印图片为 PNG 或 JPG 格式。 |
| config | RTCWatermarkConfig | 水印参数,参看 RTCWatermarkConfig。 |
注意
virtual void bytertc::IRtcEngine::clearVideoWatermark(
StreamIndex index)
移除指定视频流的水印。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 需要移除水印的视频流属性,参看 StreamIndex。 |
virtual void bytertc::IRtcEngine::setUserVisibility(
bool enable)
设置用户可见性。默认可见。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | 设置用户是否对房间内其他用户可见: • true: 可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。 • false: 不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。 |
返回值
注意
kWarningCodePublishStreamForbiden 警告。
virtual void bytertc::IRtcEngine::leaveRoom()
离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
加入房间后,必须调用此方法结束通话,否则无法开始下一次通话。无论当前是否在房间内,都可以调用此方法。重复调用此方法没有负面影响。
此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 onLeaveRoom 回调通知。
注意
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 重新加入房间。
virtual int64_t bytertc::IRtcEngine::sendUserMessage(
const char* uid,
const char* message,
MessageConfig config)
给房间内的所有其他用户发送广播消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 消息接收用户的 ID |
| message | const char* | 用户发送的广播消息 消息不超过 62KB。 |
| config | MessageConfig | 消息类型,参看 MessageConfig。 |
注意
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 开始递增。
注意
virtual int64_t bytertc::IRtcEngine::sendRoomMessage(
const char* message)
给房间内的所有其他用户发送广播消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| message | const char* | 用户发送的广播消息 消息不超过 62KB。 |
注意
virtual int64_t bytertc::IRtcEngine::sendRoomBinaryMessage(
int size,
const uint8_t* message)
给房间内的所有其他用户发送广播消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| size | int | 发送的二进制消息长度 |
| message | const uint8_t* | 用户发送的二进制广播消息 消息不超过 46KB。 |
注意
virtual void bytertc::IRtcEngine::publishStream(
MediaStreamType type)
在当前所在房间内发布本地通过摄像头/麦克风采集的媒体流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | MediaStreamType | 媒体流类型,用于指定发布音频/视频,参看 MediaStreamType |
注意
virtual void bytertc::IRtcEngine::unpublishStream(
MediaStreamType type)
停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | MediaStreamType | 媒体流类型,用于指定停止发布音频/视频,参看 MediaStreamType |
注意
virtual void bytertc::IRtcEngine::publishScreen(
MediaStreamType type)
在当前所在房间内发布本地屏幕共享音视频流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | MediaStreamType | 媒体流类型,用于指定发布屏幕音频/视频,参看 MediaStreamType。 |
注意
virtual void bytertc::IRtcEngine::unpublishScreen(
MediaStreamType type)
停止将本地屏幕共享音视频流发布到当前所在房间中
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | MediaStreamType | 媒体流类型,用于指定停止发布屏幕音频/视频,参看 MediaStreamType |
注意
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。 |
注意
room_config 中的 remote_video_config 进行设置。
virtual void bytertc::IRtcEngine::subscribeStream(
const char *user_id,
MediaStreamType type)
订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 指定订阅的远端发布音视频流的用户 ID。 |
| type | MediaStreamType | 媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。 |
注意
virtual void bytertc::IRtcEngine::unsubscribeStream(
const char *user_id,
MediaStreamType type)
取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 指定取消订阅的远端发布音视频流的用户 ID。 |
| type | MediaStreamType | 媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。 |
注意
virtual void bytertc::IRtcEngine::subscribeScreen(
const char *user_id,
MediaStreamType type)
订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 指定订阅的远端发布屏幕流的用户 ID。 |
| type | MediaStreamType | 媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。 |
注意
virtual void bytertc::IRtcEngine::unsubscribeScreen(
const char *user_id,
MediaStreamType type)
取消订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 指定取消订阅的远端发布屏幕流的用户 ID。 |
| type | MediaStreamType | 媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。 |
注意
virtual void bytertc::IRtcEngine::unsubscribe(
const char* user_id,
bool is_screen)
停止订阅指定的房间内远端音视频流。
关闭自动订阅功能,使用手动订阅模式时用户调用此方法停止订阅已订阅的音视频流。
此方法仅在关闭自动订阅功能时生效。用户需在加入房间时设置 config 关闭自动订阅功能以使用手动订阅模式。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 指定停止订阅的远端音视频流的用户的ID。 |
| is_screen | bool | 指定停止的流是不是屏幕流。 |
注意
virtual void bytertc::IRtcEngine::setRemoteAudioPlaybackVolume(
const char* user_id,
int volume)
调节来自远端用户的音频播放音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 音频来源的远端用户 ID |
| volume | int | 播放音量,取值范围: [0,400] • 0: 静音 • 100: 原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护) |
virtual void bytertc::IRtcEngine::pauseAllSubscribedStream(
PauseResumeControlMediaType media_type)
暂停接收来自远端的媒体流。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| media_type | PauseResumeControlMediaType | 媒体流类型,指定需要暂停接收音频还是视频流,参看 PauseResumeControlMediaType。 |
注意
virtual void bytertc::IRtcEngine::resumeAllSubscribedStream(
PauseResumeControlMediaType media_type)
恢复接收来自远端的媒体流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| media_type | PauseResumeControlMediaType | 媒体流类型,指定需要暂停接收音频还是视频流,参看 PauseResumeControlMediaType |
注意
virtual void bytertc::IRtcEngine::setMultiDeviceAVSync(
const char* audio_user_id)
设置发流端音画同步。
当同一用户同时使用两个通话设备分别采集发送音频和视频时,有可能会因两个设备所处的网络环境不一致而导致发布的流不同步,此时你可以在视频发送端调用该接口,SDK 会根据音频流的时间戳自动校准视频流,以保证接收端听到音频和看到视频在时间上的同步性。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_user_id | const char* | 音频发送端的用户 ID,将该参数设为空则可解除当前音视频的同步关系。 |
注意
audio_user_id 即可;如需更换同步视频源,需先解除当前的同步关系,后在新视频源端开启同步。
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 接收转推直播相关的回调。 |
注意
virtual void bytertc::IRtcEngine::stopLiveTranscoding(
const char* task_id)
停止转推直播。
关于启动转推直播,参看 startLiveTranscoding}。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| task_id | const char* | 转推直播任务 ID。可以指定想要停止的转推直播任务。 |
virtual void bytertc::IRtcEngine::updateLiveTranscoding(
const char* task_id,
ITranscoderParam* param)
更新转推直播参数。
使用 startLiveTranscoding} 启用转推直播功能后,使用此方法更新功能配置参数。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| task_id | const char* | 转推直播任务 ID。指定想要更新参数设置的转推直播任务。 |
| param | ITranscoderParam* | 配置参数,参看 ITranscoderParam。 |
virtual int bytertc::IRtcEngine::startForwardStreamToRooms(
const ForwardStreamConfiguration& configuration)
开始跨房间转发媒体流。
在用户进入房间后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| configuration | const ForwardStreamConfiguration& | 跨房间媒体流转发指定房间的信息。参看 ForwardStreamConfiguration。 |
返回值
0: 方法调用成功
<0: 方法调用失败
注意
virtual int bytertc::IRtcEngine::updateForwardStreamToRooms(
const ForwardStreamConfiguration& configuration)
更新跨房间媒体流转发信息。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。
调用本方法增加或删减房间后,将在本端触发 onForwardStreamStateChanged 回调,包含发生了变动的目标房间中媒体流转发状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| configuration | const ForwardStreamConfiguration& | 跨房间媒体流转发目标房间信息。参看 ForwardStreamConfiguration。 |
返回值
0: 方法调用成功
<0: 方法调用失败
注意
virtual void bytertc::IRtcEngine::stopForwardStreamToRooms()
停止跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法停止向所有目标房间转发媒体流。
注意
virtual void bytertc::IRtcEngine::pauseForwardStreamToAllRooms()
暂停跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法暂停向所有目标房间转发媒体流。 调用本方法暂停向所有目标房间转发后,你可以随时调用 resumeForwardStreamToAllRooms 快速恢复转发。
注意 调用本方法后,目标房间中的用户将接收到本地用户停止发布 onUserUnPublishStream/onUserUnPublishScreen 和退房 onUserLeave 的回调。
virtual void bytertc::IRtcEngine::resumeForwardStreamToAllRooms()
恢复跨房间媒体流转发。 调用 pauseForwardStreamToAllRooms 暂停转发之后,调用本方法恢复向所有目标房间转发媒体流。
注意 目标房间中的用户将接收到本地用户进房 onUserJoined 和发布 onUserPublishStream/onUserPublishScreen 的回调。
virtual int bytertc::IRtcEngine::startPushPublicStream(
const char* public_stream_id,
IPublicStreamParam* param)
发布一路公共流
公共流是指不属于任何房间,也不属于任何用户的媒体流。使用同一 appID 的用户,可以调用 startPlayPublicStream 获取和播放指定的公共流。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| public_stream_id | const char* | 公共流 ID |
| param | IPublicStreamParam* | 公共流参数。详见 IPublicStreamParam。 一路公共流可以包含多路房间内的媒体流,按照指定的布局方式进行聚合。 如果指定的媒体流还未发布,则公共流将在指定流开始发布后实时更新。 |
返回值
注意
virtual int bytertc::IRtcEngine::stopPushPublicStream(
const char* public_stream_id)
停止发布当前用户发布的公共流
关于发布公共流,查看 startPushPublicStream。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| public_stream_id | const char* | 公共流 ID 指定的流必须为当前用户所发布。 |
返回值
virtual int bytertc::IRtcEngine::updatePublicStreamParam(
const char* public_stream_id,
IPublicStreamParam* param)
更新公共流参数
关于发布公共流,查看 startPushPublicStream。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| public_stream_id | const char* | 公共流 ID |
| param | IPublicStreamParam* | 公共流参数。详见 IPublicStreamParam。 指定的流必须为当前用户所发布的。 |
返回值
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 秒。 |
返回值 方法调用结果:
注意
kWarningCodeInEchoTestMode。
virtual int bytertc::IRtcEngine::stopEchoTest()
停止音视频回路测试。
调用 startEchoTest 开启音视频回路检测后,你必须调用该方法停止检测。
返回值 方法调用结果:
注意 音视频回路检测结束后,所有对系统设备及音视频流的控制均会恢复到开始检测前的状态。
virtual void bytertc::IRtcEngine::startCloudProxy(
const CloudProxyConfiguration& configuration)
开启云代理
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| configuration | const CloudProxyConfiguration& | 云代理服务器信息列表。参看 CloudProxyConfiguration。 |
注意
virtual void bytertc::IRtcEngine::stopCloudProxy()
关闭云代理
注意 要开启云代理,调用 startCloudProxy}。
class bytertc::IRangeAudio
范围语音接口实例
Defined in : bytertc_range_audio_interface.h
| 返回 | 名称 |
|---|---|
| virtual void | enableRangeAudio |
| virtual int | updateReceiveRange |
| virtual int | updatePosition |
| virtual void | registerRangeAudioObserver |
virtual void bytertc::IRangeAudio::enableRangeAudio(
bool enable)
开启/关闭范围语音功能。
范围语音是指,在同一 RTC 房间中设定的音频接收距离范围内,本地用户收听到的远端用户音频音量会随着远端用户的靠近/远离而放大/衰减;若远端用户在房间内的位置超出设定范围,则本地用户无法接收其音频。音频接收范围设置参看 updateReceiveRange。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | 是否开启范围语音功能: • true: 开启 • false: 关闭(默认) |
注意 该方法进房前后都可调用,为保证进房后范围语音效果的平滑切换,你需在该方法前先调用 updatePosition 设置自身位置坐标,然后开启该方法收听范围语音效果。
virtual int bytertc::IRangeAudio::updateReceiveRange(
const ReceiveRange &range)
更新本地用户的音频收听范围。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| range | const ReceiveRange & | 音频收听范围,参看 ReceiveRange。 |
返回值 方法调用结果:
注意 若此前你已调用 registerRangeAudioObserver 注册了范围语音衰减系数监测器,房间内有任何用户调用该接口更新音频收听范围后,你都会收到 onRangeAudioInfo 回调。
virtual int bytertc::IRangeAudio::updatePosition(
const Position &pos)
更新本地用户在房间内空间直角坐标系中的位置坐标。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| pos | const Position & | 三维坐标的值,默认为 [0, 0, 0],参看 Position。 |
返回值 方法调用结果:
注意
virtual void bytertc::IRangeAudio::registerRangeAudioObserver(
IRangeAudioObserver* observer)
设置范围语音衰减系数监测器。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | IRangeAudioObserver* | 范围语音衰减系数监测器。 设置后,SDK 会在监测到房间内有用户更新自身位置坐标或音频收听范围后,触发 onRangeAudioInfo 回调。具体参看 IRangeAudioObserver。 |
注意 该方法仅适用于手动订阅模式,自动订阅无需设置。
class bytertc::IScreenCaptureSourceList
屏幕共享对象信息列表 共享对象相关数据将在调用 release 后被释放。
Defined in : bytertc_rtcvideo_interface.h
| 返回 | 名称 |
|---|---|
| virtual int32_t | getCount |
| virtual ScreenCaptureSourceInfo | getSourceInfo |
| virtual void | release |
virtual int32_t bytertc::IScreenCaptureSourceList::getCount()
获取列表长度
返回值 可共享对象数量
virtual ScreenCaptureSourceInfo bytertc::IScreenCaptureSourceList::getSourceInfo(
int32_t index)
根据索引号,获取屏幕共享列表中的元素
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | int32_t | 列表索引号 |
返回值 屏幕源类型信息,详见 ScreenCaptureSourceInfo。
virtual void bytertc::IScreenCaptureSourceList::release()
IScreenCaptureSourceList 使用结束后,调用本接口删除对象,清空和释放内存。
class bytertc::ISpatialAudio
空间音频接口实例
Defined in : bytertc_spatial_audio_interface.h
| 返回 | 名称 |
|---|---|
| virtual void | enableSpatialAudio |
| virtual int | updatePosition |
| virtual int | updateSelfOrientation |
| virtual void | disableRemoteOrientation |
virtual void bytertc::ISpatialAudio::enableSpatialAudio(
bool enable)
开启/关闭空间音频功能。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | 是否开启空间音频功能: • true:开启 • false:关闭(默认) |
注意 该方法仅开启空间音频功能,你须调用 updatePosition 设置自身位置坐标后方可收听空间音频效果。空间音频相关 API 和调用时序详见空间音频。
virtual int bytertc::ISpatialAudio::updatePosition(
const Position& pos)
更新本地用户在房间内空间直角坐标系中的位置坐标。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| pos | const Position& | 三维坐标的值,默认为 [0, 0, 0]。参看 Position |
返回值
注意 调用该接口更新坐标前,你需调用 enableSpatialAudio 开启空间音频功能。空间音频相关 API 和调用时序详见空间音频。
virtual int bytertc::ISpatialAudio::updateSelfOrientation(
const HumanOrientation& orientation)
更新本地用户在空间音频坐标系下的朝向。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| orientation | const HumanOrientation& | 自身朝向信息,参看 HumanOrientation。 |
返回值 方法调用结果:
注意
virtual void bytertc::ISpatialAudio::disableRemoteOrientation()
参与通话的各端调用本接口后,将忽略远端用户的朝向,认为所有远端用户都面向本地用户。
如果此后调用 updateSelfOrientation 更新本地用户朝向,远端用户无法感知这些变化,但本地用户接收音频时可以感知自身朝向改变带来的音频效果变化。
注意
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 |
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* | 许可证文件绝对路径 |
返回值
注意 开始使用视频特效前,你必须先调用这个方法进行许可证验证
virtual int bytertc::IVideoEffect::getAuthMessage(
char ** ppmsg,
int * len)
从特效 SDK 获取授权消息,用于获取在线许可证。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| ppmsg | char** | 授权消息字符串地址 |
| len | int* | 授权消息字符串的长度 |
返回值
注意
使用视频特效的功能前,你必须获取特效 SDK 的在线许可证。
通过此接口获取授权消息后,你必须参考 在线授权说明。
自行实现获取在线许可证的业务逻辑。获取许可证后,你必须调用 checkLicense 确认许可证有效。然后,你才可以使用 CV 功能。
获取授权消息后,调用 freeAuthMessage 释放内存。
virtual int bytertc::IVideoEffect::freeAuthMessage(
char * pmsg)
使用完授权消息字符串后,释放内存。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| pmsg | char* | getAuthMessage 返回的授权消息字符串。 |
返回值
virtual int bytertc::IVideoEffect::enableEffect(
bool enabled)
开启关闭视频特效
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enabled | bool | 是否开启特效,true: 开启,false: 关闭 |
返回值
注意 在调用CheckLicensecheckLicense和SetAlgoModelPathsetAlgoModelPath后调用此方法
virtual void bytertc::IVideoEffect::setAlgoModelPath(
const char* modelPath)
设置视频特效算法模型路径
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| modelPath | const char* | 模型路径 |
virtual int bytertc::IVideoEffect::setEffectNodes(
const char** effectNodePaths,
int nodeNum)
设置视频特效素材包
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectNodePaths | const char** | 特效素材包路径数组 要取消当前视频特效,将此参数设置为 null。 |
| nodeNum | int | 特效素材包个数 |
返回值
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],超出范围时设置无效。 |
返回值
virtual int bytertc::IVideoEffect::setColorFilter(
const char* resPath)
设置颜色滤镜
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| resPath | const char* | 滤镜资源包绝对路径。 |
返回值
virtual int bytertc::IVideoEffect::setColorFilterIntensity(
float intensity)
设置已启用颜色滤镜的强度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| intensity | float | 滤镜强度。取值范围 [0,1],超出范围时设置无效。 |
返回值
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* | 模型参数文件的绝对路径 |
返回值
virtual int bytertc::IVideoEffect::enableVirtualBackground(
const VirtualBackgroundSource& source)
开启虚拟背景。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| source | const VirtualBackgroundSource& | 虚拟背景对象,详见 VirtualBackgroundSource 。 |
返回值
注意
virtual int bytertc::IVideoEffect::disableVirtualBackground()
关闭虚拟背景。
返回值
注意 调用 enableVirtualBackground 开启虚拟背景后,可以调用此接口关闭虚拟背景。
virtual int bytertc::IVideoEffect::registerFaceDetectionObserver(
IFaceDetectionObserver * observer,
int interval_ms)
注册人脸检测结果回调观察者
注册此观察者后,你会周期性收到 onFaceDetectResult} 回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | IFaceDetectionObserver* | 人脸检测结果回调观察者,参看 IFaceDetectionObserver。 |
| interval_ms | int | 时间间隔。单位:ms。实际收到回调的时间间隔大于 interval,小于 interval • 视频采集帧间隔。 |
返回值
class bytertc::IVideoDeviceCollection
视频设备相关的信息
Defined in : bytertc_video_device_manager.h
| 返回 | 名称 |
|---|---|
| virtual int | getCount |
| virtual int | getDevice |
| virtual void | release |
| virtual int | getDevice |
virtual int bytertc::IVideoDeviceCollection::getCount() override
获取当前系统内视频设备数量
返回值 视频设备数量
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 |
返回值
virtual void bytertc::IVideoDeviceCollection::release()override
释放当前 IVideoDeviceCollection 对象占用的资源。
注意 不需要返回视频设备相关信息列表时应该调用本方法释放相关资源。
virtual int bytertc::IVideoDeviceCollection::getDevice(
int index,
VideoDeviceInfo* video_device_info)
根据索引号,获取设备信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | int | 设备索引号,从 0 开始,注意需小于 getCount 返回值。 |
| video_device_info | VideoDeviceInfo* | 设备信息 |
返回值
class bytertc::IVideoDeviceManager
主要用于枚举、设置视频采集设备
Defined in : bytertc_video_device_manager.h
| 返回 | 名称 |
|---|---|
| virtual IVideoDeviceCollection* | enumerateVideoCaptureDevices |
| virtual int | setVideoCaptureDevice |
| virtual int | getVideoCaptureDevice |
virtual IVideoDeviceCollection* bytertc::IVideoDeviceManager::enumerateVideoCaptureDevices()
获取当前系统内视频采集设备列表。
返回值 包含系统中所有视频采集设备的列表,参看 IVideoDeviceCollection。
virtual int bytertc::IVideoDeviceManager::setVideoCaptureDevice(
const char device_id[MAX_DEVICE_ID_LENGTH])
设置当前视频采集设备
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | const char | 视频设备 ID,可以通过 enumerateVideoCaptureDevices 获取 |
返回值
virtual int bytertc::IVideoDeviceManager::getVideoCaptureDevice(
char device_id[MAX_DEVICE_ID_LENGTH])
获取当前 SDK 正在使用的视频采集设备信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | char | 视频设备 ID |
返回值
class bytertc::IVideoProcessor
Defined in : bytertc_video_processor_interface.h
| 返回 | 名称 |
|---|---|
| virtual IVideoFrame* | processVideoFrame |
virtual IVideoFrame* bytertc::IVideoProcessor::processVideoFrame(
IVideoFrame* src_frame)
获取 RTC SDK 采集得到的视频帧,根据 registerLocalVideoProcessor} 设置的视频前处理器,进行视频前处理,最终将处理后的视频帧给到 RTC SDK 用于编码传输。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| src_frame | IVideoFrame* | RTC SDK 采集得到的视频帧,参看 IVideoFrame。 |
返回值 经过视频前处理后的视频帧,返回给 RTC SDK 供编码和传输,参看 IVideoFrame。
注意
class bytertc::IRTCRoom
房间接口
Defined in : bytertc_room_interface.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 |
virtual void bytertc::IRTCRoom::destroy()
退出并销毁调用 createRtcRoom} 所创建的房间。
virtual void bytertc::IRTCRoom::setUserVisibility(
bool enable)
设置用户可见性。默认可见。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | 设置用户是否对房间内其他用户可见: • true: 可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。 • false: 不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。 |
返回值
注意
kWarningCodePublishStreamForbiden 警告。
virtual void bytertc::IRTCRoom::setRTCRoomEventHandler(
IRTCRoomEventHandler* room_event_handler)
通过设置 IRTCRoom 对象的事件句柄,监听此对象对应的回调事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| room_event_handler | IRTCRoomEventHandler* | 参见 IRTCRoomEventHandler |
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。 |
返回值
注意
virtual void bytertc::IRTCRoom::leaveRoom()
离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
加入房间后,必须调用此方法结束通话,否则无法开始下一次通话。无论当前是否在房间内,都可以调用此方法。重复调用此方法没有负面影响。
此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 onLeaveRoom 回调通知。
注意
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} 重新加入房间。
virtual int64_t bytertc::IRTCRoom::sendUserMessage(
const char* uid,
const char* message,
MessageConfig config)
给房间内指定的用户发送文本消息(P2P)
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 消息接收用户的 ID |
| message | const char* | 发送的文本消息内容。 消息不超过 62KB。 |
| config | MessageConfig | 消息类型,参看 MessageConfig。 |
返回值 这次发送消息的编号,从 1 开始递增。
注意
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 开始递增。
注意
virtual int64_t bytertc::IRTCRoom::sendRoomMessage(
const char* message)
给房间内的所有其他用户发送广播消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| message | const char* | 用户发送的广播消息 消息不超过 62KB。 |
注意
virtual int64_t bytertc::IRTCRoom::sendRoomBinaryMessage(
int size,
const uint8_t* message)
给房间内的所有其他用户发送广播消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| size | int | 发送的二进制消息长度 |
| message | const uint8_t* | 用户发送的二进制广播消息 消息不超过 46KB。 |
返回值 这次发送消息的编号,从 1 开始递增。
注意
virtual void bytertc::IRTCRoom::publishStream(
MediaStreamType type)
在当前所在房间内发布本地通过摄像头/麦克风采集的媒体流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | MediaStreamType | 媒体流类型,用于指定发布音频/视频,参看 MediaStreamType |
注意
virtual void bytertc::IRTCRoom::unpublishStream(
MediaStreamType type)
停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | MediaStreamType | 媒体流类型,用于指定停止发布音频/视频,参看 MediaStreamType |
注意
virtual void bytertc::IRTCRoom::publishScreen(
MediaStreamType type)
在当前所在房间内发布本地屏幕共享音视频流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | MediaStreamType | 媒体流类型,用于指定发布屏幕音频/视频,参看 MediaStreamType。 |
注意
virtual void bytertc::IRTCRoom::unpublishScreen(
MediaStreamType type)
停止将本地屏幕共享音视频流发布到当前所在房间中
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | MediaStreamType | 媒体流类型,用于指定停止发布屏幕音频/视频,参看 MediaStreamType |
注意
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。 |
注意
room_config 中的 remote_video_config 进行设置。
virtual void bytertc::IRTCRoom::subscribeStream(
const char *user_id,
MediaStreamType type)
订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 指定订阅的远端发布音视频流的用户 ID。 |
| type | MediaStreamType | 媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。 |
注意
virtual void bytertc::IRTCRoom::unsubscribeStream(
const char *user_id,
MediaStreamType type)
取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 指定取消订阅的远端发布音视频流的用户 ID。 |
| type | MediaStreamType | 媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。 |
注意
virtual void bytertc::IRTCRoom::subscribeScreen(
const char *user_id,
MediaStreamType type)
订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 指定订阅的远端发布屏幕流的用户 ID。 |
| type | MediaStreamType | 媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。 |
注意
virtual void bytertc::IRTCRoom::unsubscribeScreen(
const char *user_id,
MediaStreamType type)
取消订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 指定取消订阅的远端发布屏幕流的用户 ID。 |
| type | MediaStreamType | 媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。 |
注意
virtual void bytertc::IRTCRoom::pauseAllSubscribedStream(
PauseResumeControlMediaType media_type)
暂停接收来自远端的媒体流。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| media_type | PauseResumeControlMediaType | 媒体流类型,指定需要暂停接收音频还是视频流,参看 PauseResumeControlMediaType。 |
注意
virtual void bytertc::IRTCRoom::resumeAllSubscribedStream(
PauseResumeControlMediaType media_type)
恢复接收来自远端的媒体流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| media_type | PauseResumeControlMediaType | 媒体流类型,指定需要暂停接收音频还是视频流,参看 PauseResumeControlMediaType |
注意
virtual void bytertc::IRTCRoom::setMultiDeviceAVSync(
const char* audio_user_id)
设置发流端音画同步。
当同一用户同时使用两个通话设备分别采集发送音频和视频时,有可能会因两个设备所处的网络环境不一致而导致发布的流不同步,此时你可以在视频发送端调用该接口,SDK 会根据音频流的时间戳自动校准视频流,以保证接收端听到音频和看到视频在时间上的同步性。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_user_id | const char* | 音频发送端的用户 ID,将该参数设为空则可解除当前音视频的同步关系。 |
注意
audio_user_id 即可;如需更换同步视频源,需先解除当前的同步关系,后在新视频源端开启同步。
virtual int bytertc::IRTCRoom::startForwardStreamToRooms(
const ForwardStreamConfiguration& configuration)
开始跨房间转发媒体流。
在用户进入房间后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| configuration | const ForwardStreamConfiguration& | 跨房间媒体流转发指定房间的信息。参看 ForwardStreamConfiguration。 |
返回值
0: 方法调用成功
<0: 方法调用失败
注意
virtual int bytertc::IRTCRoom::updateForwardStreamToRooms(
const ForwardStreamConfiguration& configuration)
更新跨房间媒体流转发信息。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。
调用本方法增加或删减房间后,将在本端触发 onForwardStreamStateChanged 回调,包含发生了变动的目标房间中媒体流转发状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| configuration | const ForwardStreamConfiguration& | 跨房间媒体流转发目标房间信息。参看 ForwardStreamConfiguration。 |
返回值
0: 方法调用成功
<0: 方法调用失败
注意
virtual void bytertc::IRTCRoom::stopForwardStreamToRooms()
停止跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法停止向所有目标房间转发媒体流。
注意
virtual void bytertc::IRTCRoom::pauseForwardStreamToAllRooms()
暂停跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法暂停向所有目标房间转发媒体流。 调用本方法暂停向所有目标房间转发后,你可以随时调用 resumeForwardStreamToAllRooms 快速恢复转发。
注意 调用本方法后,目标房间中的用户将接收到本地用户停止发布 onUserUnPublishStream/onUserUnPublishScreen 和退房 onUserLeave 的回调。
virtual void bytertc::IRTCRoom::resumeForwardStreamToAllRooms()
恢复跨房间媒体流转发。 调用 pauseForwardStreamToAllRooms 暂停转发之后,调用本方法恢复向所有目标房间转发媒体流。
注意 目标房间中的用户将接收到本地用户进房 onUserJoined 和发布 onUserPublishStream/onUserPublishScreen 的回调。
virtual IRangeAudio* bytertc::IRTCRoom::getRangeAudio()
获取范围语音接口实例。
返回值 方法调用结果:
注意 首次调用该方法须在创建房间后、加入房间前。
virtual ISpatialAudio* bytertc::IRTCRoom::getSpatialAudio()
获取空间音频接口实例。
返回值 方法调用结果:
注意