Public API

函数

返回 名称
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

函数说明

SetHardWareEncodeContext

BYTERTC_API bool bytertc::SetHardWareEncodeContext(
    jobject j_hardware_encoder)

用于给编码器设置opengl context

传入参数

参数名 类型 说明
hardware_encoder jobject j_ java的Opengl Context对象

返回值 true: 设置成功 false:设置失败

BuildVideoFrame

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

创建 IVideoFrame

传入参数

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

PushExternalVideoFrame

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.该函数运行在用户调用线程内

CreateRtcEngine

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

注意

DestroyRtcEngine

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

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

传入参数

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

注意

GetErrorDescription

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

获取错误码的描述

传入参数

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

返回值 错误码的描述

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

GetSDKVersion

BYTERTC_API const char* bytertc::GetSDKVersion();

获取当前 SDK 版本信息。

返回值 当前 SDK 版本信息。

Feedback

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

返回值

IVideoStream

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

函数说明

~IVideoStream

virtual bytertc::IVideoStream::~IVideoStream()

析构函数

codec_type

virtual VideoCodecType bytertc::IVideoStream::codec_type() const

获取视频编码类型

返回值 [out] VideoCodecType 视频编码类型 VideoCodecType:VideoCodecType

set_codec_type

virtual void bytertc::IVideoStream::set_codec_type(
    VideoCodecType codec_type)

设置视频编码类型

传入参数

参数名 类型 说明
VideoCodecType **** 视频编码类型 VideoCodecType:VideoCodecType

timestamp_us

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

获取视频采集时间戳

返回值 视频采集时间戳,单位:微秒

set_timestamp_us

virtual void bytertc::IVideoStream::set_timestamp_us(
    int64_t timestamp_us)

设置视频帧采集时间戳

传入参数

参数名 类型 说明
timestamp_us int64_t 视频采集时间戳,单位:微秒

timestamp_pts

virtual int64_t bytertc::IVideoStream::timestamp_pts() const

获取视频显示时间戳

返回值 视频显示时间戳,单位:微秒

set_timestamp_pts

virtual void bytertc::IVideoStream::set_timestamp_pts(
    int64_t timestamp_pts)

设置视频显示时间戳

传入参数

参数名 类型 说明
timestamp_pts int64_t 视频显示时间戳,单位:微秒

timestamp_dts

virtual int64_t bytertc::IVideoStream::timestamp_dts() const

获取视频解码时间戳

返回值 视频解码时间戳,单位:微秒

set_timestamp_dts

virtual void bytertc::IVideoStream::set_timestamp_dts(
    int64_t timestamp_dts)

设置视频解码时间戳

传入参数

参数名 类型 说明
timestamp_dts int64_t 视频解码时间戳,单位:微秒

timebase_num

virtual int bytertc::IVideoStream::timebase_num() const

获取时间基分子

返回值 时间基分子

set_timestamp_num

virtual void bytertc::IVideoStream::set_timestamp_num(
    int timebase_num)

设置时间基分子

传入参数

参数名 类型 说明
timebase_num int 时间基分子

timebase_den

virtual int bytertc::IVideoStream::timebase_den() const

获取时间基分母

返回值 时间基分母

set_timestamp_den

virtual void bytertc::IVideoStream::set_timestamp_den(
    int timebase_den)

设置时间基分母

传入参数

参数名 类型 说明
timebase_den int 时间基分母

width

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

获取视频分辨率的宽度

返回值 视频分辨率宽度

set_width

virtual void bytertc::IVideoStream::set_width(
    int width)

设置视频分辨率的宽

传入参数

参数名 类型 说明
width int 视频宽度

height

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

获取视频高度

返回值 视频分辨率高度

set_height

virtual void bytertc::IVideoStream::set_height(
    int height)

设置视频高度

传入参数

参数名 类型 说明
height int 视频分辨率高度

picture_type

virtual VideoPictureType bytertc::IVideoStream::picture_type() const

获取视频编码格式

返回值 视频编码格式,详见 VideoPictureType

set_picture_type

virtual void bytertc::IVideoStream::set_picture_type(
    VideoPictureType type)

设置视频编码格式

传入参数

参数名 类型 说明
VideoPictureType **** 视频编码格式,详见 VideoPictureType

rotation

virtual VideoRotation bytertc::IVideoStream::rotation() const

获取视频帧旋转角度

返回值 视频旋转角度,详见 VideoRotation

set_rotation

virtual void bytertc::IVideoStream::set_rotation(
    VideoRotation rotation)

设置视频帧旋转角度

传入参数

参数名 类型 说明
VideoRotation **** 视频旋转角度,详见 VideoRotation

set_stream_memory

virtual void bytertc::IVideoStream::set_stream_memory(
    const ManagedMemory& memory)

设置视频帧内存管理方式

传入参数

参数名 类型 说明
ManagedMemory const 视频帧内存管理信息,详见 ManagedMemory

data

virtual uint8_t* bytertc::IVideoStream::data() const

获取视频数据指针地址

返回值 视频数据指针地址

data_size

virtual int bytertc::IVideoStream::data_size() const

获取视频数据大小

返回值 视频数据大小

IEncryptHandler

class bytertc::IEncryptHandler

加密/解密处理函数

