| 方法 | 描述 |
|---|---|
| createRTCEngine:delegate: | 创建引擎对象。 如果当前进程中未创建引擎实例,那么你必须先使用此方法,以使用 RTC 提供的各种音视频能力。 如果当前进程中已创建了引擎实例,再次调用此方法时,会返回已创建的引擎实例。 |
| setRuntimeParameters: | 设置运行时的参数 |
| getNativeHandle | 获取 C++ 层 IRTCEngine 句柄。 |
| feedback:info: | 通话结束,将用户反馈的问题上报到 RTC。 |
| setBusinessId: | 设置业务标识参数 可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。 |
| setLogConfig: | 配置 SDK 本地日志参数,包括日志级别、存储路径、日志文件最大占用的总空间、日志文件名前缀。 |
| getSDKVersion | 获取 SDK 当前的版本号。 |
| destroyRTCEngine | 销毁由 createRTCEngine:delegate: 所创建的引擎实例,并释放所有相关资源。 |
| 回调 | 描述 |
|---|---|
| rtcEngine:onWarning: | 发生警告回调。 SDK 运行时出现了警告。SDK 通常会自动恢复,警告信息可以忽略。 |
| onSubscribePrivilegeTokenWillExpire: | Token 订阅权限过期前 30 秒将触发该回调。 收到该回调后,你需调用 updateToken: 更新 Token 订阅权限有效期。 |
| onTokenWillExpire: | 当 SDK 检测到 Token 的进房权限将在 30 秒内过期时,触发该回调。 收到该回调后,你需调用 updateToken: 更新 Token 进房权限。 |
| onSubscribePrivilegeTokenWillExpire: | Token 订阅权限过期前 30 秒将触发该回调。 收到该回调后,你需调用 updateToken: 更新 Token 订阅权限有效期。 |
| onPublishPrivilegeTokenWillExpire: | Token 发布权限过期前 30 秒将触发该回调。 收到该回调后,你需调用 updateToken: 更新 Token 发布权限。 |
| onTokenWillExpire: | 当 SDK 检测到 Token 的进房权限将在 30 秒内过期时,触发该回调。 收到该回调后,你需调用 updateToken: 更新 Token 进房权限。 |
| rtcEngine:log: | SDK 内部日志回调。 SDK 内部运行时,会把日志回调给业务方,方便排查问题。 |
| onPublishPrivilegeTokenWillExpire: | Token 发布权限过期前 30 秒将触发该回调。 收到该回调后,你需调用 updateToken: 更新 Token 发布权限。 |
| rtcEngine:onSysStats: | 报告当前设备 cpu 与 memory 使用率,每 2s 触发一次。 |
| rtcEngine:onError: | 发生错误回调。 SDK 运行时出现了网络或媒体相关的错误,且无法自动恢复时触发此回调。 你可能需要干预。 |
| 方法 | 描述 |
|---|---|
| createRTCRoom: | 创建 RTC 房间实例。调用此方法后,你仍需调用 joinRoom 方法才能真正加入房间。 |
| joinRoom:userInfo:userVisibility:roomConfig: | 加入 RTC 房间,与房间内其他用户进行音视频通话。 |
| updateToken: | 更新 RTC 房间的 Token,用于维持连接。 |
| leaveRoom | 离开 RTC 房间,结束通话并释放所有相关资源。 |
| destroy | 销毁通过 createRTCRoom: 创建的房间实例。 |
| setUserVisibility: | 设置本端用户在房间内的可见性。默认为可见。 |
| setRoomExtraInfo:value: | 设置或更新房间的附加信息,可用于实现业务逻辑。 |
| getCallId | 获取当前通话的 ID。 |
| setLiveMode: | 设置直播房间的场景类型。 |
| setRTCRoomDelegate: | 设置房间事件的回调代理,用于监听房间相关的事件。 |
| 回调 | 描述 |
|---|---|
| rtcRoom:onRoomStateChanged:withUid:state:extraInfo: | 房间状态改变时触发,例如成功加入房间、异常退出、发生错误等。 |
| rtcRoom:onLeaveRoom: | 调用 leaveRoom 成功离开房间后触发。 |
| rtcRoom:onUserJoined: | 远端用户加入房间或从不可见切换为可见时触发。 |
| rtcRoom:onUserLeave:reason: | 远端用户离开房间或从可见切换为不可见时触发。 |
| rtcRoom:onStreamAdd: | 房间内有用户发布新的音视频流时触发。 |
| rtcRoom:onRoomStats: | 通话中房间的统计信息回调,每 2 秒触发一次。 |
| rtcRoom:onUserVisibilityChanged:errorCode: | 调用 setUserVisibility 设置用户可见性后的结果回调。 |
| rtcRoom:onSetRoomExtraInfoResult:result: | 调用 setRoomExtraInfo 设置房间附加信息后的结果回调。 |
| rtcRoom:onRoomExtraInfoUpdate:value:lastUpdateUserId:lastUpdateTimeMs: | 房间附加信息发生更新时触发。 |
| 方法 | 描述 |
|---|---|
| createRTSRoom: | 创建 RTS 房间实例。调用此方法后,你仍需调用 joinRTSRoom 方法才能真正加入房间。 |
| joinRTSRoom:userInfo: | 加入 RTS 房间,进行实时消息通信。 |
| leaveRoom | 离开 RTS 房间,结束实时消息通信并释放资源。 |
| destroy | 销毁通过 createRTSRoom 创建的房间实例。 |
| sendRoomMessage: | 向房间内所有其他用户发送文本消息。 |
| updateToken: | 更新 RTS 房间的 Token,用于维持连接。 |
| setLiveMode: | 设置直播房间的场景类型。 |
| setRTCRoomDelegateRts: | 设置 RTS 房间事件的回调代理,用于监听房间相关的事件。 |
| 回调 | 描述 |
|---|---|
| rtsRoom:onRoomStateChanged:withUid:state:extraInfo: | RTS 房间状态改变时触发,例如成功加入房间、异常退出、发生错误等。 |
| rtsRoom:onLeaveRoom: | 调用 leaveRoom 成功离开 RTS 房间后触发。 |
| rtsRoom:onUserJoined: | 远端用户加入 RTS 房间时触发。 |
| rtsRoom:onUserLeave:reason: | 远端用户离开 RTS 房间时触发。 |
| 方法 | 描述 |
|---|---|
| createGameRoom:roomConfig: | 创建游戏房间实例。调用此方法后,你仍需调用 joinRoom 方法才能真正加入房间。 |
| joinRoom:userInfo: | 加入游戏房间,与房间内其他用户进行音频通话。 |
| leaveRoom | 离开游戏房间,结束通话并释放所有相关资源。 |
| destroy | 销毁通过 createGameRoom 创建的房间实例。 |
| updateToken: | 更新游戏房间的 Token,用于维持通话连接。 |
| setRTCGameRoomDelegate: | 设置游戏房间事件的回调代理,用于监听房间相关的事件。 |
| 回调 | 描述 |
|---|---|
| rtcRoom:onRoomStateChanged:withUid:state:extraInfo: | 游戏房间状态改变时触发,例如成功加入房间、异常退出、发生错误等。 |
| rtcRoom:onLeaveRoom: | 调用 leaveRoom 成功离开游戏房间后触发。 |
| rtcRoom:onUserJoined: | 远端用户加入游戏房间时触发。 |
| rtcRoom:onUserLeave:reason: | 远端用户离开游戏房间时触发。 |
| rtcRoom:onStreamAdd: | 房间内有用户发布新的音视频流时触发。 |
| rtcRoom:onRoomStats: | 通话中房间的统计信息回调,每 2 秒触发一次。 |
| rtcRoom:onUserVisibilityChanged:errorCode: | 设置用户可见性结果的回调。 |
| rtcRoom:onSetRoomExtraInfoResult:result: | 发送附加信息结果回调。 |
| rtcRoom:onRoomExtraInfoUpdate:value:lastUpdateUserId:lastUpdateTimeMs: | 房间附加信息发生更新时触发。 |
| 方法 | 描述 |
|---|---|
| setAudioSelectionConfig: | 设置本端发布流在音频选路中的优先级。 |
| setRemoteRoomAudioPlaybackVolume: | 调节某个房间内所有远端用户的音频播放音量。 |
| stopHardwareEchoDetection | 停止通话前回声检测 |
| startHardwareEchoDetection: | 开启通话前回声检测 |
| setDefaultAudioRoute: | 将默认的音频播放设备设置为听筒或扬声器。 |
| enableExternalSoundCard: | 启用匹配外置声卡的音频处理模式 |
| getAudioRoute | 获取当前使用的音频播放路由。 |
| setAudioRoute: | 强制切换当前的音频播放路由。默认使用 setDefaultAudioRoute: 中设置的音频路由。 音频播放路由发生变化时,会收到 rtcEngine:onAudioRouteChanged: 回调。 |
| enablePlaybackDucking: | 打开/关闭音量闪避功能,适用于在 RTC 通话过程中会同时播放短视频或音乐的场景,如“一起看”等。 开启该功能后,当检测到远端人声时,RTC 本地的媒体播放音量会自动减弱,从而保证远端人声的清晰可辨;当远端人声消失时,RTC 的本地媒体音量会恢复到闪避前的音量水平。 |
| enableVocalInstrumentBalance: | 开启/关闭音量均衡功能。 开启音量均衡功能后,人声的响度会调整为 -16lufs。如果已调用 setAudioMixingLoudness:loudness: 传入了混音音乐的原始响度,此音乐播放时,响度会调整为 -20lufs。 |
| setBluetoothMode: | 在纯媒体音频场景下,切换 iOS 设备与耳机之间的蓝牙传输协议。 |
| setRemoteAudioPlaybackVolume:volume: | 调节本端播放收到的远端流时的音量。你必须在进房后进行设置。流的发布状态改变不影响设置生效。 |
| enableAudioPropertiesReport: | 启用音频信息提示。启用后,你可以收到 rtcEngine:onLocalAudioPropertiesReport:,rtcEngine:onRemoteAudioPropertiesReport:totalRemoteVolume:,和 rtcEngine:onActiveSpeaker:uid:。 |
| setPlaybackVolume: | 调节本地播放的所有远端用户音频混音后的音量,混音内容包括远端人声、音乐、音效等。 播放音频前或播放音频时,你都可以使用此接口设定播放音量。 |
| setScreenCaptureVolume: | 调节屏幕共享时采集的音频音量。 只改变音频数据的音量信息,不影响麦克风采集的音量,也不会改变本端音频设备本身的音量。 |
| setCaptureVolume: | 调节音频采集音量 |
| muteScreenAudioCapture: | 静音/取消静音屏幕共享时采集的音频。 调用此方法后,SDK 将发送静音数据来代替真实的屏幕音频数据,不影响本端音频设备的采集状态和 SDK 音频流的采集发布状态。 |
| muteAudioCapture: | 设置是否将采集到的音频信号静音,而不改变本端硬件采集状态。 |
| setAudioProfile: | 设置音质档位。 当所选的 ByteRTCRoomProfile 中的音频参数无法满足你的场景需求时,调用本接口切换的音质档位。 |
| setAudioScenario: | 设置音频场景类型。 选择音频场景后,SDK 会自动根据场景切换对应的音量模式(通话音量/媒体音量)和该场景下的最佳音频配置。 |
| stopAudioCapture | 关闭内部音频采集。默认为关闭状态。 内部采集是指:使用 RTC SDK 内置的音频采集机制进行音频采集。 调用该方法,本地用户会收到 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error: 的回调。 非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStopAudioCapture:info: 的回调。 |
| startAudioCapture | 开启内部音频采集。默认为关闭状态。 内部采集是指:使用 RTC SDK 内置的音频采集机制进行音频采集。 调用该方法开启后,本地用户会收到 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error: 的回调。 非隐身用户进房后调用该方法,房间中的其他用户会收到 rtcEngine:onUserStartAudioCapture:info: 的回调。 |
| updateRemotePosition:positionInfo: | 设置房间内某一远端用户在本地用户自建的空间音频坐标系中的发声位置和发声朝向,以实现本地用户预期的空间音频收听效果。 |
| setRemoteRoomAudioPlaybackVolume: | 调节某个游戏房间内所有远端用户的音频播放音量。 |
| enableAudioReceive:enable: | 是否订阅指定用户的音频流。 |
| enableAudioSend: | 开始或停止发送音频流。调用此接口不影响音频采集。同游戏房间其他用户会收到相应的回调。 |
| enableSpeakerphone: | 加入游戏房间后,开启或关闭扬声器。 |
| enableMicrophone: | 加入游戏房间后,调用该接口开启或关闭麦克风。同游戏房间其他用户会收到回调 rtcEngine:onAudioDeviceStateChanged:device_type:device_state:device_error:。 |
| 回调 | 描述 |
|---|---|
| rtcEngine:onUserStartVideoCapture:info: | 房间内的可见用户调用 startVideoCapture 开启内部视频采集时,房间中其他用户会收到此回调。 |
| onNotifyAppRunning | 检测到 App 正在进行音视频通话时触发此回调。 |
| onSocketConnect | Socket 连接成功时触发此回调 |
| onSocketDisconnect | Socket 连接断开时触发此回调 |
| onReceiveMessageFromApp: | Socket 收到 App 侧发来的信息时,触发该回调 |
| onQuitFromApp | 通知 Broadcast Upload Extension 停止采集屏幕并退出。 |
| onFaceDetectResult: | 特效 SDK 进行人脸检测结果的回调。 调用 enableFaceDetection:withInterval:withModelPath: 注册了 ByteRTCFaceDetectionObserver ,并使用 RTC SDK 中包含的特效 SDK 进行视频特效处理时,你会收到此回调。 |
| rtcEngine:onLocalVideoStateChanged:withStreamState:withStreamError: | 本地视频流的状态发生改变时,收到该事件。 |
| rtcEngine:onVideoDeviceWarning:deviceType:deviceWarning: | 视频设备警告回调。视频设备包括视频采集设备。 |
| rtcEngine:onVideoDeviceStateChanged:device_type:device_state:device_error: | 视频设备状态发生改变回调。当设备的视频状态发生改变时,SDK 会触发该回调,提示摄像头视频采集、屏幕视频采集等设备的状态。 |
| rtcEngine:onUserStopVideoCapture:info: | 房间内的可见用户调用 stopVideoCapture 关闭内部视频采集时,房间内其他用户会收到此回调。 若发布视频数据前未开启采集,房间内所有可见用户会收到此回调。 |
| 方法 | 描述 |
|---|---|
| publishStreamAudio: | 发布/取消发布音频流。 |
| requestRemoteVideoKeyFrame: | 在订阅远端视频流之后,向远端请求关键帧 |
| setStreamExtraInfo: | 设置当前推流的流附加信息。 |
| resumeForwardStreamToAllRooms | 恢复跨房间媒体流转发。 调用 pauseForwardStreamToAllRooms 暂停转发之后,调用本方法恢复向所有目标房间转发媒体流。 |
| stopForwardStreamToRooms | 停止跨房间媒体流转发。 通过 startForwardStreamToRooms: 发起媒体流转发后,可调用本方法停止向所有目标房间转发媒体流。 |
| updateForwardStreamToRooms: | 更新跨房间媒体流转发信息。 通过 startForwardStreamToRooms: 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。 调用本方法增加或删减房间后,将在本端触发 rtcRoom:onForwardStreamStateChanged: 回调,包含发生了变动的目标房间中媒体流转发状态。 |
| startForwardStreamToRooms: | 开始跨房间转发媒体流。 在调用 joinRoom:userInfo:userVisibility:roomConfig: 后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。 |
| resumeAllSubscribedStreamAudio | 恢复接收所有远端音频流。 |
| resumeAllSubscribedStreamVideo | 恢复接收所有远端视频流。 |
| pauseAllSubscribedStreamAudio | 暂停接收所有远端音频流。 |
| pauseAllSubscribedStreamVideo | 暂停接收所有远端视频流。 |
| subscribeAllStreamsAudio: | 订阅或取消订阅所有远端音频流(通过麦克风采集的)。 |
| subscribeAllStreamsVideo: | 订阅/取消订阅房间内所有远端视频流(通过摄像头采集的)。 |
| publishStreamVideo: | 发布/取消发布视频流。 |
| setMultiDeviceAVSync: | 设置发流端音画同步。 当同一用户同时使用两个通话设备分别采集发送音频和视频时,有可能会因两个设备所处的网络环境不一致而导致发布的流不同步,此时你可以在视频发送端调用该接口,SDK 会根据音频流的时间戳自动校准视频流,以保证接收端听到音频和看到视频在时间上的同步性。 |
| subscribeStreamAudio:subscribe: | 订阅/取消订阅房间内指定的远端音频流。 |
| pauseForwardStreamToAllRooms | 暂停跨房间媒体流转发。 通过 startForwardStreamToRooms: 发起媒体流转发后,可调用本方法暂停向所有目标房间转发媒体流。 调用本方法暂停向所有目标房间转发后,你可以随时调用 resumeForwardStreamToAllRooms 快速恢复转发。 |
| subscribeStreamVideo:subscribe: | 订阅/取消订阅房间内指定的远端视频流。 |
| setDummyCaptureImagePath: | 摄像头处于关闭状态时,使用静态图片填充本地推送的视频流。 调用 stopVideoCapture 接口时,会开始推静态图片。若要停止发送图片,可传入空字符串或启用内部摄像头采集。 可重复调用该接口来更新图片。 |
| 方法 | 描述 |
|---|---|
| enableSpatialAudio: | 开启/关闭空间音频功能。 |
| setLocalVoicePitch: | 开启本地语音变调功能,多用于 K 歌场景。 使用该方法,你可以对本地语音的音调进行升调或降调等调整。 |
| enableLocalVoiceReverb: | 开启本地音效混响效果 |
| setLocalVoiceReverbParam: | 设置本地采集音频的混响效果。包含内部采集和外部采集,但不包含混音音频文件。 |
| setLocalVoiceEqualization: | 设置本地采集语音的均衡效果。包含内部采集和外部采集,但不包含混音音频文件。 |
| setVoiceReverbType: | 设置混响特效类型 |
| setVoiceChangerType: | 设置变声特效类型 |
| 回调 | 描述 |
|---|---|
| onRecordAudioFrame: | 返回麦克风录制的音频数据 |
| onRemoteEncodedVideoFrame:info:withEncodedVideoFrame: | 调用 registerRemoteEncodedVideoFrameObserver: 后,SDK 监测到远端编码后视频数据时,触发该回调 |
| onLocalEncodedVideoFrame:Frame: | 调用 registerLocalEncodedVideoFrameObserver: 后,SDK 每次使用内部采集,采集到一帧视频帧,或收到一帧外部视频帧时,都会回调该事件。 |
| processVideoFrame: | 获取 RTC SDK 采集得到的视频帧,根据 registerLocalVideoProcessor:withConfig: 设置的视频前处理器,进行视频前处理,最终将处理后的视频帧给到 RTC SDK 用于编码传输。 |
| onActiveVideoLayer:info:withVideoIndex:withActive: | 作为自定义编码视频流的发送端,你会在视频流可发送状态发生变化时,收到此回调。 你可以根据此回调的提示,仅对可发送的视频流进行编码,以降低本端视频编码性能消耗。此回调会根据多个因素综合判断触发,包括:本端设备性能和本端网络性能,以及按需订阅场景下,远端用户是否订阅。 |
| onRequestKeyFrame:info:withVideoIndex: | 提示流发布端需重新生成关键帧的回调 |
| onRateUpdate:info:withVideoIndex:withFps:withBitRate: | 当自定义编码流的帧率或码率发生变化时,触发该回调 |
| onStop:info: | 当收到该回调时,你需停止向 SDK 推送自定义编码视频帧 |
| onStart:info: | 提示自定义编码帧可以开始推送的回调。 收到该回调后,你即可调用 pushExternalEncodedVideoFrame:withEncodedVideoFrame: 向 SDK 推送自定义编码视频帧 |
| onProcessScreenAudioFrame: | 回调屏幕共享的音频帧地址,供自定义音频处理。 |
| onProcessEarMonitorAudioFrame: | 软件耳返音频数据的回调。你可根据此回调自定义处理音频。 软件耳返音频中包含通过调用 setVoiceReverbType: 和 setVoiceChangerType: 设置的音频特效。 |
| onProcessRemoteUserAudioFrame:info:audioFrame: | 回调单个远端用户的音频帧地址,供自定义音频处理。 |
| onProcessPlayBackAudioFrame: | 回调远端音频混音的音频帧地址,供自定义音频处理。 |
| onProcessRecordAudioFrame: | 回调本地采集的音频帧地址,供自定义音频处理。 |
| onCaptureMixedAudioFrame: | 返回本地麦克风录制的音频数据,本地 MediaPlayer / EffectPlayer 播放音频文件混音后的音频数据 |
| onMixedAudioFrame: | 返回本地麦克风录制和订阅的所有远端用户混音后的音频数据 |
| onRemoteUserAudioFrame:info:audioFrame: | 返回远端单个用户的音频数据 |
| onPlaybackAudioFrame: | 返回订阅的所有远端用户混音后的音频数据。 |
| 方法 | 描述 |
|---|---|
| setLocalSimulcastMode: | 发布端开启大小流(simulcast)功能。 |
| setCellularEnhancement: | 启用蜂窝网络辅助增强,改善通话质量。 |
| getNetworkTimeInfo | 通过 NTP 协议,获取网络时间。 |
| stopEchoTest | 停止音视频回路测试。 调用 startEchoTest:playDelay: 开启音视频回路检测后,你必须调用该方法停止检测。 |
| startEchoTest:playDelay: | 开启音视频回路测试。 在进房前,用户可调用该接口对音视频通话全链路进行检测,包括对音视频设备以及用户上下行网络的检测,从而帮助用户判断是否可以正常发布和接收音视频流。 开始检测后,SDK 会录制你的声音或视频。如果你在设置的延时范围内收到了回放,则视为音视频回路测试正常。 |
| stopNetworkDetection | 停止通话前网络探测 |
| startNetworkDetection:uplinkBandwidth:downlink:downlinkBandwidth: | 开始通话前网络探测 |
| setRemoteUserPriority:InRoomId:uid: | 设置用户优先级。 |
| setSubscribeFallbackOption: | 设置订阅的音视频流的回退选项。 你可调用该接口设置网络不佳或设备性能不足时允许订阅流进行降级或只订阅音频流,以保证通话流畅。 |
| setPublishFallbackOption: | 设置发布的音视频流的回退选项。 你可以调用该接口设置网络不佳或设备性能不足时从大流起进行降级处理,以保证通话质量。 |
| setLocalSimulcastMode:config: | 发布端进行大小流(simulcast)设置。 |
| 方法 | 描述 |
|---|---|
| sendRoomMessage: | 给房间内的所有其他用户发送文本消息。 |
| sendRoomBinaryMessage: | 给房间内的所有其他用户群发二进制消息。 |
| sendRoomMessage: | 给房间内的所有其他用户群发文本消息。 |
| sendStreamSyncInfo:config: | 发送音频流同步信息。将消息通过音频流发送到远端,并实现与音频流同步,该接口调用成功后,远端用户会收到 rtcEngine:onStreamSyncInfoReceived:info:streamType:data: 回调。 |
| sendServerBinaryMessage: | 客户端给应用服务器发送二进制消息(P2Server)。 |
| sendServerMessage: | 客户端给应用服务器发送文本消息(P2Server)。 |
| sendUserBinaryMessageOutsideRoom:message:config: | 给房间外指定的用户发送二进制消息(P2P)。 |
| sendUserMessageOutsideRoom:message:config: | 给房间外指定的用户发送文本消息(P2P)。 |
| getPeerOnlineStatus: | 查询对端用户或本端用户的登录状态 |
| setServerParams:url: | 设置应用服务器参数 客户端调用 sendServerMessage: 或 sendServerBinaryMessage: 发送消息给应用服务器之前,必须设置有效签名和应用服务器地址。 |
| updateLoginToken: | 更新用户用于登录的 Token Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。 调用 login:uid: 方法登录时,如果使用了过期的 Token 将导致登录失败,并会收到 rtcEngine:onLoginResult:errorCode:elapsed: 回调通知,错误码为 ByteRTCLoginErrorCodeInvalidToken。此时需要重新获取 Token,并调用此方法更新 Token。 |
| logout | 登出 RTS 服务器。 调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。 |
| login:uid: | 登录 RTS 服务器。 必须先登录,才能调用 sendUserMessageOutsideRoom:message:config: 和 sendServerMessage: 发送房间外点对点消息和向应用服务器发送消息 在调用本接口登录后,如果想要登出,需要调用 logout |
| sendLivePushSEIMessage:count:isKeyFrameOnly:allowOverwrite: | 以 Key-Value 格式通过视频帧发送 SEI 数据。 调用此接口前,必须在调用 setLiveMode: 时将房间模式设置为 kRoomLiveModeSoloHost 开启单人直播模式。 |
| sendSEIMessage:andRepeatCount:andCountPerFrame: | 通过视频帧发送 SEI 数据。 在视频通话场景下,SEI 数据会随视频帧发送;在语音通话场景下,SDK 会自动生成一路 16px × 16px 的黑帧视频流用来发送 SEI 数据。 |
| sendUserBinaryMessage:message:config: | 给房间内指定的用户发送点对点二进制消息(P2P)。 |
| sendUserMessage:message:config: | 给房间内指定的用户发送点对点文本消息(P2P)。 |
| sendRoomBinaryMessage: | 给房间内的所有其他用户发送二进制消息。 |
| 方法 | 描述 |
|---|---|
| startPushMixedStream:withPushTargetConfig:withMixedConfig: | 指定房间中的媒体流,合成后一路流发布到 CDN 或发布一路 WTN 流。 |
| stopPushSingleStream: | 停止由 startPushSingleStream:singleStream: 启动的单流转推任务。 |
| startPushSingleStream:singleStream: | 将房间内某一路音视频流,推送到指定的 RTC 房间或 CDN 地址。此过程不涉及编解码。 |
| stopPushMixedStream:withPushTargetType: | 停止 WTN 流或合流转推 CDN 任务。 |
| updatePushMixedStream:withPushTargetConfig:withMixedConfig: | 更新推 CDN/WTN 流转推参数,会收到 rtcEngine:onMixedStreamEvent:withMixedStreamInfo:withErrorCode: 回调。 使用 startPushMixedStream:withPushTargetConfig:withMixedConfig: 启用转推直播功能后,使用此方法更新功能配置参数。 |
| subscribeWTNVideoStream:subscribe: | 订阅/取消订阅指定 WTN 视频流 无论用户是否在房间内,都可以调用本接口订阅/取消订阅指定的 WTN 视频流。 |
| getWTNStream | 获取 WTN 流对象。 |
| subscribeWTNAudioStream:subscribe: | 订阅/取消订阅指定 WTN 音频流 无论用户是否在房间内,都可以调用本接口订阅/取消订阅指定的 WTN 音频流。 |
| setWTNRemoteVideoCanvas:withCanvas: | 为指定 WTN 流绑定内部渲染视图 |
| setWTNRemoteVideoSink:withSink:withConfig: | 为指定 WTN 流绑定自定义渲染器。详见自定义视频渲染。 |
| setWTNRemoteAudioPlaybackVolume:volume: | 调节 WTN 流的音频播放音量。 |
| setWTNStreamDelegate: | 设置 WTN 流回调接口 |
| 方法 | 描述 |
|---|---|
| open:config: | 打开音乐文件。 一个播放器实例仅能够同时打开一个音乐文件。如果需要同时打开多个音乐文件,请创建多个音乐播放器实例。 要播放 PCM 格式的音频数据,参看 openWithCustomSource:config:。 openWithCustomSource 和此 API 互斥。 |
| getMediaPlayer: | 创建音乐播放器实例。 |
| getAudioEffectPlayer | 创建音效播放器实例。 |
| setEventHandler: | 设置回调句柄。 |
| getDuration: | 获取音效文件时长。 |
| getVolume: | 获取当前音量。 |
| setVolumeAll: | 设置所有音效的音量大小,包括音效文件和 PCM 音效。 |
| setVolume:volume: | 调节指定音效的音量大小,包括音效文件和 PCM 音频。 |
| getPosition: | 获取音效文件播放进度。 |
| setPosition:position: | 设置音效文件的起始播放位置。 |
| resumeAll | 恢复播放所有音效文件。 |
| resume: | 恢复播放音效文件。 |
| pauseAll | 暂停播放所有音效文件。 |
| pause: | 暂停播放音效文件。 |
| unloadAll | 卸载所有音效文件。 |
| unload: | 卸载指定音效文件。 |
| preload:filePath: | 预加载指定音乐文件到内存中,以避免频繁播放同一文件时的重复加载,减少 CPU 占用。 |
| stopAll | 停止播放所有音效文件。 |
| stop: | 停止播放音效文件。 |
| start:filePath:config: | 开始播放音效文件。 可以通过传入不同的 ID 和 filepath 多次调用本方法,以实现同时播放多个音效文件,实现音效叠加。 |
| setEventHandler: | 设置回调句柄。 |
| pushExternalAudioFrame: | 推送用于混音的 PCM 音频帧数据 |
| registerAudioFrameObserver: | 注册回调句柄以在本地音乐文件混音时,收到相关回调。 |
| setLoudness: | 如果你需要使用 enableVocalInstrumentBalance: 对音频文件/PCM 音频数据设置音量均衡,你必须通过此接口传入其原始响度。 |
| setProgressInterval: | 设置音频文件混音时,收到 onMediaPlayerPlayingProgress:progress: 的间隔。 |
| setPlaybackSpeed: | 设置播放速度 |
| selectAudioTrack: | 指定当前音乐文件的播放音轨 |
| getAudioTrackCount | 获取当前音乐文件的音轨数 |
| setAudioDualMonoMode: | 设置当前音乐文件的声道模式 |
| setPosition: | 设置音乐文件的起始播放位置。 |
| setAudioPitch: | 开启变调功能,多用于 K 歌场景。 |
| getState | 获取播放器状态 |
| getPosition | 获取音乐文件播放进度。 |
| getPlaybackDuration | 获取混音音乐文件的实际播放时长,单位为毫秒。 |
| getTotalDuration | 获取音乐文件时长。 |
| getVolume: | 获取当前音量 |
| setVolume:type: | 调节指定混音的音量大小,包括音乐文件混音和 PCM 混音。 |
| resume | 调用 pause 暂停音频播放后,调用本方法恢复播放。 |
| pause | 调用 open:config:,或 start 开始播放音频文件后,调用本方法暂停播放。 |
| stop | 调用 open:config:, start, 或 openWithCustomSource:config: 开始播放后,可以调用本方法停止。 |
| openWithCustomSource:config: | 启动音频裸数据混音。 要播放音乐文件,参看 open:config:。 open 与此 API 互斥。 |
| start | 播放音乐。你仅需要在调用 open:config:,且未开启自动播放时,调用此方法。 |
| 回调 | 描述 |
|---|---|
| onFrame:audioFrame: | 当本地音频文件混音时,回调播放的音频帧。 |
| onSeek:whence: | 根据设置好的内存音频数据的读取位置和读取偏移量对音频数据进行偏移,以便 SDK 读取和分析音频数据。 在调用 openWithCustomSource:config: 接口传入内存音频数据,或者调用 setPosition:position: 设置了音频数据的起始播放位置后,SDK 会对音频数据进行读取和分析,此时会触发该回调,你需要根据参数中设置的起始读取位置和偏移量进行操作。 |
| onReadData:bufferSize: | 调用 openWithCustomSource:config: 接口播放用户传入的内存音频数据时,会触发此回调,用户需要写入音频数据。 |
| onMediaPlayerEvent:event:message: | 播放事件回调。调用 selectAudioTrack: 和 setPosition: 后,会触发此回调。 |
| onMediaPlayerPlayingProgress:progress: | 播放进度周期性回调。回调周期通过 setProgressInterval: 设置。 |
| onMediaPlayerStateChanged:state:error: | 播放状态改变时回调。 |
| onAudioEffectPlayerStateChanged:state:error: | 播放状态改变时回调。 |
| rtcEngine:onAudioMixingPlayingProgress:progress: | 混音音频文件播放进度回调 |
| 方法 | 描述 |
|---|---|
| setExtensionConfig: | 设置 Extension 配置项。你必须在使用屏幕内部采集功能前,设置使用的 Extension。 |
| sendScreenCaptureExtensionMessage: | 向屏幕共享 Extension 发送自定义消息 |
| stopScreenCapture | 在屏幕共享时,停止使用 RTC SDK 内部采集方式采集屏幕音视频。 |
| updateScreenCapture: | 更新内部屏幕采集时采集的媒体类型。 |
| startScreenCapture:bundleId: | 使用 RTC SDK 内部采集模块开始采集屏幕音频流和(或)视频流。 |
| setScreenAudioSourceType: | 在屏幕共享时,设置屏幕音频的采集方式(内部采集/自定义采集) |
| pushScreenAudioFrame: | 使用自定义采集方式,采集屏幕共享时的屏幕音频时,将音频帧推送至 RTC SDK 处进行编码等处理。 |
| 方法 | 描述 |
|---|---|
| setEncryptInfo:key: | 设置传输时使用内置加密的方式。 |
| setLocalProxy: | 设置本地代理。 |
| stopCloudProxy | 关闭云代理 |
| startCloudProxy: | 开启云代理 |
| setCustomizeEncryptHandler: | 设置自定义加密和解密方式。 |
| 回调 | 描述 |
|---|---|
| rtcEngine:onCloudProxyConnected: | 调用 startCloudProxy: 开启云代理,SDK 首次成功连接云代理服务器时,回调此事件。 |
| onDecryptData: | 自定义解密。 对自定义加密后的音视频帧数据进行解密。关于自定义加密,参看 onEncryptData:。 |
| onEncryptData: | 自定义加密。 使用设定的自定义加密方式,对编码后传输前的音视频帧数据进行加密。 暂不支持对原始音视频帧进行加密。 |
| rtcEngine:onLocalProxyStateChanged:withProxyState:withProxyError: | 本地代理状态发生改变回调。调用 setLocalProxy:{@link #ByteRTCEngin e#setLocalProxy} 设置本地代理后,SDK 会触发此回调,返回代理连接的状态。 |
| 方法 | 描述 |
|---|---|
| startSubtitle: | 识别或翻译房间内所有用户的语音,形成字幕。 调用该方法时,可以在 ByteRTCSubtitleMode 中选择语音识别或翻译模式。如果选择识别模式,语音识别文本会通过 rtcRoom:onSubtitleMessageReceived: 事件回调给你; 如果选择翻译模式,你会同时收到两个 rtcRoom:onSubtitleMessageReceived: 回调,分别包含字幕原文及字幕译文。 调用该方法后,用户会收到 rtcRoom:onSubtitleStateChanged:errorCode:errorMessage: 回调,通知字幕是否开启。 |
| stopSubtitle | 关闭字幕。 调用该方法后,用户会收到 rtcRoom:onSubtitleStateChanged:errorCode:errorMessage: 回调,通知字幕是否关闭。 |
| 回调 | 描述 |
|---|---|
| rtcRoom:onSubtitleStateChanged:errorCode:errorMessage: | 字幕状态发生改变回调。 当用户调用 startSubtitle: 和 stopSubtitle 使字幕状态发生改变或出现错误时,触发该回调。 |
| rtcRoom:onSubtitleMessageReceived: | 字幕相关内容回调。 |
| rtcRoom:onSubtitleStateChanged:errorCode:errorMessage: | 字幕状态发生改变回调。 当用户调用 startSubtitle: 和 stopSubtitle 使字幕状态发生改变或出现错误时,触发该回调。 |
| rtcRoom:onSubtitleMessageReceived: | 字幕相关内容回调。 当用户调用 startSubtitle: 后会收到此回调,通知字幕的相关信息。 |
| 方法 | 描述 |
|---|---|
| getRangeAudio | 获取游戏房间的范围语音接口实例。 |
| setNoAttenuationFlags: | 添加标签组,用于标记相互之间通话不衰减的用户组。 在同一个 RTC 房间中,如果多个用户的标签组之间有交集,那么,他们之间互相通话时,通话不衰减。 比如,用户身处多个队伍,队伍成员间通话不衰减。那么,可以为每个队伍绑定专属标签,每个用户的标签组包含用户所属各个队伍的标签。 |
| setAttenuationModel:coefficient: | 设置范围语音的音量衰减模式。 |
| updatePosition: | 更新本地用户在房间内空间直角坐标系中的位置坐标。 |
| updateReceiveRange: | 更新本地用户的音频收听范围。 |
| enableRangeAudio: | 开启/关闭范围语音功能。 范围语音是指,在同一 RTC 房间中设定的音频接收距离范围内,本地用户收听到的远端用户音频音量会随着远端用户的靠近/远离而放大/衰减;若远端用户在房间内的位置超出设定范围,则本地用户无法接收其音频。音频接收范围设置参看 updateReceiveRange:。 |
| getSpatialAudio | 获取空间音频接口实例。 |
| getRangeAudio | 获取范围语音接口实例。 |
| takeRemoteSnapshotToFile:filePath: | 截取远端的视频流画面,生成 JPG 文件,并保存到本地指定路径。 调用该方法后,SDK 会触发回调 rtcEngine:onRemoteSnapshotTakenToFile:info:filePath:width:height:errorCode:taskId: 报告截图是否成功,以及截取的图片信息。 |
| takeRemoteSnapshot:callback: | 截取远端视频画面,并保存到本地指定路径。 |
| takeLocalSnapshotToFile: | 截取本地的视频流画面,生成 JPG 文件,并保存到本地指定路径。 调用该方法后,SDK 会触发回调 rtcEngine:onLocalSnapshotTakenToFile:filePath:width:height:errorCode:taskId: 报告截图是否成功,以及截取的图片信息。 |
| takeLocalSnapshot: | 截取本地视频画面 |
| stopAudioRecording | 停止音频文件录制 |
| startAudioRecording: | 开始音频录制,并生成录音文件保存到本地。 |
| stopFileRecording | 停止本地录制 |
| startFileRecording:type: | 该方法将通话过程中的音视频数据录制到本地的文件中。 |
| setEarMonitorVolume: | 设置耳返的音量。 |
| setEarMonitorMode:filter: | 开启/关闭耳返功能,并控制是否对耳返音频应用本地音频处理。 |
| setEarMonitorMode: | 开启/关闭耳返功能。 |
| setAnsMode: | 支持根据业务场景,设置通话中的音频降噪模式。 |
| removeAllRemotePosition | 移除调用 updateRemotePosition:positionInfo: 为所有远端用户设置的空间音频效果。 |
| removeRemotePosition: | 移除调用 updateRemotePosition:positionInfo: 为某一远端用户设置的空间音频效果。 |
| updateSelfPosition: | 设置本地用户在自建空间直角坐标系中的收听坐标和收听朝向,以实现本地用户预期的空间音频收听效果。 |
| disableRemoteOrientation | 关闭本地用户朝向对本地用户发声效果的影响。 调用此接口后,房间内的其他用户收听本地发声时,声源都在收听者正面。 |