| 返回 | 名称 |
|---|---|
| BYTERTC_API bool | SetHardWareEncodeContext |
| BYTERTC_API IVideoFrame* | BuildVideoFrame |
| BYTERTC_API bool | PushExternalVideoFrame |
| BYTERTC_API bytertc::IRtcEngine* | CreateRtcEngine |
| BYTERTC_API void | DestroyRtcEngine |
| BYTERTC_API const char* | GetErrorDescription |
| BYTERTC_API const char* | GetSDKVersion |
| BYTERTC_API int | Feedback |
BYTERTC_API bool bytertc::SetHardWareEncodeContext(
jobject j_hardware_encoder)
用于给编码器设置opengl context
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| hardware_encoder | jobject j_ | java的Opengl Context对象 |
返回值 true: 设置成功 false:设置失败
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 bytertc::IRtcEngine* bytertc::CreateRtcEngine(
const char* app_id,
bytertc::IRtcEngineEventHandler* event_handler,
const char* parameters)
创建 RTCEngine 实例。
创建 RTCEngine 实例后,你才可以使用 SDK 提供的其他能力。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| app_id | const char* | 每个应用的唯一标识符。只有使用相同的 app_id 生成的实例,才能够进行音视频通信。 |
| event_handler | bytertc::IRtcEngineEventHandler* | SDK 回调给应用层的 Callback 对象,详见 IRTCEngineEventHandlerIRtcEngineEventHandler 。 |
| parameters | const char* | 保留参数 |
返回值 可用的 IRtcEngine 实例。
注意
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 int bytertc::Feedback(
const char* data)
本次通话质量打分评价
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| data | const char* | 上报的数据,JSON格式,必须包含以下5个字段: grade: 打分 1~5 type: 反馈问题集合可多选,参考 ProblemFeedbackOption problem_desc: 其他问题描述 os_version: 系统版本 network_type: 网络类型, WiFi, 2g, 3g, 4g, 5g, 台式机填pc |
返回值
class bytertc::IVideoStream
视频流信息
Defined in : bytertc_advance.h
| 返回 | 名称 |
|---|---|
| virtual | ~IVideoStream |
| virtual VideoCodecType | codec_type |
| virtual void | set_codec_type |
| virtual int64_t | timestamp_us |
| virtual void | set_timestamp_us |
| virtual int64_t | timestamp_pts |
| virtual void | set_timestamp_pts |
| virtual int64_t | timestamp_dts |
| virtual void | set_timestamp_dts |
| virtual int | timebase_num |
| virtual void | set_timestamp_num |
| virtual int | timebase_den |
| virtual void | set_timestamp_den |
| virtual int | width |
| virtual void | set_width |
| virtual int | height |
| virtual void | set_height |
| virtual VideoPictureType | picture_type |
| virtual void | set_picture_type |
| virtual VideoRotation | rotation |
| virtual void | set_rotation |
| virtual void | set_stream_memory |
| virtual uint8_t* | data |
| virtual int | data_size |
virtual bytertc::IVideoStream::~IVideoStream()
析构函数
virtual VideoCodecType bytertc::IVideoStream::codec_type() const
获取视频编码类型
返回值 [out] VideoCodecType 视频编码类型 VideoCodecType:VideoCodecType
virtual void bytertc::IVideoStream::set_codec_type(
VideoCodecType codec_type)
设置视频编码类型
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| VideoCodecType | **** | 视频编码类型 VideoCodecType:VideoCodecType |
virtual int64_t bytertc::IVideoStream::timestamp_us() const
获取视频采集时间戳
返回值 视频采集时间戳,单位:微秒
virtual void bytertc::IVideoStream::set_timestamp_us(
int64_t timestamp_us)
设置视频帧采集时间戳
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| timestamp_us | int64_t | 视频采集时间戳,单位:微秒 |
virtual int64_t bytertc::IVideoStream::timestamp_pts() const
获取视频显示时间戳
返回值 视频显示时间戳,单位:微秒
virtual void bytertc::IVideoStream::set_timestamp_pts(
int64_t timestamp_pts)
设置视频显示时间戳
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| timestamp_pts | int64_t | 视频显示时间戳,单位:微秒 |
virtual int64_t bytertc::IVideoStream::timestamp_dts() const
获取视频解码时间戳
返回值 视频解码时间戳,单位:微秒
virtual void bytertc::IVideoStream::set_timestamp_dts(
int64_t timestamp_dts)
设置视频解码时间戳
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| timestamp_dts | int64_t | 视频解码时间戳,单位:微秒 |
virtual int bytertc::IVideoStream::timebase_num() const
获取时间基分子
返回值 时间基分子
virtual void bytertc::IVideoStream::set_timestamp_num(
int timebase_num)
设置时间基分子
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| timebase_num | int | 时间基分子 |
virtual int bytertc::IVideoStream::timebase_den() const
获取时间基分母
返回值 时间基分母
virtual void bytertc::IVideoStream::set_timestamp_den(
int timebase_den)
设置时间基分母
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| timebase_den | int | 时间基分母 |
virtual int bytertc::IVideoStream::width() const
获取视频分辨率的宽度
返回值 视频分辨率宽度
virtual void bytertc::IVideoStream::set_width(
int width)
设置视频分辨率的宽
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| width | int | 视频宽度 |
virtual int bytertc::IVideoStream::height() const
获取视频高度
返回值 视频分辨率高度
virtual void bytertc::IVideoStream::set_height(
int height)
设置视频高度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| height | int | 视频分辨率高度 |
virtual VideoPictureType bytertc::IVideoStream::picture_type() const
获取视频编码格式
返回值 视频编码格式,详见 VideoPictureType
virtual void bytertc::IVideoStream::set_picture_type(
VideoPictureType type)
设置视频编码格式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| VideoPictureType | **** | 视频编码格式,详见 VideoPictureType |
virtual VideoRotation bytertc::IVideoStream::rotation() const
获取视频帧旋转角度
返回值 视频旋转角度,详见 VideoRotation
virtual void bytertc::IVideoStream::set_rotation(
VideoRotation rotation)
设置视频帧旋转角度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| VideoRotation | **** | 视频旋转角度,详见 VideoRotation |
virtual void bytertc::IVideoStream::set_stream_memory(
const ManagedMemory& memory)
设置视频帧内存管理方式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| ManagedMemory | const | 视频帧内存管理信息,详见 ManagedMemory |
virtual uint8_t* bytertc::IVideoStream::data() const
获取视频数据指针地址
返回值 视频数据指针地址
virtual int bytertc::IVideoStream::data_size() const
获取视频数据大小
返回值 视频数据大小
class bytertc::IEncryptHandler
加密/解密处理函数
Defined in : bytertc_defines.h
| 返回 | 名称 |
|---|---|
| virtual unsigned int | OnEncryptData |
| virtual unsigned int | OnDecryptData |
virtual unsigned int bytertc::IEncryptHandler::OnEncryptData(
const unsigned char* data,
unsigned int length,
unsigned char* buf,
unsigned int buf_len)
自定义加密。
使用设定的自定义加密方式,对传输前的音视频帧数据进行加密。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| data | const unsigned char* | 原始音视频帧数据 |
| length | unsigned int | 原始音视频帧数据的长度 |
| buf | unsigned char* | 可供写入的加密后数据缓冲区 |
| buf_len | unsigned int | 可供写入的加密后数据缓冲区大小 |
返回值 加密后的数据
注意
virtual unsigned int bytertc::IEncryptHandler::OnDecryptData(
const unsigned char* data,
unsigned int length,
unsigned char* buf,
unsigned int buf_len)
自定义解密。
对自定义加密后的音视频帧数据进行解密。关于自定义加密,参看 OnEncryptData。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| data | const unsigned char* | 原始音视频帧数据 |
| length | unsigned int | 原始音视频帧数据的长度 |
| buf | unsigned char* | 可供写入的加密后数据缓冲区 |
| buf_len | unsigned int | 可供写入的加密后数据缓冲区大小 |
返回值 加密后的数据
注意
class bytertc::IDeviceCollection
音视频设备相关的信息
Defined in : bytertc_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()
释放当前 IDeviceCollection 对象占用的资源。
注意 不需要返回音视频设备相关信息列表时应该调用本方法释放相关资源。
class bytertc::IVideoDeviceManager
主要用于枚举、设置视频采集设备
Defined in : bytertc_device_manager.h
| 返回 | 名称 |
|---|---|
| virtual IDeviceCollection* | EnumerateVideoCaptureDevices |
| virtual int | SetVideoCaptureDevice |
| virtual int | GetVideoCaptureDevice |
virtual IDeviceCollection* bytertc::IVideoDeviceManager::EnumerateVideoCaptureDevices()
获取当前系统内视频采集设备列表。
返回值 包含系统中所有视频采集设备的列表,参看 IDeviceCollection。
virtual int bytertc::IVideoDeviceManager::SetVideoCaptureDevice(
const char device_id[MAX_DEVICE_ID_LENGTH])
设置当前视频采集设备
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | const char | 视频设备 ID,可以通过 EnumerateVideoCaptureDevicesEnumerateVideoCaptureDevice 获取 |
返回值
virtual int bytertc::IVideoDeviceManager::GetVideoCaptureDevice(
char device_id[MAX_DEVICE_ID_LENGTH])
获取当前 SDK 正在使用的视频采集设备信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | char | 视频设备 ID |
返回值
class bytertc::IAudioDeviceManager
音频设备管理类
Defined in : bytertc_device_manager.h
| 返回 | 名称 |
|---|---|
| virtual IDeviceCollection* | EnumerateAudioPlaybackDevices |
| virtual IDeviceCollection* | EnumerateAudioCaptureDevices |
| 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 | StartAudioPlaybackDeviceTest |
| virtual int | StopAudioPlaybackDeviceTest |
| virtual int | StartAudioCaptureDeviceTest |
| virtual int | StopAudioCaptureDeviceTest |
| virtual int | StartAudioDeviceLoopbackTest |
| virtual int | StopAudioDeviceLoopbackTest |
| virtual int | InitAudioPlaybackDeviceForTest |
| virtual int | InitAudioCaptureDeviceForTest |
virtual IDeviceCollection* bytertc::IAudioDeviceManager::EnumerateAudioPlaybackDevices()
获取当前系统内音频播放设备列表。如果后续设备有变更,你会收到 OnMediaDeviceStateChanged 回调通知,然后需要重新调用本接口以获得新的设备列表。
返回值 包含系统中所有音频播放设备的列表,参看 IDeviceCollection。
virtual IDeviceCollection* bytertc::IAudioDeviceManager::EnumerateAudioCaptureDevices()
获取当前系统内音频采集设备列表。如果后续设备有变更,你需要重新调用本接口以获得新的设备列表。
返回值 一个包含系统中所有音频采集设备列表的对象,详见 IDeviceCollection。
注意 当不再使用返回的对象时,你需要调用 Release 进行释放。
virtual int bytertc::IAudioDeviceManager::SetAudioPlaybackDevice(
const char device_id[MAX_DEVICE_ID_LENGTH])
设置音频播放设备。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | const char | 音频播放设备 ID,可通过 EnumerateAudioPlaybackDevices 获取。 |
返回值 方法调用结果
virtual int bytertc::IAudioDeviceManager::SetAudioCaptureDevice(
const char device_id[MAX_DEVICE_ID_LENGTH])
设置音频采集设备。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| device_id | const char | 音频采集设备 ID,可通过 EnumerateAudioCaptureDevices 获取。 |
返回值 方法调用结果
virtual int bytertc::IAudioDeviceManager::SetAudioPlaybackDeviceVolume(
unsigned int volume)
设置当前音频播放设备音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | unsigned int | 音频播放设备音量,取值范围为 [0,255], 超出此范围设置无效。 |
返回值 方法调用结果
virtual int bytertc::IAudioDeviceManager::GetAudioPlaybackDeviceVolume(
unsigned int* volume)
获取当前音频播放设备音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | unsigned int* | 音频播放设备音量,范围应在 [0,255] 内。 |
返回值 方法调用结果
virtual int bytertc::IAudioDeviceManager::SetAudioCaptureDeviceVolume(
unsigned int volume)
设置当前音频采集设备音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | unsigned int | 音频采集设备音量,取值范围为 [0,255], 超出此范围设置无效。 |
返回值 方法调用结果
virtual int bytertc::IAudioDeviceManager::GetAudioCaptureDeviceVolume(
unsigned int* volume)
获取当前音频采集设备音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | unsigned int* | 音频采集设备音量,范围应在 [0,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::StartAudioPlaybackDeviceTest(
const char* test_audio_file_path)
启动音频播放设备测试。
该方法测试播放设备是否能正常工作。SDK 播放指定的音频文件,测试者如果能听到声音,说明播放设备能正常工作。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| test_audio_file_path | const char* | 音频文件的绝对路径,路径字符串使用 UTF-8 编码格式,支持以下音频格式: mp3,aac,m4a,3gp,wav。 |
返回值 方法调用结果
注意
virtual int bytertc::IAudioDeviceManager::StopAudioPlaybackDeviceTest()
停止音频播放设备测试。
返回值 方法调用结果
注意 调用 StartAudioPlaybackDeviceTest 后,需调用本方法停止测试。
virtual int bytertc::IAudioDeviceManager::StartAudioCaptureDeviceTest(
int indication_interval)
启动音频采集设备测试。
该方法测试音频采集设备是否能正常工作。启动测试后,会收到 OnAudioVolumeIndication 回调上报的音量信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| indication_interval | int | OnAudioVolumeIndication 回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。最小不得少于 10 毫秒。小于10 毫秒行为未定义。 |
返回值 方法调用结果
注意
virtual int bytertc::IAudioDeviceManager::StopAudioCaptureDeviceTest()
停止音频采集设备测试。
返回值 方法调用结果
注意 调用 StartAudioCaptureDeviceTest 后,需调用本方法停止测试。
virtual int bytertc::IAudioDeviceManager::StartAudioDeviceLoopbackTest(
int indication_interval)
开始音频设备回路测试。
该方法测试音频采集设备和音频播放设备是否能正常工作。一旦测试开始,音频采集设备会采集本地声音
并通过音频播放设备播放出来,同时用户 App 会收到 OnAudioVolumeIndication
回调上报的音量信息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| indication_interval | int | OnAudioVolumeIndication 回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。最小不得少于 10 毫秒。小于 10 毫秒行为未定义。 |
返回值 方法调用结果
注意
virtual int bytertc::IAudioDeviceManager::StopAudioDeviceLoopbackTest()
停止音频设备回路测试。
返回值 方法调用结果
注意 调用 StartAudioDeviceLoopbackTest 后,需调用本方法停止测试。
virtual int bytertc::IAudioDeviceManager::InitAudioPlaybackDeviceForTest(
const char deviceId[MAX_DEVICE_ID_LENGTH])
尝试初始化音频播放设备,可检测出设备不存在、权限被拒绝/禁用等异常问题。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | const char deviceId[MAX_DEVICE_ID_LENGTH] | 设备索引号 |
返回值 设备状态错误码
注意 1. 该接口需在进房前调用; 2. 检测成功不代表设备一定可以启动成功,还可能因设备被其他应用进程独占,或 CPU/内存不足等原因导致启动失败。
virtual int bytertc::IAudioDeviceManager::InitAudioCaptureDeviceForTest(
const char deviceId[MAX_DEVICE_ID_LENGTH])
尝试初始化音频采集设备,可检测设备不存在、权限被拒绝/禁用等异常问题。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | const char deviceId[MAX_DEVICE_ID_LENGTH] | 设备索引 |
返回值 设备状态错误码
注意 1. 该接口需在进房前调用; 2. 检测成功不代表设备一定可以启动成功,还可能因设备被其他应用进程独占,或 CPU/内存不足等原因导致启动失败。
class bytertc::IRtcEngine
引擎API IRtcEngine用IRtcEngineEventHandler 注册接口类方法向应用程序发送回调通知
Defined in : bytertc_engine_interface.h
| 返回 | 名称 |
|---|---|
| virtual int | JoinRoom |
virtual int bytertc::IRtcEngine::JoinRoom(
const char* token,
const char* room_id,
const UserInfo& user_info,
RoomProfileType profile_type)
加入房间。用户调用此方法加入房间,同一房间内的用户间可以相互通话。
进房后重复调用无效,用户必须调用 LeaveRoom 退出当前房间后,才能加入下一个房间。
本地用户调用此方法加入房间成功后,会收到 OnJoinRoomResult 回调通知,远端用户会收到 OnUserJoined 回调通知。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| token | const char* | 动态密钥,用于对登录用户进行鉴权验证。 进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在您的服务端生成并下发 Token。 |
| room_id | const char* | 加入的房间 ID。 房间 ID 为长度在 128 字节以内的非空字符串,支持以下字符集范围: 1. 26 个大写字母 A ~ Z 。 2. 26 个小写字母 a ~ z 。 3. 10 个数字 0 ~ 9 。 4. 下划线 "_",at 符 "@",减号 "-"。 |
| user_info | const UserInfo& | 用户信息,参看 UserInfo。 |
| profile_type | RoomProfileType | 房间模式。 你应该根据业务需要,选择合适的房间模式。 你必须在进房前设置房间模式,并且进房后不可更改。 房间模式参看 RoomProfileType。 |
返回值
注意
class bytertc::IRtcEngineLite
引擎 API
Defined in : bytertc_engine_lite_interface.h
virtual void bytertc::IRtcEngineLite::SetRecordingVolume(
const int volume)
调节音频采集音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | const int | 音频采集音量,取值范围: [0,400] • 0: 静音 • 100: 原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护) |
注意 为保证更好的通话质量,建议将 volume 值设为 [0,100]。
virtual void bytertc::IRtcEngineLite::SetPlaybackVolume(
const int volume)
调节本地播放的所有远端用户混音后的音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | const int | 音频播放音量,取值范围: [0,400] • 0: 静音 • 100: 原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护) |
注意 为保证更好的通话质量,建议将 volume 值设为 [0,100]。
virtual void bytertc::IRtcEngineLite::StartMixScreenAudioToMainStream()
开启声卡采集,将声卡播放的音频流合到本地采集的音频流中。
如果你希望将声卡播放的声音传输到远端(比如屏幕共享等场景),你必须开启声卡采集。如此,声卡播放的声音会合到本地采集的音频流在中,一起发送到远端。
注意
virtual void bytertc::IRtcEngineLite::StopMixScreenAudioToMainStream()
关闭声卡采集,声卡播放的音频流不再合到本地采集的音频流中。
注意 如果需要开启声卡采集,请参看 StartMixScreenAudioToMainStream
virtual void bytertc::IRtcEngineLite::SetScreenAudioVolumeBeforeMixing(
int volume)
调节本地声卡采集音量。
开启本地声卡采集后,你可以使用此接口调节采集音量。
关于如何开启本地声卡采集,参考 StartMixScreenAudioToMainStream。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 声卡采集音量,取值范围: [0,400] • 0: 静音 • 100: 原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护) |
virtual void bytertc::IRtcEngineLite::StartAudioCapture()
开启内部音频采集。默认为关闭状态。
进房前调用该方法,本地用户会收到 OnMediaDeviceStateChanged 的回调。
进房后调用该方法,房间中的其他用户会收到 OnUserStartAudioCapture 的回调。
注意
virtual void bytertc::IRtcEngineLite::StopAudioCapture()
关闭内部音频采集。默认为关闭状态。
进房前调用该方法,本地用户会收到 OnMediaDeviceStateChanged 的回调。
进房后调用该方法后,房间中的其他用户会收到 OnUserStopAudioCapture 的回调。
注意
virtual void bytertc::IRtcEngineLite::MuteLocalAudio(
MuteState mute_state)
控制本地音频流的发送状态:发送/不发送
使用此方法后,房间中的其他用户会收到回调: OnUserMuteAudio
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute_state | MuteState | 发送状态,标识是否发送本地音频流,详见:MuteState |
注意 本方法仅控制本地音频流的发送状态,并不影响本地音频采集状态。
virtual void bytertc::IRtcEngineLite::EnableExternalAudioDevice(
const AudioFormat &recording_format,
const AudioFormat &playback_format)
启用自定义音频采集渲染
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| recording_format | const AudioFormat & | 自定义音频数据采集格式,详见 AudioFormat |
| playback_format | const AudioFormat & | 自定义音频数据渲染格式,详见 AudioFormat |
注意
virtual void bytertc::IRtcEngineLite::DisableExternalAudioDevice()
禁用已开启的自定义音频采集渲染,将音频采集渲染由自定义模块切换至内部模块。
注意
virtual void bytertc::IRtcEngineLite::SetAudioDeviceObserver(
IAudioDeviceObserver* obs)
启动音频外部源采集渲染时,添加音频外部设备事件监控
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| obs | IAudioDeviceObserver* | 音频外部设备事件监控,详见:IAudioDeviceObserver |
virtual bool bytertc::IRtcEngineLite::PushExternalAudioFrame(
int8_t* data,
int samples)
推送外部音频数据。使用 EnableExternalAudioDevice 启用自定义音频采集渲染后,可以使用本方法推送外部音频数据。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| data | int8_t* | pcm 数据,内存大小应该为 samples |
| samples | int | 采样点数量,应该为 EnableExternalAudioDevice 中设置的 record_format.sample_rate / 100。 当设置采样率为48000时, 每次应该推送480个采样点 |
返回值 方法调用结果
注意
virtual bool bytertc::IRtcEngineLite::PullExternalAudioFrame(
int8_t* data,
int samples)
拉取远端音频数据。使用 EnableExternalAudioDevice 启用自定义音频采集渲染后,可以使用本方法拉取远端音频数据。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| data | int8_t* | pcm 数据,内存大小应该为 samples |
| samples | int | 采样点数量,应该为 EnableExternalAudioDevice 中设置的 playback_format.sample_rate / 100。 当设置采样率为 48000 时, 每次应该拉取 480 个采样点 |
返回值 方法调用结果
注意
virtual int bytertc::IRtcEngineLite::StartAudioMixing(
const char* file_path,
bool loopback,
bool replace,
int cycle)
开始播放音乐文件及混音。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| file_path | const char* | 指定需要混音的本地文件的绝对路径。支持音频文件格式有: mp3,aac,m4a,3gp,wav。 |
| loopback | bool | • true: 只有本地可以听到混音或替换后的音频流。 • false: 本地和对方都可以听到混音或替换后的音频流 |
| replace | bool | • true: 只推送设置的本地音频文件,不传输麦克风采集的音频。 • false: 音频文件内容将会和麦克风采集的音频流进行混音 |
| cycle | int | 指定音频文件循环播放的次数。 • >0: 循环的次数。 • -1: 无限循环 |
返回值
注意
该方法可以选择是否让对方听到本地播放的音频,并指定循环播放的次数。 调用本方法播放音乐文件及混音结束后,应用会收到 OnAudioMixingFinished 回调。
开始播放音乐文件及混音后,可以调用 StopAudioMixing 方法停止播放音乐文件。
virtual void bytertc::IRtcEngineLite::StopAudioMixing()
停止播放音乐文件及混音
注意
调用 StartAudioMixing 方法开始播放音乐文件及混音后,调用该方法可以停止播放音乐文件及混音。
请在房间内调用该方法。
virtual int bytertc::IRtcEngineLite::PauseAudioMixing()
暂停播放音乐文件
返回值
注意
调用 StartAudioMixing 方法开始播放音乐文件及混音后,可以通过调用该方法暂停播放音乐文件。
调用该方法暂停播放音乐文件后,可调用 ResumeAudioMixing 方法恢复播放。
virtual int bytertc::IRtcEngineLite::ResumeAudioMixing()
恢复播放音乐文件
返回值
注意
virtual int bytertc::IRtcEngineLite::AdjustAudioMixingVolume(
int volume)
调节音乐文件的文件音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音乐文件播放音量范围为 0~400。 • 0:静音 • 100:原始音量 • 400: 最大可调音量 (自带溢出保护) |
返回值
注意
该方法对 AdjustAudioMixingPlayoutVolume 和 AdjustAudioMixingPublishVolume 的音量调节影响是乘积关系。
请在房间内调用该方法。
virtual int bytertc::IRtcEngineLite::AdjustAudioMixingPlayoutVolume(
int volume)
调节音乐文件的本地播放音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音乐文件播放音量范围为 0~400。 • 0:静音 • 100:原始音量 • 400: 最大可调音量 (自带溢出保护) |
返回值
注意
调用该方法可以调节混音的音乐文件在本地播放的音量大小。如果需要同时调节本地和远端播放音量可使用 AdjustAudioMixingVolume 方法。
请在房间内调用该方法。
virtual int bytertc::IRtcEngineLite::AdjustAudioMixingPublishVolume(
int volume)
调节音乐文件的远端播放音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音乐文件播放音量范围为 0~400。 • 0:静音 • 100:原始音量 • 400: 最大可调音量 (自带溢出保护) |
返回值
注意
该方法调节混音的音乐文件在远端播放的音量大小。如果需要同时调节本地和远端播放音量可使用 AdjustAudioMixingVolume 方法。
请在房间内调用该方法。
virtual int bytertc::IRtcEngineLite::GetAudioMixingDuration()
获取音乐文件时长
返回值
注意 请在房间内调用该方法。
virtual int bytertc::IRtcEngineLite::GetAudioMixingCurrentPosition()
获取音乐文件播放进度
返回值
注意 请在房间内调用该方法。
virtual int bytertc::IRtcEngineLite::SetAudioMixingPosition(
int pos)
设置音频文件的播放位置
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| pos | int | 整数。进度条位置,单位为毫秒。 |
返回值
注意 该方法可以设置音频文件的播放位置,这样你可以根据实际情况从指定的位置播放音乐文件,无需从头到尾完整播放一个音乐文件。
virtual int bytertc::IRtcEngineLite::GetEffectVolume(
int sound_id)
获取指定音效文件的文件音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性。确保此处的 sound_id 与 PlayEffect 设置的 sound_id 相同。 |
返回值
注意 请在房间内调用该方法。
virtual int bytertc::IRtcEngineLite::SetVolumeOfEffect(
int sound_id,
int volume)
调节指定音效文件的文件音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性。确保此处的 sound_id 与 PlayEffect 设置的 sound_id 相同。 |
| volume | int | 音乐文件播放音量范围为 0~400。默认 100 为原始文件音量 |
返回值
注意
virtual int bytertc::IRtcEngineLite::PlayEffect(
int sound_id,
const char* file_path,
bool loopback,
int cycle,
int volume)
开始播放指定音效文件。你可以在该方法中设置音效文件的播放次数、音量大小,以及远端用户是否能听到该音效。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性。如果已经通过 PreloadEffect 将音效加载至内存,确保此处的 sound_id 与 PreloadEffect 设置的 sound_id 相同。 |
| file_path | const char* | 指定需要混音的音频文件名和文件路径名。支持以下音频格式: mp3,aac,m4a,3gp,wav |
| loopback | bool | • true: 只有本地可以听到该音效。 • false: 本地和远端用户都可以听到该音效。 |
| cycle | int | 指定音频文件循环播放的次数。 • >0:循环的次数。 • -1:无限循环,直至调用 StopEffect 或 StopAllEffects 后停止。 |
| volume | int | 音效文件播放音量范围为 0~400。默认 100 为原始文件音量。 |
返回值
注意
可以多次调用该方法,通过传入不同的音效文件的 sound_id 和 file_path,以实现同时播放多个音效文件,实现音效叠加。
可以调用 StopEffect 方法停止播放指定音效文件。
virtual int bytertc::IRtcEngineLite::PreloadEffect(
int sound_id,
const char* file_path)
预加载指定音效文件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性。 |
| file_path | const char* | 指定需要混音的音频文件名和文件路径名。支持以下音频格式: mp3,aac,m4a,3gp,wav。 |
返回值
注意
+ 调用该方法预加载播放指定音效文件。预加载操作可以在进房间之前完成(所有混音相关接口,如果没有标注请在房间内调用都可在没有进入房间的时候调用)。如果音效文件很长,加载操作可能会耗时较长,建议应用开发者将预加载操作放在子线程进行。
该方法只是预加载播放指定音效文件,只有调用 PlayEffect 方法才开始播放指定音效文件。
该方法预加载指定音效文件可以通过 UnloadEffect 来卸载。
virtual int bytertc::IRtcEngineLite::UnloadEffect(
int sound_id)
卸载指定音效文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性。 |
返回值
注意
virtual int bytertc::IRtcEngineLite::StopEffect(
int sound_id)
停止播放指定音效文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性。如果已经通过 PreloadEffect 将音效加载至内存,确保此处的 sound_id 与 PreloadEffect 设置的 sound_id 相同。 |
返回值
注意
virtual int bytertc::IRtcEngineLite::PauseEffect(
int sound_id)
暂停播放指定音效文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性 |
返回值
注意 调用该方法暂停播放指定音效文件,可以调用 ResumeEffect 方法恢复播放。
virtual int bytertc::IRtcEngineLite::ResumeEffect(
int sound_id)
恢复播放指定音效文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sound_id | int | 音效ID,应用调用者维护,请保证唯一性。 |
返回值
注意
virtual void bytertc::IRtcEngineLite::SetEffectsVolume(
int volume)
调节所有音效文件的文件音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音乐文件播放音量范围为 0~400。默认 100 为原始文件音量。 |
注意
virtual void bytertc::IRtcEngineLite::StopAllEffects()
停止所有音效文件的播放
注意 该方法停止所有音效文件的播放。
virtual void bytertc::IRtcEngineLite::PauseAllEffects()
暂停所有音效文件的播放。
注意 调用该方法暂停所有音效文件的播放,可调用 ResumeAllEffects 方法恢复播放。
virtual void bytertc::IRtcEngineLite::ResumeAllEffects()
恢复所有音效文件的播放
注意
调用该方法恢复所有音效文件的播放。在调用 PauseAllEffects 暂停所有音效文件的播放后,可以调用该方法可恢复所有音效文件的播放。
调用 PauseEffect 方法暂停单个指定音效文件的播放后,也可以调用该方法恢复播放,但是效率太低,不推荐这么使用。
virtual void bytertc::IRtcEngineLite::UnloadAllEffects()
卸载所有音效文件
注意
virtual void bytertc::IRtcEngineLite::SetAudioPlayoutMixStream(
bool enable,
int sample_rate,
int channel_num)
启动/停止外部音频流混音, 并设置混音数据格式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | • true: 启用外部音频流混音。 • false: 停止外部音频流混音。 |
| sample_rate | int | 音频采样率,单位HZ。目前支持的采样率有:8000HZ, 16000HZ, 32000HZ, 44100HZ,48000HZ。 |
| channel_num | int | 音频声道个数。目前支持单通道(1),双通道(2) |
注意
调用该方法设置外部音频混音的PCM格式,即 PushAudioMixingStreamData 的 audio_frame 的音频数据格式。
调用该方法混音的数据来源外部缓存,且音频格式为PCM; StartAudioMixing 方法混音数据来源外部文件,且支持的文件格式有: mp3,aac,m4a,3gp,wav。这两种混音方式可以共存。
enable 为 false 时,停止外部音频流混音。 或者引擎释放时,SDK内部会停止混音。
virtual int bytertc::IRtcEngineLite::GetAudioMixingStreamCachedFrameNum()
获取SDK当前缓冲数据
返回值
注意 调用该方法可以实时获取缓存数据量,并以此数据为基准调整数据推送节奏来避免内存溢出
virtual bool bytertc::IRtcEngineLite::PushAudioMixingStreamData(
int8_t* audio_frame,
int frame_num)
向SDK推送混音的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_frame | int8_t* | PCM音频数据,其格式与 SetAudioPlayoutMixStream 保持一致。 |
| frame_num | int | 采样点数量,应该为 SetAudioPlayoutMixStream 中设置的 sample_rate / 100。 当设置采样率为48000时, 每次应该推送480个采样点 |
返回值
注意
调用该方法前,必须通过 SetAudioPlayoutMixStream 方法设置 audio_frame 的数据格式。
调用该方法前,先通过 GetAudioMixingStreamCachedFrameNum 获取缓存的数据量,并调整推送数据的节奏以避免内部缓存溢出导致推送失败。
使用参考建议:首次推送数据,请在应用侧先缓存一定数据(如 200 毫秒), 然后一次性推送过去;此后的推送操作定时 10 毫秒一次,并且每次的音频数据量为 10 毫秒数据量。
virtual void bytertc::IRtcEngineLite::StartVideoCapture()
开启内部视频采集。默认为关闭状态。
进房前调用该方法,本地用户会收到 OnMediaDeviceStateChanged 的回调。
进房后调用该方法后,房间中的其他用户会收到 OnUserStartVideoCapture 的回调。
注意
virtual void bytertc::IRtcEngineLite::StopVideoCapture()
关闭内部视频采集。默认为关闭状态。
进房前调用该方法,本地用户会收到 OnMediaDeviceStateChanged 的回调。
进房后调用该方法后,房间中的其他用户会收到 OnUserStopVideoCapture 的回调。
注意
virtual int bytertc::IRtcEngineLite::SetVideoEncoderConfig(
const VideoSolution* solutions,
int solution_num)
启动推送多路视频流,设置推送多路流时的各路视频参数, 包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| solutions | const VideoSolution* | 视频参数数组首地址。参看 VideoSolution。 |
| solution_num | int | 视频参数数组长度。 |
返回值
注意
virtual int bytertc::IRtcEngineLite::SetLocalVideoCanvas(
StreamIndex index,
const VideoCanvas& canvas)
设置本地视频渲染时,使用的视图,并设置渲染模式。
你应在加入房间前,绑定本地视图。退出房间后,此设置仍然有效。
如果需要解除绑定,你可以调用本方法绑定空视图。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 视频流属性, 参看 StreamIndex |
| canvas | const VideoCanvas& | 视图信息和渲染模式,参看:VideoCanvas |
返回值
virtual int bytertc::IRtcEngineLite::SetLocalVideoRender(
IVideoSink* sink)
设置本地视频渲染器 该方法设置本地视频外部渲染器。应用程序通过调用此接口绑定本地视频流的渲染器canvas。 在应用程序开发中,通常在初始化后调用该方法进行本地视频设置,然后再加入频道。退出频道后,绑定仍然有效, 如果需要解除绑定,可以指定空的VideoSink。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sink | IVideoSink* | 外部渲染器,详见:IVideoSink |
返回值
virtual int bytertc::IRtcEngineLite::SetLocalScreenRender(
IVideoSink* sink)
设置屏幕共享本地渲染器 该方法设置屏幕共享本地外部渲染器。应用通过调用此接口绑定本地屏幕共享流的渲染器 IVideoSink 。 在应用开发中,通常在初始化后调用该方法进行本地屏幕共享设置,然后再加入房间。退出房间后,绑定仍然有效, 如果需要解除绑定,可以指定空的 VideoSinkIVideoSink。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sink | IVideoSink* | 外部渲染器,详见:IVideoSink |
返回值 0 :成功;
-1 :失败;
virtual int bytertc::IRtcEngineLite::MuteLocalVideo(
MuteState muteState)
停止/启动发送本地视频流,默认不发送。
无论你使用 SDK 的视频采集编码功能,还是使用自定义采集功能,你都应使用此接口启动发送本地视频流。
调用该方法后,房间中的其他用户会收到 OnUserMuteVideo 的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| muteState | MuteState | 发送状态,标识是否发送本地音/视频流,参看 MuteState • true:停止发送 • false:开启发送 |
返回值
注意 本方法只是停止本地视频流的发送,不影响视频采集状态。
virtual int bytertc::IRtcEngineLite::SwitchCamera(
CameraID camera_id)
切换移动端前置/后置摄像头
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| Camera | **** | ID,移动端摄像头。参看 CameraID。 |
返回值
注意
virtual bool bytertc::IRtcEngineLite::PushScreenFrame(
IVideoFrame* frame)
发送屏幕共享本地视频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | IVideoFrame* | 设置屏幕视频帧,详见:IVideoFrame。 |
返回值
注意
virtual int bytertc::IRtcEngineLite::StartScreenCaptureByWindowId(
view_t window_id,
const Rectangle& region_rect,
const DesktopCaptureParameters& capture_params)
该方法共享一个窗口或该窗口的部分区域。用户需要在该方法中指定想要共享的窗口 id 。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| window_id | view_t | 指定待共享的窗口 id,详见:view_t |
| region_rect | const Rectangle& | 指定共享区域相对于整个窗口的位置,当值都为0时共享整个窗口,详见:Rectangle |
| capture_params | const DesktopCaptureParameters& | 屏幕共享的编码参数配置,详见:DesktopCaptureParameters |
返回值
注意
在收到 OnFirstRemoteVideoFrameRendered 事件后通过调用 SetRemoteVideoCanvas 或 SetRemoteScreenRender 函数来设置远端屏幕共享视图。
本地可调用 SetLocalVideoCanvas 或 SetLocalScreenRender 函数设置本地屏幕共享视图。
virtual int bytertc::IRtcEngineLite::StartScreenCaptureByScreenRect(
const Rectangle& screen_rect,
const Rectangle& region_rect,
const DesktopCaptureParameters& capture_params)
通过指定区域共享屏幕,共享一个屏幕或该屏幕的部分区域。用户需要在该方法中指定想要共享的屏幕区域。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| screen_rect | const Rectangle& | 指定待共享的屏幕相对于虚拟屏的位置,虚拟屏指所有屏幕组成的图像区域,详见:Rectangle |
| region_rect | const Rectangle& | 指定待共享区域相对于screen_rect的位置,详见:Rectangle |
| capture_params | const DesktopCaptureParameters& | 屏幕共享的编码参数配置,详见:DesktopCaptureParameters |
返回值
注意
在收到 OnFirstRemoteVideoFrameRendered 事件后通过调用 SetRemoteVideoCanvas 或 SetRemoteScreenRender 函数来设置远端屏幕共享视图。
本地可调用 SetLocalVideoCanvas 或 SetLocalScreenRender 函数设置本地屏幕共享视图。
virtual int bytertc::IRtcEngineLite::StartScreenCaptureByDisplayId(
unsigned int display_id,
const Rectangle& region_rect,
const DesktopCaptureParameters& capture_params)
通过屏幕 id 共享屏幕,共享一个屏幕或该屏幕的部分区域。用户需要在该方法中指定想要共享的屏幕 id 。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| display_id | unsigned int | 指定待共享的屏幕 id 。 |
| region_rect | const Rectangle& | 指定待共享区域相对于整个屏幕的位置,详见:Rectangle |
| capture_params | const DesktopCaptureParameters& | 屏幕共享的编码参数配置,详见:DesktopCaptureParameters |
返回值
注意 共享一个窗口或该窗口的部分区域。需要在该方法中指定想要共享的窗口 id 。
virtual int bytertc::IRtcEngineLite::UpdateScreenCaptureRegion(
const Rectangle& region_rect)
更新屏幕共享区域。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| region_rect | const Rectangle& | • 当共享屏幕时,指定待共享区域相对于虚拟屏幕的位置,详见:Rectangle • 当共享窗口时,指定待共享区域相对于整个窗口的位置,详见:Rectangle |
返回值
virtual int bytertc::IRtcEngineLite::UpdateScreenCaptureParameters(
const DesktopCaptureParameters& capture_params)
更新屏幕共享的编码参数配置。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| capture_params | const DesktopCaptureParameters& | 屏幕共享的编码参数配置,详见:DesktopCaptureParameters |
返回值
virtual void bytertc::IRtcEngineLite::StopScreenCapture()
停止屏幕或者窗口共享。
注意
本函数必须在 StartScreenCaptureByScreenRect 或者 StartScreenCaptureByWindowId 之后调用
本函数不可和 PublishScreen 、UnpublishScreen 混用。
virtual IScreenCaptureSourceList* bytertc::IRtcEngineLite::GetScreenCaptureSourceList()
获取共享对象(应用窗口和桌面)列表, 使用完之后需要调用对应的release接口释放
virtual IVideoFrame* bytertc::IRtcEngineLite::GetThumbnail(
ScreenCaptureSourceType type,
view_t source_id,
int max_width,
int max_height)
获取共享对象缩略图
virtual void bytertc::IRtcEngineLite::SetExternalVideoSource(
bool enable)
设置是否启用自定义视频采集
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | bool | • true: 开启 • false: 关闭 |
注意
virtual bool bytertc::IRtcEngineLite::PushExternalVideoFrame(
IVideoFrame* frame)
发送外部源视频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | IVideoFrame* | 设置视频帧,参看 IVideoFrame。 |
注意
virtual int bytertc::IRtcEngineLite::SetPublishFallbackOption(
PublishFallbackOption option)
设置发布的音视频流回退选项
你可以调用这个接口来设置网络情况不佳或设备性能不足时只发送小流,以保证通话质量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| option | PublishFallbackOption | 本地发布的音视频流回退选项 • 0:(默认)上行网络较弱或性能不佳时,不对音视频流作回退处理。 • 1:上行网络较弱或性能不佳时,只发送视频小流。 |
返回值
注意
virtual int bytertc::IRtcEngineLite::SetSubscribeFallbackOption(
SubscribeFallbackOption option)
设置订阅的音视频流回退选项
你可以通过调用该接口来设置网络情况不佳或性能不足时只订阅小流或音频流,以保证通话质量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| option | SubscribeFallbackOption | 远端订阅流回退处理选项,详见枚举类型 SubscribeFallbackOption |
返回值 0: 方法调用成功
注意
virtual int bytertc::IRtcEngineLite::SetRemoteUserPriority(
const char* user_id,
RemoteUserPriority priority)
设置用户优先级
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 远端用户的 ID |
| priority | RemoteUserPriority | 远端用户的需求优先级,详见枚举类型RemoteUserPriority |
返回值 0: 方法调用成功
注意
virtual int bytertc::IRtcEngineLite::SetBusinessId(
const char* business_id)
设置业务标识参数。
可通过 business_id 区分不同的业务场景(角色/策略等)。business_id 由客户自定义,相当于一个“标签”,
可以分担和细化现在 AppId 的逻辑划分的功能。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| business_id | const char* | 用户设置的自己的 business_id 值。business_id 相当于一个 sub AppId,可以分担和细化现在 AppId 的逻辑划分的功能, 但不需要鉴权。business_id 只是一个标签,颗粒度需要用户自定义。 |
返回值
注意
virtual int bytertc::IRtcEngineLite::ReplaceBackground(
BackgroundMode mode,
DivideMode divide_model)
开启背景并设置背景模式与分割模式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mode | BackgroundMode | 背景模式,参看 BackgroundMode。 |
| divide_model | DivideMode | 分割模型,参看 DivideMode。 |
返回值
virtual void bytertc::IRtcEngineLite::DisableBackground()
关闭背景
virtual void bytertc::IRtcEngineLite::SetLocalVideoMirrorMode(
MirrorMode mirrorMode)
设置采用前置摄像头采集时,是否开启镜像模式。
调用后,你会收到回调:OnMirrorStateChanged
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mirrorMode | MirrorMode | 是否开启镜像模式 |
virtual bool bytertc::IRtcEngineLite::GetLocalVideoMirrorMode()
获得当前本地镜像状态
返回值
virtual void bytertc::IRtcEngineLite::SetAudioPerformanceProfile(
AudioPerformanceProfile profile)
通过设置音频处理策略等级,获得不同的音频处理质量。默认使用 auto 模式。
此设置会影响音频采集端在音频采集后,发送前对音频的处理策略,达成不同的处理效果;
也会影响音频接收端在音频流接收后,播放前对音频的处理策略,达成不同的处理效果。
你应使用此方法,实现音频体验和系统性能占用之间的平衡:
如果你希望系统性能占用较低,你应设置较低的策略等级;如果你更在意音频质量,你应选择设置更高的策略等级。
一般情况下,你可使用 auto 模式(默认)。此时,sdk 会根据应用所在机型等级,自动适配音频处理策略。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| profile | AudioPerformanceProfile | 音频处理策略等级, 参看 AudioPerformanceProfile |
注意
virtual void bytertc::IRtcEngineLite::SetEncryptInfo(
EncryptType encrypt_type,
const char* key,
int key_size)
设置传输时使用内置加密的方式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| encrypt_type | EncryptType | 加密类型,详见 EncryptType |
| key | const char* | 加密密钥,长度限制为 36 位,超出部分将会被截断 |
| key_size | int | 参数 key 的长度 |
注意
使用传输时内置加密时,使用此方法;如果需要使用传输时自定义加密,参看 OnEncryptData。 内置加密和自定义加密互斥,根据最后一个调用的方法确定传输是加密的方案。
该方法必须在进房之前调用,可重复调用,以最后调用的参数作为生效参数。
virtual void bytertc::IRtcEngineLite::SetCustomizeEncryptHandler(
IEncryptHandler* handler)
设置自定义加密
需要实现对应的加密/解密方法,详情参考 EncryptType 。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| handler | IEncryptHandler* | 自定义加密 handler,需要实现 handler 的加密和解密方法 |
注意
该方法与 SetEncryptInfo 为互斥关系, 只能选择自定义加密方式或者默认加密方式。最终生效的加密方式取决于最后一个调用的方法。
该方法必须在进房之前调用,可重复调用,以最后调用的参数作为生效参数。
无论加密或者解密,其对原始数据的长度修改,需要控制在 90% ~ 120% 之间,即如果输入数据为 100 字节,则处理完成后的数据必须在 90 至 120 字节之间,如果加密或解密结果超出该长度限制,则该音视频帧会被丢弃。
数据加密/解密为串行执行,因而视实现方式不同,可能会影响到最终渲染效率。是否使用该方法,需要由使用方谨慎评估。
virtual void bytertc::IRtcEngineLite::SetRecordingAudioFrameParameters(
int sample_rate,
int channels)
设置本地麦克风录制的音频数据回调参数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sample_rate | int | 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000 |
| channels | int | 音频通道数,支持单声道(1)和双声道(2) |
注意 使用本方法设置参数,并使用RegisterAudioFrameObserver注册数据观察者,之后可以在IAudioFrameObserver的 OnRecordAudioFrame收到数据
virtual void bytertc::IRtcEngineLite::SetPlaybackAudioFrameParameters(
int sample_rate,
int channels)
设置远端所有用户音频数据混音后的音频数据回调参数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sample_rate | int | 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000 |
| channels | int | 音频通道数,支持单声道(1)和双声道(2) |
注意 使用本方法设置参数,并使用RegisterAudioFrameObserver注册数据观察者,之后可以在IAudioFrameObserver的 OnPlaybackAudioFrame收到数据
virtual void bytertc::IRtcEngineLite::SetMixedAudioFrameParameters(
int sample_rate,
int channels)
设置本地麦克风录制音频数据和远端所有用户音频数据混音后的音频数据回调参数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sample_rate | int | 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000 |
| channels | int | 音频通道数,支持单声道(1)和双声道(2) |
注意 使用本方法设置参数,并使用RegisterAudioFrameObserver注册数据观察者,之后可以在IAudioFrameObserver的 OnMixedAudioFrame收到数据
virtual void bytertc::IRtcEngineLite::RegisterAudioFrameObserver(
IAudioFrameObserver* observer)
注册音频数据回调观察者
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | IAudioFrameObserver* | 音频数据观察者,详见:IAudioFrameObserver |
注意 本方法需要与下面3个方法配合使用:SetRecordingAudioFrameParameters、 SetPlaybackAudioFrameParameters、 SetMixedAudioFrameParameters
virtual void bytertc::IRtcEngineLite::RegisterVideoFrameObserver(
IVideoFrameObserver* observer)
注册视频数据回调观察者
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | IVideoFrameObserver* | 数据回调函数,详见: IVideoFrameObserver 。 |
注意
virtual void bytertc::IRtcEngineLite::RegisterMetadataObserver(
IMetadataObserver* observer)
注册 metadata 观察者,用于接收或发送 metadata,底层通过在视频帧中添加 SEI 数据实现该功能。
注册观察者后,发送的视频帧里面没有 SEI 信息, 会触发 OnReadyToSendMetadata 回调。
注册观察者后,接收的视频帧里面有 SEI 信息,会触发接收
OnMetadataReceived 回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | IMetadataObserver* | metadata 观察者,详见:IMetadataObserver |
注意
virtual void bytertc::IRtcEngineLite::EnableAutoPublish(
bool auto_publish)
设置引擎自动发布属性
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | bool auto_publish | 要设置的引擎,详见:IRtcEngine |
| auto_publish | bool | 是否自动发布流,默认是true自动发布,设置false时可通过engine->publish()、engine->unpublish()来发布和取消发布本地流 |
注意 设置引擎是否自动发布用户的本地流,必须在joinChannel前调用。engine引擎默认auto_publish为true。当auto_publish为true时engine->publish()、 engine->unpublish()接口不应当被调用。
virtual IVideoDeviceManager* bytertc::IRtcEngineLite::GetVideoDeviceManager()
创建视频设备管理实例
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | **** | 用于创建视频设备管理实例的引擎,详见IRtcEngine |
返回值 视频设备管理实例,详见IVideoDeviceManager
注意 当不再使用IVideoDeviceManager实例时,调用该实例的 Release接口,以免资源泄露
virtual IAudioDeviceManager* bytertc::IRtcEngineLite::GetAudioDeviceManager()
设备音频管理接口创建
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | **** | 要设置的引擎,详见:IRtcEngine |
返回值 音频设备管理接口
virtual void bytertc::IRtcEngineLite::SetRuntimeParameters(
const char * json_string)
设置运行时的参数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| json_string | const char* | json 序列化之后的字符串 |
class bytertc::IRtcRoom
房间接口
Defined in : bytertc_room_interface.h
| 返回 | 名称 |
|---|---|
| virtual void | SetUserRole |
| virtual void | LeaveRoom |
| virtual void | UpdateToken |
| virtual int64_t | SendUserMessage |
| virtual int64_t | SendUserBinaryMessage |
| virtual int64_t | SendRoomMessage |
| virtual int64_t | SendRoomBinaryMessage |
| virtual void | PublishScreen |
| virtual void | UnpublishScreen |
| virtual void | SubscribeStream |
| virtual void | Unsubscribe |
| virtual void | SetAudioVolumeIndicationInterval |
| virtual void | SetRemoteAudioPlaybackVolume |
| virtual void | MuteAllRemoteAudio |
| virtual void | MuteRemoteAudio |
| virtual void | SetRemoteVideoCanvas |
| virtual void | SetRemoteVideoRender |
| virtual void | RemoveAllRemoteVideo |
| virtual void | SetRemoteScreenRender |
| virtual void | RemoveAllRemoteScreen |
| virtual void | SetDefaultMuteAllRemoteVideoStreams |
| virtual void | MuteAllRemoteVideo |
| virtual void | MuteRemoteVideo |
| virtual void | EnableAutoSubscribe |
virtual void bytertc::IRtcRoom::SetUserRole(
UserRoleType role)
设置用户角色。默认角色为主播。
通过设置不同的用户角色,可以控制用户在房间内的行为:
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| role | UserRoleType | 用户角色,参看 UserRoleType。 |
注意
virtual void bytertc::IRtcRoom::LeaveRoom()
离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
调用 JoinRoom 加入房间后,必须调用此方法结束通话,否则无法开始下一次通话。无论当前是否在房间内,都可以调用此方法。重复调用此方法没有负面影响。
此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 OnLeaveRoom 回调通知。
注意
virtual void bytertc::IRtcRoom::UpdateToken(
const char* token)
更新 Token。
Token 有一定的有效期,当 Token 过期时,用户需调用此方法更新房间的 Token 信息。
用户调用 JoinRoom 方法加入房间时,如果使用了过期的 Token 将导致加入房间失败,并会收到 OnJoinRoomResult 回调通知,错误码为 ErrorCode.kErrorCodeInvalidTokenErrorCode。此时需要重新获取 Token,并调用此方法更新 Token。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| token | const char* | 更新的动态密钥。 |
注意
virtual int64_t bytertc::IRtcRoom::SendUserMessage(
const char* uid,
const char* message)
给房间内指定的用户发送文本消息(P2P),返回这次发送消息的编号。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 指定用户 ID 。 |
| message | const char* | 发送的文本消息内容。 |
返回值 这次发送消息的编号,从 1 开始递增。
注意
1. 调用该函数后会收到一次 OnUserMessageSendResult 回调,通知消息发送方发送成功或失败;
2. 若文本消息发送成功,则 uid 所指定的用户会收到
OnUserMessageReceived 回调。
virtual int64_t bytertc::IRtcRoom::SendUserBinaryMessage(
const char* uid,
int length,
const uint8_t* message)
给房间内指定的用户发送二进制消息(P2P),返回这次发送消息的编号。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 指定用户 ID。 |
| length | int | 二进制字符串的长度。 |
| message | const uint8_t* | 二进制消息的内容。 |
返回值 这次发送消息的编号,从 1 开始递增。
注意
1. 调用该函数后会收到一次 OnUserMessageSendResult 回调,通知消息发送方发送成功或失败;
2. 若二进制消息发送成功,则 uid 所指定的用户会收到
OnUserBinaryMessageReceived 回调。
virtual int64_t bytertc::IRtcRoom::SendRoomMessage(
const char* message)
给房间内的所有其他用户发送广播消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| message | const char* | 用户发送的广播消息 |
注意 1.调用该函数后会收到一次 OnRoomMessageSendResult 回调; 2.同一房间内的其他用户会收到 OnRoomMessageReceived 回调。
virtual int64_t bytertc::IRtcRoom::SendRoomBinaryMessage(
int size,
const uint8_t* message)
给房间内的所有其他用户发送广播消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| size | int | 发送的二进制消息长度 |
| message | const uint8_t* | 用户发送的二进制广播消息 |
注意 1.调用该函数后会收到一次 OnRoomMessageSendResult 回调; 2.同一房间内的其他用户会收到 OnRoomBinaryMessageReceived 回调。
virtual void bytertc::IRtcRoom::PublishScreen(
const ScreenParameters& paramters)
发布本地屏幕共享流到房间。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| paramters | const ScreenParameters& | 屏幕共享流编码参数,详见 ScreenParameters |
注意
直播、游戏、云游戏房间模式下,此方法仅适用于角色为主播的用户。应用可以通过调用 SetUserRole 方法设置用户角色。
调用此方法发布本端屏幕共享流后,用户还需要通过设置定时任务周期性调用 PushScreenFrame 方法,将需要发送的屏幕数据推送给 SDK。
远端会收到 OnFirstRemoteVideoFrameRendered 、OnStreamAdd 事件。
该函数和 StartScreenCaptureByWindowId 、StartScreenCaptureByScreenRect 函数是互斥调用的,可在调用 UnpublishScreenIUnpublishScreen 函数后调用上述函数。
在收到 OnFirstRemoteVideoFrameRendered 事件后通过调用 SetRemoteVideoCanvas 或 SetRemoteScreenRender 函数来设置远端屏幕共享视图。
本地可调用 SetLocalVideoCanvas 或 SetLocalScreenRender 函数设置本地屏幕共享视图。
也可通过注册 RegisterVideoFrameObserver 视频回调对象,监听 OnLocalScreenFrame本地屏幕视频回调事件和 OnRemoteScreenFrame远端屏幕共享视频回调事件来获取原始数据。
该方法在 JoinRoom 后才能调用。
virtual void bytertc::IRtcRoom::UnpublishScreen()
停止发布本地屏幕共享流到房间。
注意 远端会收到 OnStreamRemove 事件。
virtual void bytertc::IRtcRoom::SubscribeStream(
const char* user_id,
const SubscribeConfig& info)
订阅指定的房间内远端音视频流。
关闭自动订阅功能,使用手动订阅模式时用户调用此方法按需订阅房间中的音视频流。
此方法仅在关闭自动订阅功能时生效。用户需在加入房间前调用 EnableAutoSubscribe
方法关闭自动订阅功能以使用手动订阅模式。
用户在自动订阅功能开启时调用此方法,SDK 不会订阅音视频流,并通过
OnRoomWarning 回调通知用户订阅失败,回调警告码为
kWarningCodeSubscribeStreamForbiden 。
订阅流失败时,SDK
会按失败原因回调 OnRoomError 通知用户,具体错误可参考错误码 ErrorCode 描述。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 指定订阅的远端用户的用户ID 。 |
| info | const SubscribeConfig& | 选择订阅配置,详见数据结构 SubscribeConfig 。 |
注意
virtual void bytertc::IRtcRoom::Unsubscribe(
const char* user_id,
bool is_screen)
停止订阅指定的房间内远端音视频流。
关闭自动订阅功能,使用手动订阅模式时用户调用此方法停止订阅已订阅的音视频流。
此方法仅在关闭自动订阅功能时生效。用户需在加入房间前调用 EnableAutoSubscribe 方法关闭自动订阅功能以使用手动订阅模式。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 指定停止订阅的远端音视频流的用户的ID。 |
| is_screen | bool | 指定停止的流是不是屏幕流。 |
注意
virtual void bytertc::IRtcRoom::SetAudioVolumeIndicationInterval(
int interval)
开启/关闭音量提示。默认关闭。
开启音量提示后,将按设置的时间间隔收到本地采集音量或订阅的远端用户的音量信息回调。
关于回调的具体信息,参看 OnAudioVolumeIndication
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| interval | int | 收到音量提示回调的时间间隔: • ≤ 0:禁用音量提示功能。 • > 0:启用音量提示功能,并设置收到音量提示回调的时间间隔。单位为毫秒。 建议设置为大于等于 200 毫秒;小于 10 毫秒时,行为未定义。 |
virtual void bytertc::IRtcRoom::SetRemoteAudioPlaybackVolume(
const char* user_id,
int volume)
调节来自远端用户的音频播放音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 音频来源的远端用户 ID |
| volume | int | 播放音量,取值范围: [0,400] • 0: 静音 • 100: 原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护) |
virtual void bytertc::IRtcRoom::MuteAllRemoteAudio(
MuteState mute_state)
设置对来自远端的所有音频流的接收状态。默认为接收。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute_state | MuteState | 接收状态。参看:MuteState |
注意 本方法只影响本地是否接收远端音频流,并不影响远端音频设备的采集发送功能。
virtual void bytertc::IRtcRoom::MuteRemoteAudio(
const char* uid,
MuteState mute_state)
设置对来自远端指定用户的音频流的接收状态。默认为接收。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 指定远端用户的 ID |
| mute_state | MuteState | 接收状态。参看:MuteState |
注意 本方法只影响本地是否接收远端音频流,并不影响远端音频设备的采集发送功能。
virtual void bytertc::IRtcRoom::SetRemoteVideoCanvas(
const char* user_id,
StreamIndex index,
const VideoCanvas& canvas)
设置来自指定远端用户 user_id 的视频渲染时,使用的视图,并设置渲染模式。
你应在加入房间前,绑定视图。退出房间后,此设置失效。
如果需要解除某个用户的绑定视图,你可以把 view 设置为空。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| user_id | const char* | 视频来源的远端用户 ID。 |
| index | StreamIndex | 视频流属性,参看 StreamIndex |
| canvas | const VideoCanvas& | 视图信息和渲染模式,参看:VideoCanvas |
返回值
注意
virtual void bytertc::IRtcRoom::SetRemoteVideoRender(
const char* uid,
IVideoSink* render)
设置远端视频外部渲染器
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 远端用户ID |
| render | IVideoSink* | 外部渲染器,详见:IVideoSink |
注意 该方法绑定远程用户视频流的渲染器,如需解绑,设置为空即可。
virtual void bytertc::IRtcRoom::RemoveAllRemoteVideo()
去除所有远端视频。
virtual void bytertc::IRtcRoom::SetRemoteScreenRender(
const char* uid,
IVideoSink* render)
设置屏幕共享远端外部渲染器
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | const char* | 远端用户ID |
| render | IVideoSink* | 外部渲染器,详见:IVideoSink |
注意 该方法绑定远端用户屏幕共享流的渲染器,如需解绑,设置为空即可。
virtual void bytertc::IRtcRoom::RemoveAllRemoteScreen()
去除屏幕共享所有远端视图。
virtual void bytertc::IRtcRoom::SetDefaultMuteAllRemoteVideoStreams(
bool mute)
设置是否默认接收视频流.
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mute | bool | • true:禁止远端的视频 • false:开启远端的视频 |
注意 该方法在加入房间前后都可调用。如果在加入房间后调用,会接收不到后面加入房间的用户的视频流
virtual void bytertc::IRtcRoom::MuteAllRemoteVideo(
MuteState muteState)
设置是否播放所有远端视频流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| muteState | MuteState | 接收状态,标识是否接收所有远端音/视频流,参看 MuteState • true:停止播放 • false:开启播放 |
注意 本方法不影响远端视频采集和发送状态
virtual void bytertc::IRtcRoom::MuteRemoteVideo(
const char* userid,
MuteState muteState)
设置是否播放远端视频流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userid | const char* | 视频来源的远端用户 ID |
| muteState | MuteState | 接收状态,标识是否接收远端音/视频流,参看 MuteState • true:停止播放 • false:开启播放 |
注意 本方法不影响远端视频采集和发送状态
virtual void bytertc::IRtcRoom::EnableAutoSubscribe(
SubscribeMode audio_mode,
SubscribeMode video_mode)
设置订阅模式。
用户调用此方法设置房间中音视频流的订阅模式。默认为自动订阅。
如需开启手动订阅功能,建议在调用 JoinRoom 方法加入房间前完成设置。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audio_mode | SubscribeMode | 音频流的订阅模式。参看 SubscribeMode。 |
| video_mode | SubscribeMode | 视频流的订阅模式。参看 SubscribeMode。 |
class bytertc::IVideoEffect
视频特效接口
Defined in : bytertc_video_effect_interface.h
| 返回 | 名称 |
|---|---|
| virtual int | CheckSupport |
| virtual int | CheckLicense |
| virtual int | EnableEffect |
| virtual void | SetAlgoModelPath |
| virtual void | SetEffectNodes |
| virtual void | AddEffectNodes |
| virtual void | RemoveEffectNodes |
| virtual void | UpdateNode |
| virtual void | SetColorFilter |
| virtual void | SetColorFilterIntensity |
virtual int bytertc::IVideoEffect::CheckSupport()
检查当前版本是否支持视频特效
返回值 : 0: 不支持 >0: 支持视频特效
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* | 许可证文件绝对路径 |
返回值 0: 许可证验证成功 !0: 许可证验证验证失败
注意 调用EnableEffect开始使用视频特效前,需要先调用这个方法进行许可证验证
virtual int bytertc::IVideoEffect::EnableEffect(
bool enabled)
开启关闭视频特效
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enabled | bool | 是否开启特效,true: 开启,false: 关闭 |
返回值 0: 成功 !0: 失败。
注意 在调用CheckLicense和SetAlgoModelPath后调用此方法
virtual void bytertc::IVideoEffect::SetAlgoModelPath(
const char* modelPath)
设置视频特效算法模型路径
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| modelPath | const char* | 模型路径 |
virtual void bytertc::IVideoEffect::SetEffectNodes(
const char** effectNodePaths,
int nodeNum)
设置特效包,支持同时设置多个特效包
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectPackPaths | int nodeNum | 特效包路径数组 |
| nodeNum | int | 特效包个数 |
virtual void bytertc::IVideoEffect::AddEffectNodes(
const char** effectNodePaths,
int nodeNum)
增加特效包,支持同时增加多个特效包
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectNodePaths | const char** | 要追加的特效包路径数组 |
| nodeNum | int | 特效包个数 |
virtual void bytertc::IVideoEffect::RemoveEffectNodes(
const char** effectNodePaths,
int nodeNum)
移除特效包,支持同时移除多个特效包
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectNodePaths | const char** | 要移除的特效包路径数组 |
| nodeNum | int | 特效包个数 |
virtual void bytertc::IVideoEffect::UpdateNode(
const char* nodePath,
const char* nodeKey,
float nodeValue)
设置特效强度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| nodePath | const char* | 特效包路径 |
| nodeKey | const char* | 需要设置的键名称 |
| nodeValue | float | 要设置的强度值。取值范围[0,1] ,超出范围时设置无效 |
注意 nodeKey 的取值请参考特效包的参数说明文件
virtual void bytertc::IVideoEffect::SetColorFilter(
const char* resPath)
设置颜色滤镜
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| resPath | const char* | 滤镜资源包绝对路径 |
virtual void bytertc::IVideoEffect::SetColorFilterIntensity(
float intensity)
设置颜色滤镜强度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| intensity | float | 滤镜强度。取值范围[0,1] ,超出范围时设置无效 |
class bytertc::IVideoFrame
设置视频帧
Defined in : bytertc_video_frame.h
| 返回 | 名称 |
|---|---|
| static IVideoFrame* | build_video_frame |
| 返回 | 名称 |
|---|---|
| virtual int | frame_type |
| virtual int | pixel_format |
| virtual int64_t | timestamp_us |
| virtual int | width |
| virtual int | height |
| virtual int | rotation |
| virtual int | color_space |
| virtual int | number_of_planes |
| virtual uint8_t* | get_plane_data |
| virtual int | get_plane_line_size |
| virtual uint8_t* | get_extra_data_info |
| virtual uint8_t* | get_supplementary_info |
| virtual void* | get_hwaccel_buffer |
| virtual IVideoFrame* | shallow_copy |
| virtual void | release |
| virtual void | to_i420 |
static IVideoFrame* bytertc::IVideoFrame::build_video_frame(
const VideoFrameBuilder& builder)
根据视频帧参数创建视频帧并返回指针
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| VideoFrameBuilder | const | 视频帧创建类对象,详见 VideoFrameBuilder:VideoFrameBuilder |
virtual int bytertc::IVideoFrame::frame_type() const
获取视频帧类型
virtual int bytertc::IVideoFrame::pixel_format() const
获取视频帧格式
virtual int64_t bytertc::IVideoFrame::timestamp_us() const
获取视频帧时间戳,单位:微秒
virtual int bytertc::IVideoFrame::width() const
获取视频帧宽度
virtual int bytertc::IVideoFrame::height() const
获取视频帧高度
virtual int bytertc::IVideoFrame::rotation() const
获取视频帧旋转角度
virtual int bytertc::IVideoFrame::color_space() const
获取视频帧颜色空间
virtual int bytertc::IVideoFrame::number_of_planes() const
视频帧颜色 plane 数量
注意 yuv 数据存储格式分为 plane 存储格式和 pack 存储格式,plane 格式中有 y,u,v 分开存储,pack 中 yuv 数据
virtual uint8_t* bytertc::IVideoFrame::get_plane_data(
int plane_index)
获取 plane 数据指针
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| plane_index | int | plane 数据索引 |
virtual int bytertc::IVideoFrame::get_plane_line_size(
int plane_index)
获取 plane 中数据行的长度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| plane_index | int | plane 数据索引 |
virtual uint8_t* bytertc::IVideoFrame::get_extra_data_info(
int& size)
获取扩展数据指针
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| size | int& | 扩展数据字节数 |
virtual uint8_t* bytertc::IVideoFrame::get_supplementary_info(
int& size)
获取补充数据指针
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| size | int& | 补充数据字节数 |
virtual void* bytertc::IVideoFrame::get_hwaccel_buffer()
获取本地缓冲区指针
virtual IVideoFrame* bytertc::IVideoFrame::shallow_copy()
浅拷贝视频帧并返回指针
virtual void bytertc::IVideoFrame::release()
释放视频帧
virtual void bytertc::IVideoFrame::to_i420()
视频帧数据转为 YUV I420 格式