Public API
函数
返回名称
BYTERTC_API bytertc::IRTCVideo*createRTCVideo
BYTERTC_API voiddestroyRTCVideo
BYTERTC_API const char*getErrorDescription
BYTERTC_API const char*getSDKVersion
BYTERTC_API IAudioFrame*buildAudioFrame
BYTERTC_API IPublicStreamParam*createPublicStreamParam
BYTERTC_API ITranscoderParam*createTranscoderParam
BYTERTC_API IVideoFrame*buildVideoFrame
BYTERTC_API IEncodedVideoFrame*buildEncodedVideoFrame
函数说明
createRTCVideo
BYTERTC_API bytertc::IRTCVideo* bytertc::createRTCVideo(
    const char* app_id,
    bytertc::IRTCVideoEventHandler *event_handler,
    const char* parameters)
cpp

创建 IRTCVideo 实例。

如果当前进程中未创建引擎实例,那么你必须先使用此方法,以使用 RTC 提供的各种音视频能力。

如果当前进程中已创建了引擎实例,再次调用此方法时,会返回已创建的引擎实例。

传入参数

参数名类型说明
app_idconst char*每个应用的唯一标识符。只有使用相同的 app_id 生成的实例,才能够进行音视频通信。
event_handlerbytertc::IRTCVideoEventHandler*SDK 回调给应用层的 Callback 对象,详见 IRTCVideoEventHandler 。
parametersconst char*私有参数。如需使用请联系技术支持人员。

返回值

destroyRTCVideo
BYTERTC_API void bytertc::destroyRTCVideo();
cpp

销毁由 createRTCVideo 所创建的引擎实例,并释放所有相关资源。

注意

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

获取 SDK 内各种错误码、警告码的描述文字。

传入参数

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

返回值
错误码的描述

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

getSDKVersion
BYTERTC_API const char* bytertc::getSDKVersion();
cpp

获取当前 SDK 版本信息。

返回值
当前 SDK 版本信息。

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

创建 IAudioFrame

传入参数

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

返回值
详见 IAudioFrame

createPublicStreamParam
BYTERTC_API IPublicStreamParam* bytertc::createPublicStreamParam();
cpp

创建公共流参数实例

createTranscoderParam
BYTERTC_API ITranscoderParam* bytertc::createTranscoderParam();
cpp

创建合流参数实例

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

创建 IVideoFrame

传入参数

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

返回值
IVideoFrame 实例

buildEncodedVideoFrame
BYTERTC_API IEncodedVideoFrame* bytertc::buildEncodedVideoFrame(
    const EncodedVideoFrameBuilder& builder)
cpp

创建 IEncodedVideoFrame

传入参数

参数名类型说明
builderconst EncodedVideoFrameBuilder&编码后的视频帧构建实例,参看 EncodedVideoFrameBuilder

返回值
IEncodedVideoFrame 实例

IRTCRoom
class bytertc::IRTCRoom
cpp

房间接口

成员函数
返回名称
virtual voiddestroy
virtual voidsetUserVisibility
virtual voidsetRTCRoomEventHandler
virtual intjoinRoom
virtual voidleaveRoom
virtual intupdateToken
virtual int64_tsendUserMessage
virtual int64_tsendUserBinaryMessage
virtual int64_tsendRoomMessage
virtual int64_tsendRoomBinaryMessage
virtual voidpublishStream
virtual voidunpublishStream
virtual voidpublishScreen
virtual voidunpublishScreen
virtual intsetRemoteVideoConfig
virtual intsubscribeStream
virtual intsubscribeAllStreams
virtual intunsubscribeStream
virtual intunsubscribeAllStreams
virtual intsubscribeScreen
virtual intunsubscribeScreen
virtual voidpauseAllSubscribedStream
virtual voidresumeAllSubscribedStream
virtual voidsetMultiDeviceAVSync
virtual intstartForwardStreamToRooms
virtual intupdateForwardStreamToRooms
virtual voidstopForwardStreamToRooms
virtual voidpauseForwardStreamToAllRooms
virtual voidresumeForwardStreamToAllRooms
virtual voidsetRemoteRoomAudioPlaybackVolume
virtual int[deprecated] subscribeUserStream
函数说明

destroy
virtual void bytertc::IRTCRoom::destroy()
cpp

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

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

设置用户可见性。未调用该接口前,本地用户默认对他人可见。

传入参数

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

注意

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

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

传入参数

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

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

创建/加入房间:房间不存在时即创建房间;房间存在时,未加入房间的用户可加入这个房间。

同一房间内的用户间可以相互通话。

传入参数

参数名类型说明
tokenconst char*动态密钥,用于对登录用户进行鉴权验证。
进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在您的服务端生成并下发 Token。Token 有效期及生成方式参看使用 Token 完成鉴权。
• 使用不同 App ID 的 App 是不能互通的。
• 请务必保证生成 Token 使用的 App ID 和创建引擎时使用的 App ID 相同,否则会导致加入房间失败。具体失败原因会通过 onRoomStateChanged 回调告知。
user_infoconst UserInfo&用户信息,参看 UserInfo。
configconst RTCRoomConfig&房间参数配置,设置房间模式以及是否自动发布或订阅流。具体配置模式参看 RTCRoomConfig。

返回值

注意

leaveRoom
virtual void bytertc::IRTCRoom::leaveRoom()
cpp

离开房间。

用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。

加入房间后,必须调用此方法结束通话,否则无法开始下一次通话。无论当前是否在房间内,都可以调用此方法。重复调用此方法没有负面影响。

此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 onLeaveRoom 回调通知。

注意

updateToken
virtual int bytertc::IRTCRoom::updateToken(
    const char* token)
cpp

更新 Token。
Token 中同时包含进房、发布和订阅权限,各权限有一定的有效期,并且到期前 30 秒会触发回调,提示用户更新 Token 相关权限。此时需要重新获取 Token,并调用此方法更新 Token,以保证通话的正常进行。

传入参数

参数名类型说明
tokenconst char*重新获取的有效 Token。
如果传入的 Token 无效,回调错误码为 ErrorCode 中的 -1010。

返回值
方法调用结果:

注意

  1. 3.50(不含)以前的版本中,Token 中的发布和订阅权限为保留参数,无实际控制权限;3.50 及以后版本开放 Token 发布订阅控制权限,如需通过 Token 控制连麦权限,请联系技术支持团队开通白名单后支持。
  2. 请勿同时调用 updateToken 和 joinRoom 方法更新 Token。若因 Token 过期或无效导致加入房间失败或已被移出房间,你应该在获取新的有效 Token 后调用 joinRoom 重新加入房间。

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

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

传入参数

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

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

注意

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

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

传入参数

参数名类型说明
uidconst char*消息接收用户的 ID
lengthint二进制字符串的长度。
messageconst uint8_t*二进制消息的内容。
消息不超过 46KB。
configMessageConfig消息类型,参看 MessageConfig。

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

注意

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

给房间内的所有其他用户群发文本消息。

传入参数

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

注意

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

给房间内的所有其他用户群发二进制消息。

传入参数

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

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

注意

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

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

传入参数

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

注意

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

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

传入参数

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

注意

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

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