Defined in : bytertc_defines.h

成员函数

返回 名称
virtual unsigned int OnEncryptData
virtual unsigned int OnDecryptData

函数说明

OnEncryptData

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 可供写入的加密后数据缓冲区大小

返回值 加密后的数据

注意

OnDecryptData

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 可供写入的加密后数据缓冲区大小

返回值 加密后的数据

注意

IDeviceCollection

class bytertc::IDeviceCollection

音视频设备相关的信息

Defined in : bytertc_device_manager.h

成员函数

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

函数说明

GetCount

virtual int bytertc::IDeviceCollection::GetCount()

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

返回值 音视频设备数量

GetDevice

virtual int bytertc::IDeviceCollection::GetDevice(
    int index,
    char device_name[MAX_DEVICE_ID_LENGTH],
    char device_id[MAX_DEVICE_ID_LENGTH])

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

传入参数

参数名 类型 说明
index int 设备索引号,从 0 开始,注意需小于 GetCount 返回值。
device_name char 设备名称
device_id char 设备 ID

返回值

Release

virtual void bytertc::IDeviceCollection::Release()

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

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

IVideoDeviceManager

class bytertc::IVideoDeviceManager

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

Defined in : bytertc_device_manager.h

成员函数

返回 名称
virtual IDeviceCollection* EnumerateVideoCaptureDevices
virtual int SetVideoCaptureDevice
virtual int GetVideoCaptureDevice

函数说明

EnumerateVideoCaptureDevices

virtual IDeviceCollection* bytertc::IVideoDeviceManager::EnumerateVideoCaptureDevices()

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

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

SetVideoCaptureDevice

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

设置当前视频采集设备

传入参数

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

返回值

GetVideoCaptureDevice

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

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

传入参数

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

返回值

IAudioDeviceManager

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

函数说明

EnumerateAudioPlaybackDevices

virtual IDeviceCollection* bytertc::IAudioDeviceManager::EnumerateAudioPlaybackDevices()

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

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

EnumerateAudioCaptureDevices

virtual IDeviceCollection* bytertc::IAudioDeviceManager::EnumerateAudioCaptureDevices()

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

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

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

SetAudioPlaybackDevice

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

设置音频播放设备。

传入参数

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

返回值 方法调用结果

SetAudioCaptureDevice

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

设置音频采集设备。

传入参数

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

返回值 方法调用结果

SetAudioPlaybackDeviceVolume

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

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

传入参数

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

返回值 方法调用结果

GetAudioPlaybackDeviceVolume

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

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

传入参数

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

返回值 方法调用结果

SetAudioCaptureDeviceVolume

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

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

传入参数

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

返回值 方法调用结果

GetAudioCaptureDeviceVolume

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

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

传入参数

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

返回值 方法调用结果

SetAudioPlaybackDeviceMute

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

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

传入参数

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

返回值 方法调用结果

GetAudioPlaybackDeviceMute

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

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

传入参数

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

返回值 方法调用结果

SetAudioCaptureDeviceMute

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

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

传入参数

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

返回值 方法调用结果

GetAudioCaptureDeviceMute

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

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

传入参数

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

返回值 方法调用结果

GetAudioPlaybackDevice

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

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

传入参数

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

返回值 方法调用结果

GetAudioCaptureDevice

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

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

传入参数

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

返回值 方法调用结果

StartAudioPlaybackDeviceTest

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。

返回值 方法调用结果

注意

StopAudioPlaybackDeviceTest

virtual int bytertc::IAudioDeviceManager::StopAudioPlaybackDeviceTest()

停止音频播放设备测试。

返回值 方法调用结果

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

StartAudioCaptureDeviceTest

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

启动音频采集设备测试。
该方法测试音频采集设备是否能正常工作。启动测试后,会收到 OnAudioVolumeIndication 回调上报的音量信息。

传入参数

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

返回值 方法调用结果

注意

StopAudioCaptureDeviceTest

virtual int bytertc::IAudioDeviceManager::StopAudioCaptureDeviceTest()

停止音频采集设备测试。

返回值 方法调用结果

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

StartAudioDeviceLoopbackTest

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

开始音频设备回路测试。
该方法测试音频采集设备和音频播放设备是否能正常工作。一旦测试开始,音频采集设备会采集本地声音 并通过音频播放设备播放出来,同时用户 App 会收到 OnAudioVolumeIndication 回调上报的音量信息。

传入参数

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

返回值 方法调用结果

注意

StopAudioDeviceLoopbackTest

virtual int bytertc::IAudioDeviceManager::StopAudioDeviceLoopbackTest()

停止音频设备回路测试。

返回值 方法调用结果

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

InitAudioPlaybackDeviceForTest

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

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

传入参数

参数名 类型 说明
index const char deviceId[MAX_DEVICE_ID_LENGTH] 设备索引号

返回值 设备状态错误码

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

InitAudioCaptureDeviceForTest

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

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

传入参数

参数名 类型 说明
index const char deviceId[MAX_DEVICE_ID_LENGTH] 设备索引

返回值 设备状态错误码

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

IRtcEngine

class bytertc::IRtcEngine

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

Defined in : bytertc_engine_interface.h

成员函数

返回 名称
virtual int JoinRoom

函数说明

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。

返回值

注意

