ByteRTCEngine class
Inheritance
Object
NativeClass
ByteRTCEngine
Methods
clearVideoWatermark ()
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author zhushufan.ref
@brief 移除指定视频流的水印。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
createGameRoom (NSString roomId , GameRoomConfig roomConfig )
→ FutureOr <ByteRTCGameRoom >
@detail api
@author shenpengliang
@brief 创建游戏房间实例。
调用此方法仅返回一个房间实例,你仍需调用 joinRoom:userInfo:{@link #ByteRTCGameRoom#joinRoom:userInfo} 才能真正地创建/加入房间。
多次调用此方法以创建多个 ByteRTCGameRoom{@link #ByteRTCGameRoom} 实例。分别调用各 GameRTCRoom 实例中的 joinRoom:userInfo:{@link #ByteRTCGameRoom#joinRoom:userInfo} 方法,同时加入多个房间。
多房间模式下,用户可以同时订阅各房间的音视频流。
@param roomId 标识通话房间的房间 ID。该字符串符合正则表达式:[a-zA-Z0-9_\@\\-\\.]{1,128}。
@param roomConfig 房间配置,参看 GameRoomConfig{@link #GameRoomConfig}。
@return 创建的 ByteRTCGameRoom{@link #ByteRTCGameRoom} 房间实例。
返回 NULL 时,请确认指定房间是否已经存在或 roomId 格式错误或当前场景是否是游戏场景。
@note
- 如果需要加入的房间已存在,你仍需先调用本方法来获取 GameRTCRoom 实例,再调用 joinRoom:userInfo:{@link #ByteRTCGameRoom#joinRoom:userInfo} 加入房间。
- 请勿使用同样的 roomId 创建多个房间,否则后创建的房间实例会替换先创建的房间实例。
createRTCRoom (NSString roomId )
→ FutureOr <ByteRTCRoom >
@detail api
@author shenpengliang
@brief 创建 RTC 房间实例。
调用此方法仅返回一个房间实例,你仍需调用 joinRoom:userInfo:userVisibility:roomConfig:{@link #ByteRTCRoom#joinRoom:userInfo:userVisibility:roomConfig} 才能真正地创建/加入房间。
多次调用此方法以创建多个 ByteRTCRoom{@link #ByteRTCRoom} 实例。分别调用各 ByteRTCRoom 实例中的 joinRoom:userInfo:userVisibility:roomConfig:{@link #ByteRTCRoom#joinRoom:userInfo:userVisibility:roomConfig} 方法,同时加入多个房间。
多房间模式下,用户可以同时订阅各房间的音视频流。
@param roomId 标识通话房间的房间 ID。该字符串符合正则表达式:[a-zA-Z0-9_\@\\-\\.]{1,128}。
@return 创建的 ByteRTCRoom{@link #ByteRTCRoom} 房间实例。
返回 NULL 时,请确认指定房间是否已经存在或 roomId 格式错误。
@note
- 如果需要加入的房间已存在,你仍需先调用本方法来获取 ByteRTCRoom 实例,再调用 joinRoom:userInfo:userVisibility:roomConfig:{@link #ByteRTCRoom#joinRoom:userInfo:userVisibility:roomConfig} 加入房间。
- 请勿使用同样的 roomId 创建多个房间,否则后创建的房间实例会替换先创建的房间实例。
- 如果你需要在多个房间发布音视频流,无须创建多房间,直接调用 startForwardStreamToRooms:{@link #ByteRTCRoom#startForwardStreamToRooms} 开始跨房间转发媒体流。
createRTSRoom (NSString roomId )
→ FutureOr <ByteRTCRTSRoom >
@detail api
@brief 创建 RTS 房间实例。
调用此方法仅返回一个RTS房间实例,你仍需调用 joinRTSRoom:userInfo:{@link #ByteRTCRTSRoom#joinRTSRoom:userInfo} 才能真正地创建/加入房间。
多次调用此方法以创建多个 ByteRTCRoom{@link #ByteRTCRoom} 实例。分别调用各 ByteRTCRTSRoom 实例中的 joinRTSRoom:userInfo:{@link #ByteRTCRTSRoom#joinRTSRoom:userInfo} 方法,同时加入多个房间。
多房间模式下,用户可以同时收发各房间的消息。
@param roomId 标识通话房间的房间 ID。该字符串符合正则表达式:[a-zA-Z0-9_\@\\-\\.]{1,128}。
@return 创建的 ByteRTCRoom{@link #ByteRTCRoom} 房间实例。
返回 NULL 时,请确认指定房间是否已经存在或 roomId 格式错误。
@note
- 如果需要加入的房间已存在,你仍需先调用本方法来获取 ByteRTCRTSRoom 实例,再调用 joinRTSRoom:userInfo:{@link #ByteRTCRTSRoom#joinRTSRoom:userInfo} 加入房间。
- 请勿使用同样的 roomId 创建多个房间,否则后创建的房间实例会替换先创建的房间实例。
destroy ()
→ void
inherited
disableAlphaChannelVideoEncode ()
→ FutureOr <int >
@hidden(macOS)
@valid since 3.58
@detail api
@hiddensdk(audiosdk)
@author zhuhongshuyu
@brief 关闭外部采集视频帧的 Alpha 通道编码功能。
@return 方法调用结果:
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note 该接口须在停止发布视频流之后调用。
disableAudioFrameCallback (ByteRTCAudioFrameCallbackMethod method )
→ FutureOr <int >
@detail api
@author gongzhengduo
@brief 关闭音频回调
@param method 音频回调方法,参看 ByteRTCAudioFrameCallbackMethod{@link #ByteRTCAudioFrameCallbackMethod}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 该方法需要在调用 enableAudioFrameCallback:format:{@link #ByteRTCEngine#enableAudioFrameCallback:format} 之后调用。
disableAudioProcessor (ByteRTCAudioFrameMethod method )
→ FutureOr <int >
@detail api
@author gongzhengduo
@brief 关闭自定义音频处理。
@param method 音频帧类型,参看 ByteRTCAudioFrameMethod{@link #ByteRTCAudioFrameMethod}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
enableAGC (BOOL enable )
→ FutureOr <int >
@hidden(iOS)
@valid since 3.51
@detail api
@author liuchuang
@brief 打开/关闭 AGC(Analog Automatic Gain Control)模拟自动增益控制功能。
开启该功能后,SDK 会自动调节麦克风的采集音量,确保音量稳定。
@param enable 是否打开 AGC 功能:
- true: 打开 AGC 功能。
- false: 关闭 AGC 功能。
@return
- 0: 调用成功。
- -1: 调用失败。
@note
该方法在进房前后均可调用。如果你需要在进房前使用 AGC 功能,请联系技术支持获得私有参数,传入对应 ByteRTCRoomProfile{@link #ByteRTCRoomProfile} 。
要想在进房后开启 AGC 功能,你需要把 ByteRTCRoomProfile{@link #ByteRTCRoomProfile} 设为 ByteRTCRoomProfileMeeting、ByteRTCRoomProfileMeetingRoom 或ByteRTCRoomProfileClassroom 。
AGC 功能生效后,不建议再调用 setAudioCaptureDeviceVolume: 来调节设备麦克风的采集音量。
enableAlphaChannelVideoEncode (ByteRTCAlphaLayout alphaLayout )
→ FutureOr <int >
@hidden(macOS)
@valid since 3.58
@detail api
@author zhuhongshuyu
@brief 开启自定义采集视频帧的 Alpha 通道编码功能。
适用于需要分离推流端视频主体与背景,且在拉流端可自定义渲染背景的场景。
@param alphaLayout 分离后的 Alpha 通道相对于 RGB 通道信息的排列位置。当前仅支持 ByteRTCAlphaLayout.ByteRTCAlphaLayoutTop,即置于 RGB 通道信息上方。
@return 方法调用结果:
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 该接口仅作用于自定义采集的 ByteRTCVideoPixelFormat.ByteRTCVideoPixelFormatCVPixelBuffer 格式视频帧。
- 该接口须在发布视频流之前调用。
- 调用本接口开启 Alpha 通道编码后,你需调用 pushExternalVideoFrame:{@link #ByteRTCEngine#pushExternalVideoFrame} 把自定义采集的视频帧推送至 RTC SDK。若推送了不支持的视频帧格式,则调用 pushExternalVideoFrame:{@link #ByteRTCEngine#pushExternalVideoFrame} 时会返回错误码 ByteRTCReturnStatus.ByteRTCReturnStatusParameterErr。
enableAudioAEDReport (NSInteger interval )
→ FutureOr <int >
@hidden 3.60 for internal use only
@detail api
@region 音频管理
@author shiyayun
@brief 启用AED检测。启用后,你可以收到 rtcEngine:onAudioAEDStateUpdate。
@param interval 回调间隔,单位毫秒。
+ <= 0: 关闭回调。
+ [100, 3000]: 开启回调,并将回调间隔设置为该值。推荐设置为 2000。
+ 不合法的 interval 值:小于 100 设置为 100,超出 3000 设置为 3000。
@return
+ 0:调用成功。
+ <0:调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
enableAudioDecoding (bool enable )
→ FutureOr <void >
@hidden for internal use only
@region 自定义音频采集渲染
@brief 是否使用sdk音频解码功能。
@param enable 是否使用sdk音频解码功能。
true: 打开音频解码功能(默认)
false: 关闭音频解码功能直接转推。
@note
- 在registerRemoteEncodedAudioFrameObserver之前调用。
enableAudioEncoding (bool enable )
→ FutureOr <void >
@hidden for internal use only
@region 自定义音频采集渲染
@brief 是否使用sdk音频编码功能。
@param enable 是否使用sdk音频编码功能。
true: 打开音频编码(默认)
false: 关闭音频编码直接转推。
@note
- 在pushExternalEncodedAudioFrame{@link #ByteRTCEngine#pushExternalEncodedAudioFrame}之前调用。
enableAudioFrameCallback (ByteRTCAudioFrameCallbackMethod method , ByteRTCAudioFormat format )
→ FutureOr <int >
@detail api
@author gongzhengduo
@brief 设置并开启指定的音频数据帧回调
@param method 音频回调方法,参看 ByteRTCAudioFrameCallbackMethod{@link #ByteRTCAudioFrameCallbackMethod}。
当音频回调方法设置为 0、1、2、5时,你需要在参数 format 中指定准确的采样率和声道,暂不支持设置为自动。
当音频回调方法设置为 3 时,将 format 中的各个字段设置为默认值。
@param format 音频参数格式,参看 ByteRTCAudioFormat{@link #ByteRTCAudioFormat}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 开启音频回调并调用 registerAudioFrameObserver:{@link #ByteRTCMediaPlayer#registerAudioFrameObserver} 后,ByteRTCAudioFrameObserver{@link #ByteRTCAudioFrameObserver} 会收到对应的音频回调。两者调用顺序没有限制且相互独立。
enableAudioProcessor (ByteRTCAudioFrameMethod method , ByteRTCAudioFormat format )
→ FutureOr <int >
@detail api
@author gongzhengduo
@brief 设置并开启指定的音频帧回调,进行自定义处理。
@param method 音频帧类型,参看 ByteRTCAudioFrameMethod{@link #ByteRTCAudioFrameMethod}。可多次调用此接口,处理不同类型的音频帧。
选择不同类型的音频帧将收到对应的回调:
- 选择本地采集的音频时,会收到 onProcessRecordAudioFrame:{@link #ByteRTCAudioFrameProcessor#onProcessRecordAudioFrame}。
- 选择远端音频流的混音音频时,会收到 onProcessPlayBackAudioFrame:{@link #ByteRTCAudioFrameProcessor#onProcessPlayBackAudioFrame}。
- 选择远端音频流时,会收到 onProcessRemoteUserAudioFrame:info:audioFrame:{@link #ByteRTCAudioFrameProcessor#onProcessRemoteUserAudioFrame:info:audioFrame}。
- 选择软件耳返音频时,会收到 onProcessEarMonitorAudioFrame:{@link #ByteRTCAudioFrameProcessor#onProcessEarMonitorAudioFrame}。(仅适用于 iOS 平台)
- 选择屏幕共享音频流时,会收到 onProcessScreenAudioFrame:{@link #ByteRTCAudioFrameProcessor#onProcessScreenAudioFrame}。
@param format 设定自定义处理时获取的音频帧格式,参看 ByteRTCAudioFormat{@link #ByteRTCAudioFormat}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 在调用此接口前,你需要调用 registerAudioProcessor:{@link #ByteRTCEngine#registerAudioProcessor} 注册自定义音频处理器。
- 要关闭音频自定义处理,调用 disableAudioProcessor:{@link #ByteRTCEngine#disableAudioProcessor}。
enableAudioPropertiesReport (ByteRTCAudioPropertiesConfig config )
→ FutureOr <int >
@detail api
@author wangjunzheng
@brief 启用音频信息提示。启用后,你可以收到 rtcEngine:onLocalAudioPropertiesReport:{@link #ByteRTCEngineDelegate#rtcEngine:onLocalAudioPropertiesReport},rtcEngine:onRemoteAudioPropertiesReport:totalRemoteVolume:{@link #ByteRTCEngineDelegate#rtcEngine:onRemoteAudioPropertiesReport:totalRemoteVolume},和 rtcEngine:onActiveSpeaker:uid:{@link #ByteRTCEngineDelegate#rtcEngine:onActiveSpeaker:uid}。
@param config 详见 ByteRTCAudioPropertiesConfig{@link #ByteRTCAudioPropertiesConfig}
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
enableAudioVADReport (NSInteger interval )
→ FutureOr <int >
@detail api
@hidden 3.60 for internal use only
@region 音频管理
@author gengjunjie
@brief 启用音频人声识别能力。开启提示后,你会收到 rtcEngine:onAudioVADStateUpdate。
@param interval 回调间隔,单位毫秒。
+ <= 0: 关闭人声识别能力回调。
+ [100, 3000]: 开启人声识别能力回调,并将信息提示间隔设置为此值。
+ 不合法的 interval 值:小于 100 设置为 100,超出 3000 设置为 3000。
@return
+ 0: 调用成功。
+ < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
enableCameraAutoExposureFaceMode (bool enable )
→ FutureOr <int >
@hidden(macOS)
@valid since 353
@detail api
@author yinkaisheng
@brief 启用或禁用内部采集时人脸自动曝光模式。此模式会改善强逆光下,脸部过暗的问题;但也会导致 ROI 以外区域过亮/过暗的问题。
@param enable 是否启用。iOS默认开启,Android默认关闭。
@return
- 0: 成功.
- !0: 失败.
@note 在采集前或采集中调用此接口均可生效。
enableEffectBeauty (BOOL enable )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author wangjunlin.3182
@brief 开启/关闭基础美颜。
@param enable 基础美颜开关
- YES: 开启基础美颜
- NO: 关闭基础美颜(默认)
@return
- 0: 调用成功。
- –1001: RTC SDK 版本不支持此功能。
- -12: 本方法不支持在 Audio SDK 中使用。
- <0: 调用失败,特效 SDK 内部错误,具体错误码请参考错误码表 。
@note
- 本方法不能与高级视频特效接口共用。如已购买高级视频特效,建议参看集成指南 使用高级美颜、特效、贴纸功能等。
- 使用此功能需要集成特效 SDK,建议使用特效 SDK v4.4.2+ 版本。更多信息参看 Native 端基础美颜 。
- 调用 setBeautyIntensity:withIntensity:{@link #ByteRTCEngine#setBeautyIntensity:withIntensity} 设置基础美颜强度。若在调用本方法前没有设置美颜强度,则使用默认强度。各基础美颜模式的强度默认值分别为:美白 0.7,磨皮 0.8,锐化 0.5,清晰 0.7。
- 本方法仅适用于视频源,不适用于屏幕源。
enableExternalSoundCard (bool enable )
→ FutureOr <int >
@detail api
@author zhangyuanyuan.0101
@brief 启用匹配外置声卡的音频处理模式
@param enable
- true: 开启
- false: 不开启(默认)
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 当采用外接声卡进行音频采集时,建议开启此模式,以获得更好的音质。
- 开启此模式时,仅支持耳机播放。如果需要使用扬声器或者外置音箱播放,关闭此模式。
enableLocalVoiceReverb (bool enable )
→ FutureOr <int >
@detail api
@author wangjunzheng
@brief 开启本地音效混响效果
@param enable 是否开启
@return
- 0: 成功。
- < 0: 失败。具体失败原因参看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus}。
@note 调用 setLocalVoiceReverbParam:{@link #ByteRTCEngine#setLocalVoiceReverbParam} 设置混响效果。
enablePlaybackDucking (BOOL enable )
→ FutureOr <int >
@detail api
@author majun.lvhiei
@brief 打开/关闭音量闪避功能,适用于在 RTC 通话过程中会同时播放短视频或音乐的场景,如“一起看”、“在线 KTV”等。
开启该功能后,当检测到远端人声时,RTC 的本地的媒体播放音量会自动减弱,从而保证远端人声的清晰可辨;当远端人声消失时,RTC 的本地媒体音量会恢复到闪避前的音量水平。
@param enable 是否开启音量闪避:
- YES: 是
- NO: 否
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
enableVocalInstrumentBalance (BOOL enable )
→ FutureOr <int >
@detail api
@author majun.lvhiei
@brief 开启/关闭音量均衡功能。
开启音量均衡功能后,人声的响度会调整为 -16lufs。如果已调用 setAudioMixingLoudness:loudness: 传入了混音音乐的原始响度,此音乐播放时,响度会调整为 -20lufs。
@param enable 是否开启音量均衡功能:
- YES: 是
- NO: 否
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 该接口须在调用 startAudioMixing:filePath:config: 开始播放音频文件之前调用。
feedback (ByteRTCProblemFeedbackOption types , ByteRTCProblemFeedbackInfo info )
→ FutureOr <int >
@detail api
@author wangzhanqiang
@brief 通话结束,将用户反馈的问题上报到 RTC。
@param types 预设问题列表,参看 ByteRTCProblemFeedbackOption{@link #ByteRTCProblemFeedbackOption}
@param info 预设问题以外的其他问题的具体描述,房间信息。参看 ByteRTCProblemFeedbackInfo{@link #ByteRTCProblemFeedbackInfo}
@return
- 0: 成功。
- -3: 失败。
@note
- 你可以在 RTC 控制台 上查看用户通过此接口提交的反馈详情和整体趋势。
- 如果用户上报时在房间内,那么问题会定位到用户当前所在的一个或多个房间;如果用户上报时不在房间内,那么问题会定位到引擎此前退出的房间。
getAudioDeviceManager ()
→ FutureOr <ByteRTCAudioDeviceManager >
@hidden(iOS)
@detail api
@author dixing
@brief 创建音频设备管理实例
@return ByteRTCAudioDeviceManager{@link #ByteRTCAudioDeviceManager}
getAudioEffectPlayer ()
→ FutureOr <ByteRTCAudioEffectPlayer >
@valid since 3.53
@detail api
@author zhangyuanyuan.0101
@brief 创建音效播放器实例。
@return 音效播放器。详见 ByteRTCAudioEffectPlayer{@link #ByteRTCAudioEffectPlayer}。
getAudioRoute ()
→ FutureOr <ByteRTCAudioRoute >
@hidden(macOS)
@detail api
@author dixing
@brief 获取当前使用的音频播放路由。
@return 详见 ByteRTCAudioRoute{@link #ByteRTCAudioRoute}
@note 要设置音频路由,详见 setAudioRoute:{@link #ByteRTCEngine#setAudioRoute},仅适用于移动端。
getCameraZoomMaxRatio ()
→ FutureOr <float >
@hidden(macOS)
@detail api
@author zhangzhenyu.samuel
@brief 获取当前使用的摄像头(前置/后置)的最大变焦倍数
@return 最大变焦倍数
@note 必须已调用 startVideoCapture{@link #ByteRTCEngine#startVideoCapture} 使用 SDK 内部采集模块进行视频采集时,才能检测摄像头最大变焦倍数。
getKTVManager ()
→ FutureOr <ByteRTCKTVManager >
@hidden(macOS)
@detail api
@author lihuan.wuti2ha
@brief 创建 KTV 管理接口。
@return KTV 管理接口,参看 ByteRTCKTVManager{@link #ByteRTCKTVManager}。
getMediaPlayer (int playerId )
→ FutureOr <ByteRTCMediaPlayer >
@valid since 3.53
@detail api
@author zhangyuanyuan.0101
@brief 创建音乐播放器实例。
@param playerId 音乐播放器实例 id。取值范围为 [0, 3]。最多同时存在 4 个实例,超出取值范围时返回 nullptr。
@return 音乐播放器实例,详见 ByteRTCMediaPlayer{@link #ByteRTCMediaPlayer}
getNativeHandle ()
→ FutureOr <void >
@valid since 353
@detail api
@author likai.666
@valid since 353
@brief 获取 C++ 层 IRTCEngine 句柄 。
@return
- >0:方法调用成功, 返回 C++ 层 IRTCEngine 的地址。
- NULL:方法调用失败
@note 在一些场景下,获取 C++ 层 IRTCEngine,并通过其完成操作,相较于通过 OC 封装层完成有显著更高的执行效率。典型的场景有:视频/音频帧自定义处理,音视频通话加密等。
getNetworkTimeInfo ()
→ FutureOr <ByteRTCNetworkTimeInfo >
@detail api
@author songxiaomeng.19
@brief 通过 NTP 协议,获取网络时间。
@return 网络时间。参看 ByteRTCNetworkTimeInfo{@link #ByteRTCNetworkTimeInfo}。
@note
- 第一次调用此接口会启动网络时间同步功能,并返回 0。同步完成后,会收到 rtcEngineOnNetworkTimeSynchronized:{@link #ByteRTCEngineDelegate#rtcEngineOnNetworkTimeSynchronized},此后,再次调用此 API,即可获取准确的网络时间。
- 在合唱场景下,合唱参与者应在相同的网络时间播放背景音乐。
getPeerOnlineStatus (NSString peerUserId )
→ FutureOr <int >
@detail api
@author hanchenchen.c
@brief 查询对端用户或本端用户的登录状态
@param peerUserId
需要查询的用户 ID
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 必须调用 login:uid:{@link #ByteRTCEngine#login:uid} 登录后,才能调用本接口。
- 调用本接口后,SDK 会使用 rtcEngine:onGetPeerOnlineStatus:status:{@link #ByteRTCEngineDelegate#rtcEngine:onGetPeerOnlineStatus:status} 回调通知查询结果。
- 在发送房间外消息之前,用户可以通过本接口了解对端用户是否登录,从而决定是否发送消息。也可以通过本接口查询自己查看自己的登录状态。
getScreenCaptureSourceList ()
→ FutureOr <ByteRTCScreenCaptureSourceInfo >
@hidden(iOS)
@detail api
@author liyi.000
@brief 获取共享对象(应用窗口和桌面)列表。
@return 共享对象(应用窗口和桌面)列表。参看 ByteRTCScreenCaptureSourceInfo{@link #ByteRTCScreenCaptureSourceInfo}。
枚举值可作为调用 startScreenVideoCapture:captureParameters:{@link #ByteRTCEngine#startScreenVideoCapture:captureParameters} 开启屏幕共享时的输入参数。
@note 仅桌面端可用。
getSingScoringManager ()
→ FutureOr <ByteRTCSingScoringManager >
@detail api
@author wangjunzheng
@brief 创建 K 歌评分管理接口。
@return K 歌评分管理接口,详见 ByteRTCSingScoringManager{@link #ByteRTCSingScoringManager}。
@note 如需使用 K 歌评分功能,即调用该方法以及 ByteRTCSingScoringManager 类下全部方法,需集成 SAMI 动态库,详情参看按需集成插件 文档。
getThumbnail (ByteRTCScreenCaptureSourceType sourceType , intptr_t sourceId , int maxWidth , int maxHeight )
→ FutureOr
@hidden(iOS)
@detail api
@author liyi.000
@brief 获取屏幕采集对象缩略图
@param sourceType 屏幕采集对象的类型。详见 ByteRTCScreenCaptureSourceType{@link #ByteRTCScreenCaptureSourceType}。
@param sourceId 屏幕分享时,共享对象的 ID。可通过 getScreenCaptureSourceList{@link #ByteRTCEngine#getScreenCaptureSourceList} 返回的ByteRTCScreenCaptureSourceInfo共享对象列表中获取。
@param maxWidth 最大宽度。保持采集对象本身的宽高比不变,将缩略图缩放到指定范围内的最大宽高。如果给出的尺寸与共享对象比例不同,得到的缩略图会有黑边。
@param maxHeight 最大高度。参见 maxWidth 的说明。
@return 屏幕采集对象缩略图。缩略图由屏幕共享对象等比缩放而来。缩略图的大小小于等于此接口设定的尺寸。
getVideoDeviceManager ()
→ FutureOr <ByteRTCVideoDeviceManager >
@hidden(iOS)
@detail api
@author zhangzhenyu.samuel
@brief 创建视频设备管理实例
@return 视频设备管理实例,详见 ByteRTCVideoDeviceManager{@link #ByteRTCVideoDeviceManager}
getVideoEffectInterface ()
→ FutureOr <ByteRTCVideoEffect >
@detail api
@author zhushufan.ref
@brief 获取视频特效接口。
@return 视频特效接口,参看 ByteRTCVideoEffect{@link #ByteRTCVideoEffect}。
getWindowAppIcon (intptr_t sourceId , int width , int height )
→ FutureOr
@hidden(iOS)
@brief 获取应用窗体所属应用的图标。
@region 屏幕共享
@author liyi.000
@param sourceId 屏幕共享对象的 ID,可通过 getScreenCaptureSourceList{@link #ByteRTCEngine#getScreenCaptureSourceList} 返回的ByteRTCScreenCaptureSourceInfo共享对象列表中获取。
@param width 最大宽度。返回的图标将是宽高相等的,输入的宽高不等时,取二者较小值。宽高范围为 32,256,超出该范围将返回 nullptr,默认输出 100 x 100 的图像。
@param height 最大高度。参见 width 的说明。
@return 应用图标。当屏幕共享对象为应用窗体时有效,否则返回 nullptr。
getWTNStream ()
→ FutureOr <ByteRTCWTNStream >
isCameraExposurePositionSupported ()
→ FutureOr <bool >
@hidden(macOS)
@detail api
@author zhangzhenyu.samuel
@brief 检查当前使用的摄像头是否支持手动设置曝光点。
@return
- true: 支持。
- false: 不支持。
@note 必须已调用 startVideoCapture{@link #ByteRTCEngine#startVideoCapture} 使用 SDK 内部采集模块进行视频采集时,才能检查曝光点设置能力。
isCameraFocusPositionSupported ()
→ FutureOr <bool >
@hidden(macOS)
@detail api
@author zhangzhenyu.samuel
@brief 检查当前使用的摄像头是否支持手动对焦。
@return
- true: 支持。
- false: 不支持。
@note 必须已调用 startVideoCapture{@link #ByteRTCEngine#startVideoCapture} 使用 SDK 内部采集模块进行视频采集,才能检查摄像头是否支持手动对焦。
isCameraTorchSupported ()
→ FutureOr <bool >
@hidden(macOS)
@detail api
@author zhangzhenyu.samuel
@brief 检测当前使用的摄像头(前置/后置),是否支持闪光灯。
@return
- true: 支持
- false: 不支持
@note 必须已调用 startVideoCapture{@link #ByteRTCEngine#startVideoCapture} 使用 SDK 内部采集模块进行视频采集时,才能检测闪光能力。
isCameraZoomSupported ()
→ FutureOr <bool >
@hidden(macOS)
@detail api
@author zhangzhenyu.samuel
@brief 检测当前使用的摄像头(前置/后置),是否支持变焦(数码/光学变焦)。
@return
- true: 支持
- false: 不支持
@note 必须已调用 startVideoCapture{@link #ByteRTCEngine#startVideoCapture} 使用 SDK 内部采集模块进行视频采集时,才能检测摄像头变焦能力。
login (NSString token , NSString uid )
→ FutureOr <int >
@detail api
@author hanchenchen.c
@brief 登陆 RTS 服务器。
必须先登录,才能调用 sendUserMessageOutsideRoom:message:config:{@link #ByteRTCEngine#sendUserMessageOutsideRoom:message:config} 和 sendServerMessage:{@link #ByteRTCEngine#sendServerMessage} 发送房间外点对点消息和向应用服务器发送消息
在调用本接口登录后,如果想要登出,需要调用 logout{@link #ByteRTCEngine#logout}
@param token 用户登录必须携带的 Token,用于鉴权验证。
测试时可使用控制台 生成临时 Token,roomId 填任意值。
正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token,roomId 置空,Token 有效期及生成方式参看使用 Token 完成鉴权 。
@param uid 用户 ID,在 appid 的维度下是唯一的。
@return
- 0:成功;
- <0:失败。具体失败原因参看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus}。
@note 本地用户调用此方法登录后,会收到 rtcEngine:onLoginResult:errorCode:elapsed:{@link #ByteRTCEngineDelegate#rtcEngine:onLoginResult:errorCode:elapsed} 回调通知登录结果,远端用户不会收到通知。
logout ()
→ FutureOr <int >
@detail api
@author hanchenchen.c
@brief 登出 RTS 服务器。
调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 调用本接口登出前,必须先调用 login:uid:{@link #ByteRTCEngine#login:uid} 登录
- 本地用户调用此方法登出后,会收到 rtcEngine:onLogout:{@link #ByteRTCEngineDelegate#rtcEngine:onLogout} 回调通知结果,远端用户不会收到通知。
muteAudioCapture (bool mute )
→ FutureOr <int >
@valid since 3.58.1
@detail api
@author shiyayun
@brief 设置是否将采集到的音频信号静音,而不影响改变本端硬件采集状态。
@param mute 是否静音音频采集。
- True:静音(关闭麦克风)
- False:(默认)开启麦克风
@return
- 0: 调用成功。
- < 0 : 调用失败。具体失败原因参看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus}。
@note
- 该方法用于设置是否使用静音数据替换设备采集到的音频数据进行推流,不影响 SDK 音频流的采集发布状态。对于 macOS 平台,如有需要你也可以选择静音整个系统的音频采集,具体参看 setAudioCaptureDeviceMute:{@link #ByteRTCAudioDeviceManager#setAudioCaptureDeviceMute} 方法说明。
- 静音后通过 setCaptureVolume:{@link #ByteRTCEngine#setCaptureVolume} 调整音量不会取消静音状态,音量状态会保存至取消静音。
- 调用 startAudioCapture{@link #ByteRTCEngine#startAudioCapture} 开启音频采集前后,都可以使用此接口设置采集音量。
muteScreenAudioCapture (bool mute )
→ FutureOr <int >
@valid since 3.60.
@detail api
@author shiyayun
@brief 静音或静音/取消静音屏幕共享时采集的音频。
调用此方法后,SDK 将发送静音数据来代替真实的屏幕音频数据,不影响本端音频设备的采集状态和 SDK 音频流的采集发布状态。
@param mute 是否静音屏幕音频。
- True:静音。远端用户听不到来自你屏幕共享的声音。
- False:(默认)取消静音。恢复发送屏幕共享的音频。
@return
- 0:调用成功。
- < 0:调用失败。具体失败原因参看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus}。
@note
- 该方法用于设置是否使用静音数据替换设备采集到的音频数据进行推流,不影响 SDK 音频流的采集发布状态。对于 macOS 平台,如有需要你也可以选择静音整个系统的音频采集,具体参看 setAudioCaptureDeviceMute:{@link #ByteRTCAudioDeviceManager#setAudioCaptureDeviceMute} 方法说明。
- 静音后通过 setCaptureVolume:{@link #ByteRTCEngine#setCaptureVolume} 调整音量不会取消静音状态,音量状态会保存至取消静音。
- 调用 startAudioCapture{@link #ByteRTCEngine#startAudioCapture} 开启音频采集前后,都可以使用此接口设置采集音量。
nativeCall <T > (String method , [List ? args , NativeMethodMeta? meta ])
→ Future <T >
Call instance method
inherited
noSuchMethod (Invocation invocation )
→ dynamic
Invoked when a nonexistent method or property is accessed.
inherited
pullExternalAudioFrame (ByteRTCAudioFrame audioFrame )
→ FutureOr <int >
@detail api
@author huangshouqin
@brief 拉取下行音频数据用于自定义音频渲染。
调用该方法后,SDK 会主动拉取待播放的音频数据,包括远端已解码和混音后的音频数据,用于外部播放。
@param audioFrame 音频数据帧,详见 ByteRTCAudioFrame{@link #ByteRTCAudioFrame}
@return 方法调用结果
- 0: 设置成功
- < 0: 设置失败
@note
- 拉取外部音频数据前,必须先调用 setAudioRenderType:{@link #ByteRTCEngine#setAudioRenderType} 开启自定义渲染。
- 由于 RTC SDK 的帧长为 10 毫秒,你应当每隔 10 毫秒拉取一次音频数据。确保音频采样点数(sample)x 拉取频率等于 audioFrame 的采样率 (sampleRate)。如设置采样率为 48000 时,每 10 毫秒调用本接口拉取数据,每次应拉取 480 个采样点。
- 音频采样格式为 S16。音频缓冲区内的数据格式必须为 PCM 数据,其容量大小应该为 audioFrame.samples × audioFrame.channel × 2。
pushClientMixedStreamExternalVideoFrame (NSString uid , ByteRTCVideoFrameData frame )
→ FutureOr <int >
pushExternalAudioFrame (ByteRTCAudioFrame audioFrame )
→ FutureOr <int >
@detail api
@author huangshouqin
@brief 推送自定义采集的音频数据到 RTC SDK。
@param audioFrame 音频数据帧,详见 ByteRTCAudioFrame{@link #ByteRTCAudioFrame}
- 音频采样格式为 S16。音频缓冲区内的数据格式必须为 PCM 数据,其容量大小应该为 audioFrame.samples × audioFrame.channel × 2。
- 必须指定具体的采样率和声道数,不支持设置为自动。
@return 方法调用结果
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 推送外部音频数据前,必须先调用 setAudioSourceType:{@link #ByteRTCEngine#setAudioSourceType} 开启自定义采集。
- 你必须每隔 10 毫秒推送一次外部采集的音频数据。单次推送的 samples (音频采样点个数)应该为 audioFrame.sampleRate / 100。比如设置采样率为 48000 时, 每次应该推送 480 个采样点。
pushExternalEncodedAudioFrame (ByteRTCEncodedAudioFrameData audioFrame )
→ FutureOr <int >
@hidden for internal use only
@region 自定义音频采集渲染
@brief 推送opus编码音频数据到 RTC SDK,RTC SDK纯转发。
@param audio_stream 对应的opus音频数据。详见 EncodedAudioFrameData{@link #EncodedAudioFrameData}。
@return 方法调用结果:
- 0:成功;
- <0:失败。具体失败原因参看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus}。
@note
- 推送音频数据前,必须先调用 enableAudioEncoding{@link #ByteRTCEngine#enableAudioEncoding} 关闭音频编码。
pushExternalEncodedVideoFrame (NSInteger videoIndex , ByteRTCEncodedVideoFrame videoFrame )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author wangzhanqiang
@brief 推送自定义编码后的视频流
@param videoIndex 对应的编码流下标,从 0 开始,如果调用 setVideoEncoderConfig:{@link #ByteRTCEngine#setVideoEncoderConfig} 设置了多路流,此处数量须与之保持一致
@param videoFrame 编码流视频帧信息,参看 ByteRTCEncodedVideoFrame{@link #ByteRTCEncodedVideoFrame}。
@return 方法调用结果:
- 0:成功;
- <0:失败。具体失败原因参看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus}。
@note
- 目前仅支持推送 H264 和 ByteVC1 格式的视频帧,且视频流协议格式须为 Annex B 格式。
- 该函数运行在用户调用线程内
- 推送自定义编码视频帧前,必须调用 setVideoSourceType:{@link #ByteRTCEngine#setVideoSourceType} 将视频输入源切换至自定义编码视频源。
pushExternalVideoFrame (ByteRTCVideoFrameData frame )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author liuyangyang
@brief 推送外部视频帧。
@param frame 该视频帧包含待 SDK 编码的视频数据,参考 ByteRTCVideoFrame{@link #ByteRTCVideoFrame}。
@return 方法调用结果:
- 0:成功;
- <0:失败。具体失败原因参看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus}。
@note 推送外部视频帧前,必须调用 setVideoSourceType:{@link #ByteRTCEngine#setVideoSourceType} 开启外部视频源采集。
支持格式:raw NV12
pushReferenceAudioPCMData (ByteRTCAudioFrame audioFrame )
→ FutureOr <int >
pushScreenAudioFrame (ByteRTCAudioFrame audioFrame )
→ FutureOr <int >
@detail api
@author liyi.000
@brief 使用自定义采集方式,采集屏幕共享时的屏幕音频时,将音频帧推送至 RTC SDK 处进行编码等处理。
@param audioFrame 音频数据帧,参见 ByteRTCAudioFrame{@link #ByteRTCAudioFrame}
- 音频采样格式为 S16。音频缓冲区内的数据格式必须为 PCM 数据,其容量大小应该为 samples × frame.channel × 2。
- 必须指定具体的采样率和声道数,不支持设置为自动。
@return 方法调用结果
- 0: 设置成功。
- < 0: 设置失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 调用此接口推送屏幕共享时的自定义采集的音频数据前,必须调用 setScreenAudioSourceType:{@link #ByteRTCEngine#setScreenAudioSourceType} 开启屏幕音频自定义采集。
- 你应每隔 10 毫秒,调用一次此方法推送一次自定义采集的音频帧。一次推送的音频帧中应包含 frame.sample_rate / 100 个音频采样点。比如,假如采样率为 48000Hz,则每次应该推送 480 个采样点。
- 调用此接口将自定义采集的音频帧推送到 RTC SDK 后,你必须调用 publishScreenAudio: 将采集到的屏幕音频推送到远端。在调用 publishScreenAudio: 前,推送到 RTC SDK 的音频帧信息会丢失。
@order 9
registerAudioFrameObserver (id <ByteRTCAudioFrameObserver > audioFrameObserver )
→ FutureOr <int >
@detail api
@author gongzhengduo
@brief 注册音频数据回调观察者。
@param audioFrameObserver 音频数据观察者,参看 ByteRTCAudioFrameObserver{@link #ByteRTCAudioFrameObserver}。如果传入 null,则取消注册。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 注册音频数据回调观察者并调用 enableAudioFrameCallback:format:{@link #ByteRTCEngine#enableAudioFrameCallback:format} 后,ByteRTCAudioFrameObserver{@link #ByteRTCAudioFrameObserver} 会收到对应的音频回调。对回调中收到的音频数据进行处理,不会影响 RTC 的编码发送或渲染。
registerAudioProcessor (id <ByteRTCAudioFrameProcessor > processor )
→ FutureOr <int >
@detail api
@author gongzhengduo
@brief 注册自定义音频处理器。
注册完成后,你可以调用 enableAudioProcessor:audioFormat:{@link #ByteRTCEngine#enableAudioProcessor:audioFormat},对本地采集到的音频进行处理,RTC SDK 将对处理后的音频进行编码和发送。也可以对接收到的远端音频进行自定义处理,RTC SDK 将对处理后的音频进行渲染。
@param processor 自定义音频处理器,详见 ByteRTCAudioFrameProcessor{@link #ByteRTCAudioFrameProcessor}。
SDK 只持有 processor 的弱引用,你应保证其生命周期。需要取消注册时,设置此参数为 nullptr。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
registerLocalEncodedVideoFrameObserver (id <ByteRTCLocalEncodedVideoFrameObserver > frameObserver )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author liuyangyang
@brief 注册本地视频帧监测器。
无论使用内部采集还是自定义采集,调用该方法后,SDK 每监测到一帧本地视频帧时,都会将视频帧信息通过 onLocalEncodedVideoFrame:Frame:{@link #ByteRTCLocalEncodedVideoFrameObserver#onLocalEncodedVideoFrame:Frame} 回调给用户
@param frameObserver 本地视频帧监测器,参看 ByteRTCLocalEncodedVideoFrameObserver{@link #ByteRTCLocalEncodedVideoFrameObserver}。将参数设置为 nullptr 则取消注册。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 该方法可在进房前后任意时间调用,在进房前调用可保证尽可能早地监测视频帧并触发回调
registerLocalVideoProcessor (id <ByteRTCVideoProcessorDelegate > processor , ByteRTCVideoPreprocessorConfig config )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author zhushufan.ref
@brief 设置自定义视频前处理器。
使用这个视频前处理器,你能够调用 processVideoFrame:{@link #ByteRTCVideoProcessorDelegate#processVideoFrame} 对 RTC SDK 采集得到的视频帧进行前处理,并将处理后的视频帧用于 RTC 音视频通信。
@param processor 自定义视频处理器,详见 ByteRTCVideoProcessorDelegate{@link #ByteRTCVideoProcessorDelegate}。如果传入 null,则不对 RTC SDK 采集得到的视频帧进行前处理。
SDK 只持有 processor 的弱引用,你应保证其生命周期。
在设计 processor 时,应从 ByteRTCVideoFrame{@link #ByteRTCVideoFrame} 的 textureBuf 字段获取视频帧数据;
处理后返回的视频帧数据格式应为 ByteRTCVideoPixelFormat{@link #ByteRTCVideoPixelFormat} 中的 ByteRTCVideoPixelFormatCVPixelBuffer,且必须存放在返回帧数据的 textureBuf 字段中。
@param config 自定义视频前处理器适用的设置,详见 ByteRTCVideoPreprocessorConfig{@link #ByteRTCVideoPreprocessorConfig}。
当前,config 中的 required_pixel_format 仅支持:ByteRTCVideoPixelFormatI420 和 ByteRTCVideoPixelFormatUnknown:
- 设置为 Unknown 时,RTC SDK 给出供 processor 处理的视频帧格式即采集的格式。
- 设置为 ByteRTCVideoPixelFormatI420 时,RTC SDK 会将采集得到的视频转变为对应的格式,供前处理使用。
- 设置为其他值时,此方法调用失败。
@return
- 0: 成功。
- < 0: 失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 重复调用此接口时,仅最后一次调用生效。效果不会叠加。
- 对于 iOS 平台,将 ByteRTCVideoPreprocessorConfig{@link #ByteRTCVideoPreprocessorConfig} 中的 requiredPixelFormat 设置为 kVideoPixelFormatUnknown,可以通过避免格式转换带来一些性能优化。
registerRemoteEncodedAudioFrameObserver (id <ByteRTCRemoteEncodedAudioFrameObserver > observer )
→ FutureOr <void >
@detail api
@hidden for internal use only
@brief 注册远端音频帧监测器。
调用该方法后,SDK 每监测到一帧远端音频帧时,都会将音频帧信息通过 onRemoteEncodedAudioFrame:info:audioFrame: 回调给用户
@param observer 远端音频帧监测器,参看 IRemoteEncodedAudioFrameObserver。
@note
- 该方法建议在进房前调用。
- 将参数设置为 nullptr 则取消注册。
- 调用前,必须先调用 enableAudioDecoding{@link #ByteRTCEngine#enableAudioDecoding} 关闭音频解码功能。
registerRemoteEncodedVideoFrameObserver (id <ByteRTCRemoteEncodedVideoFrameObserver > observer )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author wangzhanqiang
@brief 注册远端编码后视频数据回调。
完成注册后,当 SDK 监测到远端编码后视频帧时,会触发 onRemoteEncodedVideoFrame:info:withEncodedVideoFrame:{@link #ByteRTCRemoteEncodedVideoFrameObserver#onRemoteEncodedVideoFrame:info:withEncodedVideoFrame} 回调
@param observer 远端编码后视频数据监测器,参看 ByteRTCRemoteEncodedVideoFrameObserver{@link #ByteRTCRemoteEncodedVideoFrameObserver}
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 更多自定义解码功能说明参看 自定义视频编解码 。
- 该方法适用于手动订阅,并且进房前后均可调用,建议在进房前调用。
- 引擎销毁前需取消注册,调用该方法将参数设置为 nullptr 即可。
requestRemoteVideoKeyFrame (NSString streamId )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author liuyangyang
@brief 在订阅远端视频流之后,向远端请求关键帧
@param streamId 远端流 ID。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 该方法仅适用于手动订阅模式,并且在成功订阅远端流之后使用。
- 该方法适用于调用 setVideoDecoderConfig:withVideoDecoderConfig:{@link #ByteRTCEngine#setVideoDecoderConfig:withVideoDecoderConfig} 开启自定义解码功能后,并且自定义解码失败的情况下使用
sendInstanceGet <T > (String property )
→ Future <T >
Get instance property
inherited
sendInstancePropertiesGet (dynamic nativeClass )
→ Future <Map <String , dynamic > >
Get instance properties
inherited
sendInstanceSet (String property , dynamic value )
→ Future <void >
Set instance property
inherited
sendPublicStreamSEIMessage (int channelId , NSData message , int repeatCount , ByteRTCSEICountPerFrame mode )
→ FutureOr <int >
@hidden for internal use only
@valid since 3.56
@detail api
@hiddensdk(audiosdk)
@author wangzhanqiang
@brief WTN 流视频帧发送 SEI 数据。
@param channelId SEI 的消息传输通道,取值范围 0 - 255。通过此参数,你可以为不同接受方设置不同的 ChannelID,这样不同接收方可以根据回调中的 ChannelID 选择应关注的 SEI 信息。
@param message SEI 消息。
@param repeatCount 消息发送重复次数。取值范围是 0, max{29, \%{视频帧率}-1}。推荐范围 2,4。
调用此接口后,SEI 数据会添加到从当前视频帧开始的连续 repeat_count+1 个视频帧中。
@param mode SEI 发送模式,参看 ByteRTCSEICountPerFrame{@link #ByteRTCSEICountPerFrame}。
@return
- < 0:说明调用失败
- = 0:说明当前发送队列已满,无法发送
- > 0: 说明调用成功,该数值为已经发送 SEI 的数量
@note
- 每秒发送的 SEI 消息数量建议不超过当前的视频帧率
- 视频通话场景中,使用自定义采集并通过 pushExternalVideoFrame:{@link #ByteRTCEngine#pushExternalVideoFrame} 推送至 SDK 的视频帧,若本身未携带 SEI 数据,也可通过本接口发送 SEI 数据;若原视频帧中已添加了 SEI 数据,则调用此方法不生效。
- 视频帧仅携带前后 2s 内收到的 SEI 数据
- 消息发送成功后,远端会收到 rtcEngine:onPublicStreamSEIMessageReceivedWithChannel:andChannelId:andMessage:回调。
- 调用失败时,本地及远端都不会收到回调。
sendScreenCaptureExtensionMessage (NSData messsage )
→ FutureOr <int >
@hidden(macOS)
@detail api
@hiddensdk(audiosdk)
@author wangzhanqiang
@brief 向屏幕共享 Extension 发送自定义消息
@param messsage 发送给 Extension 的消息内容
@return
- 0: Success.
- < 0 : Fail. See ByteRTCReturnStatus{@link #ByteRTCReturnStatus} for more details
@note
- 在 startScreenCapture:bundleId:{@link #ByteRTCEngine#startScreenCapture:bundleId} 后调用该方法。
- 通过 onReceiveMessageFromApp:{@link #ByteRtcScreenCapturerExtDelegate#onReceiveMessageFromApp} 回调发送的消息。
sendSEIMessage (NSData message , int repeatCount , ByteRTCSEICountPerFrame mode )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author wangzhanqiang
@brief 通过视频帧发送 SEI 数据。
在视频通话场景下,SEI 数据会随视频帧发送;在语音通话场景下,SDK 会自动生成一路 16px × 16px 的黑帧视频流用来发送 SEI 数据。
@param message SEI 消息,建议每帧 SEI 数据总长度长度不超过 4 KB。
@param repeatCount 消息发送重复次数。取值范围是 0, max{29, \%{视频帧率}-1}。推荐范围 2,4。
调用此接口后,SEI 数据会添加到从当前视频帧开始的连续 repeatCount+1 个视频帧中。
@param mode SEI 发送模式,参看 ByteRTCSEICountPerFrame{@link #ByteRTCSEICountPerFrame}。
@return
- >= 0: 将被添加到视频帧中的 SEI 的数量。
- < 0: 发送失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 每秒发送的 SEI 消息数量建议不超过当前的视频帧率。在语音通话场景下,黑帧帧率为 15 fps。
- 语音通话场景中,仅支持在内部采集模式下调用该接口发送 SEI 数据。
- 视频通话场景中,使用自定义采集并通过 pushExternalVideoFrame:{@link #ByteRTCEngine#pushExternalVideoFrame} 推送至 SDK 的视频帧,若本身未携带 SEI 数据,也可通过本接口发送 SEI 数据;若原视频帧中已添加了 SEI 数据,则调用此方法不生效。
- 视频帧仅携带前后 2s 内收到的 SEI 数据;语音通话场景下,若调用此接口后 1min 内未有 SEI 数据发送,则 SDK 会自动取消发布视频黑帧。
- 消息发送成功后,远端会收到 rtcEngine:onSEIMessageReceived:info:andMessage:{@link #ByteRTCEngineDelegate#rtcEngine:onSEIMessageReceived:info:andMessage} 回调。
- 语音通话切换至视频通话时,会停止使用黑帧发送 SEI 数据,自动转为用采集到的正常视频帧发送 SEI 数据。
sendServerBinaryMessage (NSData messageStr )
→ FutureOr <NSInteger >
@detail api
@author hanchenchen.c
@brief 客户端给应用服务器发送二进制消息(P2Server)
@param messageStr
发送的二进制消息内容
消息不超过 64KB。
@return
- >0:发送成功,返回这次发送消息的编号,从 1 开始递增。
- -1:发送失败。消息为空。
@note
- 在向应用服务器发送二进制消息前,先调用 login:uid:{@link #ByteRTCEngine#login:uid} 完成登录,随后调用 setServerParams:url:{@link #ByteRTCEngine#setServerParams:url} 设置应用服务器。
- 调用本接口后,会收到一次 rtcEngine:onServerMessageSendResult:error:message:{@link #ByteRTCEngineDelegate#rtcEngine:onServerMessageSendResult:error:message} 回调,通知消息发送方发送成功或失败;
- 若二进制消息发送成功,则之前调用 setServerParams:url:{@link #ByteRTCEngine#setServerParams:url} 设置的应用服务器会收到该条消息。
sendServerMessage (NSString messageStr )
→ FutureOr <NSInteger >
@detail api
@author hanchenchen.c
@brief 客户端给应用服务器发送文本消息(P2Server)
@param messageStr
发送的文本消息内容
消息不超过 64 KB。
@return
- >0:发送成功,返回这次发送消息的编号,从 1 开始递增。
@note
- 在向应用服务器发送文本消息前,必须先调用 login:uid:{@link #ByteRTCEngine#login:uid} 完成登录,随后调用 setServerParams:url:{@link #ByteRTCEngine#setServerParams:url} 设置应用服务器。
- 调用本接口后,会收到一次 rtcEngine:onServerMessageSendResult:error:message:{@link #ByteRTCEngineDelegate#rtcEngine:onServerMessageSendResult:error:message} 回调,通知消息发送方是否发送成功。
- 若文本消息发送成功,则之前调用 setServerParams:url:{@link #ByteRTCEngine#setServerParams:url} 设置的应用服务器会收到该条消息。
sendStreamSyncInfo (NSData data , ByteRTCStreamSyncInfoConfig config )
→ FutureOr <int >
@detail api
@author wangjunzheng
@brief 发送音频流同步信息。将消息通过音频流发送到远端,并实现与音频流同步,该接口调用成功后,远端用户会收到 rtcEngine:onStreamSyncInfoReceived:info:streamType:data:{@link #ByteRTCEngineDelegate#rtcEngine:onStreamSyncInfoReceived:info:streamType:data} 回调。
@param data 消息内容。
@param config 媒体流信息同步的相关配置,详见 ByteRTCStreamSyncInfoConfig{@link #ByteRTCStreamSyncInfoConfig} 。
@return
- >=0: 消息发送成功。返回成功发送的次数。
- -1: 消息发送失败。消息长度大于 255 字节。
- -2: 消息发送失败。传入的消息内容为空。
- -3: 消息发送失败。通过屏幕流进行消息同步时,此屏幕流还未发布。
- -4: 消息发送失败。通过用麦克风或自定义设备采集到的音频流进行消息同步时,此音频流还未发布,详见错误码 ByteRTCErrorCode{@link #ByteRTCErrorCode}。
@note
sendUserBinaryMessageOutsideRoom (NSString userId , NSData messageStr , ByteRTCMessageConfig config )
→ FutureOr <NSInteger >
@detail api
@author hanchenchen.c
@brief 给房间外指定的用户发送二进制消息(P2P)
@param userId
消息接收用户的 ID
@param messageStr
发送的二进制消息内容
消息不超过 64KB。
@param config 消息类型,参看 ByteRTCMessageConfig{@link #ByteRTCMessageConfig}。
@return
- >0:发送成功,返回这次发送消息的编号,从 1 开始递增。
- -1:发送失败。消息为空。
@note
- 在发送房间外二进制消息前,必须先调用 login:uid:{@link #ByteRTCEngine#login:uid} 完成登录。
- 用户调用本接口发送二进制消息后,会收到一次 rtcEngine:onUserMessageSendResultOutsideRoom:error:{@link #ByteRTCEngineDelegate#rtcEngine:onUserMessageSendResultOutsideRoom:error} 回调,通知消息是否发送成功;
- 若二进制消息发送成功,则 userId 所指定的用户会通过 rtcEngine:onUserBinaryMessageReceivedOutsideRoom:message:{@link #ByteRTCEngineDelegate#rtcEngine:onUserBinaryMessageReceivedOutsideRoom:message} 回调收到该条消息。
sendUserMessageOutsideRoom (NSString userId , NSString messageStr , ByteRTCMessageConfig config )
→ FutureOr <NSInteger >
@detail api
@author hanchenchen.c
@brief 给房间外指定的用户发送文本消息(P2P)
@param userId
消息接收用户的 ID
@param messageStr
发送的文本消息内容
消息不超过 64 KB。
@param config 消息类型,参看 ByteRTCMessageConfig{@link #ByteRTCMessageConfig}。
@return
- >0:发送成功,返回这次发送消息的编号,从 1 开始递增。
@note
- 在发送房间外文本消息前,必须先调用 login:uid:{@link #ByteRTCEngine#login:uid} 完成登录。
- 用户调用本接口发送文本信息后,会收到一次 rtcEngine:onUserMessageSendResultOutsideRoom:error:{@link #ByteRTCEngineDelegate#rtcEngine:onUserMessageSendResultOutsideRoom:error} 回调,得知消息是否成功发送;
- 若文本消息发送成功,则 userId 所指定的用户会通过 rtcEngine:onUserMessageReceivedOutsideRoom:message:{@link #ByteRTCEngineDelegate#rtcEngine:onUserMessageReceivedOutsideRoom:message} 回调收到该消息。
setAnsMode (ByteRTCAnsMode ansMode )
→ FutureOr <int >
@valid since 3.52
@detail api
@author liuchuang
@brief 支持根据业务场景,设置通话中的音频降噪模式。
@param ansMode 降噪模式。具体参见 ByteRTCAnsMode{@link #ByteRTCAnsMode}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 该接口进房前后均可调用,可重复调用,仅最后一次调用生效。
- 降噪算法包含传统降噪和 AI 降噪。传统降噪主要是抑制平稳噪声,比如空调声、风扇声等。而 AI 降噪主要是抑制非平稳噪声,比如键盘敲击声、桌椅碰撞声等。
- 只有以下 ByteRTCRoomProfile{@link #ByteRTCRoomProfile} 场景时,调用本接口可以开启 AI 降噪。其余场景的 AI 降噪不会生效。
- 游戏语音模式: ByteRTCRoomProfileGame
- 高音质游戏模式: ByteRTCRoomProfileGameHD
- 云游戏模式: ByteRTCRoomProfileCloudGame
- 1 vs 1 音视频通话: ByteRTCRoomProfileChat
- 多端同步播放音视频:ByteRTCRoomProfileLwTogether
- 云端会议中的个人设备:ByteRTCRoomProfileMeeting
- 课堂互动模式:ByteRTCRoomProfileClassroom
- 云端会议中的会议室终端:ByteRTCRoomProfileMeetingRoom
setAudioAlignmentProperty (NSString streamId , ByteRTCAudioAlignmentMode mode )
→ FutureOr <int >
@detail api
@hidden internal use only
@author majun.lvhiei
@brief 在听众端,设置订阅的所有远端音频流精准对齐后播放。
@param streamId 作为对齐基准的远端音频流对应的id。
一般选择主唱的音频流。
你必须在收到 rtcRoom:onUserPublishStreamAudio:info:isPublish:{@link #ByteRTCRoomDelegate#rtcRoom:onUserPublishStreamAudio:info:isPublish},确认此音频流已发布后,调用此 API。
@param mode 是否对齐,默认不对齐。参看 ByteRTCAudioAlignmentMode{@link #ByteRTCAudioAlignmentMode}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 你必须在实时合唱场景下使用此功能。在加入房间时,所有人应设置 ByteRTCRoomProfile{@link #ByteRTCRoomProfile} 为 ByteRTCRoomProfileChorus。
- 订阅的所有远端流必须通过 startAudioMixing:filePath:config: 开启了背景音乐混音,并将 ByteRTCAudioMixingConfig 中的 syncProgressToRecordFrame 设置为 true。
- 如果订阅的某个音频流延迟过大,可能无法实现精准对齐。
- 合唱的参与者不应调用此 API,因为调用此 API 会增加延迟。如果希望从听众变为合唱参与者,应关闭对齐功能。
setAudioProfile (ByteRTCAudioProfileType audioProfile )
→ FutureOr <int >
@detail api
@author dixing
@brief 设置音质档位。
当所选的 ByteRTCRoomProfile{@link #ByteRTCRoomProfile} 中的音频参数无法满足你的场景需求时,调用本接口切换的音质档位。
@param audioProfile 音质档位,参看 ByteRTCAudioProfileType{@link #ByteRTCAudioProfileType}
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 该方法在进房前后均可调用;
- 支持通话过程中动态切换音质档位。
setAudioRenderType (ByteRTCAudioRenderType type )
→ FutureOr <int >
@detail api
@author huangshouqin
@brief 切换音频渲染方式
@param type 音频输出类型,详见 ByteRTCAudioRenderType{@link #ByteRTCAudioRenderType}
默认使用内部音频渲染。音频采集和渲染方式无需对应。
@return 方法调用结果:
- =0: 切换成功。
- <0:切换失败。
@note
- 进房前后调用此方法均有效。
- 如果你调用此方法切换至自定义渲染,调用 pullExternalAudioFrame:{@link #ByteRTCEngine#pullExternalAudioFrame} 获取音频数据。
setAudioRoute (ByteRTCAudioRoute audioRoute )
→ FutureOr <int >
@hidden(macOS)
@detail api
@author yezijian.me
@brief 强制切换当前的音频播放路由。默认使用 setDefaultAudioRoute:{@link #ByteRTCEngine#setDefaultAudioRoute} 中设置的音频路由。
音频播放路由发生变化时,会收到 rtcEngine:onAudioRouteChanged:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioRouteChanged} 回调。
@param audioRoute 音频播放路由,参见 ByteRTCAudioRoute{@link #ByteRTCAudioRoute}。仅支持扬声器和默认路由设备。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 对于绝大多数音频场景,使用 setDefaultAudioRoute:{@link #ByteRTCEngine#setDefaultAudioRoute} 设置默认音频路由,并借助 RTC SDK 的音频路由自动切换逻辑即可完成。切换逻辑参见移动端设置音频路由 。你应仅在例外的场景下,使用此接口,比如在接入外接音频设备时,手动切换音频路由。
- 本接口仅支持在 ByteRTCAudioScenarioCommunication 音频场景下使用。你可以通过调用 setAudioScenario:{@link #ByteRTCEngine#setAudioScenario} 切换音频场景。
- 不同音频场景中,音频路由和发布订阅状态到音量类型的映射关系详见 ByteRTCAudioScenarioType{@link #ByteRTCAudioScenarioType} 。
setAudioScenario (ByteRTCAudioScenarioType audioScenario )
→ FutureOr <int >
@hidden(macOS)
@valid since 3.60.
@detail api
@author gongzhengduo
@brief 设置音频场景类型。
选择音频场景后,SDK 会自动根据场景切换对应的音量模式(通话音量/媒体音量)和改场景下的最佳音频配置。
@param audioScenario 音频场景类型,参看 ByteRTCAudioScenarioType{@link #ByteRTCAudioScenarioType}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 此接口在进房前后调用都有效。
- 通话音量更适合通话、会议等对信息准确度更高的场景。通话音量会激活系统硬件信号处理,使通话声音更清晰。同时,音量无法降低到 0。
- 媒体音量更适合娱乐场景,因其声音的表现力会更强。媒体音量下,最低音量可以为 0。
setAudioSourceType (ByteRTCAudioSourceType type )
→ FutureOr <int >
@detail api
@author huangshouqin
@brief 切换音频采集方式
@param type 音频数据源,详见 ByteRTCAudioSourceType{@link #ByteRTCAudioSourceType}。
默认使用内部音频采集。音频采集和渲染方式无需对应。
@return 方法调用结果:
- =0: 切换成功。
- <0:切换失败。
@note
- 进房前后调用此方法均有效。
- 如果你调用此方法由内部采集切换至自定义采集,SDK 会自动关闭内部采集。然后,调用 pushExternalAudioFrame:{@link #ByteRTCEngine#pushExternalAudioFrame} 推送自定义采集的音频数据到 RTC SDK 用于传输。
- 如果你调用此方法由自定义采集切换至内部采集,你必须再调用 startAudioCapture{@link #ByteRTCEngine#startAudioCapture} 手动开启内部采集。
setBeautyIntensity (ByteRTCEffectBeautyMode beautyMode , float intensity )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author wangjunlin.3182
@brief 调整基础美颜强度。
@param beautyMode 基础美颜模式,参看 ByteRTCEffectBeautyMode{@link #ByteRTCEffectBeautyMode}。
@param intensity 美颜强度,取值范围为 0,1。强度为 0 表示关闭。
各基础美颜模式的强度默认值分别为:美白 0.7,磨皮 0.8,锐化 0.5,清晰 0.7。
@return
- 0: 调用成功。
- –2: intensity 范围超限。
- –1001: RTC SDK 版本不支持此功能。
- <0: 调用失败,特效 SDK 内部错误,具体错误码请参考错误码表 。
@note
- 若在调用 enableVideoEffect{@link #ByteRTCVideoEffect#enableVideoEffect} 前设置美颜强度,则对应美颜功能的强度初始值会根据设置更新。
- 销毁引擎后,美颜功能强度恢复默认值。
setBluetoothMode (ByteRTCBluetoothMode mode )
→ FutureOr <int >
@hidden(macOS)
@detail api
@author dixing
@brief 在纯媒体音频场景下,切换 iOS 设备与耳机之间的蓝牙传输协议。
@param mode 蓝牙传输协议。详见 ByteRTCBluetoothMode{@link #ByteRTCBluetoothMode}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 以下场景你会收到 rtcEngine:onAudioDeviceWarning:deviceType:deviceWarning:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceWarning:deviceType:deviceWarning} 回调:1)当前不支持设置 HFP;2)非纯媒体音频场景,建议在调用此接口前调用 setAudioScenario:{@link #ByteRTCEngine#setAudioScenario} 设置纯媒体音频场景。
setBusinessId (NSString businessId )
→ FutureOr <int >
@detail api
@author wangzhanqiang
@brief 设置业务标识参数
可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。
@param businessId
用户设置的自己的 businessId 值
businessId 只是一个标签,颗粒度需要用户自定义。
@return
- 0: 成功。
- -2: 输入非法,合法字符包括所有小写字母、大写字母和数字,除此外还包括四个独立字符分别是:英文句号,短横线,下划线和 @ 。
@note
- 需要在调用 joinRoom:userInfo:userVisibility:roomConfig:{@link #ByteRTCRoom#joinRoom:userInfo:userVisibility:roomConfig} 进房之前调用,进房之后调用该方法无效。
setCameraAdaptiveMinimumFrameRate (int framerate )
→ FutureOr <int >
@hidden(macOS)
@valid since 353
@detail api
@author yinkaisheng
@brief 设置内部采集适用动态帧率时,帧率的最小值。
@param framerate 最小值。单位为 fps。默认值是 7。
动态帧率的最大帧率是通过 setVideoCaptureConfig:{@link #ByteRTCEngine#setVideoCaptureConfig} 设置的帧率值。当传入参数大于最大帧率时,使用固定帧率模式,帧率为最大帧率;当传入参数小于最大帧率时,使用动态帧率。
@return
- 0: 成功.
- !0: 失败.
@note
- 你必须在调用 startVideoCapture{@link #ByteRTCEngine#startVideoCapture} 开启内部采集前,调用此接口方可生效。
- 如果由于性能降级、静态适配等原因导致采集最大帧率变化时,已设置的最小帧率值会与新的采集最大帧率值重新比较。比较结果变化可能导致固定/动态帧率模式切换。
- 对 Android,默认开启动态帧率模式
- 对 iOS,默认使用固定帧率模式
setCameraExposureCompensation (float val )
→ FutureOr <int >
@hidden(macOS)
@detail api
@author zhangzhenyu.samuel
@brief 设置当前使用的摄像头的曝光补偿。
@param val 曝光补偿值,取值范围 -1, 1,0 为系统默认值(没有曝光补偿)。
@return
- 0: 成功。
- < 0: 失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 必须已调用 startVideoCapture{@link #ByteRTCEngine#startVideoCapture} 使用 SDK 内部采集模块进行视频采集时,才能设置曝光补偿。
- 调用 stopVideoCapture{@link #ByteRTCEngine#stopVideoCapture} 关闭内部采集后,设置的曝光补偿失效。
setCameraExposurePosition (dynamic position )
→ FutureOr <int >
@hidden(macOS)
@detail api
@author zhangzhenyu.samuel
@brief 设置当前使用的摄像头的曝光点。
@param position 曝光点坐标。以本地预览画布的左上为坐标原点,position的x字段为曝光点水平方向归一化坐标,y字段为曝光点垂直方向归一化坐标,取值范围为 0, 1。
@return
- 0: 成功。
- < 0: 失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 必须已调用 startVideoCapture{@link #ByteRTCEngine#startVideoCapture} 使用 SDK 内部采集模块进行视频采集,并且使用 SDK 内部渲染时,才能设置曝光点。
- 曝光点设置为画布中央(即x和y均取 0.5)时,恢复系统默认值。
- 调用 stopVideoCapture{@link #ByteRTCEngine#stopVideoCapture} 关闭内部采集后,设置的曝光点失效。
setCameraFocusPosition (dynamic position )
→ FutureOr <int >
@hidden(macOS)
@detail api
@author zhangzhenyu.samuel
@brief 设置当前使用的摄像头的对焦点。
@param position 对焦点坐标。以本地预览画布的左上为坐标原点,position的x字段为对焦点水平方向归一化坐标,y字段为对焦点垂直方向归一化坐标,取值范围为 0, 1。
@return
- 0: 成功。
- < 0: 失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 必须已调用 startVideoCapture{@link #ByteRTCEngine#startVideoCapture} 使用 SDK 内部采集模块进行视频采集,并且使用 SDK 内部渲染时,才能设置对焦点。
- 对焦点设置为画布中央(即x和y均取 0.5)时,恢复系统默认值。
- 调用 stopVideoCapture{@link #ByteRTCEngine#stopVideoCapture} 关闭内部采集后,设置的对焦点失效。
setCameraTorch (ByteRTCTorchState torchState )
→ FutureOr <int >
@hidden(macOS)
@detail api
@author zhangzhenyu.samuel
@brief 打开/关闭当前使用的摄像头(前置/后置)的闪光灯
@param torchState 打开/关闭。参看 ByteRTCTorchState{@link #ByteRTCTorchState}。
@return
- 0: 成功。
- < 0: 失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 必须已调用 startVideoCapture{@link #ByteRTCEngine#startVideoCapture} 使用 SDK 内部采集模块进行视频采集时,才能设置闪光灯。
- 设置结果在调用 stopVideoCapture{@link #ByteRTCEngine#stopVideoCapture} 关闭内部采集后失效。
setCameraZoomRatio (float zoomRatio )
→ FutureOr <int >
@hidden(macOS)
@detail api
@author zhangzhenyu.samuel
@brief 设置当前使用的摄像头(前置/后置)的变焦倍数
@param zoomRatio 变焦倍数。取值范围是 1, <最大变焦倍数>。
最大变焦倍数可以通过调用 getCameraZoomMaxRatio{@link #ByteRTCEngine#getCameraZoomMaxRatio} 获取。
@return
- 0: 成功。
- < 0: 失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 必须已调用 startVideoCapture{@link #ByteRTCEngine#startVideoCapture} 使用 SDK 内部采集模块进行视频采集时,才能设置摄像头变焦倍数。
- 设置结果在调用 stopVideoCapture{@link #ByteRTCEngine#stopVideoCapture} 关闭内部采集后失效。
- 你可以调用 setVideoDigitalZoomConfig:size:{@link #ByteRTCEngine#setVideoDigitalZoomConfig:size} 设置数码变焦参数,调用 setVideoDigitalZoomControl:{@link #ByteRTCEngine#setVideoDigitalZoomControl} 进行数码变焦。
setCaptureVolume (int volume )
→ FutureOr <int >
@detail api
@author huangshouqin
@brief 调节音频采集音量
@param volume 采集的音量值和原始音量的百分比,范围是 0, 400,单位为 %,自带溢出保护。
为保证更好的通话质量,建议将 volume 值设为 0,100。
- 0:静音
- 100:原始音量
- 400: 最大可为原始音量的 4 倍(自带溢出保护)
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 在开启音频采集前后,你都可以使用此接口设定采集音量。
setCellularEnhancement (ByteRTCMediaTypeEnhancementConfig config )
→ FutureOr <int >
@hidden(macOS)
@detail api
@hiddensdk(audiosdk)
@author wangfeng.1004
@brief 启用蜂窝网络辅助增强,改善通话质量。
@param config 参看 ByteRTCMediaTypeEnhancementConfig{@link #ByteRTCMediaTypeEnhancementConfig}。
@return 方法调用结果:
- 0: 成功。
- -1:失败,内部错误。
- -2: 失败,输入参数错误。
@note 此功能默认不开启。
setClientMixedStreamObserver (id <ByteRTCClientMixedStreamDelegate > observer )
→ FutureOr <int >
@hidden for internal use only
@detail api
@hiddensdk(audiosdk)
@region 转推 CDN/WTN
@author liujingchao
@brief 设置客户端合流的观察者
@param observer 客户端转推直播观察者。详见 ByteRTCClientMixedStreamDelegate{@link #ByteRTCClientMixedStreamDelegate}。
通过注册 observer 接收转推直播相关的回调。
@return 方法调用结果。
- 0:方法调用成功
- < 0:方法调用失败
setCustomizeEncryptHandler (id <ByteRTCEncryptHandler > handler )
→ FutureOr <int >
@detail api
@author wangjunlin.3182
@brief 设置自定义加密和解密方式。
@param handler 自定义加密 handler,需要实现里面的加密和解密方法。参看 ByteRTCEncryptHandler{@link #ByteRTCEncryptHandler}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 该方法与 setEncryptInfo:key:{@link #ByteRTCEngine#setEncryptInfo:key} 为互斥关系,即按照调用顺序,最后一个调用的方法为最终生效的版本。
- 该方法必须在调用 joinRoom:userInfo:userVisibility:roomConfig:{@link #ByteRTCRoom#joinRoom:userInfo:userVisibility:roomConfig} 之前调用,可重复调用,以最后调用的参数作为生效参数。
- 无论加密或者解密,其对原始数据的长度修改,需要控制在 180% 之间,即如果输入数据为 100 字节,则处理完成后的数据必须不超过 180 字节,如果加密或解密结果超出该长度限制,则该音视频帧可能会被丢弃。
- 数据加密/解密为串行执行,因而视实现方式不同,可能会影响到最终渲染效率,是否使用该方法,需要由使用方谨慎评估。
setDefaultAudioRoute (ByteRTCAudioRoute audioRoute )
→ FutureOr <int >
@hidden(macOS)
@detail api
@author yezijian.me
@brief 将默认的音频播放设备设置为听筒或扬声器。
@param audioRoute 音频播放设备。参看 ByteRTCAudioRoute{@link #ByteRTCAudioRoute}。仅支持听筒或扬声器。
@return
- 0: 方法调用成功。
- < 0: 方法调用失败。
@note 对于音频路由切换逻辑,参见移动端设置音频路由 。
setDummyCaptureImagePath (NSString filePath )
→ FutureOr <int >
@hidden(macOS)
@detail api
@hiddensdk(audiosdk)
@author liuyangyang
@brief 摄像头处于关闭状态时,使用静态图片填充本地推送的视频流。
调用 stopVideoCapture 接口时,会开始推静态图片。若要停止发送图片,可传入空字符串或启用内部摄像头采集。
可重复调用该接口来更新图片。
@param filePath 设置静态图片的路径。
支持本地文件绝对路径,不支持网络链接,长度限制为 512 字节。
静态图片支持类型为 JPEG/JPG、PNG、BMP。
若图片宽高比与设置的编码宽高比不一致,图片会被等比缩放,黑边填充空白区域。推流帧率与码率与设置的编码参数一致。
@return
- 0: 成功。
- -2: 失败。确保传入的 filePath 为有效路径。
- -12: 本方法不支持在 Audio SDK 中使用。
@note
- 该接口只适用于 SDK 内部摄像头采集,不适用于自定义视频采集。
- 本地预览无法看到静态图片。
- 进入房间前后均可调用此方法。在多房间场景中,静态图片仅在发布的房间中生效。
- 针对该静态图片,滤镜和镜像效果不生效,水印效果生效。
- 只有主流能设置静态图片,屏幕流不支持设置。
- 开启大小流后,静态图片对大小流均生效,且针对小流进行等比例缩小。
setEarMonitorMode (ByteRTCEarMonitorMode mode , ByteRTCEarMonitorAudioFilter filter )
→ FutureOr <int >
@detail api
@valid since 3.60.
@brief 开启/关闭耳返功能。
@param mode 是否开启耳返功能,参看 ByteRTCEarMonitorMode{@link #ByteRTCEarMonitorMode}。默认关闭。
@param filter 是否经过本地音频处理,参看 ByteRTCEarMonitorAudioFilter{@link #ByteRTCEarMonitorAudioFilter}。默认不经过音频处理。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 耳返功能仅适用于由 RTC SDK 内部采集的音频。
- 使用耳返必须佩戴耳机。为保证低延时耳返最佳体验,建议佩戴有线耳机。
- 对于 iOS,仅支持软件耳返功能。
- 对于 macOS,耳返功能仅支持设备通过 3.5mm 接口、USB 接口、或蓝牙方式直连耳机时可以使用。对于通过 HDMI 或 USB-C 接口连接显示器转接耳机,或通过连接 OTG 外接声卡再连接的耳机,不支持耳返功能。
setEarMonitorVolume (NSInteger volume )
→ FutureOr <int >
@detail api
@author majun.lvhiei
@brief 设置耳返的音量。
@param volume 耳返的音量,取值范围:0,100,单位:%
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note 设置耳返音量前,你必须先调用 setEarMonitorMode:{@link #ByteRTCEngine#setEarMonitorMode} 打开耳返功能。
setEncryptInfo (ByteRTCEncryptType encrypt_type , NSString key )
→ FutureOr <int >
@detail api
@author wangjunlin.3182
@brief 设置传输时使用内置加密的方式。
@param encrypt_type 内置加密算法,详见 ByteRTCEncryptType{@link #ByteRTCEncryptType}
@param key 加密密钥,长度限制为 36 位,超出部分将会被截断
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 使用传输时内置加密时,使用此方法;如果需要使用传输时自定义加密,参看 onEncryptData:{@link #ByteRTCEncryptHandler#onEncryptData}。
内置加密和自定义加密互斥,根据最后一个调用的方法确定传输加密的方案。
- 该方法必须在进房之前调用,可重复调用,以最后调用的参数作为生效参数。
setExtensionConfig (NSString groupId )
→ FutureOr <int >
@hidden(macOS)
@detail api
@hiddensdk(audiosdk)
@author wangzhanqiang
@brief 设置 Extension 配置项。你必须在使用屏幕内部采集功能前,设置使用的 Extension。
@param groupId 你的应用和 Extension 应该归属于同一个 App Group,此处需要传入 Group Id。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 必须在调用 createRTCEngine:delegate:{@link #ByteRTCEngine#createRTCEngine:delegate} 之后立即调用此方法。在引擎实例的生命周期中,此方法只需要调用一次。
setExternalVideoEncoderEventHandler (id <ByteRTCExternalVideoEncoderEventHandler > handler )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author wangzhanqiang
@brief 注册自定义编码帧推送事件回调
@param handler 自定义编码帧回调类,参看 ByteRTCExternalVideoEncoderEventHandler{@link #ByteRTCExternalVideoEncoderEventHandler}
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 该方法需在进房前调用。
- 引擎销毁前需取消注册,调用该方法将参数设置为 nullptr 即可。
setLocalProxy (NSArray <ByteRTCLocalProxyInfo > configurations )
→ FutureOr <int >
@detail api
@author keshixing.rtc
@brief 设置本地代理。
@param configurations 本地代理配置参数。参看 ByteRTCLocalProxyInfo{@link #ByteRTCLocalProxyInfo}。
你可以根据自己的需要选择同时设置 Http 隧道 和 Socks5 两类代理,或者单独设置其中一类代理。如果你同时设置了 Http 隧道 和 Socks5 两类代理,此时,媒体和信令采用 Socks5 代理, Http 请求采用 Http 隧道代理;如果只设置 Http 隧道 或 Socks5 一类代理,媒体、信令和 Http 请求均采用已设置的代理。
调用此接口设置本地代理后,若想清空当前已有的代理设置,可再次调用此接口,选择不设置任何代理即可清空。
@note
- 该方法需要在进房前调用。
- 调用该方法设置本地代理后,SDK 会触发 rtcEngine:onLocalProxyStateChanged:withProxyState:withProxyError:{@link #ByteRTCEngineDelegate#rtcEngine:onLocalProxyStateChanged:withProxyState:withProxyError} ,返回代理连接的状态。
setLocalSimulcastMode (ByteRTCVideoSimulcastMode mode , NSArray <ByteRTCVideoEncoderConfig > streamConfig )
→ FutureOr <int >
@valid since 3.60.
@detail api
@author zhoubohui
@brief 发布端进行大小流(simulcast)设置。
@param mode 详见 ByteRTCVideoSimulcastMode{@link #ByteRTCVideoSimulcastMode}。默认为只发送单流。你应在进房前调用修改本参数。
@param streamConfig 小流参数。最多可设置 3 路。分辨率按照从小到大顺序,且每路流参数分辨率需小于大流 setVideoEncoderConfig:withParameters:{@link #ByteRTCEngine#setVideoEncoderConfig:withParameters} 设置参数。否则可能会设置失败。参看 ByteRTCVideoEncoderConfig{@link #ByteRTCVideoEncoderConfig}。
其余模式下,默认小流参数为 160px × 90px, 码率为 50kpbs。
@return 方法调用结果:
- 0:成功
- !0:失败
@note
- 调用本方法前,SDK 默认仅发布一条分辨率为 640px × 360px @15fps 的视频流。
- 本方法适用于摄像头采集的视频流。
- 更多信息详见推送多路流 文档。
setLocalVideoCanvas (ByteRTCVideoCanvas canvas )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author sunhang.io
@brief 设置本地视频渲染时使用的视图,并设置渲染模式。
@param canvas 视图信息和渲染模式,参看 ByteRTCVideoCanvas{@link #ByteRTCVideoCanvas}
@return
- 0:成功。
- -2: 参数错误。
- -12: 本方法不支持在 Audio SDK 中使用。
@note
- 你应在加入房间前,绑定本地视图。退出房间后,此设置仍然有效。
- 如果需要解除绑定,你可以调用本方法传入空视图。
setLocalVideoMirrorType (ByteRTCMirrorType mirrorType )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author wangjunlin.3182
@brief 为采集到的视频流开启镜像
@param mirrorType 镜像类型,参看 ByteRTCMirrorType{@link #ByteRTCMirrorType}
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 切换视频源不影响镜像设置。
- 屏幕视频流始终不受镜像设置影响。
- 使用外部渲染器时,mirrorType 支持设置为 0(无镜像)和 3(本地预览和编码传输镜像),不支持设置为 1(本地预览镜像)。
- 该接口调用前,各视频源的初始状态如下:
setLocalVideoSink (id <ByteRTCVideoSinkDelegate > videoSink , ByteRTCVideoSinkPixelFormat requiredFormat )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@deprecated since 3.57, use setLocalVideoSink:withLocalRenderConfig:{@link #ByteRTCEngine#setLocalVideoSink:withLocalRenderConfig} instead.
@region 自定义视频采集渲染
@author sunhang.io
@brief 将本地视频流与自定义渲染器绑定。
@param videoSink 自定义视频渲染器,参看 ByteRTCVideoSinkDelegate{@link #ByteRTCVideoSinkDelegate}
@param requiredFormat videoSink 适用的视频帧编码格式,参看 ByteRTCVideoSinkPixelFormat{@link #ByteRTCVideoSinkPixelFormat}
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- RTC SDK 默认使用 RTC SDK 自带的渲染器(内部渲染器)进行视频渲染。
- 如果需要解除绑定,必须将 videoSink 设置为 null。退房时将清除绑定状态。
- 一般在收到 rtcEngine:onFirstLocalVideoFrameCaptured:withFrameInfo:{@link #ByteRTCEngineDelegate#rtcEngine:onFirstLocalVideoFrameCaptured:withFrameInfo} 回调通知完成本地视频首帧采集后,调用此方法为视频流绑定自定义渲染器;然后加入房间。
- 本方法获取的是前处理后的视频帧。
setLocalVoiceEqualization (ByteRTCVoiceEqualizationConfig config )
→ FutureOr <int >
@detail api
@author wangjunzheng
@brief 设置本地采集语音的均衡效果。包含内部采集和外部采集,但不包含混音音频文件。
@param config 语音均衡效果,参看 ByteRTCVoiceEqualizationConfig{@link #ByteRTCVoiceEqualizationConfig}
@return
- 0: 成功。
- < 0: 失败。具体失败原因参看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus}。
@note 根据奈奎斯特采样率,音频采样率必须大于等于设置的中心频率的两倍,否则,设置不生效。
setLocalVoicePitch (NSInteger pitch )
→ FutureOr <int >
@detail api
@author wangjunzheng
@brief 开启本地语音变调功能,多用于 K 歌场景。
使用该方法,你可以对本地语音的音调进行升调或降调等调整。
@param pitch 相对于语音原始音调的升高/降低值,取值范围-12,12,默认值为 0,即不做调整。
取值范围内每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调,设置的绝对值越大表示音调升高或降低越多。
超出取值范围则设置失败,并且会触发 rtcEngine:onWarning:{@link #ByteRTCEngineDelegate#rtcEngine:onWarning} 回调,提示 ByteRTCWarningCode{@link #ByteRTCWarningCode} 错误码为 WARNING_CODE_SET_SCREEN_STREAM_INVALID_VOICE_PITCH 设置语音音调不合法
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
setLocalVoiceReverbParam (ByteRTCVoiceReverbConfig param )
→ FutureOr <int >
@detail api
@author wangjunzheng
@brief 设置本地采集音频的混响效果。包含内部采集和外部采集,但不包含混音音频文件。
@param param 混响效果,参看 ByteRTCVoiceReverbConfig{@link #ByteRTCVoiceReverbConfig}
@return
- 0: 成功。
- < 0: 失败。具体失败原因参看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus}。
@note 调用 enableLocalVoiceReverb:{@link #ByteRTCEngine#enableLocalVoiceReverb} 开启混响效果。
setLowLightAdjusted (ByteRTCVideoEnhancementMode mode )
→ FutureOr <int >
@hidden(iOS)
@valid since 3.57
@detail api
@author zhoubohui
@brief 设置视频暗光增强模式。
对于光线不足、照明不均匀或背光等场景下推荐开启,可有效改善画面质量。
@param mode 默认不开启。参看 ByteRTCVideoEnhancementMode{@link #ByteRTCVideoEnhancementMode}。
@return
- 0: API 调用成功。会立即生效,但需要等待下载和检测完成后才能看到增强后的效果。
- < 0: API 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 开启后会影响设备性能,应根据实际需求和设备性能决定是否开启。
- 对 RTC SDK 内部采集的视频和自定义采集的视频都生效。
setPlaybackVolume (NSInteger volume )
→ FutureOr <int >
@detail api
@author huangshouqin
@brief 调节本地播放的所有远端用户音频混音后的音量,混音内容包括远端人声、音乐、音效等。
播放音频前或播放音频时,你都可以使用此接口设定播放音量。
@param volume 音频播放音量值和原始音量的比值,范围是 0, 400,单位为 %,自带溢出保护。
为保证更好的通话质量,建议将 volume 值设为 0,100。
- 0: 静音
- 100: 原始音量
- 400: 最大可为原始音量的 4 倍(自带溢出保护)
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 假设某远端用户 A 始终在被调节的目标用户范围内,当该方法与 setRemoteAudioPlaybackVolume:volume:{@link #ByteRTCEngine#setRemoteAudioPlaybackVolume:volume} 或 setRemoteRoomAudioPlaybackVolume:{@link #ByteRTCRoom#setRemoteRoomAudioPlaybackVolume} 共同使用时,本地收听用户 A 的音量将为两次设置的音量效果的叠加。
setPublishFallbackOption (ByteRTCPublishFallbackOption option )
→ FutureOr <int >
@detail api
@author panjian.fishing
@brief 设置发布的音视频流的回退选项。
你可以调用该接口设置网络不佳或设备性能不足时从大流起进行降级处理,以保证通话质量。
@param option 本地发布的音视频流回退选项,参看 ByteRTCPublishFallbackOption{@link #ByteRTCPublishFallbackOption}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 该方法仅在调用 setLocalSimulcastMode:{@link #ByteRTCEngine#setlocalsimulcastmode} 开启了发送多路视频流的情况下生效。
- 该方法必须在进房前设置,进房后设置或更改设置无效。
- 调用该方法后,如因性能或网络不佳产生发布性能回退或恢复,本端会提前收到 rtcEngine:onPerformanceAlarms:info:mode:reason:sourceWantedData:{@link #ByteRTCEngineDelegate#rtcEngine:onPerformanceAlarms:info:mode:reason:sourceWantedData} 回调发出的告警,以便采集设备配合调整。
- 设置回退后,本地发布的音视频流发生回退或从回退中恢复时,远端会收到 rtcEngine:onSimulcastSubscribeFallback:info:event:{@link #ByteRTCEngineDelegate#rtcEngine:onSimulcastSubscribeFallback:info:event} 回调,通知该情况。
- 你可以调用客户端 API 或者在服务端下发策略设置回退。当使用服务端下发配置实现时,下发配置优先级高于在客户端使用 API 设定的配置。
setRemoteAudioPlaybackVolume (NSString streamId , int volume )
→ FutureOr <int >
@detail api
@author huanghao
@brief 调节本端播放收到的远端流时的音量。你必须在进房后进行设置。流的发布状态改变不影响设置生效。
@param streamId 远端流 ID。
@param volume 音量值和原始音量的比值,范围是 0, 400,单位为 %,自带溢出保护。
为保证更好的通话质量,建议将 volume 值设为 0,100。
@return 方法调用结果:
- 0:成功;
- <0:失败。具体失败原因参看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus}。
@note 假设某远端用户 A 始终在被调节的目标用户范围内:
- 当该方法与 setRemoteRoomAudioPlaybackVolume:{@link #ByteRTCRoom#setRemoteRoomAudioPlaybackVolume} 共同使用时,本地收听用户 A 的音量为后调用的方法设置的音量;
- 当该方法与 setPlaybackVolume:{@link #ByteRTCEngine#setPlaybackVolume} 方法共同使用时,本地收听用户 A 的音量将为两次设置的音量效果的叠加。
- 当你调用该方法设置远端流音量后,如果远端退房,接口设置失效。
setRemoteUserPriority (ByteRTCRemoteUserPriority priority , NSString roomId , NSString uid )
→ FutureOr <int >
@detail api
@author panjian.fishing
@brief 设置用户优先级。
@param priority 远端用户的优先级, 详见枚举类型 ByteRTCRemoteUserPriority{@link #ByteRTCRemoteUserPriority}
@param roomId 房间 ID
@param uid 远端用户的 ID
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 该方法与 setSubscribeFallbackOption:{@link #ByteRTCEngine#setSubscribeFallbackOption} 搭配使用。
- 如果开启了订阅流回退选项,弱网或性能不足时会优先保证收到的高优先级用户的流的质量。
- 该方法在进房前后都可以使用,可以修改远端用户的优先级。
setRemoteVideoCanvas (NSString streamId , ByteRTCVideoCanvas canvas )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author sunhang.io
@brief 渲染来自指定远端用户 uid 的视频流时,设置使用的视图和渲染模式。
如果需要解除视频的绑定视图,把 canvas.view 设置为空。(canvas 中其他参数不能为空。)
@param streamId 远端流 ID。
@param canvas 视图信息和渲染模式,参看 ByteRTCVideoCanvas{@link #ByteRTCVideoCanvas}。3.56 版本起支持通过 renderRotation 设置远端视频渲染的旋转角度。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 本地用户离开房间时,会解除调用此 API 建立的绑定关系;远端用户离开房间则不会影响。
setRemoteVideoMirrorType (NSString streamId , ByteRTCRemoteMirrorType mirrorType )
→ FutureOr <int >
@valid since 3.57
@detail api
@hiddensdk(audiosdk)
@brief 使用内部渲染时,为远端流开启镜像。
@param streamId 远端流 ID。
@param mirrorType 远端流的镜像类型,参看 ByteRTCRemoteMirrorType{@link #ByteRTCRemoteMirrorType}。
@return
- 0: 调用成功。
- < 0: 调用失败,参看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
setRemoteVideoSink (NSString streamId , id <ByteRTCVideoSinkDelegate > videoSink , ByteRTCVideoSinkPixelFormat requiredFormat )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@deprecated since 3.57, use setRemoteVideoSink:withSink:withRemoteRenderConfig:{@link #ByteRTCEngine#setRemoteVideoSink:withSink:withRemoteRenderConfig} instead.
@region 自定义视频采集渲染
@author sunhang.io
@brief 将远端视频流与自定义渲染器绑定。
@param streamId 远端流 ID。
@param videoSink 自定义视频渲染器,参看 ByteRTCVideoSinkDelegate{@link #ByteRTCVideoSinkDelegate}
@param requiredFormat videoSink 适用的视频帧编码格式,参看 ByteRTCVideoSinkPixelFormat{@link #ByteRTCVideoSinkPixelFormat}
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- RTC SDK 默认使用 RTC SDK 自带的渲染器(内部渲染器)进行视频渲染。
- 该方法进房前后均可以调用。若想在进房前调用,你需要在加入房间前获取远端流信息;若无法预先获取远端流信息,你可以在加入房间并通过 rtcRoom:onUserPublishStreamVideo:info:isPublish:{@link #ByteRTCRoomDelegate#rtcRoom:onUserPublishStreamVideo:info:isPublish} 回调获取到远端流信息之后,再调用该方法。
- 如果需要解除绑定,必须将 videoSink 设置为 null。退房时将清除绑定状态。
- 本方法获取的是后处理后的视频帧。
setRemoteVideoSuperResolution (NSString streamId , ByteRTCVideoSuperResolutionMode mode )
→ FutureOr <int >
@hidden(macOS) for internal use
@valid since 3.54
@detail api
@hiddensdk(audiosdk)
@author yinkaisheng
@brief 设置远端视频超分模式。
@param streamId 远端流 ID。
@param mode 超分模式,参看 ByteRTCVideoSuperResolutionMode{@link #ByteRTCVideoSuperResolutionMode}。
@return
- 0: ByteRTCReturnStatusSuccess,SDK 调用成功,并不代表超分模式实际状态,需要根据回调 rtcEngine:onRemoteVideoSuperResolutionModeChanged:info:withMode:withReason:{@link #ByteRTCEngineDelegate#rtcEngine:onRemoteVideoSuperResolutionModeChanged:info:withMode:withReason} 判断实际状态。
- -1: ByteRTCReturnStatusNativeInValid,native library 未加载。
- -2: ByteRTCReturnStatusParameterErr,参数非法,指针为空或字符串为空。
- -9: ByteRTCReturnStatusScreenNotSupport,不支持对屏幕流开启超分。
其他错误码参看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus}。
@note
- 如需使用该功能,需集成超分插件 ByteRTCVideoSRExtension.xcframework 及依赖库 bmf_mods_shared.xcframework,详情参看按需集成插件 文档。
- 该方法须进房后调用。
- 远端用户视频流的原始分辨率不能超过 640 × 360 px。
- 支持对一路远端流开启超分,不支持对多路流开启超分。
setRuntimeParameters (NSDictionary parameters )
→ FutureOr <int >
@detail api
@author panjian.fishing
@brief 设置运行时的参数
@param parameters 保留参数
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 该接口需在 joinRoom:userInfo:userVisibility:roomConfig:{@link #ByteRTCRoom#joinRoom:userInfo:userVisibility:roomConfig} 和 startAudioCapture{@link #ByteRTCEngine#startAudioCapture} 之前调用。
setScreenAudioChannel (ByteRTCAudioChannel channel )
→ FutureOr <int >
@hidden(iOS)
@detail api
@author zhangcaining
@brief 在屏幕共享时,设置屏幕音频流的声道数
@param channel 声道数,参看 ByteRTCAudioChannel{@link #ByteRTCAudioChannel}
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 当你调用 setScreenAudioStreamIndex: 并设置屏幕音频流和麦克风音频流混流时,此接口不生效,音频通道数由 setAudioProfile:{@link #ByteRTCEngine#setAudioProfile} 控制。
setScreenAudioSourceType (ByteRTCAudioSourceType sourceType )
→ FutureOr <int >
@detail api
@author liyi.000
@brief 在屏幕共享时,设置屏幕音频的采集方式(内部采集/自定义采集)
@param sourceType 屏幕音频输入源类型, 参看 ByteRTCAudioSourceType{@link #ByteRTCAudioSourceType}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 默认采集方式是 RTC SDK 内部采集。
- 如果设定为内部采集,你必须重新开始采集。
- 如果设定为自定义采集,你必须再调用 pushScreenAudioFrame:{@link #ByteRTCEngine#pushScreenAudioFrame} 将自定义采集到的屏幕音频帧推送到 RTC SDK。
- 无论是内部采集还是自定义采集,你都必须调用 publishScreenAudio: 将采集到的屏幕音频发布给远端。
@order 6
setScreenCaptureVolume (int volume )
→ FutureOr <int >
@detail api
@author wangjunzheng
@brief 调节屏幕共享时采集的音频音量。
只改变音频数据的音量信息,不影响麦克风采集的音量,也不会改变本端音频设备本身的音量。
@param volume 采集的音量值和原始音量的百分比,范围是 0, 400,单位为 %,自带溢出保护。
为保证更好的通话质量,建议将 volume 值设为 0, 100。
+ 0:静音
+ 100:原始音量
+ 400:最大可为原始音量的 4 倍(自带溢出保护)
@return
+ 0: 调用成功。
+ <0:调用失败。具体失败原因参看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus}。
@note 在开启屏幕音频采集前后,你都可以使用此接口设定采集音量。
setServerParams (NSString signature , NSString url )
→ FutureOr <int >
@detail api
@author hanchenchen.c
@brief 设置应用服务器参数
客户端调用 sendServerMessage:{@link #ByteRTCEngine#sendServerMessage} 或 sendServerBinaryMessage:{@link #ByteRTCEngine#sendServerBinaryMessage} 发送消息给应用服务器之前,必须需要设置有效签名和应用服务器地址。
@param signature 动态签名,应用服务器可使用该签名验证消息来源。
签名需自行定义,可传入任意非空字符串,建议将 uid 等信息编码为签名。
设置的签名会以 post 形式发送至通过本方法中 url 参数设置的应用服务器地址。
@param url 应用服务器的地址
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 用户必须调用 login:uid:{@link #ByteRTCEngine#login:uid} 登录后,才能调用本接口。
- 调用本接口后,SDK 会使用 rtcEngine:onServerParamsSetResult:{@link #ByteRTCEngineDelegate#rtcEngine:onServerParamsSetResult} 返回相应结果。
setSubscribeFallbackOption (ByteRTCSubscribeFallbackOption option )
→ FutureOr <int >
@detail api
@author panjian.fishing
@brief 设置订阅的音视频流的回退选项。
你可调用该接口设置网络不佳或设备性能不足时允许订阅流进行降级或只订阅音频流,以保证通话流畅。
@param option 订阅的音视频流回退选项,参看 ByteRTCSubscribeFallbackOption{@link #ByteRTCSubscribeFallbackOption}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 你必须在进房前设置,进房后设置或更改设置无效。
- 设置回退选项后,订阅的音视频流发生回退或从回退中恢复时,会收到 rtcEngine:onSimulcastSubscribeFallback:info:event:{@link #ByteRTCEngineDelegate#rtcEngine:onSimulcastSubscribeFallback:info:event} 和 rtcEngine:onRemoteVideoSizeChanged:info:withFrameInfo:{@link #ByteRTCEngineDelegate#rtcEngine:onRemoteVideoSizeChanged:info:withFrameInfo} 回调通知。
- 你可以调用 API 或者在服务端下发策略设置回退。当使用服务端下发配置实现时,下发配置优先级高于在客户端使用 API 设定的配置。
setVideoCaptureConfig (ByteRTCVideoCaptureConfig captureConfig )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author liuyangyang
@brief 设置 RTC SDK 内部采集时的视频采集参数。
如果你的项目使用了 SDK 内部采集模块,可以通过本接口指定视频采集参数包括模式、分辨率、帧率。
@param captureConfig 视频采集参数。参看: ByteRTCVideoCaptureConfig{@link #ByteRTCVideoCaptureConfig}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
setVideoCaptureRotation (ByteRTCVideoRotation rotation )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author zhaomingliang
@brief 设置本端采集的视频帧的旋转角度。
当摄像头倒置或者倾斜安装时,可调用本接口进行调整。对于手机等普通设备,可调用 setVideoRotationMode:{@link #ByteRTCEngine#setVideoRotationMode} 实现旋转。
@param rotation 相机朝向角度,默认为 ByteRTCVideoRotation0,无旋转角度。详见 ByteRTCVideoRotation{@link #ByteRTCVideoRotation}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 对于内部采集的视频画面,如果已调用 setVideoRotationMode:{@link #ByteRTCEngine#setVideoRotationMode} 设置了旋转方向,会在此基础上叠加旋转角度。
- 调用本接口也将对自定义采集视频画面生效,在原有的旋转角度基础上叠加本次设置。
- 视频贴纸特效或通过 enableVirtualBackground{@link #ByteRTCVideoEffect#enableVirtualBackground:withSource} 增加的虚拟背景,也会跟随本接口的设置进行旋转。
- 本地渲染视频和发送到远端的视频都会相应旋转,但不会应用到单流转推中。如果希望在单流转推的视频中应用旋转,调用 setVideoOrientation:{@link #ByteRTCEngine#setVideoOrientation}。
setVideoDecoderConfig (NSString streamId , ByteRTCVideoDecoderConfig config )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author wangzhanqiang
@brief 在订阅远端视频流之前,设置远端视频数据解码方式
@param streamId 远端流 ID。
@param config 视频解码方式,参看 ByteRTCVideoDecoderConfig{@link #ByteRTCVideoDecoderConfig}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 当你想要对远端流进行自定义解码时,你需要先调用 registerRemoteEncodedVideoFrameObserver:{@link #ByteRTCEngine#registerRemoteEncodedVideoFrameObserver} 注册远端视频流监测器,然后再调用该接口将解码方式设置为自定义解码。监测到的视频数据会通过 onRemoteEncodedVideoFrame:info:withEncodedVideoFrame:{@link #ByteRTCRemoteEncodedVideoFrameObserver#onRemoteEncodedVideoFrame:info:withEncodedVideoFrame} 回调出来。
- 自 3.56 起,要用于自动订阅场景下,你可以设置 streamId 为特定值(若有对应逻辑),此时,通过此接口设置的解码方式根据 streamId 的相关逻辑,适用于所有的远端主流或屏幕流的解码方式。
setVideoDenoiser (ByteRTCVideoDenoiseMode mode )
→ FutureOr <int >
@hidden not available on iOS
@valid since 3.54
@detail api
@hiddensdk(audiosdk)
@author Yujianli
@brief 设置视频降噪模式。
@param mode 视频降噪模式。参看 ByteRTCVideoDenoiseMode{@link #ByteRTCVideoDenoiseMode}。
@return
- 0: API 调用成功。 用户可以根据回调函数 rtcEngine:onVideoDenoiseModeChanged:withReason:{@link #ByteRTCEngineDelegate#rtcEngine:onVideoDenoiseModeChanged:withReason} 判断视频降噪是否开启。
- < 0: API 调用失败。
@note 如需使用该功能,需集成降噪插件 ByteRTCVideoDenoiseExtension.xcframework 及依赖库 bmf_mods_shared.xcframework,详情参看按需集成插件 文档。
setVideoDigitalZoomConfig (ByteRTCZoomConfigType type , float size )
→ FutureOr <int >
@valid since 3.51
@detail api
@hiddensdk(audiosdk)
@author likai.666
@brief 设置本地摄像头数码变焦参数,包括缩放倍数,移动步长。
@param type 数码变焦参数类型,缩放系数或移动步长。参看 ByteRTCZoomConfigType{@link #ByteRTCZoomConfigType}。必填。
@param size 缩放系数或移动步长,保留到小数点后三位。默认值为 0。必填。
选择不同 type 时有不同的取值范围。当计算后的结果超过缩放和移动边界时,取临界值。
- ByteRTCZoomConfigTypeFocusOffset:缩放系数增量,范围为 0, 7。例如,设置为 0.5 时,如果调用 setVideoDigitalZoomControl:{@link #ByteRTCEngine#setVideoDigitalZoomControl} 选择 Zoom in,则缩放系数增加 0.5。缩放系数范围 1,8,默认为 1,原始大小。
- ByteRTCZoomConfigTypeMoveOffset:移动百分比,范围为 0, 0.5,默认为 0,不移动。如果调用 setVideoDigitalZoomControl:{@link #ByteRTCEngine#setVideoDigitalZoomControl} 选择的是左右移动,则移动距离为 size x 原始视频宽度;如果选择的是上下移动,则移动距离为 size x 原始视频高度。例如,视频帧边长为 1080 px,设置为 0.5 时,实际移动距离为 0.5 x 1080 px = 540 px。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 每次调用本接口只能设置一种参数。如果缩放系数和移动步长都需要设置,分别调用本接口传入相应参数。
- 由于移动步长的默认值为 0 ,在调用 setVideoDigitalZoomControl:{@link #ByteRTCEngine#setVideoDigitalZoomControl} 或 startVideoDigitalZoomControl:{@link #ByteRTCEngine#startVideoDigitalZoomControl} 进行数码变焦操作前,应先调用本接口。
setVideoDigitalZoomControl (ByteRTCZoomDirectionType direction )
→ FutureOr <int >
@valid since 3.51
@detail api
@hiddensdk(audiosdk)
@author likai.666
@brief 控制本地摄像头数码变焦,缩放或移动一次。设置对本地预览画面和发布到远端的视频都生效。
@param direction 数码变焦操作类型,参看 ByteRTCZoomDirectionType{@link #ByteRTCZoomDirectionType}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 由于默认步长为 0,调用该方法前需通过 setVideoDigitalZoomConfig:size:{@link #ByteRTCEngine#setVideoDigitalZoomConfig:size} 设置参数。
- 调用该方法进行移动前,应先使用本方法或 startVideoDigitalZoomControl:{@link #ByteRTCEngine#startVideoDigitalZoomControl} 进行放大,否则无法移动。
- 当数码变焦操作超出范围时,将置为临界值。例如,移动到了图片边界、放大到了 8 倍、缩小到原图大小。
- 如果你希望实现持续数码变焦操作,调用 startVideoDigitalZoomControl:{@link #ByteRTCEngine#startVideoDigitalZoomControl}。
- 移动端可对摄像头进行光学变焦控制,参看 setCameraZoomRatio:.
setVideoEncoderConfig (ByteRTCVideoEncoderConfig encoderConfig , NSDictionary parameters )
→ FutureOr <int >
@hidden currently not available
@author wangyu.1705
@brief iOS 和 Mac 不支持 Fov,对齐其他端预留接口。
setVideoOrientation (ByteRTCVideoOrientation orientation )
→ FutureOr <int >
@hidden(macOS)
@detail api
@hiddensdk(audiosdk)
@author wangjunlin.3182
@brief 在自定义视频前处理及编码前,设置 RTC 链路中的视频帧朝向,默认为 Adaptive 模式。
移动端开启视频特效贴纸,或使用自定义视频前处理时,建议固定视频帧朝向为 Portrait 模式。单流转推场景下,建议根据业务需要固定视频帧朝向为 Portrait 或 Landscape 模式。不同模式的具体显示效果参看视频帧朝向 。
@param orientation 视频帧朝向,参看 ByteRTCVideoOrientation{@link #ByteRTCVideoOrientation}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 视频帧朝向设置仅适用于内部采集视频源。对于自定义采集视频源,设置视频帧朝向可能会导致错误,例如宽高对调。屏幕源不支持设置视频帧朝向。
- 编码分辨率的更新与视频帧处理是异步操作,进房后切换视频帧朝向可能导致画面出现短暂的裁切异常,因此建议在进房前设置视频帧朝向,且不在进房后进行切换。
setVideoRotationMode (ByteRTCVideoRotationMode rotationMode )
→ FutureOr <int >
@hidden(macOS)
@detail api
@hiddensdk(audiosdk)
@author wangjunlin.3182
@brief 设置采集视频的旋转模式。默认以 App 方向为旋转参考系。
接收端渲染视频时,将按照和发送端相同的方式进行旋转。
@param rotationMode 视频旋转参考系为 App 方向或重力方向,参看 ByteRTCVideoRotationMode{@link #ByteRTCVideoRotationMode}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 旋转仅对内部视频采集生效,不适用于外部视频源和屏幕源。
- 调用该接口时已开启视频采集,将立即生效;调用该接口时未开启视频采集,则将在采集开启后生效。
- 更多信息请参考视频采集方向 。
setVideoSourceType (ByteRTCVideoSourceType type )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author liuyangyang
@brief 设置向 SDK 输入的视频源,包括屏幕流
默认使用内部采集。内部采集指:使用 RTC SDK 内置的视频采集机制进行视频采集。
@param type 视频输入源类型,参看 ByteRTCVideoSourceType{@link #ByteRTCVideoSourceType}
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 该方法进房前后均可调用。
- 当你已调用 startVideoCapture{@link #ByteRTCEngine#startVideoCapture} 开启内部采集后,再调用此方法切换至自定义采集时,SDK 会自动关闭内部采集。
- 当你调用此方法开启自定义采集后,想要切换至内部采集,你必须先调用此方法关闭自定义采集,然后调用 startVideoCapture{@link #ByteRTCEngine#startVideoCapture} 手动开启内部采集。
- 当你需要向 SDK 推送自定义编码后的视频帧,你需调用该方法将视频源切换至自定义编码视频源。
setVideoWatermark (NSString imagePath , ByteRTCVideoWatermarkConfig rtcWatermarkConfig )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author zhushufan.ref
@brief 在指定视频流上添加水印。
@param imagePath 水印图片路径,仅支持本地文件绝对路径,长度限制为 512 字节。
水印图片为 PNG 或 JPG 格式。
@param rtcWatermarkConfig 水印参数,参看 ByteRTCVideoWatermarkConfig{@link #ByteRTCVideoWatermarkConfig}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 调用 clearVideoWatermark{@link #ByteRTCEngine#clearVideoWatermark} 移除指定视频流的水印。
- 同一视频流只能设置一个水印,新设置的水印会替换上一次的设置。你可以多次调用本方法来设置不同视频流的水印。
- 进入房间前后均可调用此方法。
- 若开启本地预览镜像,或开启本地预览和编码传输镜像,则远端水印均不镜像;在开启本地预览水印时,本端水印会镜像。
- 开启大小流后,水印对大小流均生效,且针对小流进行等比例缩小。
setVoiceChangerType (ByteRTCVoiceChangerType voiceChanger )
→ FutureOr <int >
@valid since 3.32
@detail api
@author luomingkang
@brief 设置变声特效类型
@param voiceChanger 变声特效类型,参看 ByteRTCVoiceChangerType{@link #ByteRTCVoiceChangerType}。
@return 方法调用结果:
- 0:成功;
- <0:失败。具体失败原因参看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus}。
@note
- 如需使用该功能,需集成 SAMI 动态库,详情参看按需集成插件 文档。
- 在进房前后都可设置。
- 对 RTC SDK 内部采集的音频和自定义采集的音频都生效。
- 只对单声道音频生效。
- 与 setVoiceReverbType:{@link #ByteRTCEngine#setVoiceReverbType} 互斥,后设置的特效会覆盖先设置的特效。
setVoiceReverbType (ByteRTCVoiceReverbType voiceReverb )
→ FutureOr <int >
@valid since 3.32
@detail api
@author wangjunzheng
@brief 设置混响特效类型
@param voiceReverb 混响特效类型,参看 ByteRTCVoiceReverbType{@link #ByteRTCVoiceReverbType}。
@return 方法调用结果:
- 0:成功;
- <0:失败。具体失败原因参看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus}。
@note
- 在进房前后都可设置。
- 对 RTC SDK 内部采集的音频和自定义采集的音频都生效。
- 只对单声道音频生效。
- 与 setVoiceChangerType:{@link #ByteRTCEngine#setVoiceChangerType} 互斥,后设置的特效会覆盖先设置的特效。
startAudioCapture ()
→ FutureOr <int >
@detail api
@author dixing
@brief 开启内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的音频采集机制进行音频采集。
调用该方法开启后,本地用户会收到 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error} 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStartAudioCapture:info:{@link #ByteRTCEngineDelegate#rtcEngine:onUserStartAudioCapture:info} 的回调。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 若未取得当前设备的麦克风权限,调用该方法后会触发 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error} 回调,对应的错误码为 ByteRTCMediaDeviceError.ByteRTCMediaDeviceErrorDeviceNoPermission = 1。
- 调用 stopAudioCapture{@link #ByteRTCEngine#stopAudioCapture} 可以关闭音频采集设备,否则,SDK 只会在销毁引擎的时候自动关闭设备。
- 由于不同硬件设备初始化响应时间不同,频繁调用 stopAudioCapture{@link #ByteRTCEngine#stopAudioCapture} 和本接口闭麦/开麦可能出现短暂无声问题,建议使用 publishStreamAudio:{@link #ByteRTCRoom#publishStreamAudio} 实现临时闭麦和重新开麦。
- 创建引擎后,无论是否发布音频数据,你都可以调用该方法开启音频采集,并且调用后方可发布音频。
- 如果需要从自定义音频采集切换为内部音频采集,你必须先停止发布流,调用 setAudioSourceType:{@link #ByteRTCEngine#setAudioSourceType} 关闭自定义采集,再调用此方法手动开启内部采集。
startAudioRecording (ByteRTCAudioRecordingConfig recordingConfig )
→ FutureOr <int >
@detail api
@author huangshouqin
@brief 开启录制语音通话,生成本地文件。
在进房前后开启录制,如果未打开麦克风采集,录制任务正常进行,只是不会将数据写入生成的本地文件;只有调用 startAudioCapture{@link #ByteRTCEngine#startAudioCapture} 接口打开麦克风采集后,才会将录制数据写入本地文件。
@param recordingConfig 参看 ByteRTCAudioRecordingConfig{@link #ByteRTCAudioRecordingConfig}
@return
- 0: 正常
- -2: 参数设置异常
- -3: 当前版本 SDK 不支持该特性,请联系技术支持人员
@note
- 录制包含各种音频效果。但不包含背景音乐。
- 调用 stopAudioRecording{@link #ByteRTCEngine#stopAudioRecording} 关闭录制。
- 加入房间前后均可调用。在进房前调用该方法,退房之后,录制任务不会自动停止,需调用 stopAudioRecording{@link #ByteRTCEngine#stopAudioRecording} 关闭录制。在进房后调用该方法,退房之后,录制任务会自动被停止。如果加入了多个房间,录制的文件中会包含各个房间的音频。
- 调用该方法后,你会收到 rtcEngine:onAudioRecordingStateUpdate:error_code:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioRecordingStateUpdate:error_code} 回调。
startChorusCacheSync (ByteRTCChorusCacheSyncConfig config , id <ByteRTCChorusCacheSyncObserver > observer )
→ FutureOr <int >
@hidden internal use only
@detail api
@hiddensdk(audiosdk)
@author liujingchao
@brief 开启缓存同步功能。开启后,会缓存收到的实时音视频数据,并对齐不同数据中的时间戳完成同步。此功能会影响音视频数据消费的实时性。
@param config 参看 ByteRTCChorusCacheSyncConfig{@link #ByteRTCChorusCacheSyncConfig}。
@param observer 事件和数据观察者,参看 ByteRTCChorusCacheSyncObserver{@link #ByteRTCChorusCacheSyncObserver}。
@return 查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus}。
@note 要关闭缓存同步功能,调用 stopChorusCacheSync{@link #ByteRTCEngine#stopChorusCacheSync}。
startClientMixedStream (NSString taskId , ByteRTCMixedStreamConfig config , )
→ FutureOr <int >
@hidden for internal use only
@detail api
@hiddensdk(audiosdk)
@author liujingchao
startCloudProxy (NSArray <ByteRTCCloudProxyInfo > cloudProxiesInfo )
→ FutureOr <int >
@detail api
@author daining.nemo
@brief 开启云代理
@param cloudProxiesInfo 云代理服务器信息列表。参看 ByteRTCCloudProxyInfo{@link #ByteRTCCloudProxyInfo}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 在加入房间前调用此接口
- 在开启云代理后,进行通话前网络探测
- 开启云代理后,并成功链接云代理服务器后,会收到 rtcEngine:onCloudProxyConnected:{@link #ByteRTCEngineDelegate#rtcEngine:onCloudProxyConnected}。
- 要关闭云代理,调用 stopCloudProxy{@link #ByteRTCEngine#stopCloudProxy}。
startEchoTest (ByteRTCEchoTestConfig echoConfig , NSInteger delayTime )
→ FutureOr <int >
@detail api
@author qipengxiang
@brief 开启音视频回路测试。
在进房前,用户可调用该接口对音视频通话全链路进行检测,包括对音视频设备以及用户上下行网络的检测,从而帮助用户判断是否可以正常发布和接收音视频流。
开始检测后,SDK 会录制你声音或视频。如果你在设置的延时范围内收到了回放,则视为音视频回路测试正常。
@param echoConfig 回路测试参数设置,参看 ByteRTCEchoTestConfig{@link #ByteRTCEchoTestConfig}。
@param delayTime 音视频延迟播放的时间间隔,用于指定在开始检测多长时间后期望收到回放。取值范围为 2,10,单位为秒,默认为 2 秒。
@return 方法调用结果:
- 0:成功
- -2:失败,参数异常
- -4:失败,用户已进房
- -6:失败,当前用户已经在检测中
- -7:失败,音视频均不检查
- -8:失败,已经存在相同 roomId 的房间
@note
- 调用该方法开始音视频回路检测后,你可以调用 stopEchoTest{@link #ByteRTCEngine#stopEchoTest} 立即结束测试,也可等待测试 60s 后自动结束,以更换设备进行下一次测试,或进房。
- 在该方法之前调用的所有跟设备控制、流控制相关的方法均在开始检测时失效,在结束检测后恢复生效。
- 在调用 startEchoTest:playDelay:{@link #ByteRTCEngine#startEchoTest:playDelay} 和 stopEchoTest{@link #ByteRTCEngine#stopEchoTest} 之间调用的所有跟设备采集、流控制、进房相关的方法均不生效,并会收到 rtcEngine:onWarning:{@link #ByteRTCEngineDelegate#rtcEngine:onWarning} 回调,提示警告码为 ByteRTCWarningCodeInEchoTestMode。
- 音视频回路检测的结果会通过 rtcEngine:onEchoTestResult:{@link #ByteRTCEngineDelegate#rtcEngine:onEchoTestResult} 回调通知。
startFileRecording (ByteRTCRecordingConfig recordingConfig , ByteRTCRecordingType recordingType )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author wangzhanqiang
@brief 该方法将通话过程中的音视频数据录制到本地的文件中。
@param recordingConfig 本地录制参数配置,参看 ByteRTCRecordingConfig{@link #ByteRTCRecordingConfig}
@param recordingType 本地录制的媒体类型,参看 ByteRTCRecordingType{@link #ByteRTCRecordingType}
@return
- 0: 正常
- -1: 参数设置异常
- -2: 当前版本 SDK 不支持该特性,请联系技术支持人员
@note
- 该方法需在进房后调用。
- 调用该方法后,你会收到 rtcEngine:onRecordingStateUpdate:state:error_code:recording_info:{@link #ByteRTCEngineDelegate#rtcEngine:onRecordingStateUpdate:state:error_code:recording_info} 回调。
- 如果录制正常,系统每秒钟会通过 rtcEngine:onRecordingProgressUpdate:process:recording_info:{@link #ByteRTCEngineDelegate#rtcEngine:onRecordingProgressUpdate:process:recording_info} 回调通知录制进度。
startHardwareEchoDetection (NSString testAudioFilePath )
→ FutureOr <int >
@detail api
@author zhangcaining
@brief 开启通话前回声检测
@param testAudioFilePath 用于回声检测的音频文件的绝对路径,路径字符串使用 UTF-8 编码格式,支持以下音频格式: mp3,aac,m4a,3gp,wav。
音频文件不为静音文件,推荐时长为 10 ~ 20 秒。
@return 方法调用结果:
- 0: 成功。
- -1:失败。上一次检测未结束,请先调用 stopHardwareEchoDetection{@link #ByteRTCEngine#stopHardwareEchoDetection} 停止检测 后重新调用本接口。
- -2:失败。路径不合法或音频文件格式不支持。
@note
- 只有当 ByteRTCRoomProfile{@link #ByteRTCRoomProfile} 为 ByteRTCRoomProfileMeeting 和 ByteRTCRoomProfileMeetingRoom 时支持开启本功能。
- 开启检测前,你需要向用户获取音频设备的使用权限。
- 开启检测前,请确保音频设备没有被静音,采集和播放音量正常。
- 调用本接口后监听 rtcEngine:onHardwareEchoDetectionResult:{@link #ByteRTCEngineDelegate#rtcEngine:onHardwareEchoDetectionResult} 获取检测结果。
- 检测期间,进程将独占音频设备,无法使用其他音频设备测试接口: startEchoTest:playDelay:{@link #ByteRTCEngine#startEchoTest:playDelay}、startAudioDeviceRecordTest:{@link #ByteRTCAudioDeviceManager#startAudioDeviceRecordTest} 或 startAudioPlaybackDeviceTest:interval:{@link #ByteRTCAudioDeviceManager#startAudioPlaybackDeviceTest:interval}。
- 调用 stopHardwareEchoDetection{@link #ByteRTCEngine#stopHardwareEchoDetection} 停止检测,释放对音频设备的占用。
startNetworkDetection (bool isTestUplink , int expectedUplinkBitrate , bool isTestDownlink , int expectedDownlinkBitrate )
→ FutureOr <int >
@detail api
@author hanchenchen.c
@brief 开始通话前网络探测
@param isTestUplink 是否探测上行带宽
@param expectedUplinkBitrate 期望上行带宽,单位:kbps 范围为 {0, 100-10000},其中, 0 表示由 SDK 指定最高码率。
@param isTestDownlink 是否探测下行带宽
@param expectedDownlinkBitrate 期望下行带宽,单位:kbps 范围为 {0, 100-10000},其中, 0 表示由 SDK 指定最高码率。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 成功调用本接口后,会在 3s 内收到一次 rtcEngine:onNetworkDetectionResult:quality:rtt:lostRate:bitrate:jitter:{@link #ByteRTCEngineDelegate#rtcEngine:onNetworkDetectionResult:quality:rtt:lostRate:bitrate:jitter} 回调,此后每 2s 会收到一次该回调,通知探测结果;
- 若探测停止,则会收到一次 rtcEngine:onNetworkDetectionStopped:{@link #ByteRTCEngineDelegate#rtcEngine:onNetworkDetectionStopped} 通知探测停止。
startPushMixedStream (NSString taskId , ByteRTCMixedStreamPushTargetConfig pushTargetConfig , ByteRTCMixedStreamConfig config )
→ FutureOr <int >
@valid since 3.60.
@detail api
@hiddensdk(audiosdk)
@author lizheng
@brief 指定房间中的媒体流,合成后一路流发布到 CDN 或发布一路 WTN 流。
@param taskId 转推直播任务 ID,长度不超过 126 字节。 当 ByteRTCMixedStreamConfig{@link #ByteRTCMixedStreamConfig} 中的 PushTargetType = 0 时, 用于标识转推直播任务。你可以在同一房间内发起多个转推直播任务,并用不同的 ID 加以区分。当你需要发起多个转推直播任务时,应使用多个 ID;当你仅需发起一个转推直播任务时,建议使用空字符串。
当 PushTargetType = 1 时,设置无效,传空即可。
@param pushTargetConfig 推流目标配置参数,比如设置推流地址、WTN流 ID。参看 ByteRTCMixedStreamPushTargetConfig{@link #ByteRTCMixedStreamPushTargetConfig}。
@param config 转推直播配置参数,比如设置合流的图片、视频视图布局和音频属性。参看 ByteRTCMixedStreamConfig{@link #ByteRTCMixedStreamConfig}。
@return
- 0: 成功。你可以通过 rtcEngine:onMixedStreamEvent:withMixedStreamInfo:withErrorCode:{@link #ByteRTCEngineDelegate#rtcEngine:onMixedStreamEvent:withMixedStreamInfo:withErrorCode} 回调获取启动结果和推流过程中的事件。
- !0: 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 在控制台 配置了转推直播和 WTN 流的服务端回调后,调用本接口会收到相应回调。重复调用该接口时,第二次调用会同时触发 TranscodeStarted 和 TranscodeUpdated 。
- 调用 stopPushMixedStream:withPushTargetType:{@link #ByteRTCEngine#stopPushMixedStream:withPushTargetType} 停止转推直播。
- 调用 updatePushMixedStream:withPushTargetConfig:withMixedConfig:{@link #ByteRTCEngine#updatePushMixedStream:withPushTargetConfig:withMixedConfig} 可以更新部分任务参数。
- 调用 startPushSingleStream:singleStream:{@link #ByteRTCEngine#startPushSingleStream:singleStream} 可以转推单路流到 CDN。
@order 0
startPushSingleStream (NSString taskId , ByteRTCPushSingleStreamParam singleStream )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author liujingchao
@brief 新增单流转推直播任务。
@param taskId 任务 ID。
你可以发起多个转推直播任务,并用不同的任务 ID 加以区分。当你需要发起多个转推直播任务时,应使用多个 ID;当你仅需发起一个转推直播任务时,建议使用空字符串。
@param singleStream 转推直播配置参数。详见 ByteRTCPushSingleStreamParam{@link #ByteRTCPushSingleStreamParam}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 调用该方法后,关于启动结果和推流过程中的错误,会收到 rtcEngine:onSingleStreamEvent:withTaskId:withErrorCode:{@link #ByteRTCEngineDelegate#rtcEngine:onSingleStreamEvent:withTaskId:withErrorCode} 回调。
- 调用 stopPushSingleStream:{@link #ByteRTCEngine#stopPushSingleStream} 停止任务。
- 由于本功能不进行编解码,所以推到 RTMP 的视频流会根据推流端的分辨率、编码方式、关闭摄像头等变化而变化。
startScreenAudioCapture (NSString deviceId )
→ FutureOr <int >
@hidden(iOS)
@detail api
@author yezijian.me
@brief 在屏幕共享时,开始使用 RTC SDK 内部采集方式,采集屏幕音频
@param deviceId 虚拟设备 ID
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 本接口仅对内部采集生效,RTC SDK 默认使用内部采集模块采集屏幕音频。若已调用 setScreenAudioSourceType:{@link #ByteRTCEngine#setScreenAudioSourceType} 将音频输入源设置为 ByteRTCAudioSourceTypeExternal 自定义采集,需先切换为 ByteRTCAudioSourceTypeInternal 内部采集,否则该接口调用无效,并将触发 rtcEngine:onAudioDeviceWarning:deviceType:deviceWarning:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceWarning:deviceType:deviceWarning} 回调。
- 采集后,你还需要调用 publishScreenAudio: 将采集到的屏幕音频推送到远端。
- 要关闭屏幕音频内部采集,调用 stopScreenAudioCapture{@link #ByteRTCEngine#stopScreenAudioCapture}。
startScreenCapture (ByteRTCScreenMediaType type , NSString bundleId )
→ FutureOr <int >
@hidden(macOS)
@detail api
@hiddensdk(audiosdk)
@author wangzhanqiang
@brief 使用 RTC SDK 内部采集模块开始采集屏幕音频流和(或)视频流。
@param type 媒体类型,参看 ByteRTCScreenMediaType{@link #ByteRTCScreenMediaType}。
@param bundleId 绑定 Extension 的 Bundle ID,绑定后应用中共享屏幕的选择列表中只展示你的 Extension 可供选择。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 调用本接口时,采集模式应为内部模式。在外部采集模式下调用无效,并将触发 rtcEngine:onVideoDeviceWarning:deviceType:deviceWarning:{@link #ByteRTCEngineDelegate#rtcEngine:onVideoDeviceWarning:deviceType:deviceWarning} 或 rtcEngine:onAudioDeviceWarning:deviceType:deviceWarning:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceWarning:deviceType:deviceWarning} 回调。
- 当从 iOS 控制中心发起屏幕采集时无需调用本方法。
- 采集后,你还需要调用 publishScreenVideo:{@link #ByteRTCRoom#publishScreenVideo} 和/或 publishScreenAudio:{@link #ByteRTCRoom#publishScreenAudio} 发布采集到的屏幕音视频。
- 开启屏幕音频/视频采集成功后,本地用户会收到 rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error} 和 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error} 回调。
startScreenVideoCapture (ByteRTCScreenCaptureSourceInfo sourceInfo , ByteRTCScreenCaptureParam captureParameters )
→ FutureOr <int >
@hidden(iOS)
@detail api
@hiddensdk(audiosdk)
@author liyi.000
@brief 采集屏幕视频流,用于共享。屏幕视频流包括:屏幕上显示的内容,或应用窗口中显示的内容。
@param sourceInfo 待共享的屏幕源,参看 ByteRTCScreenCaptureSourceInfo{@link #ByteRTCScreenCaptureSourceInfo}。
你可以调用 getScreenCaptureSourceList{@link #ByteRTCEngine#getScreenCaptureSourceList} 获得所有可以共享的屏幕源。
@param captureParameters 共享参数。参看 ByteRTCScreenCaptureParam{@link #ByteRTCScreenCaptureParam}。
@return
- 0: 成功
- -1: 失败
@note
- 调用本接口时,采集模式应为内部模式。在外部采集模式下调用无效,并将触发 rtcEngine:onVideoDeviceWarning:deviceType:deviceWarning:{@link #ByteRTCEngineDelegate#rtcEngine:onVideoDeviceWarning:deviceType:deviceWarning} 回调。
- 调用此方法仅开启屏幕流视频采集,不会发布采集到的视频。发布屏幕流视频需要调用 publishScreenVideo:{@link #ByteRTCRoom#publishScreenVideo}。
- 调用 stopScreenVideoCapture{@link #ByteRTCEngine#stopScreenVideoCapture} 关闭屏幕视频源采集。
- 本地用户通过 rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error} 的回调获取屏幕采集状态,包括开始、暂停、恢复、错误等。
- 调用成功后,本端会收到 rtcEngine:onFirstLocalVideoFrameCaptured:withFrameInfo:{@link #ByteRTCEngineDelegate#rtcEngine:onFirstLocalVideoFrameCaptured:withFrameInfo} 回调。
- 调用此接口前,你可以调用 setScreenVideoEncoderConfig:{@link #ByteRTCEngine#setScreenVideoEncoderConfig} 设置屏幕视频流的采集帧率和编码分辨率。
- 在收到 rtcEngine:onFirstLocalVideoFrameCaptured:withFrameInfo:{@link #ByteRTCEngineDelegate#rtcEngine:onFirstLocalVideoFrameCaptured:withFrameInfo} 回调后,通过调用 setLocalVideoCanvas:withCanvas:{@link #ByteRTCEngine#setLocalVideoCanvas:withCanvas} 或 setLocalVideoSink:withSink:withPixelFormat:{@link #ByteRTCEngine#setLocalVideoSink:withSink:withPixelFormat} 函数设置本地屏幕共享视图。
- 再开启采集屏幕视频流后,你可以调用 updateScreenCaptureHighlightConfig:{@link #ByteRTCEngine#updateScreenCaptureHighlightConfig} 更新边框高亮设置,调用 updateScreenCaptureMouseCursor:{@link #ByteRTCEngine#updateScreenCaptureMouseCursor} 更新对鼠标的处理设置,PC 端还可以调用 updateScreenCaptureFilterConfig:{@link #ByteRTCEngine#updateScreenCaptureFilterConfig} 设置需要过滤的窗口。
startVideoCapture ()
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author zhangzhenyu.samuel
@brief 立即开启内部视频采集。默认为关闭状态。
内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。
调用该方法后,本地用户会收到 rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error} 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStartVideoCapture:info:{@link #ByteRTCEngineDelegate#rtcEngine:onUserStartVideoCapture:info} 的回调。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 调用 stopVideoCapture{@link #ByteRTCEngine#stopVideoCapture} 可以停止内部视频采集。否则,只有当销毁引擎实例时,内部视频采集才会停止。
- 创建引擎后,无论是否发布视频数据,你都可以调用该方法开启内部视频采集。只有当(内部或外部)视频采集开始以后视频流才会发布。
- 如果需要从自定义视频采集切换为内部视频采集,你必须先停止发布流,关闭自定义采集,再调用此方法手动开启内部采集。
- 内部视频采集使用的摄像头由 switchCamera:{@link #ByteRTCEngine#switchCamera} 接口指定。(macOS 不支持)
- 自 v3.37.0 升级版本,你需要在应用中向用户申请摄像头权限后才能开始采集。
startVideoDigitalZoomControl (ByteRTCZoomDirectionType direction )
→ FutureOr <int >
@valid since 3.51
@detail api
@hiddensdk(audiosdk)
@author likai.666
@brief 开启本地摄像头持续数码变焦,缩放或移动。设置对本地预览画面和发布到远端的视频都生效。
@param direction 数码变焦操作类型,参看 ByteRTCZoomDirectionType{@link #ByteRTCZoomDirectionType}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 由于默认步长为 0,调用该方法前需通过 setVideoDigitalZoomConfig:size:{@link #ByteRTCEngine#setVideoDigitalZoomConfig:size} 设置参数。
- 调用该方法进行移动前,应先使用本方法或 setVideoDigitalZoomControl:{@link #ByteRTCEngine#setVideoDigitalZoomControl} 进行放大,否则无法移动。
- 当数码变焦操作超出范围时,将置为临界值并停止操作。例如,移动到了图片边界、放大到了 8 倍、缩小到原图大小。
- 你也可以调用 stopVideoDigitalZoomControl{@link #ByteRTCEngine#stopVideoDigitalZoomControl} 手动停止控制。
- 如果你希望实现单次数码变焦操作,调用 setVideoDigitalZoomControl:{@link #ByteRTCEngine#setVideoDigitalZoomControl}。
- 如果你希望实现单次数码变焦操作,调用 setVideoDigitalZoomControl:。
stopAudioCapture ()
→ FutureOr <int >
@detail api
@author dixing
@brief 关闭内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的音频采集机制进行音频采集。
调用该方法,本地用户会收到 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error} 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStopAudioCapture:info:{@link #ByteRTCEngineDelegate#rtcEngine:onUserStopAudioCapture:info} 的回调。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 调用 startAudioCapture{@link #ByteRTCEngine#startAudioCapture} 可以开启音频采集设备。
- 如果不调用本方法停止内部视频采集,则只有当销毁引擎实例时,内部音频采集才会停止。
stopAudioRecording ()
→ FutureOr <int >
@detail api
@author huangshouqin
@brief 停止音频文件录制
@return
- 0: 正常
- -3: 当前版本 SDK 不支持该特性,请联系技术支持人员
@note 调用 startAudioRecording:{@link #ByteRTCEngine#startAudioRecording} 开启本地录制。
stopChorusCacheSync ()
→ FutureOr <int >
@hidden internal use only
@detail api
@hiddensdk(audiosdk)
@author liujingchao
@brief 关闭缓存同步功能。
@return 查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus}。
stopClientMixedStream (NSString taskId )
→ FutureOr <int >
@hidden for internal use only
@detail api
@hiddensdk(audiosdk)
@author liujingchao
stopCloudProxy ()
→ FutureOr <int >
@detail api
@author daining.nemo
@brief 关闭云代理
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 要开启云代理,调用 startCloudProxy:{@link #ByteRTCEngine#startCloudProxy}
stopEchoTest ()
→ FutureOr <int >
@detail api
@author qipengxiang
@brief 停止音视频回路测试。
调用 startEchoTest:playDelay:{@link #ByteRTCEngine#startEchoTest:playDelay} 开启音视频回路检测后,你必须调用该方法停止检测。
@return 方法调用结果:
- 0:成功
- -3:失败,未开启回路检测。
@note 音视频回路检测结束后,所有对系统设备及音视频流的控制均会恢复到开始检测前的状态。
stopFileRecording ()
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author wangzhanqiang
@brief 停止本地录制
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 调用 startFileRecording:type:{@link #ByteRTCEngine#startFileRecording:type} 开启本地录制后,你必须调用该方法停止录制。
- 调用该方法后,你会收到 rtcEngine:onRecordingStateUpdate:state:error_code:recording_info:{@link #ByteRTCEngineDelegate#rtcEngine:onRecordingStateUpdate:state:error_code:recording_info} 回调提示录制结果。
stopHardwareEchoDetection ()
→ FutureOr <int >
@detail api
@author zhangcaining
@brief 停止通话前回声检测
@return 方法调用结果:
- 0: 成功。
- -1:失败。
@note
- 关于开启通话前回声检测,参看 startHardwareEchoDetection:{@link #ByteRTCEngine#startHardwareEchoDetection} 。
- 建议在收到 rtcEngine:onHardwareEchoDetectionResult:{@link #ByteRTCEngineDelegate#rtcEngine:onHardwareEchoDetectionResult} 通知的检测结果后,调用本接口停止检测。
- 在用户进入房间前结束回声检测,释放对音频设备的占用,以免影响正常通话。
stopNetworkDetection ()
→ FutureOr <int >
@detail api
@author hanchenchen.c
@brief 停止通话前网络探测
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
调用本接口后,会收到一次 rtcEngine:onNetworkDetectionStopped:{@link #ByteRTCEngineDelegate#rtcEngine:onNetworkDetectionStopped} 通知探测停止。
stopPushMixedStream (NSString taskId , ByteRTCMixedStreamPushTargetType pushTargetType )
→ FutureOr <int >
@valid since 3.60.
@author lizheng
@detail api
@hiddensdk(audiosdk)
@brief 停止 WTN 流或合流转推 CDN 任务。
@param taskId 转推直播任务 ID。指定想要更新参数设置的转推直播任务。
@param pushTargetType 参看 ByteRTCMixedStreamPushTargetType{@link #ByteRTCMixedStreamPushTargetType}。
@return
+ 0: 成功
+ !0: 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note
- 关于启动合流转推直播或 WTN 流,参看 startPushMixedStream:withPushTargetConfig:withMixedConfig:{@link #ByteRTCEngine#startPushMixedStream:withPushTargetConfig:withMixedConfig}。
@order 3
stopPushSingleStream (NSString taskId )
→ FutureOr <int >
@detail api
@author liujingchao
@brief 停止单流转推直播任务。
@param taskId 任务 ID。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 关于启动单流转推直播,参看 startPushSingleStream:singleStream:{@link #ByteRTCEngine#startPushSingleStream:singleStream}。
- 关于启动合流转推直播,参看 startPushMixedStream:withPushTargetConfig:withMixedConfig:{@link #ByteRTCEngine#startPushMixedStream:withPushTargetConfig:withMixedConfig}。
stopScreenAudioCapture ()
→ FutureOr <int >
@hidden(iOS)
@detail api
@author liyi.000
@brief 在屏幕共享时,停止使用 RTC SDK 内部采集方式,采集屏幕音频。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 调用本接口时,采集模式应为内部模式。在外部采集模式下调用无效,并将触发 rtcEngine:onAudioDeviceWarning:deviceType:deviceWarning:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceWarning:deviceType:deviceWarning} 回调。
- 要开始屏幕音频内部采集,调用 startScreenAudioCapture:{@link #ByteRTCEngine#startScreenAudioCapture}。
stopScreenCapture ()
→ FutureOr <int >
@hidden(macOS)
@detail api
@hiddensdk(audiosdk)
@author wangzhanqiang
@brief 在屏幕共享时,停止使用 RTC SDK 内部采集方式采集屏幕音视频。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 调用本接口时,采集模式应为内部模式。在外部采集模式下调用无效,并将触发 rtcEngine:onVideoDeviceWarning:deviceType:deviceWarning:{@link #ByteRTCEngineDelegate#rtcEngine:onVideoDeviceWarning:deviceType:deviceWarning} 或 rtcEngine:onAudioDeviceWarning:deviceType:deviceWarning:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceWarning:deviceType:deviceWarning} 回调。
- 当从 iOS 控制中心发起屏幕采集时无需调用本方法。
- 本方法只会停止本地屏幕采集,并不会影响屏幕流的发布状态。
- 本地用户会收到 rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error} 和 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error} 的回调。
stopScreenVideoCapture ()
→ FutureOr <int >
@hidden(iOS)
@detail api
@hiddensdk(audiosdk)
@author liyi.000
@brief 停止屏幕视频流采集。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 调用本接口时,采集模式应为内部模式。在外部采集模式下调用无效,并将触发 rtcEngine:onVideoDeviceWarning:deviceType:deviceWarning:{@link #ByteRTCEngineDelegate#rtcEngine:onVideoDeviceWarning:deviceType:deviceWarning} 回调。
- 要开启屏幕视频流采集,调用 startScreenVideoCapture:captureParameters:{@link #ByteRTCEngine#startScreenVideoCapture:captureParameters}。
- 调用后,本地用户会收到 rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error} 的回调。
- 调用此接口不影响屏幕视频流发布。
stopVideoCapture ()
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author zhangzhenyu.samuel
@brief 立即关闭内部视频采集。默认为关闭状态。
内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。
调用该方法后,本地用户会收到 rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error} 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStopVideoCapture:info:{@link #ByteRTCEngineDelegate#rtcEngine:onUserStopVideoCapture:info} 的回调。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 调用 startVideoCapture{@link #ByteRTCEngine#startVideoCapture} 可以开启内部视频采集。
- 如果不调用本方法停止内部视频采集,则只有当销毁引擎实例时,内部视频采集才会停止。
stopVideoDigitalZoomControl ()
→ FutureOr <int >
@valid since 3.51
@detail api
@hiddensdk(audiosdk)
@author likai.666
@brief 停止本地摄像头持续数码变焦。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note 关于开始数码变焦,参看 startVideoDigitalZoomControl:{@link #ByteRTCEngine#startVideoDigitalZoomControl}。
switchCamera (ByteRTCCameraID cameraId )
→ FutureOr <int >
@hidden(macOS)
@detail api
@hiddensdk(audiosdk)
@author zhangzhenyu.samuel
@brief 切换视频内部采集时使用的前置/后置摄像头
调用此接口后,在本地会触发 rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error} 回调。
@param cameraId 摄像头类型,参看 ByteRTCCameraID{@link #ByteRTCCameraID}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 默认使用前置摄像头。
- 如果你正在使用相机进行视频采集,切换操作当即生效;如果相机未启动,后续开启内部采集时,会打开设定的摄像头。
takeLocalSnapshot (id <ByteRTCVideoSnapshotCallbackDelegate > callback )
→ FutureOr <NSInteger >
@detail api
@hiddensdk(audiosdk)
@author wangfujun.911
@brief 截取本地视频画面
@param callback 本地截图的回调。参看 ByteRTCVideoSnapshotCallbackDelegate{@link #ByteRTCVideoSnapshotCallbackDelegate}。
@return 本地截图任务的编号,从 1 开始递增。
@note
- 对截取的画面,包含本地视频处理的全部效果,包含旋转,镜像,美颜等。
- 不管采用 SDK 内部采集,还是自定义采集,都可以进行截图。
takeLocalSnapshotToFile (NSString filePath )
→ FutureOr <NSInteger >
@detail api
@valid since 3.60.
@author wangfujun.911
@brief 截取本地的视频流画面,生成 JPG 文件,并保存到本地指定路径。
调用该方法后,SDK 会触发回调 rtcEngine:onLocalSnapshotTakenToFile:filePath:width:height:errorCode:taskId:{@link #ByteRTCEngineDelegate#rtcEngine:onLocalSnapshotTakenToFile:filePath:width:height:errorCode:taskId} 报告截图是否成功,以及截取的图片信息。
@param filePath 截图的本地保存路径(绝对路径),需精确到文件名及格式,文件扩展名必须为 .jpg,并请确保路径存在且可写。示例:/Users/YourName/Pictures/snapshot.jpg。
@return 本地截图任务的编号,从 1 开始递增。此编号可用于追踪任务状态或进行其他管理操作。
takeRemoteSnapshot (NSString streamId , id <ByteRTCVideoSnapshotCallbackDelegate > callback )
→ FutureOr <NSInteger >
@detail api
@author wangfujun.911
@brief 截取远端视频画面,并保存到本地指定路径。
@param streamId 截图的视频流对应的 ID。
@param callback 参看 ByteRTCVideoSnapshotCallbackDelegate{@link #ByteRTCVideoSnapshotCallbackDelegate}。
@return 远端截图任务的编号,从 1 开始递增。
takeRemoteSnapshotToFile (NSString streamId , NSString filePath )
→ FutureOr <NSInteger >
@detail api
@valid since 3.60.
@author wangfujun.911
@brief 截取远端的视频流画面,生成 JPG 文件,并保存到本地指定路径。
调用该方法后,SDK 会触发回调 rtcEngine:onRemoteSnapshotTakenToFile:info:filePath:width:height:errorCode:taskId:{@link #ByteRTCEngineDelegate#rtcEngine:onRemoteSnapshotTakenToFile:info:filePath:width:height:errorCode:taskId} 报告截图是否成功,以及截取的图片信息。
@param streamId 待截取的远端视频流 ID。
@param filePath 截图的本地保存路径(绝对路径),需精确到文件名及格式,文件扩展名必须为 .jpg,并请确保路径存在且可写。示例:/Users/YourName/Pictures/snapshot.jpg。
@return 远端截图任务的编号,从 1 开始递增。此编号可用于追踪任务状态或进行其他管理操作。
toString ()
→ String
A string representation of this object.
inherited
updateClientMixedStream (NSString taskId , ByteRTCMixedStreamConfig config , )
→ FutureOr <int >
@hidden for internal use only
@detail api
@hiddensdk(audiosdk)
@author liujingchao
updateLocalVideoCanvas (ByteRTCRenderMode renderMode , NSUInteger backgroundColor )
→ FutureOr <int >
@detail api
@hiddensdk(audiosdk)
@author wangfujun.911
@brief 修改本地视频渲染模式和背景色。
@param renderMode 渲染模式。参看 ByteRTCRenderMode{@link #ByteRTCRenderMode}
@param backgroundColor 背景颜色。参看 ByteRTCVideoCanvas{@link #ByteRTCVideoCanvas}.backgroundColor
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@note 你可以在本地视频渲染过程中,调用此接口。调用结果会实时生效。
updateLoginToken (NSString token )
→ FutureOr <int >
@detail api
@author hanchenchen.c
@brief 更新用户用于登录的 Token
Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。
调用 login:uid:{@link #ByteRTCEngine#login:uid} 方法登录时,如果使用了过期的 Token 将导致登录失败,并会收到 rtcEngine:onLoginResult:errorCode:elapsed:{@link #ByteRTCEngineDelegate#rtcEngine:onLoginResult:errorCode:elapsed} 回调通知,错误码为 ByteRTCLoginErrorCodeInvalidToken。此时需要重新获取 Token,并调用此方法更新 Token。
@param token
更新的动态密钥
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 如果 Token 无效导致登录失败,则调用此方法更新 Token 后,SDK 会自动重新登录,而用户不需要自己调用 login:uid:{@link #ByteRTCEngine#login:uid} 方法。
- Token 过期时,如果已经成功登录,则不会受到影响。Token 过期的错误会在下一次使用过期 Token 登录时,或因本地网络状况不佳导致断网重新登录时通知给用户。
updatePushMixedStream (NSString taskId , ByteRTCMixedStreamPushTargetConfig pushTargetConfig , ByteRTCMixedStreamConfig config )
→ FutureOr <int >
@valid since 3.60.
@hidden(Linux)
@detail api
@hiddensdk(audiosdk)
@author lizheng
@brief 更新推 CDN/WTN 流转推参数,会收到 rtcEngine:onMixedStreamEvent:withMixedStreamInfo:withErrorCode:{@link #ByteRTCEngineDelegate#rtcEngine:onMixedStreamEvent:withMixedStreamInfo:withErrorCode} 回调。
使用 startPushMixedStream:withPushTargetConfig:withMixedConfig:{@link #ByteRTCEngine#startPushMixedStream:withPushTargetConfig:withMixedConfig} 启用转推直播功能后,使用此方法更新功能配置参数。
@param taskId 转推直播任务 ID。指定想要更新参数设置的转推直播任务。
@param pushTargetConfig 推流目标配置参数,比如设置推流地址、WTN流 ID。参看 ByteRTCMixedStreamPushTargetConfig{@link #ByteRTCMixedStreamPushTargetConfig}。
@param config 转推直播配置参数,参看 ByteRTCMixedStreamConfig{@link #ByteRTCMixedStreamConfig}。除特殊说明外,均支持过程中更新。
调用时,结构体中没有传入值的属性,会被更新为默认值。
@return
- 0: 成功。
- !0: 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明。
@order 4
updateRemoteStreamVideoCanvas (NSString streamId , ByteRTCRenderMode renderMode , NSUInteger backgroundColor )
→ FutureOr <int >
@deprecated since 3.56, and will be deleted in 3.62. Use updateRemoteStreamVideoCanvas:withRemoteVideoRenderConfig:{@link #ByteRTCEngine#updateRemoteStreamVideoCanvas:withRemoteVideoRenderConfig} instead.
@detail api
@hiddensdk(audiosdk)
@author wangfujun.911
@brief 修改远端视频帧的渲染设置,包括渲染模式和背景颜色。
@param streamId 远端流 ID。
@param renderMode 渲染模式,参看 ByteRTCRenderMode{@link #ByteRTCRenderMode}
@param backgroundColor 背景颜色,参看 ByteRTCVideoCanvas{@link #ByteRTCVideoCanvas}.backgroundColor
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 你可以在远端视频渲染过程中,调用此接口。调用结果会实时生效。
updateResource (NativeResource resource )
→ void
inherited
updateScreenCapture (ByteRTCScreenMediaType type )
→ FutureOr <int >
@hidden(macOS)
@detail api
@hiddensdk(audiosdk)
@author wangzhanqiang
@brief 更新内部屏幕采集时采集的媒体类型。
@param type 媒体类型,参看 ByteRTCScreenMediaType{@link #ByteRTCScreenMediaType}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 你需在开启屏幕视频流采集后调用该方法。
- 本地用户会收到 rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error} 或 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error:{@link #ByteRTCEngineDelegate#rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error} 回调。
updateScreenCaptureFilterConfig (NSArray <NSNumber > excludedWindowList )
→ FutureOr <int >
@hidden(iOS)
@detail api
@hiddensdk(audiosdk)
@author liyi.000
@brief 通过 RTC SDK 提供的采集模块采集屏幕视频流时,设置需要过滤的窗口。
@param excludedWindowList 过滤掉的窗口列表。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note
- 调用此接口前,必须已通过调用 startScreenVideoCapture:captureParameters:{@link #ByteRTCEngine#startScreenVideoCapture:captureParameters} 开启了内部屏幕流采集。
- 本函数在屏幕源类别是屏幕而非应用窗体时才起作用。详见:ByteRTCScreenCaptureSourceType{@link #ByteRTCScreenCaptureSourceType}。
- 调用本接口排除指定窗口时,共享视频的帧率无法达到 30fps。
updateScreenCaptureHighlightConfig (ByteRTCHighlightConfig config )
→ FutureOr <int >
@hidden(iOS)
@detail api
@hiddensdk(audiosdk)
@author liyi.000
@brief 内部屏幕流采集时,更新边框高亮设置。默认展示边框。
@param config 边框高亮设置。参见 ByteRTCHighlightConfig{@link #ByteRTCHighlightConfig}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 调用此接口前,必须已通过调用 startScreenVideoCapture:captureParameters:{@link #ByteRTCEngine#startScreenVideoCapture:captureParameters} 开启了内部屏幕流采集。
updateScreenCaptureMouseCursor (ByteRTCMouseCursorCaptureState mouseCursorCaptureState )
→ FutureOr <int >
@hidden(iOS)
@detail api
@hiddensdk(audiosdk)
@author liyi.000
@brief 内部屏幕流采集时,更新对鼠标的处理设置。默认采集鼠标。
@param mouseCursorCaptureState 参看 ByteRTCMouseCursorCaptureState{@link #ByteRTCMouseCursorCaptureState}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 调用此接口前,必须已通过调用 startScreenVideoCapture:captureParameters:{@link #ByteRTCEngine#startScreenVideoCapture:captureParameters} 开启了内部屏幕流采集。
updateScreenCaptureRegion (dynamic regionRect )
→ FutureOr <int >
@hidden(iOS)
@detail api
@hiddensdk(audiosdk)
@author liyi.000
@brief 内部屏幕流采集时,更新采集区域。
@param regionRect 采集区域相对 startScreenVideoCapture:captureParameters:{@link #ByteRTCEngine#startScreenVideoCapture:captureParameters} 中设定区域的值。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
@note 调用此接口前,必须先通过调用 startScreenVideoCapture:captureParameters:{@link #ByteRTCEngine#startScreenVideoCapture:captureParameters} 开启了内部屏幕流采集。
Static Methods
createRTCEngine (ByteRTCEngineConfig config , id <ByteRTCEngineDelegate > delegate )
→ FutureOr <ByteRTCEngine >
@detail api
@author wangzhanqiang
@brief 创建引擎对象。
如果当前进程中未创建引擎实例,那么你必须先使用此方法,以使用 RTC 提供的各种音视频能力。
如果当前进程中已创建了引擎实例,再次调用此方法时,会返回已创建的引擎实例。
@param config 创建引擎参数配置,详见 ByteRTCEngineConfig{@link #ByteRTCEngineConfig}
@param delegate SDK 回调给应用层的 delegate,详见 ByteRTCEngineDelegate{@link #ByteRTCEngineDelegate}
@return 可用的 ByteRTCEngine{@link #ByteRTCEngine} 实例
destroyRTCEngine ()
→ FutureOr <void >
@detail api
@author wangzhanqiang
@brief 销毁由 createRTCEngine:delegate:{@link #ByteRTCEngine#createRTCEngine:delegate} 所创建的引擎实例,并释放所有相关资源。
@note
- 请确保和需要销毁的 ByteRTCEngine{@link #ByteRTCEngine} 实例相关的业务场景全部结束后,才调用此方法
- 该方法在调用之后,会销毁所有和此 ByteRTCEngine{@link #ByteRTCEngine} 实例相关的内存,并且停止与媒体服务器的任何交互
- 调用本方法会启动 SDK 退出逻辑。引擎线程会保留,直到退出逻辑完成。因此,不要在回调线程中直接调用此 API,会导致死锁。同时此方法是耗时操作,不建议在主线程调用本方法,避免主线程阻塞。
- 可以通过 Objective-C 的 ARC 机制,在 dealloc 时自动触发销毁逻辑
getSDKVersion ()
→ FutureOr <NSString >
@detail api
@author wangzhanqiang
@brief 获取 SDK 当前的版本号。
@return SDK 当前的版本号。
setLogConfig (ByteRTCLogConfig logConfig )
→ FutureOr <int >
@detail api
@author caofanglu
@brief 配置 SDK 本地日志参数,包括日志级别、存储路径、日志文件最大占用的总空间、日志文件名前缀。
@param logConfig 本地日志参数,参看 ByteRTCLogConfig{@link #ByteRTCLogConfig}。
@return
- 0:成功。
- –1:失败,本方法必须在创建引擎前调用。
- –2:失败,参数填写错误。
@note 本方法必须在调用 createRTCEngine:delegate:{@link #ByteRTCEngine#createRTCEngine:delegate} 之前调用。