如果你需要手动向多个房间发布屏幕共享流,可以使用同样的 uid 加入多个房间,并在每个房间调用该方法。同时,你可以在不同的房间发布不同的屏幕共享流类型。

传入参数

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

注意

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

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

传入参数

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

注意

subscribeUserStream
virtual int bytertc::IRTCRoom::subscribeUserStream(
    const char* user_id,
    StreamIndex stream_type,
    SubscribeMediaType media_type,
    const SubscribeVideoConfig& video_config)
cpp

Deprecated since 3.36 and will be deleted in 3.51, use subscribeStream, unsubscribeStream, subscribeScreen and unsubscribeScreen instead.

订阅房间内指定的远端音视频流。

无论是自动订阅还是手动订阅模式,你都可以调用此方法按需订阅房间中的音视频流。

该方法也可用于更新已经订阅的流的属性、媒体类型等配置。

传入参数

参数名类型说明
user_idconst char*指定订阅的远端发布音视频流的用户 ID。
stream_typeStreamIndex流属性,用于指定订阅主流/屏幕流,参看 StreamIndex。
media_typeSubscribeMediaType媒体类型,用于指定订阅音/视频,参看 SubscribeMediaType。
video_configconst SubscribeVideoConfig&视频订阅配置,参看 SubscribeVideoConfig。

注意

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

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

传入参数

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

返回值
方法调用结果:

注意

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

订阅房间内指定的通过摄像头/麦克风采集的媒体流,或更新对指定远端用户的订阅选项

传入参数

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

返回值
方法调用结果:

注意

subscribeAllStreams
virtual int bytertc::IRTCRoom::subscribeAllStreams(
    MediaStreamType type)
cpp

订阅房间内所有通过摄像头/麦克风采集的媒体流,或更新订阅选项。

传入参数

参数名类型说明
typeMediaStreamType媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。

返回值

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

注意

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

取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。

该方法对自动订阅和手动订阅模式均适用。

传入参数

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

返回值
方法调用结果:

注意

unsubscribeAllStreams
virtual int bytertc::IRTCRoom::unsubscribeAllStreams(
    MediaStreamType type)
cpp

取消订阅房间内所有的通过摄像头/麦克风采集的媒体流。

自动订阅和手动订阅的流都可以通过本方法取消订阅。

传入参数

参数名类型说明
typeMediaStreamType媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。

返回值
方法调用结果:

注意

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

订阅房间内指定的远端屏幕共享音视频流,或更新对指定远端用户的订阅选项

传入参数

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

返回值
方法调用结果:

注意

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

取消订阅房间内指定的远端屏幕共享音视频流。

该方法对自动订阅和手动订阅模式均适用。

传入参数

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

返回值
方法调用结果:

注意

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

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

传入参数

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

注意

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

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

传入参数

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

注意

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

设置发流端音画同步。

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

传入参数

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

注意

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

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

传入参数

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

返回值

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

注意

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

更新跨房间媒体流转发信息。

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

传入参数

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

返回值

注意

stopForwardStreamToRooms
virtual void bytertc::IRTCRoom::stopForwardStreamToRooms()
cpp

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

注意

pauseForwardStreamToAllRooms
virtual void bytertc::IRTCRoom::pauseForwardStreamToAllRooms()
cpp

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

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

resumeForwardStreamToAllRooms
virtual void bytertc::IRTCRoom::resumeForwardStreamToAllRooms()
cpp

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

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

setRemoteRoomAudioPlaybackVolume
virtual void bytertc::IRTCRoom::setRemoteRoomAudioPlaybackVolume(
    int volume)
cpp

调节某个房间内所有远端用户的音频播放音量。

传入参数

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

注意
假设某远端用户 A 始终在被调节的目标用户范围内,+ 当该方法与 setRemoteAudioPlaybackVolume 共同使用时,本地收听用户 A 的音量为后调用的方法设置的音量;

IRTCVideo
class bytertc::IRTCVideo
cpp

引擎 API

成员函数
返回名称
virtual voidsetCaptureVolume
virtual voidsetPlaybackVolume
virtual voidstartAudioCapture
virtual voidstopAudioCapture
virtual voidsetAudioProfile
virtual voidstartVideoCapture
virtual voidstopVideoCapture
virtual intsetVideoCaptureConfig
virtual voidenableSimulcastMode
virtual intsetVideoEncoderConfig
virtual intsetVideoEncoderConfig
virtual intsetScreenVideoEncoderConfig
virtual intsetLocalVideoCanvas
virtual voidupdateLocalVideoCanvas
virtual voidsetRemoteVideoCanvas
virtual voidupdateRemoteStreamVideoCanvas
virtual voidsetLocalVideoSink
virtual voidsetRemoteVideoSink
virtual intpushScreenVideoFrame
virtual voidupdateScreenCaptureRegion
virtual intstartScreenVideoCapture
virtual voidstopScreenVideoCapture
virtual voidupdateScreenCaptureHighlightConfig
virtual voidupdateScreenCaptureMouseCursor
virtual IScreenCaptureSourceList*getScreenCaptureSourceList
virtual IVideoFrame*getThumbnail
virtual IVideoFrame*getWindowAppIcon
virtual voidsetVideoSourceType
virtual intpushExternalVideoFrame
virtual IRTCRoom*createRTCRoom
virtual voidsetPublishFallbackOption
virtual voidsetSubscribeFallbackOption
virtual intsetRemoteUserPriority
virtual intsetBusinessId
virtual IVideoEffect*getVideoEffectInterface
virtual voidsetEncryptInfo
virtual voidsetCustomizeEncryptHandler
virtual voidenableAudioFrameCallback
virtual voiddisableAudioFrameCallback
virtual voidregisterAudioFrameObserver
virtual intregisterLocalVideoProcessor
virtual intsendSEIMessage
virtual IVideoDeviceManager*getVideoDeviceManager
virtual IAudioDeviceManager*getAudioDeviceManager
virtual intstartFileRecording
virtual voidstopFileRecording
virtual intstartAudioRecording
virtual intstopAudioRecording
virtual voidenableExternalSoundCard
virtual voidsetRuntimeParameters
virtual intfeedback
virtual IAudioMixingManager*getAudioMixingManager
virtual intlogin
virtual voidlogout
virtual voidupdateLoginToken
virtual voidsetServerParams
virtual voidgetPeerOnlineStatus
virtual int64_tsendUserMessageOutsideRoom
virtual int64_tsendUserBinaryMessageOutsideRoom
virtual int64_tsendServerMessage
virtual int64_tsendServerBinaryMessage
virtual NetworkDetectionStartReturnstartNetworkDetection
virtual voidstopNetworkDetection
virtual voidsetAudioAlignmentProperty
virtual intstartPushPublicStream
virtual intstopPushPublicStream
virtual intupdatePublicStreamParam
virtual voidenableAudioPropertiesReport
virtual intsetRemoteAudioPlaybackVolume
virtual voidenableVocalInstrumentBalance
virtual voidenablePlaybackDucking
virtual voidregisterLocalEncodedVideoFrameObserver
virtual voidregisterRemoteEncodedVideoFrameObserver
virtual voidsetExternalVideoEncoderEventHandler
virtual intpushExternalEncodedVideoFrame
virtual voidsetVideoDecoderConfig
virtual voidrequestRemoteVideoKeyFrame
virtual intsendStreamSyncInfo
virtual voidsetLocalVoicePitch
virtual intstartPlayPublicStream
virtual intstopPlayPublicStream
virtual intsetPublicStreamVideoCanvas
virtual intsetPublicStreamVideoSink
virtual voidsetVideoWatermark
virtual voidclearVideoWatermark
virtual intsetDummyCaptureImagePath
virtual voidstartCloudProxy
virtual voidstopCloudProxy
virtual int[deprecated] setVideoEncoderConfig
virtual void[deprecated] registerLocalAudioProcessor
virtual void[deprecated] registerRemoteAudioFrameObserver
virtual int[deprecated] sendSEIMessage
virtual void[deprecated] muteAudioPlayback
函数说明

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