IRtcEngineLite

class bytertc::IRtcEngineLite

引擎 API

Defined in : bytertc_engine_lite_interface.h

成员函数

返回 名称
virtual void SetRecordingVolume
virtual void SetPlaybackVolume
virtual void StartMixScreenAudioToMainStream
virtual void StopMixScreenAudioToMainStream
virtual void SetScreenAudioVolumeBeforeMixing
virtual void StartAudioCapture
virtual void StopAudioCapture
virtual void MuteLocalAudio
virtual void EnableExternalAudioDevice
virtual void DisableExternalAudioDevice
virtual void SetAudioDeviceObserver
virtual bool PushExternalAudioFrame
virtual bool PullExternalAudioFrame
virtual int StartAudioMixing
virtual void StopAudioMixing
virtual int PauseAudioMixing
virtual int ResumeAudioMixing
virtual int AdjustAudioMixingVolume
virtual int AdjustAudioMixingPlayoutVolume
virtual int AdjustAudioMixingPublishVolume
virtual int GetAudioMixingDuration
virtual int GetAudioMixingCurrentPosition
virtual int SetAudioMixingPosition
virtual int GetEffectVolume
virtual int SetVolumeOfEffect
virtual int PlayEffect
virtual int PreloadEffect
virtual int UnloadEffect
virtual int StopEffect
virtual int PauseEffect
virtual int ResumeEffect
virtual void SetEffectsVolume
virtual void StopAllEffects
virtual void PauseAllEffects
virtual void ResumeAllEffects
virtual void UnloadAllEffects
virtual void SetAudioPlayoutMixStream
virtual int GetAudioMixingStreamCachedFrameNum
virtual bool PushAudioMixingStreamData
virtual void StartVideoCapture
virtual void StopVideoCapture
virtual int SetVideoEncoderConfig
virtual int SetLocalVideoCanvas
virtual int SetLocalVideoRender
virtual int SetLocalScreenRender
virtual int MuteLocalVideo
virtual int SwitchCamera
virtual bool PushScreenFrame
virtual int StartScreenCaptureByWindowId
virtual int StartScreenCaptureByScreenRect
virtual int StartScreenCaptureByDisplayId
virtual int UpdateScreenCaptureRegion
virtual int UpdateScreenCaptureParameters
virtual void StopScreenCapture
virtual IScreenCaptureSourceList* GetScreenCaptureSourceList
virtual IVideoFrame* GetThumbnail
virtual void SetExternalVideoSource
virtual bool PushExternalVideoFrame
virtual int SetPublishFallbackOption
virtual int SetSubscribeFallbackOption
virtual int SetRemoteUserPriority
virtual int SetBusinessId
virtual int ReplaceBackground
virtual void DisableBackground
virtual void SetLocalVideoMirrorMode
virtual bool GetLocalVideoMirrorMode
virtual void SetAudioPerformanceProfile
virtual void SetEncryptInfo
virtual void SetCustomizeEncryptHandler
virtual void SetRecordingAudioFrameParameters
virtual void SetPlaybackAudioFrameParameters
virtual void SetMixedAudioFrameParameters
virtual void RegisterAudioFrameObserver
virtual void RegisterVideoFrameObserver
virtual void RegisterMetadataObserver
virtual void EnableAutoPublish
virtual IVideoDeviceManager* GetVideoDeviceManager
virtual IAudioDeviceManager* GetAudioDeviceManager
virtual void SetRuntimeParameters

函数说明

SetRecordingVolume

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

调节音频采集音量

传入参数

参数名 类型 说明
volume const int 音频采集音量,取值范围: [0,400]
• 0: 静音
• 100: 原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

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

SetPlaybackVolume

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

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

传入参数

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

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

StartMixScreenAudioToMainStream

virtual void bytertc::IRtcEngineLite::StartMixScreenAudioToMainStream()

开启声卡采集,将声卡播放的音频流合到本地采集的音频流中。
如果你希望将声卡播放的声音传输到远端(比如屏幕共享等场景),你必须开启声卡采集。如此,声卡播放的声音会合到本地采集的音频流在中,一起发送到远端。

注意

StopMixScreenAudioToMainStream

virtual void bytertc::IRtcEngineLite::StopMixScreenAudioToMainStream()

关闭声卡采集,声卡播放的音频流不再合到本地采集的音频流中。

注意 如果需要开启声卡采集,请参看 StartMixScreenAudioToMainStream

SetScreenAudioVolumeBeforeMixing

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

调节本地声卡采集音量。
开启本地声卡采集后,你可以使用此接口调节采集音量。 关于如何开启本地声卡采集,参考 StartMixScreenAudioToMainStream。

传入参数

参数名 类型 说明
volume int 声卡采集音量,取值范围: [0,400]
• 0: 静音
• 100: 原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

StartAudioCapture

virtual void bytertc::IRtcEngineLite::StartAudioCapture()

开启内部音频采集。默认为关闭状态。
进房前调用该方法,本地用户会收到 OnMediaDeviceStateChanged 的回调。
进房后调用该方法,房间中的其他用户会收到 OnUserStartAudioCapture 的回调。

注意

StopAudioCapture

virtual void bytertc::IRtcEngineLite::StopAudioCapture()

