| 方法 | 描述 |
|---|---|
| sharedInstance | 获取 ByteRtcEngineKit 单例对象。 |
| destroy | 销毁由 sharedEngineWithAppId:delegate: 所创建引擎实例,并释放所有相关资源 |
| getSdkVersion | 获取 SDK 当前的版本号 |
| getErrorDescription: | 获取SDK内各种错误码、警告码的描述文字 |
| sharedEngineWithAppId:delegate: | 创建引擎对象,此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个引擎实例,来使用 SDK 的其他能力 |
| 方法 | 描述 |
|---|---|
| feedbackGrade:type:desc: | 本次通话质量打分评价 |
| setBusinessId: | 设置业务标识参数。 可通过 businessId 区分不同的业务场景(角色/策略等)。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能。 |
| 方法 | 描述 |
|---|---|
| setupLocalVideo: | 该方法设置本地视频显示信息。 |
| setLocalVideoMirrorMode: | 设置本地视频镜像.该方法用于开启或关闭本地视频镜像,默认值为关闭(ByteVideoMirrorModeDisabled)。 |
| GetLocalVideoMirrorMode | 获得当前本地镜像状态 |
| removeLocalVideo | 解除绑定本地视频画布 |
| setupRemoteVideo: | 该方法绑定远程用户和显示视图,即设定 uid 指定的用户用哪个视图显示。 |
| removeRemoteVideo: | 去除特定远端视频。 |
| removeAllRemoteVideo | 去除所有远端视频。 |
| setupRemoteScreen: | 该方法绑定远端屏幕视图,即设定用户 id 指定的用户用哪个屏幕视图显示。调用该接口时需要指定远程共享屏幕流的用户 id,一般可以在进频道前提前设置好。 |
| removeRemoteScreen: | 去除特定远端屏幕。 |
| removeAllRemoteScreen | 去除所有远端屏幕。 |
| setVideoProfiles: | 该方法设置SimulCast发布的一组视频属性,每个属性对应一套视频参数,如分辨率、帧率、码率等。 |
| enableVideo | 该方法用于打开视频模块。 |
| disableVideo | 该方法用于关闭视频模块。 |
| enableLocalVideo: | 该方法开启或关闭本地视频采集。 |
| startPreview | 开启视频预览。 |
| stopPreview | 关闭视频预览,停止本地视频预览。 |
| muteLocalVideoStream: | 停止/开启本地视频流发送。调用该方法后,房间中的其他用户会收到didVideoMuted的回调。 |
| muteAllRemoteVideoStreams: | 停止/开启接收所有远端用户的视频流。 |
| muteRemoteVideoStream:mute: | 停止/开启接收指定远端用户的视频流。 |
| publishScreen:frameRate: | 发布本地共享屏幕流, 调用该方法后需要周期性调用 pushScreenFramepushScreenFrame: ,将要发送的屏幕数据送到 SDK 。 |
| unpublishScreen | 取消共享本地屏幕流。 |
| pushScreenFrame: | 推送共享桌面的视频帧。 |
| replaceBackground:withDivideModel: | 视频图像分割,替换背景 |
| disableBackground | 禁用视频图像分割,替换背景 |
| switchCamera | 切换摄像头。 |
| setVideoResolution:andFrameRate:bitrate: | 设置本地视频属性。 |
| setExternalVideoSource: | 设置外部视频输入源 |
| 方法 | 描述 |
|---|---|
| joinChannelByKey:channelName:info:uid: | 加入房间。 用户调用此方法加入房间,在一个房间内的用户可以相互通话。如果房间还未创建,将会自动为用户创建对应的房间。如果已在房间中,用户必 须调用 leaveChannel: 退出当前房间后,才能加入下一个房间。 |
| setClientRole:withKey: | 设置用户角色。 在加入房间前,用户可调用此方法设置用户角色(默认为主播)。加入房间后,用户也可通过此方法切换用户角色。 |
| leaveChannel: | 离开房间。 调用 joinChannelByKey:channelName:info:uid: 方法加入房间后,在通话结束时必须调用此方法结束通话,否则无法开始下一次通话。不管 当前是否在通话中,都可以调用此方法。此方法会将通话相关的所有资源释放掉。由于此方法是异步操作,调用返回时并没有真正退出房间。 真正退出房间后,会触发执行调用接口时传入的 Block。通信模式下的用户和其他房间模式下的主播、观众离开房间后,远端用户会收到 rtcEngine:didOfflineOfUid:reason: 回调通知。 |
| enableAutoSubscribe: | 开启/关闭自动订阅(手动订阅)功能。 此方法用于设置该房间中是否开启自动订阅(手动订阅)功能。 |
| unsubscribe:isScreen: | 停止订阅房间内指定的远端音视频流。 |
| subscribeStream:info: | 订阅指定的房间内远端音视频流。 |
| enableAutoPublish: | 开启/关闭自动发布(手动发布)功能。 此方法用于设置该房间中是否开启自动发布(手动发布)功能。 |
| publish | 发布本端音视频流到当前房间中。 |
| unpublish | 停止向当前房间发布本端音视频流。 |
| setChannelProfile: | 设置频道模式。 该方法用于设置房间频道模式。SDK 会针对不用的频道模式应用对应的优化策略。 |
| 方法 | 描述 |
|---|---|
| enableAudio | 打开音频模块。 |
| disableAudio | 关闭音频模块。 |
| enableLocalAudio: | 开启/关闭本地音频采集。 |
| muteLocalAudioStream: | 静音本地音频流 |
| muteRemoteAudioStream:mute: | 静音/取消静音指定用户的音频流。 |
| muteAllRemoteAudioStreams: | 静音/取消静音所有音频流 |
| enableAudioVolumeIndication:smooth: | 开启/关闭发言者音量提示。 |
| enableAudioVolumeIndication:smooth: | 开启/关闭发言者音量提示。 |
| 方法 | 描述 |
|---|---|
| renewChannelKey: | 更新 Token。 此方法用于更新 Token。Token 有一定的有效期,App 使用过期的 Token 调用 joinChannelByKey:channelName:info:uid: 会 导致加入房间失败,并收到 rtcEngine:didOccurError: 回调通知,回调错误码为 BRERR_INVALID_TOKEN 。 此时需要重新获取 Token ,然后调用此方法更新 Token。 |
| setPublishFallbackOption: | 设置弱网条件下发布的音视频流回退选项 |
| setDeviceId: | 设置设备ID。 |
| 方法 | 描述 |
|---|---|
| getAudioMixingDuration | 获取音乐文件时长 |
| getAudioMixingCurrentPosition | 获取音乐文件播放进度 |
| stopAudioMixing | 停止播放音乐文件及混音 |
| pauseAudioMixing | 暂停播放音乐文件 |
| resumeAudioMixing | 恢复播放音乐文件 |
| adjustAudioMixingVolume: | 调节音乐文件的文件音量。 |
| startAudioMixing:loopback:replace:cycle: | 开始播放音乐文件及混音。 |
| setAudioMixingPosition: | 设置音频文件的播放位置 |
| adjustAudioMixingPlayoutVolume: | 调节音乐文件的本地播放音量 |
| adjustAudioMixingPublishVolume: | 调节音乐文件的远端播放音量 |
| resumeEffect: | 恢复播放指定音效文件 |
| setEffectsVolume: | 调节所有音效文件的文件音量 |
| unloadAllEffects | 卸载所有音效文件 |
| pauseAllEffects | 暂停所有音效文件的播放 |
| resumeAllEffects | 恢复所有音效文件的播放 |
| stopAllEffects | 停止所有音效文件的播放 |
| 方法 | 描述 |
|---|---|
| setVolumeOfEffect:withVolume: | 调节指定音效文件的文件音量 |
| getEffectVolume: | 获取指定音效文件的文件音量 |
| playEffect:filePath:loopback:cycle:withVolume: | 开始播放指定音效文件。你可以在该方法中设置音效文件的播放次数、音量大小,以及远端用户是否能听到该音效。 |
| preloadEffect:filePath: | 预加载指定音效文件 |
| unloadEffect: | 卸载指定音效文件 |
| pauseEffect: | 暂停播放指定音效文件 |
| stopEffect: | 停止播放指定音效文件 |
| 方法 | 描述 |
|---|---|
| setMediaMetadataObserver: | 注册 metadata 观察者,用于接收或发送 metadata。 底层通过视频帧中添加 SEI 数据实现该功能。 |
| 方法 | 描述 |
|---|---|
| setEncryptType:key: | 设置AES加密算法和加密密钥,有四种内置的加密算法 |
| setCustomizeEncryptHandler: | 设置自定义加密,需要实现对应的加密/解密方法,详情参考 ByteEncryptHandler |
| 方法 | 描述 |
|---|---|
| shouldInitialize | 通知外部渲染器实现,当前需要进行渲染器初始化工作 |
| shouldStart | 通知外部渲染器实现,当前需要准备开始渲染 |
| shouldStop | 通知外部渲染器实现,当前需要准备停止渲染 |
| shouldDispose | 通知外部渲染器实现,当前需要进行渲染器销毁工作 |
| pixelFormat | 指定外部渲染器接收的视频帧格式类型 |
| renderPixelBuffer:rotation:extendedData: | 外部渲染视频帧数据回调接口 |
| 回调 | 描述 |
|---|---|
| rtcEngine:didOccurWarning: | 发生警告回调。 |
| 回调 | 描述 |
|---|---|
| rtcEngine:didOccurError: | 发生错误回调。 |
| 回调 | 描述 |
|---|---|
| rtcEngineConnectionDidInterrupted: | SDK 与信令服务器连接中断回调。 |
| rtcEngineConnectionDidLost: | SDK 与信令服务器连接断开回调。 |
| rtcEngine:networkTypeChangedToType: | SDK 当前网络连接类型改变回调。 |
| rtcEngine:networkQuality:txQuality:rxQuality: | 通话中用户的媒体流网络上下行质量报告回调。 |
| 回调 | 描述 |
|---|---|
| rtcEngine:didJoinChannel:withUid:elapsed: | 加入房间回调。 该回调方法表示该用户成功加入了指定的房间。 |
| rtcEngine:didRejoinChannel:withUid:elapsed: | 重新加入房间成功。 该回调方法表示该用户成功重连入指定的房间。有时候由于网络状况异常,SDK 可能会失去和服务器的连接,此时 SDK 会自动重试 连接,重连成功后会通过此回调方法通知用户。 |
| rtcEngine:didJoinedOfUid:elapsed: | 远端用户加入当前房间回调。 1.频道模式为通信模式。如果本端用户已经在房间中,有新的远端用户加入时,SDK 通过此回调方法通知房间中有新用户加入;如果 用户加入房间前,房间中已有其他用户,新加入的用户也会收到这些已有用户的加入房间回调。 2.频道模式为直播、游戏或云游戏模式。则只会回调用户角色为主播或观众加入房间。 |
| rtcEngine:didOfflineOfUid:reason: | 远端用户离开当前房间回调。 提示本端用户有远端用户离开了房间。用户离开房间的原因有两个,即用户主动调用 leaveChannel: 方法离开 房间和超时掉线。 |
| rtcEngine:didStreamRemoved:reason: | 房间内远端流移除回调。 房间内的远端用户停止发布音视频流时,本端用户会收到此回调通知。 |
| rtcEngine:didStreamAdded: | 房间内新流发布回调。 房间内的远端用户发布新的音视频流时,本端用户会收到此回调通知。 |
| 回调 | 描述 |
|---|---|
| rtcEngine:didStreamSizeChange:width:height:rotation: | 视频size变化回调。 |
| 回调 | 描述 |
|---|---|
| rtcEngine:firstLocalVideoFrameWithSize:elapsed: | 本地首帧视频数据渲染事件回调。调用 joinChannelByKey:channelName:info:uid:后,渲染本地首帧视频数据前的事件。 |
| rtcEngine:firstRemoteVideoFrameOfUid:size:elapsed: | 远端首帧视频数据渲染事件回调。 |
| rtcEngine:firstLocalScreenFrameWithSize:elapsed: | 本地首帧屏幕数据渲染事件回调。调用 joinChannelByKey:channelName:info:uid: 后,渲染本地首帧屏幕数据前的事件。 |
| rtcEngine:firstRemoteScreenFrameOfUid:size:elapsed: | 远端首帧屏幕数据渲染事件回调。 |
| rtcEngine:didVideoMuted:byUid: | 远端用户暂停/重新发送视频回调。房间中远端用户调用muteLocalVideoStream:YES或muteLocalVideoStream:NO时,本地用户将会收到该回调。 |
| rtcEngine:didVideoEnabled:byUid: | 远端用户启用/关闭视频回调。房间中远端用户调用enableVideo/disableVideo时,本地用户将会收到该回调。 |
| rtcEngine:didLocalVideoEnabled:byUid: | 远端用户启用/关闭本地视频回调。房间中远端用户调用enableLocalVideo时,本地用户将会收到该回调。 |
| rtcEngine:firstRemoteVideoDecodedOfUid:size:elapsed: | 远端首帧视频数据解码事件回调。 |
| rtcEngine:reportRtcStats: | 当前通话数据统计回调。该回调在通话或直播中每两秒触发一次。 |
| 回调 | 描述 |
|---|---|
| rtcEngine:firstLocalAudioFrame: | 当收到本地第一帧音频的时候上报该事件 |
| rtcEngine:firstRemoteAudioFrameOfUid:elapsed: | 当收到远端流的第一帧音频的时候上报该事件 |
| rtcEngine:didAudioMuted:byUid: | 远端用户音频静音回调。 提示有远端用户已将其本地音频流静音(或取消静音),该回调由远端用户调用 muteLocalAudioStreammuteLocalAudioStream:,本地用户将会收到该回调。 |
| rtcEngine:didAudioEnabled:byUid: | 远端用户启用/关闭音频回调。房间中远端用户调用enableAudio/disableAudio时,本地用户将会收到该回调。 |
| rtcEngine:didLocalAudioEnabled:byUid: | 远端用户开启/关闭音频设备采集回调 提示有远端用户已开启/关闭音频设备采集,该回调由远端用户调用 enableLocalAudioenableLocalAudio: 方法触发 |
| rtcEngine:reportAudioVolumeIndicationOfSpeakers:totalVolume: | 通话音量提示的回调。回调当前房间内每个用户的音量、总音量。 |
| rtcEngine:audioQualityOfUid:quality:delay:lost: | 用户的音频质量回调。每两秒钟更新一次。 |
| 回调 | 描述 |
|---|---|
| videoFrameMediaMetaDataAtTime: | 当SDK准备发送一个视频帧时,会回调该接口,向你询问是否需要在该视频帧中添加 metadata |
| receiveVideoFrameFromUID:withExtendedData:atTimestamp: | 当SDK收到的视频帧包含 medatada 时,会回调该接口 |
| 回调 | 描述 |
|---|---|
| ByteEngineEncryptRawData: | 自定义加密的方法接口,通过继承并实现该方法,可以扩展传输过程中的加密方法, 详见 setCustomizeEncryptHandler: |
| ByteEngineDecryptRawData: | 自定义解密的方法接口,通过继承并实现该方法,可以扩展传输过程中的解密方法, 详见 setCustomizeEncryptHandler: |