调节音频采集音量

传入参数

参数名类型说明
indexStreamIndex流索引,指定调节主流还是调节屏幕流的音量,参看 StreamIndex
volumeint采集的音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。
只改变音频数据的音量信息,不涉及本端硬件的音量调节。
为保证更好的通话质量,建议将 volume 值设为 [0,100]。
• 0:静音
• 100:原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

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

setPlaybackVolume
virtual void bytertc::IRTCVideo::setPlaybackVolume(
    const int volume)
cpp

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

播放音频前或播放音频时,你都可以使用此接口设定播放音量。

传入参数

参数名类型说明
volumeconst int音频播放音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。
只改变音频数据的音量信息,不涉及本端硬件的音量调节。
为保证更好的通话质量,建议将 volume 值设为 [0,100]。
• 0: 静音
• 100: 原始音量
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

注意
假设某远端用户 A 始终在被调节的目标用户范围内,当该方法与 setRemoteAudioPlaybackVolume 或 setRemoteRoomAudioPlaybackVolume 共同使用时,本地收听用户 A 的音量将为两次设置的音量效果的叠加。

startAudioCapture
virtual void bytertc::IRTCVideo::startAudioCapture()
cpp

开启内部音频采集。默认为关闭状态。

内部采集是指:使用 RTC SDK 内置的音频采集机制进行视频采集。
调用该方法开启后,本地用户会收到 onAudioDeviceStateChanged 的回调。

非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。

注意

stopAudioCapture
virtual void bytertc::IRTCVideo::stopAudioCapture()
cpp

立即关闭内部音频采集。默认为关闭状态。

内部采集是指:使用 RTC SDK 内置的音频采集机制进行视频采集。
调用该方法,本地用户会收到 onAudioDeviceStateChanged 的回调。

非隐身用户进房后调用该方法后,房间中的其他用户会收到 onUserStopAudioCapture 的回调。

注意

setAudioProfile
virtual void bytertc::IRTCVideo::setAudioProfile(
    AudioProfileType audio_profile)
cpp

设置音质档位。

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

传入参数

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

注意

startVideoCapture
virtual void bytertc::IRTCVideo::startVideoCapture()
cpp

立即开启内部视频采集。默认为关闭状态。

内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。

调用该方法后,本地用户会收到 onVideoDeviceStateChanged 的回调。

本地用户在非隐身状态下调用该方法后,房间中的其他用户会收到 onUserStartVideoCapture 的回调。

注意

stopVideoCapture
virtual void bytertc::IRTCVideo::stopVideoCapture()
cpp

立即关闭内部视频采集。默认为关闭状态。

内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。

调用该方法后,本地用户会收到 onVideoDeviceStateChanged 的回调。

非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。

注意

setVideoCaptureConfig
virtual int bytertc::IRTCVideo::setVideoCaptureConfig(
    const VideoCaptureConfig& videoCaptureConfig)
cpp

设置 RTC SDK 内部采集时的视频采集参数。

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

传入参数

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

返回值

注意

enableSimulcastMode
virtual void bytertc::IRTCVideo::enableSimulcastMode(
    bool enabled)
cpp

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

传入参数

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

注意

setVideoEncoderConfig
virtual int bytertc::IRTCVideo::setVideoEncoderConfig(
    const VideoEncoderConfig& max_solution)
cpp

视频发布端设置期望发布的最大分辨率视频流参数,包括分辨率、帧率、码率、网络不佳时的回退策略等。

该接口支持设置一路视频流参数,设置多路参数请使用重载 API:setVideoEncoderConfig。

传入参数

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

返回值
方法调用结果:

注意

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

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

传入参数

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

返回值
方法调用结果:

注意

setScreenVideoEncoderConfig
virtual int bytertc::IRTCVideo::setScreenVideoEncoderConfig(
    const ScreenVideoEncoderConfig& screen_solution)
cpp

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

传入参数

参数名类型说明
screen_solutionconst ScreenVideoEncoderConfig&屏幕共享视频流参数。参看 ScreenVideoEncoderConfig。

返回值

0:成功。
!0:失败。

注意
建议在采集视频前设置编码参数。若采集前未设置编码参数,则使用默认编码参数: 分辨率 1920px × 1080px,帧率 15fps。

setVideoEncoderConfig
virtual int bytertc::IRTCVideo::setVideoEncoderConfig(
    StreamIndex index,
    const VideoSolution* solutions,
    int solution_num)
cpp

Deprecated since 3.36 and will be deleted in 3.51, use setVideoEncoderConfig instead.

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

传入参数

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

返回值

注意

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

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

传入参数

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

返回值

注意

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

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

传入参数

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

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

setRemoteVideoCanvas
virtual void bytertc::IRTCVideo::setRemoteVideoCanvas(
    RemoteStreamKey stream_key,
    const VideoCanvas& canvas)
cpp

设置渲染指定视频流 stream_key 时,使用的视图和渲染模式。

如果需要解除某个用户的绑定视图,你可以把 canvas 设置为空。

传入参数

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

注意
本地用户离开房间时,会解除调用此 API 建立的绑定关系;远端用户离开房间则不会影响。

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

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

传入参数

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

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

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

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

传入参数

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

注意

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

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

传入参数

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

注意

pushScreenVideoFrame
virtual int bytertc::IRTCVideo::pushScreenVideoFrame(
    IVideoFrame* frame)
cpp

推送屏幕视频帧

传入参数

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

返回值
方法调用结果:

注意

updateScreenCaptureRegion
virtual void bytertc::IRTCVideo::updateScreenCaptureRegion(
    const Rectangle& region_rect)
cpp

通过 RTC SDK 提供的采集模块采集屏幕视频流时,更新采集区域。仅用于采集源为显示器屏幕时。

传入参数

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

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

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

采集屏幕视频流,用于共享。屏幕视频流包括:屏幕上显示的内容,应用窗口中显示的内容,或虚拟屏幕中显示的内容。

其中,虚拟屏幕中显示的内容仅在 Windows 平台上支持。

传入参数

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

返回值

注意

stopScreenVideoCapture
virtual void bytertc::IRTCVideo::stopScreenVideoCapture()
cpp

停止屏幕视频流采集。

注意

updateScreenCaptureHighlightConfig
virtual void bytertc::IRTCVideo::updateScreenCaptureHighlightConfig(
    const HighlightConfig& highlight_config)