关闭内部音频采集。默认为关闭状态。
进房前调用该方法,本地用户会收到 OnMediaDeviceStateChanged 的回调。
进房后调用该方法后,房间中的其他用户会收到 OnUserStopAudioCapture 的回调。

注意

MuteLocalAudio

virtual void bytertc::IRtcEngineLite::MuteLocalAudio(
    MuteState mute_state)

控制本地音频流的发送状态:发送/不发送
使用此方法后,房间中的其他用户会收到回调: OnUserMuteAudio

传入参数

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

注意 本方法仅控制本地音频流的发送状态,并不影响本地音频采集状态。

EnableExternalAudioDevice

virtual void bytertc::IRtcEngineLite::EnableExternalAudioDevice(
    const AudioFormat &recording_format,
    const AudioFormat &playback_format)

启用自定义音频采集渲染

传入参数

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

注意

DisableExternalAudioDevice

virtual void bytertc::IRtcEngineLite::DisableExternalAudioDevice()

禁用已开启的自定义音频采集渲染,将音频采集渲染由自定义模块切换至内部模块。

注意

SetAudioDeviceObserver

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

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

传入参数

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

PushExternalAudioFrame

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

返回值 方法调用结果

注意

PullExternalAudioFrame

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

返回值 方法调用结果

注意

StartAudioMixing

virtual int bytertc::IRtcEngineLite::StartAudioMixing(
    const char* file_path,
    bool loopback,
    bool replace,
    int cycle)

开始播放音乐文件及混音。

传入参数

参数名 类型 说明
file_path const char* 指定需要混音的本地文件的绝对路径。支持音频文件格式有: mp3,aac,m4a,3gp,wav。
loopback bool • true: 只有本地可以听到混音或替换后的音频流。
• false: 本地和对方都可以听到混音或替换后的音频流
replace bool • true: 只推送设置的本地音频文件,不传输麦克风采集的音频。
• false: 音频文件内容将会和麦克风采集的音频流进行混音
cycle int 指定音频文件循环播放的次数。
• >0: 循环的次数。
• -1: 无限循环

返回值

注意

StopAudioMixing

virtual void bytertc::IRtcEngineLite::StopAudioMixing()

停止播放音乐文件及混音

注意

PauseAudioMixing

virtual int bytertc::IRtcEngineLite::PauseAudioMixing()

暂停播放音乐文件

返回值

注意

ResumeAudioMixing

virtual int bytertc::IRtcEngineLite::ResumeAudioMixing()

恢复播放音乐文件

返回值

注意

AdjustAudioMixingVolume

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

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

传入参数

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

返回值

注意

AdjustAudioMixingPlayoutVolume

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

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

传入参数

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

返回值

注意

AdjustAudioMixingPublishVolume

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

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

传入参数

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

返回值

注意

GetAudioMixingDuration

virtual int bytertc::IRtcEngineLite::GetAudioMixingDuration()

获取音乐文件时长

返回值

注意 请在房间内调用该方法。

GetAudioMixingCurrentPosition

virtual int bytertc::IRtcEngineLite::GetAudioMixingCurrentPosition()

获取音乐文件播放进度

返回值

注意 请在房间内调用该方法。

SetAudioMixingPosition

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

设置音频文件的播放位置

传入参数

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

返回值

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

GetEffectVolume

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

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

传入参数

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

返回值

注意 请在房间内调用该方法。

SetVolumeOfEffect

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

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

传入参数

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

返回值

注意

PlayEffect

virtual int bytertc::IRtcEngineLite::PlayEffect(
    int sound_id,
    const char* file_path,
    bool loopback,
    int cycle,
    int volume)

开始播放指定音效文件。你可以在该方法中设置音效文件的播放次数、音量大小,以及远端用户是否能听到该音效。

传入参数

参数名 类型 说明
sound_id int 音效ID,应用调用者维护,请保证唯一性。如果已经通过 PreloadEffect
将音效加载至内存,确保此处的 sound_id 与 PreloadEffect 设置的 sound_id 相同。
file_path const char* 指定需要混音的音频文件名和文件路径名。支持以下音频格式: mp3,aac,m4a,3gp,wav
loopback bool • true: 只有本地可以听到该音效。
• false: 本地和远端用户都可以听到该音效。
cycle int 指定音频文件循环播放的次数。
• >0:循环的次数。
• -1:无限循环,直至调用 StopEffect 或 StopAllEffects 后停止。
volume int 音效文件播放音量范围为 0~400。默认 100 为原始文件音量。

返回值

注意

PreloadEffect

virtual int bytertc::IRtcEngineLite::PreloadEffect(
    int sound_id,
    const char* file_path)

预加载指定音效文件。

传入参数

参数名 类型 说明
sound_id int 音效ID,应用调用者维护,请保证唯一性。
file_path const char* 指定需要混音的音频文件名和文件路径名。支持以下音频格式: mp3,aac,m4a,3gp,wav。

返回值

注意

+ 调用该方法预加载播放指定音效文件。预加载操作可以在进房间之前完成(所有混音相关接口,如果没有标注请在房间内调用都可在没有进入房间的时候调用)。如果音效文件很长,加载操作可能会耗时较长,建议应用开发者将预加载操作放在子线程进行。

UnloadEffect

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

卸载指定音效文件

