| 方法 | 描述 |
|---|---|
| createRTCVideo:delegate:parameters: | 创建引擎对象。 如果当前线程中未创建引擎实例,那么你必须先使用此方法,以使用 RTC 提供的各种音视频能力。 如果当前线程中已创建了引擎实例,再次调用此方法时,会返回已创建的引擎实例。 |
| getSdkVersion | 获取 SDK 当前的版本号。 |
| feedback:desc: | 通话结束,将用户反馈的问题上报到 RTC |
| getErrorDescription: | 获取 SDK 内各种错误码、警告码的描述文字。 |
| setBusinessId: | 设置业务标识参数 可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。 |
| 方法 | 描述 |
|---|---|
| createRTCRoom: | |
| setRtcRoomDelegate: | 通过设置 RTCRoomDelegateByteRTCRoomDelegate 代理,可以监听此 ByteRTCRoom 对象对应的回调事件。 |
| setUserVisibility: | 设置用户可见性。默认可见。 |
| publishStream: | 在当前所在房间内发布本地通过摄像头/麦克风采集的媒体流 |
| unpublishStream: | 停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中 |
| joinRoomByToken:userInfo:roomConfig: | 加入房间。 调用 createRTCRoom: 创建房间后,调用此方法加入房间,同房间内其他用户进行音视频通话。 |
| leaveRoom | 离开房间。 用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。 |
| renewToken: | 更新 Token。 用户调用 joinRoomByToken:userInfo:roomConfig: 方法加入房间时, 如果使用了过期的 Token 将导致加入房间失败,并会收到 rtcRoom:onRoomStateChanged:withUid:state:extraInfo: 回调, 回调错误码为 ByteRTCErrorCode 中的 ByteRTCErrorCodeInvalidToken。 此时需要重新获取 Token,并调用此方法更新 Token。更新 Token 后,SDK 会自动加入房间。 |
| pauseAllSubscribedStream: | 暂停接收来自远端的媒体流 |
| resumeAllSubscribedStream: | 恢复接收来自远端的媒体流 |
| subscribeStream:mediaStreamType: | 订阅房间内指定的通过摄像头/麦克风采集的媒体流。 该方法对自动订阅和手动订阅模式均适用。 |
| unSubscribeStream:mediaStreamType: | 取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。 该方法对自动订阅和手动订阅模式均适用。 |
| subscribeScreen:mediaStreamType: | 订阅房间内指定的远端屏幕共享音视频流。 该方法对自动订阅和手动订阅模式均适用。 |
| unSubscribeScreen:mediaStreamType: | 取消订阅房间内指定的远端屏幕共享音视频流。 该方法对自动订阅和手动订阅模式均适用。 |
| startForwardStreamToRooms: | 开始跨房间转发媒体流。 在用户进入房间后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。 |
| updateForwardStreamToRooms: | 更新跨房间媒体流转发信息。 通过 startForwardStreamToRooms: 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。 调用本方法增加或删减房间后,将在本端触发 rtcRoom:onForwardStreamStateChanged: 回调,包含发生了变动的目标房间中媒体流转发状态。 |
| stopForwardStreamToRooms | 停止跨房间媒体流转发。 通过 startForwardStreamToRooms: 发起媒体流转发后,可调用本方法停止向所有目标房间转发媒体流。 |
| pauseForwardStreamToAllRooms | 暂停跨房间媒体流转发。 通过 startForwardStreamToRooms: 发起媒体流转发后,可调用本方法暂停向所有目标房间转发媒体流。 调用本方法暂停向所有目标房间转发后,你可以随时调用 resumeForwardStreamToAllRooms 快速恢复转发。 |
| resumeForwardStreamToAllRooms | 恢复跨房间媒体流转发。 调用 pauseForwardStreamToAllRooms 暂停转发之后,调用本方法恢复向所有目标房间转发媒体流。 |
| 方法 | 描述 |
|---|---|
| setDefaultAudioRoute: | 将默认的音频播放设备设置为听筒或扬声器。 |
| setAudioRoute: | 设置当前音频播放路由。默认使用 setDefaultAudioRoute: 中设置的音频路由。 音频播放路由发生变化时,会收到 rtcEngine:onAudioRouteChanged: 回调。 |
| getAudioRoute | 获取当前使用的音频播放路由。 |
| muteAudioPlayback: | 控制本地音频流播放状态:播放/不播放 |
| setCaptureVolume:volume: | 调节音频采集音量 |
| setPlaybackVolume: | 调节本地播放的所有远端用户混音后的音量。 |
| enableAudioPropertiesReport: | 启用音频信息提示。 |
| startAudioCapture | 开启内部音频采集。默认为关闭状态。 内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。 调用该方法开启后,本地用户会收到 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error: 的回调。 非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStartAudioCapture:uid: 的回调。 |
| stopAudioCapture | 关闭内部音频采集。默认为关闭状态。 内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。 调用该方法,本地用户会收到 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error: 的回调。 非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStopAudioCapture:uid: 的回调。 |
| setAudioScenario: | 设置音频场景类型 你可以根据你的应用所在场景,选择合适的音频场景类型。 选择音频场景后,SDK 会自动根据客户端音频采集播放设备和状态,适用通话音量/媒体音量。 本方法在进房前和进房后设置均可生效。 |
| setAudioProfile: | 设置音质档位。当所选的 ByteRTCRoomProfile 中的音频参数无法满足你的场景需求时,调用本接口切换的音质档位。 |
| enablePlaybackDucking: | 打开/关闭音量闪避功能,适用于“一起看”等场景。 开启该功能后,当检测到远端人声时,本地的媒体播放音量会自动减弱,从而保证远端人声的清晰可辨;当远端人声消失时,本地媒体音量会恢复到闪避前的音量水平。 |
| enableExternalSoundCard: | 启用匹配外置声卡的音频处理模式 |
| 方法 | 描述 |
|---|---|
| publishScreen: | 在当前所在房间内发布本地屏幕共享音视频流 |
| unpublishScreen: | 停止将本地屏幕共享音视频流发布到当前所在房间中 |
| pushScreenCaptureFrame:time:rotation: | 推送外部屏幕采集帧 |
| updateScreenCapture: | 更新内部屏幕采集时采集的媒体类型。 |
| stopScreenCapture | 在屏幕共享时,停止使用 RTC SDK 内部采集方式采集屏幕音视频。 |
| setScreenAudioSourceType: | 在屏幕共享时,设置屏幕音频的采集方式(内部采集/自定义采集) |
| setScreenAudioStreamIndex: | 在屏幕共享时,设置屏幕音频流和麦克风采集到的音频流的混流方式 |
| pushScreenAudioFrame: | 使用自定义采集方式,采集屏幕共享时的屏幕音频时,将音频帧推送至 RTC SDK 处进行编码等处理。 |
| SetScreenVideoEncoderConfig: | 为发布的屏幕共享视频流设置期望的编码参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。 |
| 方法 | 描述 |
|---|---|
| sendRoomMessage: | 给房间内的所有其他用户发送文本消息。 |
| sendRoomBinaryMessage: | 给房间内的所有其他用户发送二进制消息。 |
| login:uid: | 必须先登录,才能发送房间外点对点消息和向应用服务器发送消息 在调用本接口登录后,如果想要登出,需要调用 logout |
| logout | 调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。 |
| updateLoginToken: | 更新用户用于登录的 Token Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。 调用 login:uid: 方法登录时,如果使用了过期的 Token 将导致登录失败,并会收到 rtcEngine:onLoginResult:errorCode:elapsed: 回调通知,错误码为 ByteRTCLoginErrorCodeInvalidToken。此时需要重新获取 Token,并调用此方法更新 Token。 |
| setServerParams:url: | 设置应用服务器参数 客户端调用 sendServerMessage: 或 sendServerBinaryMessage: 发送消息给应用服务器之前,必须需要设置有效签名和应用服务器地址。 |
| getPeerOnlineStatus: | 查询对端用户或本端用户的登录状态 |
| sendUserMessageOutsideRoom:message:config: | 给房间外指定的用户发送文本消息(P2P) |
| sendUserBinaryMessageOutsideRoom:message:config: | 给房间外指定的用户发送二进制消息(P2P) |
| sendServerMessage: | 客户端给应用服务器发送文本消息(P2Server) |
| sendServerBinaryMessage: | 客户端给应用服务器发送二进制消息(P2Server) |
| sendStreamSyncInfo:config: | 发送音频流同步信息。将消息通过音频流发送到远端,并实现与音频流同步,该接口调用成功后,远端用户会收到 rtcEngine:onStreamSyncInfoReceived:streamType:data: 回调。 |
| sendSEIMessage:andMessage:andRepeatCount: | 在视频通信时,通过视频帧发送 SEI 数据。 |
| 方法 | 描述 |
|---|---|
| setLocalVideoMirrorType: | 为采集到的视频流开启镜像 |
| setVideoRotationMode: | 设置采集视频的旋转模式。默认以 App 方向为旋转参考系。 接收端渲染视频时,将按照和发送端相同的方式进行旋转。 |
| SetVideoWatermark:WithImagePath:WithRtcWatermarkConfig: | 在指定视频流上添加水印。 |
| ClearVideoWatermark: | 移除指定视频流的水印。 |
| initVirtualBackground:withModel: | 虚拟背景功能初始化。 |
| enableVirtualBackground: | 开启虚拟背景。 |
| disableVirtualBackground | 关闭虚拟背景。 |
| setVoiceChangerType: | 设置变声特效类型 |
| setVoiceReverbType: | 设置混响特效类型 |
| setLocalVoicePitch: | 开启本地语音变调功能,多用于 K 歌场景。 使用该方法,你可以对本地语音的音调进行升调或降调等调整。 |
| enableVocalInstrumentBalance: | 开启/关闭音量均衡功能。 开启音量均衡功能后,人声的响度会调整为 -16lufs。如果已调用 setAudioMixingLoudness:loudness: 传入了混音音乐的原始响度,此音乐播放时,响度会调整为 -20lufs。 |
| 方法 | 描述 |
|---|---|
| startPushPublicStream:withLayout: | 发布一路公共流 公共流是指不属于任何房间,也不属于任何用户的媒体流。使用同一 appID 的用户,可以调用 startPlayPublicStream: 获取和播放指定的公共流。 |
| stopPushPublicStream: | 停止发布当前用户发布的公共流 关于发布公共流,查看 startPushPublicStream:withLayout:。 |
| updatePublicStreamParam:withLayout: | 更新公共流参数 关于发布公共流,查看 startPushPublicStream:withLayout:。 |
| startPlayPublicStream: | 订阅指定公共流 无论用户是否在房间内,都可以调用本接口获取和播放指定的公共流。 |
| stopPlayPublicStream: | 取消订阅指定公共流 关于订阅公共流,查看 startPlayPublicStream:。 |
| setPublicStreamVideoCanvas:withCanvas: | 为指定公共流绑定内部渲染视图。 |
| setPublicStreamVideoSink:withSink:withPixelFormat: | 为指定公共流绑定自定义渲染器。详见自定义视频渲染。 |
| 方法 | 描述 |
|---|---|
| checkVideoEffectLicense: | 视频特效许可证检查 |
| enableVideoEffect: | 创建/销毁视频特效引擎 |
| setVideoEffectAlgoModelPath: | 设置视频特效算法模型路径 |
| setVideoEffectNodes: | 设置视频特效素材包 |
| updateVideoEffectNode:nodeKey:nodeValue: | 设置特效强度 |
| setVideoEffectColorFilter: | 设置颜色滤镜 |
| setVideoEffectColorFilterIntensity: | 设置已启用的颜色滤镜强度 |
| registerFaceDetectionObserver:withInterval: | 注册人脸检测结果回调观察者 注册此观察者后,你会周期性收到 onFaceDetectionResult: 回调。 |
| enableEffectBeauty: | 开启/关闭基础美颜 |
| setBeautyIntensity:withIntensity: | 调整基础美颜强度 |
| 方法 | 描述 |
|---|---|
| startLiveTranscoding:transcoding:observer: | 新增转推直播任务,并设置合流的图片、视频视图布局和音频属性。 同一个任务中转推多路直播流时,SDK 会先将多路流合成一路流,然后再进行转推。 |
| stopLiveTranscoding: | 停止转推直播。 |
| updateLiveTranscoding:transcoding: | 更新转推直播参数。 开启转推直播功能后,你可以使用此方法更新合流转推功能配置参数。 |
| 方法 | 描述 |
|---|---|
| setMultiDeviceAVSync: | 设置发流端音画同步。 当同一用户同时使用两个通话设备分别采集发送音频和视频时,有可能会因两个设备所处的网络环境不一致而导致发布的流不同步,此时你可以在视频发送端调用该接口,SDK 会根据音频流的时间戳自动校准视频流,以保证接收端听到音频和看到视频在时间上的同步性。 |
| 方法 | 描述 |
|---|---|
| setEncryptType:key: | 设置传输时使用内置加密的方式 |
| setCustomizeEncryptHandler: | 设置自定义加密和解密方式 需要实现对应的加密和解密方法。详情参考 ByteRTCEncryptHandler |
| 方法 | 描述 |
|---|---|
| startASR:handler: | 开启自动语音识别服务。该方法将识别后的用户语音转化成文字,并通过 onMessage: 事件回调给用户。 |
| stopASR | 关闭语音识别服务 |
| 方法 | 描述 |
|---|---|
| stopFileRecording: | 停止本地录制 |
| 方法 | 描述 |
|---|---|
| setPublishFallbackOption: | 设置发布的音视频流的回退选项。 你可以调用该接口设置网络不佳或设备性能不足时从大流起进行降级处理,以保证通话质量。 |
| setSubscribeFallbackOption: | 设置订阅的音视频流的回退选项。 你可调用该接口设置网络不佳或设备性能不足时允许订阅流进行降级或只订阅音频流,以保证通话流畅。 |
| startNetworkDetection:uplinkBandwidth:downlink:downlinkBandwidth: | 开始通话前网络探测 |
| stopNetworkDetection | 停止通话前网络探测 |
| 方法 | 描述 |
|---|---|
| setEarMonitorMode: | 开启/关闭耳返功能 |
| setEarMonitorVolume: | 设置耳返的音量 |
| getSpatialAudio | 获取空间音频接口实例。 |
| getRangeAudio | 获取范围语音接口实例。 |
| 回调 | 描述 |
|---|---|
| rtcEngine:onWarning: | 发生警告回调。 SDK 运行时出现了警告。SDK 通常会自动恢复,警告信息可以忽略。 |
| rtcEngine:onError: | 发生错误回调。 SDK 运行时出现了网络或媒体相关的错误,且无法自动恢复时触发此回调。 |
| onTokenWillExpire: | Token 过期前 30 秒将触发该回调。 调用 renewToken: 更新 Token。否则 Token 过期后,用户将被移出房间无法继续进行音视频通话。 |
| rtcEngine:onHttpProxyState: | HTTP 代理连接状态改变时,收到该回调。 |
| rtcEngine:onHttpsProxyState: | HTTPS 代理连接状态改变时,收到该回调。 |
| rtcEngine:onSocks5ProxyState:cmd:proxy_address:local_address:remote_address: | SOCKS5 代理状态改变时,收到该回调。 |
| 回调 | 描述 |
|---|---|
| rtcEngine:onAudioMixingStateChanged:state:error: | 音频混音文件播放状态改变时回调 |
| rtcEngine:onAudioMixingPlayingProgress:progress: | 混音音频文件播放进度回调 |
| 回调 | 描述 |
|---|---|
| rtcEngine:onPushPublicStreamResult:publiscStreamId:errorCode: | 公共流发布结果回调。 调用 startPushPublicStream:withLayout: 接口或直接在服务端启动推公共流功能后,你会通过此回调收到启动结果和推流过程中的错误。 |
| rtcEngine:onPlayPublicStreamResult:errorCode: | 订阅公共流的结果回调 调用 startPlayPublicStream: 接口拉公共流后,你会通过此回调收到启动结果和拉流过程中的错误。 |
| rtcEngine:onPublicStreamSEIMessageReceived:andMessage: | 回调公共流中包含的 SEI 信息 通过 startPlayPublicStream: 开始播放公共流后,可以通过本回调获取公共流中包含的 SEI 信息。 |
| rtcEngine:onFirstPublicStreamVideoFrameDecoded:withFrameInfo: | 公共流的首帧视频解码成功 关于订阅公共流,详见 startPlayPublicStream:。 |
| rtcEngine:onFirstPublicStreamAudioFrame: | 公共流的音频首帧解码成功 关于订阅公共流,详见 startPlayPublicStream:。 |
| 回调 | 描述 |
|---|---|
| onLocalEncodedVideoFrame:Frame: | 调用 registerLocalEncodedVideoFrameObserver: 后,SDK 每次使用内部采集,采集到一帧视频帧,或收到一帧外部视频帧时,都会回调该事件。 |
| onRemoteEncodedVideoFrame:withEncodedVideoFrame: | 调用 registerRemoteEncodedVideoFrameObserver: 后,SDK 监测到远端编码后视频数据时,触发该回调 |
| onLocalVideoFrame: | 本地视频流的视频帧数据回调 |
| onLocalScreenFrame: | 本地屏幕流的视频帧数据回调 |
| onRemoteVideoFrame:user:room: | 远端视频流的视频帧数据回调 |
| onRemoteScreenFrame:user:room: | 远端屏幕流的视频帧数据回调 |
| onRecordAudioFrame: | 返回麦克风录制的音频数据 |
| onPlaybackAudioFrame: | 返回订阅的所有远端用户混音后的音频数据 |
| onRemoteUserAudioFrame:audioFrame: | 返回远端单个用户的音频数据 |
| onMixedAudioFrame: | 返回本地麦克风录制和订阅的所有远端用户混音后的音频数据 |
| processVideoFrame: | 获取 RTC SDK 采集得到的视频帧,根据 registerLocalVideoProcessor:withConfig: 设置的视频前处理器,进行视频前处理,最终将处理后的视频帧给到 RTC SDK 用于编码传输。 |
| 回调 | 描述 |
|---|---|
| onFaceDetectionResult: | 特效 SDK 进行人脸检测结果的回调。 调用 registerFaceDetectionObserver:withInterval: 注册了 ByteRTCFaceDetectionObserver ,并使用 RTC SDK 中包含的特效 SDK 进行视频特效处理时,你会收到此回调。 |
| 回调 | 描述 |
|---|---|
| isSupportClientPushStream | 是否具有推流能力。 + false:不具备推流能力(默认值) + true:具备推流能力 |
| 回调 | 描述 |
|---|---|
| rtcEngine:onUserStartVideoCapture:uid: | 房间内的可见用户调用 startVideoCapture 开启内部视频采集时,房间中其他用户会收到此回调。 |
| rtcRoom:onAVSyncStateChange: | 发布端调用 setMultiDeviceAVSync: 后音视频同步状态发生改变时,会收到此回调。 |
| 回调 | 描述 |
|---|---|
| ByteRTCEncryptRawData: | 自定义加密。 使用设定的自定义加密方式,对传输前的音视频帧数据进行加密。 |
| ByteRTCDecryptRawData: | 自定义解密。 对自定义加密后的音视频帧数据进行解密。关于自定义加密,参看 ByteRTCEncryptRawData:。 |
| 回调 | 描述 |
|---|---|
| rtcEngine:onRecordingStateUpdate:state:error_code:recording_info: | 获取本地录制状态回调。 该回调由 startFileRecording:withRecordingConfig:type: 或 stopFileRecording: 触发。 |
| rtcEngine:onRecordingProgressUpdate:process:recording_info: | 本地录制进度回调。 该回调由 startFileRecording:withRecordingConfig:type: 触发,录制状态正常时,系统每秒钟都会通过该回调提示录制进度。 |
| 回调 | 描述 |
|---|---|
| rtcEngine:onPerformanceAlarmsWithMode:roomId:reason:sourceWantedData: | 本地未开启发布性能回退,检测到设备性能不足时,收到此回调。 本地开启发布性能回退,因设备性能/网络原因,造成发布性能回退/恢复时,收到此回调。 |
| rtcEngine:OnSimulcastSubscribeFallback: | 音视频流因网络环境变化等原因发生回退,或从回退中恢复时,触发该回调。 |
| rtcEngine:onNetworkDetectionResult:quality:rtt:lostRate:bitrate:jitter: | 通话前网络探测结果。 成功调用 startNetworkDetection:uplinkBandwidth:downlink:downlinkBandwidth: 接口开始探测后,会在 3s 内首次收到该回调,之后每 2s 收到一次该回调。 |
| rtcEngine:onNetworkDetectionStopped: | 通话前网络探测结束 以下情况将停止探测并收到本一次本回调: 1. 当调用 stopNetworkDetection 接口停止探测后,会收到一次该回调; 2. 当收到远端/本端音频首帧后,停止探测; 3. 当探测超过3分钟后,停止探测; 4. 当探测链路断开一定时间之后,停止探测。 |
| 回调 | 描述 |
|---|---|
| rtcEngine:reportSysStats: | 报告当前设备 cpu 与 memory 使用率,每 2s 触发一次。 |
| rtcRoom:onLocalStreamStats: | 本地流数据统计以及网络质量回调。 本地用户发布流成功后,SDK 会周期性(2s)的通过此回调事件通知用户发布的流在此次统计周期内的质量统计信息。 统计信息通过 ByteRTCLocalStreamStats 类型的回调参数传递给用户,其中包括发送音视频比特率、发送帧率、编码帧率,网络质量等。 |
| rtcRoom:onRemoteStreamStats: | 本地订阅的远端音/视频流数据统计以及网络质量回调。 本地用户订阅流成功后,SDK 会周期性(2s)的通过此回调事件通知用户订阅的流在此次统计周期内的质量统计信息,包括:发送音视频比特率、发送帧率、编码帧率,网络质量等。 |
| 回调 | 描述 |
|---|---|
| onRangeAudioInfo: | 关于当前范围语音衰减系数的回调。 手动订阅的场景下,房间内任一用户调用 updatePosition: 更新自身位置或调用 updateReceiveRange: 更新语音接收范围时,该用户与房间内其他用户的相对距离都会发生改变,据此计算的衰减系数也会发生改变,并通过该回调通知用户。 调用 setAttenuationModel:coefficient: 更新音量衰减模式时,衰减系数将发生变化,通过该回调通知用户。 你可以通过关注该回调中包含的远端用户的衰减系数决定是否订阅该远端用户的流。 |