cpp

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

传入参数

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

注意

updateScreenCaptureMouseCursor
virtual void bytertc::IRTCVideo::updateScreenCaptureMouseCursor(
    MouseCursorCaptureState capture_mouse_cursor)
cpp

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

传入参数

参数名类型说明
capture_mouse_cursorMouseCursorCaptureState参看 MouseCursorCaptureState

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

getScreenCaptureSourceList
virtual IScreenCaptureSourceList* bytertc::IRTCVideo::getScreenCaptureSourceList()
cpp

获取共享对象列表。

返回值
共享对象列表,包括应用窗口和屏幕。详见 IScreenCaptureSourceList。用户选择后,可调用 startScreenVideoCapture 进行共享。

注意

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

获取共享对象缩略图

传入参数

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

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

注意
对 Linux 系统,采用 X11 协议时可用;采用 Wayland 协议时不可用。

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

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

传入参数

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

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

注意
对 Linux 系统,采用 X11 协议时可用;采用 Wayland 协议时不可用。

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

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

传入参数

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

注意

pushExternalVideoFrame
virtual int bytertc::IRTCVideo::pushExternalVideoFrame(
    IVideoFrame* frame)
cpp

推送外部视频帧。

传入参数

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

返回值
方法调用结果:

注意

createRTCRoom
virtual IRTCRoom* bytertc::IRTCVideo::createRTCRoom(
    const char* room_id)
cpp

创建房间实例。

调用此方法仅返回一个房间实例,你仍需调用 joinRoom 才能真正地创建/加入房间。

多次调用此方法以创建多个 IRTCRoom 实例。分别调用各 IRTCRoom 实例中的 joinRoom 方法,同时加入多个房间。

多房间模式下,用户可以同时订阅各房间的音视频流。

传入参数

参数名类型说明
room_idconst char*标识通话房间的房间 ID。该字符串符合正则表达式:[a-zA-Z0-9_@\-\.]{1,128}。

返回值
创建的 IRTCRoom 房间实例。

注意

setPublishFallbackOption
virtual void bytertc::IRTCVideo::setPublishFallbackOption(
    PublishFallbackOption option)
cpp

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

你可以调用该接口设置网络不佳或设备性能不足时从大流起进行降级处理,以保证通话质量。

传入参数

参数名类型说明
optionPublishFallbackOption本地发布的音视频流回退选项,参看 PublishFallbackOption。

注意

setSubscribeFallbackOption
virtual void bytertc::IRTCVideo::setSubscribeFallbackOption(
    SubscribeFallbackOption option)
cpp

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

你可调用该接口设置网络不佳或设备性能不足时允许订阅流进行降级或只订阅音频流,以保证通话流畅。

传入参数

参数名类型说明
optionSubscribeFallbackOption订阅的音视频流回退选项,参看 SubscribeFallbackOption。

注意

setRemoteUserPriority
virtual int bytertc::IRTCVideo::setRemoteUserPriority(
    const char* room_id,
    const char* user_id,
    RemoteUserPriority priority)
cpp

设置用户优先级。

传入参数

参数名类型说明
room_idconst char*房间 ID
user_idconst char*远端用户的 ID
priorityRemoteUserPriority远端用户的需求优先级,详见枚举类型RemoteUserPriority

返回值
0: 方法调用成功

注意

setBusinessId
virtual int bytertc::IRTCVideo::setBusinessId(
    const char* business_id)
cpp

设置业务标识参数

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

传入参数

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

返回值

注意

getVideoEffectInterface
virtual IVideoEffect* bytertc::IRTCVideo::getVideoEffectInterface()
cpp

获取视频特效接口。

返回值
视频特效接口,参看 IVideoEffect。

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

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

传入参数

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

注意

setCustomizeEncryptHandler
virtual void bytertc::IRTCVideo::setCustomizeEncryptHandler(
    IEncryptHandler* handler)
cpp

设置自定义加密和解密方式。

传入参数

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

注意

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

设置并开启指定的音频数据帧回调

传入参数

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

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

disableAudioFrameCallback
virtual void bytertc::IRTCVideo::disableAudioFrameCallback(
    AudioFrameCallbackMethod method)
cpp

关闭音频回调

传入参数

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

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

registerAudioFrameObserver
virtual void bytertc::IRTCVideo::registerAudioFrameObserver(
    IAudioFrameObserver* observer)
cpp

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

传入参数

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

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

registerLocalAudioProcessor
virtual void bytertc::IRTCVideo::registerLocalAudioProcessor(
    IAudioProcessor* processor,
    AudioFormat audioFormat)
cpp

Deprecated since 3.42 and will be deleted in 3.51, use registerAudioProcessor instead.

设置自定义音频处理器。

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

SDK 只持有 processor 的弱引用,你应保证其生命周期。

传入参数

参数名类型说明
processorIAudioProcessor*自定义音频处理器,参看 IAudioProcessor。如果传入 null,则不对 RTC SDK 采集得到的音频帧进行自定义处理。
audioFormatAudioFormat自定义音频参数格式,参看 AudioFormat,SDK 将按指定设置给出音频帧。

注意
重复调用此接口时,仅最后一次调用生效。效果不会叠加。

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

设置自定义视频前处理器。

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

传入参数

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

返回值

注意

registerRemoteAudioFrameObserver
virtual void bytertc::IRTCVideo::registerRemoteAudioFrameObserver(
    IRemoteAudioFrameObserver* observer)
cpp

Deprecated since 3.37 and will be deleted in 3.51, use registerAudioFrameObserver instead.

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

传入参数

参数名类型说明
observerIRemoteAudioFrameObserver*音频数据回调观察者,详见 IRemoteAudioFrameObserver

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

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

Deprecated since 3.50 and will be deleted in 3.55, use sendSEIMessage instead.

通过视频帧发送 SEI 数据。

在视频通话场景下,SEI 数据会随视频帧发送;在语音通话场景下,SDK 会自动生成一路 16px × 16px 的黑帧视频流用来发送 SEI 数据。

传入参数

参数名类型说明
stream_indexStreamIndex指定携带 SEI 数据的媒体流类型,参看 StreamIndex。
语音通话场景下,该值需设为 kStreamIndexMain,否则 SEI 数据会被丢弃从而无法送达远端。
messageconst uint8_t*SEI 消息。
lengthintSEI 消息长度,不超过 4KB。
repeat_countint消息发送重复次数。取值范围是 [0, 30]。
调用此接口后,SEI 数据会添加到从当前视频帧开始的连续 repeat_count 个视频帧中。

返回值

注意

sendSEIMessage
virtual int bytertc::IRTCVideo::sendSEIMessage(
    StreamIndex stream_index,
    const uint8_t* message,
    int length,
    int repeat_count,
    SEICountPerFrame mode)
cpp

通过视频帧发送 SEI 数据。
在视频通话场景下,SEI 数据会随视频帧发送;在语音通话场景下,SDK 会自动生成一路 16px × 16px 的黑帧视频流用来发送 SEI 数据。

传入参数