传入参数

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

返回值

注意

StopEffect

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

停止播放指定音效文件

传入参数

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

返回值

注意

PauseEffect

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

暂停播放指定音效文件

传入参数

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

返回值

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

ResumeEffect

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

恢复播放指定音效文件

传入参数

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

返回值

注意

SetEffectsVolume

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

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

传入参数

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

注意

StopAllEffects

virtual void bytertc::IRtcEngineLite::StopAllEffects()

停止所有音效文件的播放

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

PauseAllEffects

virtual void bytertc::IRtcEngineLite::PauseAllEffects()

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

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

ResumeAllEffects

virtual void bytertc::IRtcEngineLite::ResumeAllEffects()

恢复所有音效文件的播放

注意

UnloadAllEffects

virtual void bytertc::IRtcEngineLite::UnloadAllEffects()

卸载所有音效文件

注意

SetAudioPlayoutMixStream

virtual void bytertc::IRtcEngineLite::SetAudioPlayoutMixStream(
    bool enable,
    int sample_rate,
    int channel_num)

启动/停止外部音频流混音, 并设置混音数据格式

传入参数

参数名 类型 说明
enable bool • true: 启用外部音频流混音。
• false: 停止外部音频流混音。
sample_rate int 音频采样率,单位HZ。目前支持的采样率有:8000HZ, 16000HZ, 32000HZ, 44100HZ,48000HZ。
channel_num int 音频声道个数。目前支持单通道(1),双通道(2)

注意

GetAudioMixingStreamCachedFrameNum

virtual int bytertc::IRtcEngineLite::GetAudioMixingStreamCachedFrameNum()

获取SDK当前缓冲数据

返回值

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

PushAudioMixingStreamData

virtual bool bytertc::IRtcEngineLite::PushAudioMixingStreamData(
    int8_t* audio_frame,
    int frame_num)

向SDK推送混音的音频数据

传入参数

参数名 类型 说明
audio_frame int8_t* PCM音频数据,其格式与 SetAudioPlayoutMixStream 保持一致。
frame_num int 采样点数量,应该为 SetAudioPlayoutMixStream 中设置的 sample_rate / 100。
当设置采样率为48000时, 每次应该推送480个采样点

返回值

注意

StartVideoCapture

virtual void bytertc::IRtcEngineLite::StartVideoCapture()

开启内部视频采集。默认为关闭状态。
进房前调用该方法,本地用户会收到 OnMediaDeviceStateChanged 的回调。
进房后调用该方法后,房间中的其他用户会收到 OnUserStartVideoCapture 的回调。

注意

StopVideoCapture

virtual void bytertc::IRtcEngineLite::StopVideoCapture()

关闭内部视频采集。默认为关闭状态。
进房前调用该方法,本地用户会收到 OnMediaDeviceStateChanged 的回调。
进房后调用该方法后,房间中的其他用户会收到 OnUserStopVideoCapture 的回调。

注意

SetVideoEncoderConfig

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

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

传入参数

参数名 类型 说明
solutions const VideoSolution* 视频参数数组首地址。参看 VideoSolution。
solution_num int 视频参数数组长度。

返回值

注意

SetLocalVideoCanvas

virtual int bytertc::IRtcEngineLite::SetLocalVideoCanvas(
    StreamIndex index,
    const VideoCanvas& canvas)

设置本地视频渲染时,使用的视图,并设置渲染模式。
你应在加入房间前,绑定本地视图。退出房间后,此设置仍然有效。 如果需要解除绑定,你可以调用本方法绑定空视图。

传入参数

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

返回值

SetLocalVideoRender

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

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

传入参数

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

返回值

SetLocalScreenRender

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

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

传入参数

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

返回值 0 :成功;

-1 :失败;

MuteLocalVideo

virtual int bytertc::IRtcEngineLite::MuteLocalVideo(
    MuteState muteState)

停止/启动发送本地视频流,默认不发送。
无论你使用 SDK 的视频采集编码功能,还是使用自定义采集功能,你都应使用此接口启动发送本地视频流。 调用该方法后,房间中的其他用户会收到 OnUserMuteVideo 的回调。

传入参数

参数名 类型 说明
muteState MuteState 发送状态,标识是否发送本地音/视频流,参看 MuteState
• true:停止发送
• false:开启发送

返回值

注意 本方法只是停止本地视频流的发送,不影响视频采集状态。

SwitchCamera

virtual int bytertc::IRtcEngineLite::SwitchCamera(
    CameraID camera_id)

切换移动端前置/后置摄像头

传入参数

参数名 类型 说明
Camera **** ID,移动端摄像头。参看 CameraID。

返回值

注意

PushScreenFrame

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

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

传入参数

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

返回值

注意

StartScreenCaptureByWindowId

virtual int bytertc::IRtcEngineLite::StartScreenCaptureByWindowId(
    view_t window_id,
    const Rectangle& region_rect,
    const DesktopCaptureParameters& capture_params)

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

传入参数

参数名 类型 说明
window_id view_t 指定待共享的窗口 id,详见:view_t
region_rect const Rectangle& 指定共享区域相对于整个窗口的位置,当值都为0时共享整个窗口,详见:Rectangle
capture_params const DesktopCaptureParameters& 屏幕共享的编码参数配置,详见:DesktopCaptureParameters

返回值

注意

StartScreenCaptureByScreenRect

virtual int bytertc::IRtcEngineLite::StartScreenCaptureByScreenRect(
    const Rectangle& screen_rect,
    const Rectangle& region_rect,
    const DesktopCaptureParameters& capture_params)

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

传入参数

参数名 类型 说明
screen_rect const Rectangle& 指定待共享的屏幕相对于虚拟屏的位置,虚拟屏指所有屏幕组成的图像区域,详见:Rectangle
region_rect const Rectangle& 指定待共享区域相对于screen_rect的位置,详见:Rectangle
capture_params const DesktopCaptureParameters& 屏幕共享的编码参数配置,详见:DesktopCaptureParameters

返回值

注意

StartScreenCaptureByDisplayId

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 。

UpdateScreenCaptureRegion

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

更新屏幕共享区域。

传入参数

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

返回值

UpdateScreenCaptureParameters

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

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

传入参数

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

返回值

StopScreenCapture

virtual void bytertc::IRtcEngineLite::StopScreenCapture()

停止屏幕或者窗口共享。

注意

GetScreenCaptureSourceList

virtual IScreenCaptureSourceList* bytertc::IRtcEngineLite::GetScreenCaptureSourceList()

获取共享对象(应用窗口和桌面)列表, 使用完之后需要调用对应的release接口释放

GetThumbnail

virtual IVideoFrame* bytertc::IRtcEngineLite::GetThumbnail(
    ScreenCaptureSourceType type,
    view_t source_id,
    int max_width,
    int max_height)

获取共享对象缩略图

SetExternalVideoSource

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

设置是否启用自定义视频采集

传入参数

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

注意

PushExternalVideoFrame

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

发送外部源视频数据

传入参数

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

注意

SetPublishFallbackOption

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

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

传入参数

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

返回值

注意

SetSubscribeFallbackOption

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

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

传入参数

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

返回值 0: 方法调用成功

注意

SetRemoteUserPriority

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

设置用户优先级

传入参数

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

返回值 0: 方法调用成功

注意

SetBusinessId

virtual int bytertc::IRtcEngineLite::SetBusinessId(
    const char* business_id)

设置业务标识参数。
可通过 business_id 区分不同的业务场景(角色/策略等)。business_id 由客户自定义,相当于一个“标签”, 可以分担和细化现在 AppId 的逻辑划分的功能。

传入参数

参数名 类型 说明
business_id const char* 用户设置的自己的 business_id 值。business_id 相当于一个 sub AppId,可以分担和细化现在 AppId
的逻辑划分的功能, 但不需要鉴权。business_id 只是一个标签,颗粒度需要用户自定义。

返回值

注意

ReplaceBackground

virtual int bytertc::IRtcEngineLite::ReplaceBackground(
    BackgroundMode mode,
    DivideMode divide_model)

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

传入参数

参数名 类型 说明
mode BackgroundMode 背景模式,参看 BackgroundMode。
divide_model DivideMode 分割模型,参看 DivideMode。

返回值

DisableBackground

virtual void bytertc::IRtcEngineLite::DisableBackground()

关闭背景

SetLocalVideoMirrorMode

virtual void bytertc::IRtcEngineLite::SetLocalVideoMirrorMode(
    MirrorMode mirrorMode)

设置采用前置摄像头采集时,是否开启镜像模式。
调用后,你会收到回调:OnMirrorStateChanged

传入参数

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

GetLocalVideoMirrorMode

virtual bool bytertc::IRtcEngineLite::GetLocalVideoMirrorMode()

获得当前本地镜像状态

返回值

SetAudioPerformanceProfile

virtual void bytertc::IRtcEngineLite::SetAudioPerformanceProfile(
    AudioPerformanceProfile profile)

通过设置音频处理策略等级,获得不同的音频处理质量。默认使用 auto 模式。
此设置会影响音频采集端在音频采集后,发送前对音频的处理策略,达成不同的处理效果;
也会影响音频接收端在音频流接收后,播放前对音频的处理策略,达成不同的处理效果。
你应使用此方法,实现音频体验和系统性能占用之间的平衡:
如果你希望系统性能占用较低,你应设置较低的策略等级;如果你更在意音频质量,你应选择设置更高的策略等级。
一般情况下,你可使用 auto 模式(默认)。此时,sdk 会根据应用所在机型等级,自动适配音频处理策略。

传入参数

参数名 类型 说明
profile AudioPerformanceProfile 音频处理策略等级, 参看 AudioPerformanceProfile

注意

SetEncryptInfo

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

注意

SetCustomizeEncryptHandler

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

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

传入参数

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

注意

SetRecordingAudioFrameParameters

virtual void bytertc::IRtcEngineLite::SetRecordingAudioFrameParameters(
    int sample_rate,
    int channels)

设置本地麦克风录制的音频数据回调参数

传入参数

参数名 类型 说明
sample_rate int 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000
channels int 音频通道数,支持单声道(1)和双声道(2)

注意 使用本方法设置参数,并使用RegisterAudioFrameObserver注册数据观察者,之后可以在IAudioFrameObserver的 OnRecordAudioFrame收到数据

SetPlaybackAudioFrameParameters