参数名类型说明
stream_indexStreamIndex指定携带 SEI 数据的媒体流类型,参看 StreamIndex。
语音通话场景下,该值需设为 kStreamIndexMain,否则 SEI 数据会被丢弃从而无法送达远端。
messageconst uint8_t*SEI 消息。
lengthintSEI 消息长度,建议每帧 SEI 数据总长度长度不超过 4 KB。
repeat_countint消息发送重复次数。取值范围是 [0, max{29, %{视频帧率}-1}]。推荐范围 [2,4]。
调用此接口后,SEI 数据会添加到从当前视频帧开始的连续 repeatCount 个视频帧中。
modeSEICountPerFrameSEI 发送模式,参看 SEICountPerFrame。

返回值

注意

getVideoDeviceManager
virtual IVideoDeviceManager* bytertc::IRTCVideo::getVideoDeviceManager()
cpp

创建视频设备管理实例

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

getAudioDeviceManager
virtual IAudioDeviceManager* bytertc::IRTCVideo::getAudioDeviceManager()
cpp

设备音频管理接口创建

返回值
音频设备管理接口

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

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

传入参数

参数名类型说明
typeStreamIndex流属性,指定录制主流还是屏幕流,参看 StreamIndex
configRecordingConfig本地录制参数配置,参看 RecordingConfig
recording_typeRecordingType本地录制的媒体类型,参看 RecordingType

返回值

注意

stopFileRecording
virtual void bytertc::IRTCVideo::stopFileRecording(
    StreamIndex type)
cpp

停止本地录制

传入参数

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

注意

startAudioRecording
virtual int bytertc::IRTCVideo::startAudioRecording(
    AudioRecordingConfig& config)
cpp

开启录制语音通话,生成本地文件。

传入参数

参数名类型说明
configAudioRecordingConfig&参看 AudioRecordingConfig

返回值

注意

stopAudioRecording
virtual int bytertc::IRTCVideo::stopAudioRecording()
cpp

停止音频文件录制

返回值

注意
调用 startAudioRecording 开启本地录制。

enableExternalSoundCard
virtual void bytertc::IRTCVideo::enableExternalSoundCard(
    bool enable)
cpp

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

传入参数

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

注意

setRuntimeParameters
virtual void bytertc::IRTCVideo::setRuntimeParameters(
    const char * json_string)
cpp

设置运行时的参数

传入参数

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

注意
该接口需在 joinRoom 和 startAudioCapture 之前调用。

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

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

传入参数

参数名类型说明
typeProblemFeedbackOption*预设问题列表,参看 ProblemFeedbackOption
countintProblemFeedbackOption 数组长度
problem_descconst char*预设问题以外的其他问题的具体描述

返回值

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

getAudioMixingManager
virtual IAudioMixingManager* bytertc::IRTCVideo::getAudioMixingManager()
cpp

混音管理接口创建

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

login
virtual int bytertc::IRTCVideo::login(
    const char* token,
    const char* uid)
cpp

必须先登录,才能调用 sendUserMessageOutsideRoom 和 sendServerMessage 发送房间外点对点消息和向应用服务器发送消息

在调用本接口登录后,如果想要登出,需要调用 logout。

传入参数

参数名类型说明
tokenconst char*用户登录必须携带的 Token,用于鉴权验证。
测试时可使用控制台生成临时 Token,roomId 填任意值。
正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token,roomId 置空,Token 有效期及生成方式参看使用 Token 完成鉴权。
uidconst char*用户 ID
用户 ID 在 appid 的维度下是唯一的。

返回值

注意
本地用户调用此方法登录后,会收到 onLoginResult 回调通知登录结果,远端用户不会收到通知。

logout
virtual void bytertc::IRTCVideo::logout()
cpp

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

注意

updateLoginToken
virtual void bytertc::IRTCVideo::updateLoginToken(
    const char* token)
cpp

更新用户用于登录的 Token

Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。

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

传入参数

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

注意

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

设置应用服务器参数

客户端调用 sendServerMessage 或 sendServerBinaryMessage 发送消息给应用服务器之前,必须设置有效签名和应用服务器地址。

传入参数

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

注意

getPeerOnlineStatus
virtual void bytertc::IRTCVideo::getPeerOnlineStatus(
    const char* peer_user_id)
cpp

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

传入参数

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

注意

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

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

传入参数

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

返回值

注意

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

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

传入参数

参数名类型说明
uidconst char*消息接收用户的 ID
lengthint二进制字符串的长度
messageconst uint8_t*发送的二进制消息内容
消息不超过 46KB。
configMessageConfig消息类型,参看 MessageConfig。

返回值

注意

sendServerMessage
virtual int64_t bytertc::IRTCVideo::sendServerMessage(
    const char* message)
cpp

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

传入参数

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

返回值

注意

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

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

传入参数

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

返回值

注意

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

开启通话前网络探测

传入参数

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

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

注意

stopNetworkDetection
virtual void bytertc::IRTCVideo::stopNetworkDetection()
cpp

停止通话前网络探测

注意

setAudioAlignmentProperty
virtual void bytertc::IRTCVideo::setAudioAlignmentProperty(
    const RemoteStreamKey& streamKey,
    AudioAlignmentMode mode)
cpp

在听众端,设置订阅的所有远端音频流精准对齐后播放。

传入参数

参数名类型说明
streamKeyconst RemoteStreamKey&作为对齐基准的远端音频流。参看 RemoteStreamKey。
一般选择主唱的音频流。
你必须在收到 onUserPublishStream,确认此音频流已发布后,调用此 API。
modeAudioAlignmentMode是否对齐,默认不对齐。参看 AudioAlignmentMode。

注意

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

发布一路公共流

用户可以指定房间内多个用户发布的媒体流合成一路公共流。使用同一 appID 的用户,可以调用 startPlayPublicStream 获取和播放指定的公共流。

传入参数

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

返回值

注意

stopPushPublicStream
virtual int bytertc::IRTCVideo::stopPushPublicStream(
    const char* public_stream_id)
cpp

停止发布当前用户发布的公共流

关于发布公共流,查看 startPushPublicStream。

传入参数

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

返回值

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

更新公共流参数

关于发布公共流,查看 startPushPublicStream。

传入参数

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

返回值

注意
调用本接口前需要通过 onPushPublicStreamResult 确认公共流是否已经成功启动。

enableAudioPropertiesReport
virtual void bytertc::IRTCVideo::enableAudioPropertiesReport(
    const AudioPropertiesConfig& config)
cpp

启用音频信息提示。开启提示后,你会收到 onLocalAudioPropertiesReport,onRemoteAudioPropertiesReport 和 onActiveSpeaker。

传入参数

参数名类型说明
configconst AudioPropertiesConfig&详见 AudioPropertiesConfig

setRemoteAudioPlaybackVolume
virtual int bytertc::IRTCVideo::setRemoteAudioPlaybackVolume(
    const char* room_id,
    const char* user_id,
    int volume)
cpp

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

传入参数

参数名类型说明
room_idconst char*音频来源用户所在的房间 ID
user_idconst char*音频来源的远端用户 ID
volumeint音频播放音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。为保证更好的通话质量,建议将 volume 值设为 [0,100]。
只改变音频数据的音量信息,不涉及本端硬件的音量调节。
• 0: 静音
• 100: 原始音量,默认值
• 400: 最大可为原始音量的 4 倍(自带溢出保护)