virtual void bytertc::IRtcEngineLite::SetPlaybackAudioFrameParameters(
    int sample_rate,
    int channels)

设置远端所有用户音频数据混音后的音频数据回调参数

传入参数

参数名 类型 说明
sample_rate int 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000
channels int 音频通道数,支持单声道(1)和双声道(2)

注意 使用本方法设置参数,并使用RegisterAudioFrameObserver注册数据观察者,之后可以在IAudioFrameObserver的 OnPlaybackAudioFrame收到数据

SetMixedAudioFrameParameters

virtual void bytertc::IRtcEngineLite::SetMixedAudioFrameParameters(
    int sample_rate,
    int channels)

设置本地麦克风录制音频数据和远端所有用户音频数据混音后的音频数据回调参数

传入参数

参数名 类型 说明
sample_rate int 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000
channels int 音频通道数,支持单声道(1)和双声道(2)

注意 使用本方法设置参数,并使用RegisterAudioFrameObserver注册数据观察者,之后可以在IAudioFrameObserver的 OnMixedAudioFrame收到数据

RegisterAudioFrameObserver

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

注册音频数据回调观察者

传入参数

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

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

RegisterVideoFrameObserver

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

注册视频数据回调观察者

传入参数

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

注意

RegisterMetadataObserver

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

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

传入参数

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

注意

EnableAutoPublish

virtual void bytertc::IRtcEngineLite::EnableAutoPublish(
    bool auto_publish)

设置引擎自动发布属性

传入参数

参数名 类型 说明
engine bool auto_publish 要设置的引擎,详见:IRtcEngine
auto_publish bool 是否自动发布流,默认是true自动发布,设置false时可通过engine->publish()、engine->unpublish()来发布和取消发布本地流

注意 设置引擎是否自动发布用户的本地流,必须在joinChannel前调用。engine引擎默认auto_publish为true。当auto_publish为true时engine->publish()、 engine->unpublish()接口不应当被调用。

GetVideoDeviceManager

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

创建视频设备管理实例

传入参数

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

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

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

GetAudioDeviceManager

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

设备音频管理接口创建

传入参数

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

返回值 音频设备管理接口

SetRuntimeParameters

virtual void bytertc::IRtcEngineLite::SetRuntimeParameters(
    const char * json_string)

设置运行时的参数

传入参数

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

IRtcRoom

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

函数说明

SetUserRole

virtual void bytertc::IRtcRoom::SetUserRole(
    UserRoleType role)

设置用户角色。默认角色为主播。
通过设置不同的用户角色,可以控制用户在房间内的行为:

传入参数

参数名 类型 说明
role UserRoleType 用户角色,参看 UserRoleType。

注意

LeaveRoom

virtual void bytertc::IRtcRoom::LeaveRoom()

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

注意

UpdateToken

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

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

传入参数

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

注意

SendUserMessage

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 回调。

SendUserBinaryMessage

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 回调。

SendRoomMessage

virtual int64_t bytertc::IRtcRoom::SendRoomMessage(
    const char* message)

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

传入参数

参数名 类型 说明
message const char* 用户发送的广播消息

注意 1.调用该函数后会收到一次 OnRoomMessageSendResult 回调; 2.同一房间内的其他用户会收到 OnRoomMessageReceived 回调。

SendRoomBinaryMessage

virtual int64_t bytertc::IRtcRoom::SendRoomBinaryMessage(
    int size,
    const uint8_t* message)

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

传入参数

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

注意 1.调用该函数后会收到一次 OnRoomMessageSendResult 回调; 2.同一房间内的其他用户会收到 OnRoomBinaryMessageReceived 回调。

PublishScreen

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

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

传入参数

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

注意

UnpublishScreen

virtual void bytertc::IRtcRoom::UnpublishScreen()

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

注意 远端会收到 OnStreamRemove 事件。

SubscribeStream

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

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

传入参数

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

注意

Unsubscribe

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

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

传入参数

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

注意

SetAudioVolumeIndicationInterval

virtual void bytertc::IRtcRoom::SetAudioVolumeIndicationInterval(
    int interval)

开启/关闭音量提示。默认关闭。
开启音量提示后,将按设置的时间间隔收到本地采集音量或订阅的远端用户的音量信息回调。 关于回调的具体信息,参看 OnAudioVolumeIndication

传入参数

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

SetRemoteAudioPlaybackVolume

virtual void bytertc::IRtcRoom::SetRemoteAudioPlaybackVolume(
    const char* user_id,
    int volume)

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

传入参数

参数名 类型 说明
user_id const char* 音频来源的远端用户 ID
volume int 播放音量,取值范围: [0,400]
• 0: 静音
• 100: 原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

MuteAllRemoteAudio

virtual void bytertc::IRtcRoom::MuteAllRemoteAudio(
    MuteState mute_state)

设置对来自远端的所有音频流的接收状态。默认为接收。

传入参数

参数名 类型 说明
mute_state MuteState 接收状态。参看:MuteState

注意 本方法只影响本地是否接收远端音频流,并不影响远端音频设备的采集发送功能。

MuteRemoteAudio

virtual void bytertc::IRtcRoom::MuteRemoteAudio(
    const char* uid,
    MuteState mute_state)

设置对来自远端指定用户的音频流的接收状态。默认为接收。