返回值
方法调用结果:

注意
假设某远端用户 A 始终在被调节的目标用户范围内,+ 当该方法与 setRemoteRoomAudioPlaybackVolume 共同使用时,本地收听用户 A 的音量为后调用的方法设置的音量;

enableVocalInstrumentBalance
virtual void bytertc::IRTCVideo::enableVocalInstrumentBalance(
    bool enable)
cpp

开启/关闭音量均衡功能。

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

传入参数

参数名类型说明
enablebool是否开启音量均衡功能:
• true: 是
• false: 否

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

enablePlaybackDucking
virtual void bytertc::IRTCVideo::enablePlaybackDucking(
    bool enable)
cpp

打开/关闭音量闪避功能,适用于在 RTC 通话过程中会同时播放短视频或音乐的场景,如“一起看”、“在线 KTV”等。

开启该功能后,当检测到远端人声时,本地的媒体播放音量会自动减弱,从而保证远端人声的清晰可辨;当远端人声消失时,本地媒体音量会恢复到闪避前的音量水平。

传入参数

参数名类型说明
enablebool是否开启音量闪避:
• true: 是
• false: 否

registerLocalEncodedVideoFrameObserver
virtual void bytertc::IRTCVideo::registerLocalEncodedVideoFrameObserver(
    ILocalEncodedVideoFrameObserver* observer)
cpp

注册本地视频帧监测器。

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

传入参数

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

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

registerRemoteEncodedVideoFrameObserver
virtual void bytertc::IRTCVideo::registerRemoteEncodedVideoFrameObserver(
    IRemoteEncodedVideoFrameObserver* observer)
cpp

注册远端编码后视频数据回調。

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

传入参数

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

注意

setExternalVideoEncoderEventHandler
virtual void bytertc::IRTCVideo::setExternalVideoEncoderEventHandler(
    IExternalVideoEncoderEventHandler* encoder_handler)
cpp

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

传入参数

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

注意

pushExternalEncodedVideoFrame
virtual int bytertc::IRTCVideo::pushExternalEncodedVideoFrame(
    StreamIndex index,
    int video_index,
    IEncodedVideoFrame* video_stream)
cpp

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

传入参数

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

返回值
方法调用结果:

注意

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

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

传入参数

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

注意

requestRemoteVideoKeyFrame
virtual void bytertc::IRTCVideo::requestRemoteVideoKeyFrame(
    const RemoteStreamKey& stream_info)
cpp

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

传入参数

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

注意

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

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

传入参数

参数名类型说明
dataconst uint8_t*消息内容。
lengthint32_t消息长度。取值范围是 [1,255] 字节,建议小于 16 字节,否则可能占用较大带宽。
configconst StreamSycnInfoConfig&媒体流信息同步的相关配置,详见 StreamSycnInfoConfig 。

返回值

注意

setLocalVoicePitch
virtual void bytertc::IRTCVideo::setLocalVoicePitch(
    int pitch)
cpp

开启本地语音变调功能,多用于 K 歌场景。

使用该方法,你可以对本地语音的音调进行升调或降调等调整。

传入参数

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

muteAudioPlayback
virtual void bytertc::IRTCVideo::muteAudioPlayback(
    MuteState mute_state)
cpp

Deprecated since 3.45 and will be deleted in 3.51, use setPlaybackVolume instead.

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

传入参数

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

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

startPlayPublicStream
virtual int bytertc::IRTCVideo::startPlayPublicStream(
    const char* public_stream_id)
cpp

订阅指定公共流

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

传入参数

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

返回值

注意

stopPlayPublicStream
virtual int bytertc::IRTCVideo::stopPlayPublicStream(
    const char* public_stream_id)
cpp

取消订阅指定公共流

关于订阅公共流,查看 startPlayPublicStream。

传入参数

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

返回值

setPublicStreamVideoCanvas
virtual int bytertc::IRTCVideo::setPublicStreamVideoCanvas(
    const char* public_stream_id,
    const VideoCanvas& canvas)
cpp

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

传入参数

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

返回值

setPublicStreamVideoSink
virtual int bytertc::IRTCVideo::setPublicStreamVideoSink(
    const char* public_stream_id,
    IVideoSink* video_sink,
    IVideoSink::PixelFormat format)
cpp

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

传入参数

参数名类型说明
public_stream_idconst char*公共流 ID
video_sinkIVideoSink*自定义视频渲染器,自定义视频渲染器,需要释放渲染器资源时,将 videoSink 设置为 null。参看 IVideoSink
formatIVideoSink::PixelFormatvideoSink 适用的视频帧编码格式,参看 PixelFormat

返回值
方法调用结果:

setVideoWatermark
virtual void bytertc::IRTCVideo::setVideoWatermark(
    StreamIndex streamIndex,
    const char* image_path,
    RTCWatermarkConfig config)
cpp

在指定视频流上添加水印。

传入参数

参数名类型说明
streamIndexStreamIndex需要添加水印的视频流属性,参看 StreamIndex。
image_pathconst char*水印图片路径,仅支持本地文件绝对路径,长度限制为 512 字节。
水印图片为 PNG 或 JPG 格式。
configRTCWatermarkConfig水印参数,参看 RTCWatermarkConfig。

注意

clearVideoWatermark
virtual void bytertc::IRTCVideo::clearVideoWatermark(
    StreamIndex streamIndex)
cpp

移除指定视频流的水印。

传入参数

参数名类型说明
streamIndexStreamIndex需要移除水印的视频流属性,参看 StreamIndex。

setDummyCaptureImagePath
virtual int bytertc::IRTCVideo::setDummyCaptureImagePath(
    const char* file_path)
cpp

摄像头处于关闭状态时,使用静态图片填充本地推送的视频流。
可重复调用该接口来更新图片。若要停止发送图片,可传入空字符串或启用内部摄像头采集。

传入参数

参数名类型说明
file_pathconst char*设置静态图片的路径。
支持本地文件绝对路径,不支持网络链接,长度限制为 512 字节。
静态图片支持类型为 JPEG/JPG、PNG、BMP。
若图片宽高比与设置的编码宽高比不一致,图片会被等比缩放,黑边填充空白区域。推流帧率与码率与设置的编码参数一致。

返回值

注意

startCloudProxy
virtual void bytertc::IRTCVideo::startCloudProxy(
    const CloudProxyConfiguration& configuration)
cpp

开启云代理

传入参数

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

注意

stopCloudProxy
virtual void bytertc::IRTCVideo::stopCloudProxy()
cpp

关闭云代理

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

IDeviceCollection
class bytertc::IDeviceCollection
cpp

音视频设备相关的信息

成员函数
返回名称
virtual intgetCount
virtual intgetDevice
virtual voidrelease
函数说明

getCount
virtual int bytertc::IDeviceCollection::getCount()
cpp

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

返回值
音视频设备数量

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

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

传入参数

参数名类型说明
indexint设备索引号,从 0 开始,注意需小于 getCount 返回值。
device_namechar设备名称
device_idchar设备 ID

返回值

release
virtual void bytertc::IDeviceCollection::release()
cpp

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

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

IAudioDeviceCollection
class bytertc::IAudioDeviceCollection
cpp