传入参数

参数名 类型 说明
uid const char* 指定远端用户的 ID
mute_state MuteState 接收状态。参看:MuteState

注意 本方法只影响本地是否接收远端音频流,并不影响远端音频设备的采集发送功能。

SetRemoteVideoCanvas

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

返回值

注意

SetRemoteVideoRender

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

设置远端视频外部渲染器

传入参数

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

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

RemoveAllRemoteVideo

virtual void bytertc::IRtcRoom::RemoveAllRemoteVideo()

去除所有远端视频。

SetRemoteScreenRender

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

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

传入参数

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

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

RemoveAllRemoteScreen

virtual void bytertc::IRtcRoom::RemoveAllRemoteScreen()

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

SetDefaultMuteAllRemoteVideoStreams

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

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

传入参数

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

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

MuteAllRemoteVideo

virtual void bytertc::IRtcRoom::MuteAllRemoteVideo(
    MuteState muteState)

设置是否播放所有远端视频流

传入参数

参数名 类型 说明
muteState MuteState 接收状态,标识是否接收所有远端音/视频流,参看 MuteState
• true:停止播放
• false:开启播放

注意 本方法不影响远端视频采集和发送状态

MuteRemoteVideo

virtual void bytertc::IRtcRoom::MuteRemoteVideo(
    const char* userid,
    MuteState muteState)

设置是否播放远端视频流

传入参数

参数名 类型 说明
userid const char* 视频来源的远端用户 ID
muteState MuteState 接收状态,标识是否接收远端音/视频流,参看 MuteState
• true:停止播放
• false:开启播放

注意 本方法不影响远端视频采集和发送状态

EnableAutoSubscribe

virtual void bytertc::IRtcRoom::EnableAutoSubscribe(
    SubscribeMode audio_mode,
    SubscribeMode video_mode)

设置订阅模式。
用户调用此方法设置房间中音视频流的订阅模式。默认为自动订阅。
如需开启手动订阅功能,建议在调用 JoinRoom 方法加入房间前完成设置。

传入参数

参数名 类型 说明
audio_mode SubscribeMode 音频流的订阅模式。参看 SubscribeMode。
video_mode SubscribeMode 视频流的订阅模式。参看 SubscribeMode。

IVideoEffect

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

函数说明

CheckSupport

virtual int bytertc::IVideoEffect::CheckSupport()

检查当前版本是否支持视频特效

返回值 : 0: 不支持 >0: 支持视频特效

CheckLicense

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

视频特效许可证检查

传入参数

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

返回值 0: 许可证验证成功 !0: 许可证验证验证失败

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

EnableEffect

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

开启关闭视频特效

传入参数

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

返回值 0: 成功 !0: 失败。

注意 在调用CheckLicense和SetAlgoModelPath后调用此方法

SetAlgoModelPath

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

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

传入参数

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

SetEffectNodes

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

设置特效包,支持同时设置多个特效包

传入参数

参数名 类型 说明
effectPackPaths int nodeNum 特效包路径数组
nodeNum int 特效包个数

AddEffectNodes

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

增加特效包,支持同时增加多个特效包

传入参数

参数名 类型 说明
effectNodePaths const char** 要追加的特效包路径数组
nodeNum int 特效包个数

RemoveEffectNodes

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

移除特效包,支持同时移除多个特效包

传入参数

参数名 类型 说明
effectNodePaths const char** 要移除的特效包路径数组
nodeNum int 特效包个数

UpdateNode

virtual void bytertc::IVideoEffect::UpdateNode(
    const char* nodePath,
    const char* nodeKey,
    float nodeValue)

设置特效强度

传入参数

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

注意 nodeKey 的取值请参考特效包的参数说明文件

SetColorFilter

virtual void bytertc::IVideoEffect::SetColorFilter(
    const char* resPath)

设置颜色滤镜

传入参数

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

SetColorFilterIntensity

virtual void bytertc::IVideoEffect::SetColorFilterIntensity(
    float intensity)

设置颜色滤镜强度

传入参数

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

IVideoFrame

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

函数说明

build_video_frame

static IVideoFrame* bytertc::IVideoFrame::build_video_frame(
    const VideoFrameBuilder& builder)

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

传入参数

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

frame_type

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

获取视频帧类型

pixel_format

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

获取视频帧格式

timestamp_us

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

获取视频帧时间戳,单位:微秒

width

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

获取视频帧宽度

height

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

获取视频帧高度

rotation

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

获取视频帧旋转角度

color_space

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

获取视频帧颜色空间

number_of_planes

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

视频帧颜色 plane 数量

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

get_plane_data

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

获取 plane 数据指针

传入参数

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

get_plane_line_size

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

获取 plane 中数据行的长度

传入参数

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

get_extra_data_info

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

获取扩展数据指针

传入参数

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

get_supplementary_info

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

获取补充数据指针

传入参数

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

get_hwaccel_buffer

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

获取本地缓冲区指针

shallow_copy

virtual IVideoFrame* bytertc::IVideoFrame::shallow_copy()

浅拷贝视频帧并返回指针

release

virtual void bytertc::IVideoFrame::release()

释放视频帧

to_i420

virtual void bytertc::IVideoFrame::to_i420()

视频帧数据转为 YUV I420 格式