音频设备相关的信息

成员函数
返回名称
virtual intgetCount
virtual intgetDevice
virtual voidrelease
virtual intgetDevice
函数说明

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

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

返回值
音频设备数量

getDevice
virtual int bytertc::IAudioDeviceCollection::getDevice(
    int index,
    char device_name[MAX_DEVICE_ID_LENGTH],
    char device_id[MAX_DEVICE_ID_LENGTH])
cpp

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

传入参数

参数名类型说明
indexint设备索引号,从 0 开始,注意需小于 getCount 返回值。
device_namechar设备名称
device_idchar设备 ID

返回值

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

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

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

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

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

传入参数

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

返回值

IAudioDeviceManager
class bytertc::IAudioDeviceManager
cpp

音频设备管理类

成员函数
返回名称
virtual IAudioDeviceCollection*enumerateAudioPlaybackDevices
virtual IAudioDeviceCollection*enumerateAudioCaptureDevices
virtual voidfollowSystemPlaybackDevice
virtual voidfollowSystemCaptureDevice
virtual intsetAudioPlaybackDevice
virtual intsetAudioCaptureDevice
virtual intsetAudioPlaybackDeviceVolume
virtual intgetAudioPlaybackDeviceVolume
virtual intsetAudioCaptureDeviceVolume
virtual intgetAudioCaptureDeviceVolume
virtual intsetAudioPlaybackDeviceMute
virtual intgetAudioPlaybackDeviceMute
virtual intsetAudioCaptureDeviceMute
virtual intgetAudioCaptureDeviceMute
virtual intgetAudioPlaybackDevice
virtual intgetAudioCaptureDevice
virtual intinitAudioPlaybackDeviceForTest
virtual intinitAudioCaptureDeviceForTest
virtual intstartAudioPlaybackDeviceTest
virtual intstopAudioPlaybackDeviceTest
virtual intstartAudioDeviceRecordTest
virtual intstopAudioDeviceRecordAndPlayTest
virtual intstopAudioDevicePlayTest
函数说明

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

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

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

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

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

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

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

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

传入参数

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

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

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

传入参数

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

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

设置音频播放设备。

传入参数

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

返回值

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

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

设置音频采集设备。

传入参数

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

返回值
方法调用结果

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

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

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

传入参数

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

返回值
方法调用结果

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

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

传入参数

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

返回值
方法调用结果

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

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

传入参数

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

返回值
方法调用结果

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

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

传入参数

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

返回值
方法调用结果

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

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

传入参数

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

返回值
方法调用结果

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

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

传入参数

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

返回值
方法调用结果

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

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

传入参数

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

返回值
方法调用结果

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

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

传入参数

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

返回值
方法调用结果

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

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

传入参数

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

返回值
方法调用结果

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

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

传入参数

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

返回值
方法调用结果

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

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

传入参数

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

返回值
设备状态错误码

注意

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

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

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

传入参数

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

返回值
设备状态错误码

注意

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

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

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

传入参数

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

返回值
方法调用结果

注意

stopAudioPlaybackDeviceTest
virtual int bytertc::IAudioDeviceManager::stopAudioPlaybackDeviceTest()
cpp

停止音频播放测试。

返回值
方法调用结果

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

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

开始音频采集设备和音频播放设备测试。

传入参数

参数名类型说明
indication_intervalint测试中会收到 onLocalAudioPropertiesReport 回调,本参数指定了该周期回调的时间间隔,单位为毫秒。建议设置到大于 200 毫秒。最小不得少于 10 毫秒。

返回值
方法调用结果

注意

stopAudioDeviceRecordAndPlayTest
virtual int bytertc::IAudioDeviceManager::stopAudioDeviceRecordAndPlayTest()
cpp

停止采集本地音频,并开始播放采集到的声音。录音播放完毕后,设备测试流程结束。

调用 startAudioDeviceRecordTest 30 s 内调用本接口来停止采集并开始播放此前采集到的声音。

返回值
方法调用结果

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

stopAudioDevicePlayTest
virtual int bytertc::IAudioDeviceManager::stopAudioDevicePlayTest()
cpp

停止由调用 startAudioDeviceRecordTest 开始的音频播放设备测试。

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

返回值
方法调用结果

IAudioMixingManager
class bytertc::IAudioMixingManager
cpp

混音管理类

成员函数
返回名称
virtual voidstartAudioMixing
virtual voidstopAudioMixing
virtual voidpauseAudioMixing
virtual voidresumeAudioMixing
virtual voidpreloadAudioMixing
virtual voidunloadAudioMixing
virtual intgetAudioMixingDuration
virtual intgetAudioMixingCurrentPosition
virtual voidsetAudioMixingPosition
virtual voidsetAudioMixingDualMonoMode
virtual voidsetAudioMixingPitch
virtual intsetAudioMixingPlaybackSpeed
virtual voidsetAudioMixingProgressInterval
virtual voidsetAudioMixingLoudness
virtual voidenableAudioMixingFrame
virtual voiddisableAudioMixingFrame
virtual intpushAudioMixingFrame
virtual intgetAudioTrackCount
virtual voidselectAudioTrack
函数说明

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

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

传入参数

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





mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYYYY
iOS/macOSYYYYYY
WindowsYYYYYYYY

不同平台支持的在线音频文件格式:





mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYY
iOS/macOSYYYY
WindowsYYYYYYY
configconst AudioMixingConfig&混音配置
可以设置混音的播放次数、是否本地播放混音、以及是否将混音发送至远端,详见 AudioMixingConfig。

注意

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

停止播放音频文件及混音。

传入参数

参数名类型说明
mix_idint混音 ID

注意

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

暂停播放音频文件及混音。

传入参数

参数名类型说明
mix_idint混音 ID

注意

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

恢复播放音频文件及混音。

传入参数

参数名类型说明
mix_idint混音 ID

注意

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

预加载指定音乐文件到内存中,以避免频繁播放同一文件时的重复加载,减少 CPU 占用。

传入参数

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





mp3mp4aacm4a3gpwavoggtswma
AndroidYYYYYYY
iOSYYYYYY
WindowsYYYYYYYY

注意

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

卸载指定音乐文件。

传入参数

参数名类型说明
mix_idint混音 ID

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

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

获取音频文件时长。

传入参数

参数名类型说明
mix_idint混音 ID

返回值

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

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

获取音频文件播放进度。

传入参数

参数名类型说明
mix_idint混音 ID

返回值

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

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

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

传入参数

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

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

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

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

传入参数

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

注意

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

开启本地播放音乐文件变调功能,多用于 K 歌场景。

使用该方法,你可以对本地播放音乐文件的音调进行升调或降调等调整。

传入参数

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

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

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

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

传入参数

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

注意

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

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

传入参数

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

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

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

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

传入参数

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

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

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

启动 PCM 音频数据混音。

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

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

传入参数

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

注意

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

关闭 PCM 混音

传入参数

参数名类型说明
mix_idint混音 ID。

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

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

传入参数

参数名类型说明
mix_idint混音 ID。
audio_frameIAudioFrame*音频帧,详见 IAudioFrame。

返回值

注意

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

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

传入参数

参数名类型说明
mix_idint混音 ID

返回值
方法调用结果

注意

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

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

传入参数

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

注意

IScreenCaptureSourceList
class bytertc::IScreenCaptureSourceList
cpp

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

成员函数
返回名称
virtual int32_tgetCount
virtual ScreenCaptureSourceInfogetSourceInfo
virtual voidrelease
函数说明

getCount
virtual int32_t bytertc::IScreenCaptureSourceList::getCount()
cpp

获取列表长度

返回值
可共享对象数量

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

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

传入参数

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

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

release
virtual void bytertc::IScreenCaptureSourceList::release()
cpp

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

IVideoDeviceCollection
class bytertc::IVideoDeviceCollection
cpp

视频设备相关的信息

成员函数
返回名称
virtual intgetCount
virtual intgetDevice
virtual voidrelease
virtual intgetDevice
函数说明

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

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

返回值
视频设备数量

getDevice
virtual int bytertc::IVideoDeviceCollection::getDevice(
    int index,
    char device_name[MAX_DEVICE_ID_LENGTH],
    char device_id[MAX_DEVICE_ID_LENGTH])
cpp

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

传入参数

参数名类型说明
indexint设备索引号,从 0 开始,注意需小于 getCount 返回值。
device_namechar设备名称
device_idchar设备 ID

返回值

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

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

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

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

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

传入参数

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

返回值

IVideoDeviceManager
class bytertc::IVideoDeviceManager
cpp

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

成员函数
返回名称
virtual IVideoDeviceCollection*enumerateVideoCaptureDevices
virtual intsetVideoCaptureDevice
virtual intgetVideoCaptureDevice
函数说明

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

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

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

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

设置当前视频采集设备

传入参数

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

返回值

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

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

传入参数

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

返回值

IVideoEffect
class bytertc::IVideoEffect
cpp

高级视频特效。

成员函数
返回名称
virtual intinitCVResource
virtual intgetAuthMessage
virtual intfreeAuthMessage
virtual intenableVideoEffect
virtual intdisableVideoEffect
virtual intsetEffectNodes
virtual intupdateEffectNode
virtual intsetColorFilter
virtual intsetColorFilterIntensity
virtual intenableFaceDetection
virtual intdisableFaceDetection
virtual void[deprecated] setAlgoModelPath
virtual int[deprecated] checkLicense
virtual int[deprecated] enableEffect
virtual int[deprecated] updateNode
virtual int[deprecated] registerFaceDetectionObserver
virtual int[deprecated] setBackgroundSticker
函数说明

initCVResource
virtual int bytertc::IVideoEffect::initCVResource(
    const char* license_file_path,
    const char* algo_model_dir)
cpp

检查视频特效证书,设置算法模型路径,并初始化特效模块。

传入参数

参数名类型说明
license_file_pathconst char*证书文件的绝对路径,用于鉴权。
algo_model_dirconst char*算法模型绝对路径,即存放特效 SDK 所有算法模型的目录。

返回值

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

Deprecated since 3.50 and will be deleted in 3.55, use initCVResource instead.

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

传入参数

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

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

Deprecated since 3.50 and will be deleted in 3.55, use initCVResource instead.

视频特效许可证检查

传入参数

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

返回值

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

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

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

传入参数

参数名类型说明
ppmsgchar**授权消息字符串地址
lenint*授权消息字符串的长度

返回值

注意

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

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

传入参数

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

返回值

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

Deprecated since 3.50 and will be deleted in 3.55, use enableVideoEffect instead.

开启关闭视频特效

传入参数

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

返回值

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

enableVideoEffect
virtual int bytertc::IVideoEffect::enableVideoEffect()
cpp

开启高级美颜、滤镜等视频特效。

返回值

注意

disableVideoEffect
virtual int bytertc::IVideoEffect::disableVideoEffect()
cpp

关闭视频特效。

返回值

注意
调用 enableVideoEffect 开启视频特效。

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

设置视频特效素材包。

传入参数

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

返回值

注意
调用本方法前,必须先调用 enableVideoEffect。

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

Deprecated since 3.50 and will be deleted in 3.55, use updateEffectNode instead.

设置特效强度

传入参数

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

返回值

updateEffectNode
virtual int bytertc::IVideoEffect::updateEffectNode(
    const char* effectNodePath,
    const char* nodeKey,
    float nodeValue)
cpp

设置特效强度。

传入参数

参数名类型说明
effectNodePathconst char*特效素材包绝对路径,参考素材包结构说明。
nodeKeyconst char*需要设置的素材 key 名称,参考素材 key 对应说明。
nodeValuefloat特效强度值,取值范围 [0,1],超出范围时设置无效。

返回值

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

设置颜色滤镜。

传入参数

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

返回值

注意
调用 setColorFilterIntensity 设置已启用颜色滤镜的强度。设置强度为 0 时即关闭颜色滤镜。

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

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

传入参数

参数名类型说明
intensityfloat滤镜强度。取值范围 [0,1],超出范围时设置无效。
当设置滤镜强度为 0 时即关闭颜色滤镜。

返回值

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

Deprecated since 3.50 and will be deleted in 3.55, use enableFaceDetection and disableFaceDetection instead.

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

传入参数

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

返回值

enableFaceDetection
virtual int bytertc::IVideoEffect::enableFaceDetection(
    IFaceDetectionObserver* observer,
    unsigned int interval_ms,
    const char* faceModelPath)
cpp

开启人脸识别功能,并设置人脸检测结果回调观察者。
此观察者后,你会周期性收到 onFaceDetectResult 回调。

传入参数

参数名类型说明
observerIFaceDetectionObserver*人脸检测结果回调观察者,参看 IFaceDetectionObserver。
interval_msunsigned int两次回调之间的最小时间间隔,必须大于 0,单位为毫秒。实际收到回调的时间间隔大于 interval_ms,小于 interval_ms+视频采集帧间隔。
faceModelPathconst char*人脸检测算法模型文件路径,一般为 ttfacemodel 文件夹中 tt_face_vXXX.model 文件的绝对路径。

返回值

disableFaceDetection
virtual int bytertc::IVideoEffect::disableFaceDetection()
cpp

关闭人脸识别功能。

返回值

setBackgroundSticker
virtual int bytertc::IVideoEffect::setBackgroundSticker(
    const char* modelPath,
    const VirtualBackgroundSource& source)
cpp

Deprecated since 3.50 and will be deleted in 3.55, use enableVirtualBackground instead.

将摄像头采集画面中的人像背景替换为指定图片或纯色背景。
若要取消背景特效,将背景贴纸特效素材路径设置为null。

传入参数

参数名类型说明
modelPathconst char*传入背景贴纸特效素材路径。
sourceconst VirtualBackgroundSource&设置背景特效图片的本地路径。参看 VirtualBackgroundSource。

返回值

注意
调用此接口前需依次调用以下接口:
1、检查视频特效许可证 checkLicense;
2、设置视频特效算法模型路径 setAlgoModelPath;
3、开启视频特效 enableEffect。

IVideoProcessor
class bytertc::IVideoProcessor
cpp

视频处理接口类

成员函数
返回名称
virtual IVideoFrame*processVideoFrame
函数说明

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

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

传入参数

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

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

注意