public abstract class com.ss.bytertc.engine.RTCEngine
RtcEngine接口
| 返回 | 名称 |
|---|---|
| static synchronized RTCEngine | createEngine |
| static synchronized void | destroyEngine |
| static String | getSdkVersion |
| static String | getErrorDescription |
public static synchronized RTCEngine com.ss.bytertc.engine.RTCEngine.createEngine(
Context context,
String appId,
IRTCEngineEventHandler handler,
Object eglContext,
JSONObject parameters)
创建引擎对象
如果当前线程中未创建引擎实例,那么你必须先使用此方法,以使用 RTC 提供的各种音视频能力。
如果当前线程中已创建了引擎实例,再次调用此方法时,会创建另一个独立的引擎实例。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| context | Context | Android Application Context |
| appId | String | 每个应用的唯一标识符,由 RTC 控制台随机生成的。不同的 AppId 生成的实例在 RTC 中进行音视频通话完全独立,无法互通。 |
| handler | IRTCEngineEventHandler | SDK 回调给应用层的 Handler,详见 IRTCEngineEventHandler |
| eglContext | Object | 如果需要支持外部纹理硬编码,则需要传入 eglContext。以 jObject 方式传入 eglContext |
| parameters | JSONObject | 用以覆盖默认参数的本引擎实例参数。JSON 字符串格式。 |
返回值
注意
public static synchronized void com.ss.bytertc.engine.RTCEngine.destroyEngine(
RTCEngine engine)
销毁由 createEngine 所创建引擎实例,并释放所有相关资源
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engine | RTCEngine | 由 createEngine 所创建引擎实例 |
注意
public static String com.ss.bytertc.engine.RTCEngine.getSdkVersion()
获取 SDK 当前的版本号。
返回值 SDK 当前的版本号。
public static String com.ss.bytertc.engine.RTCEngine.getErrorDescription(
int code)
获取SDK内各种错误码、警告码的描述文字
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | int | 通过 onWarning 和 onError 回调获得的值, 具体可以参考 ErrorCode 和 WarningCode |
返回值 String 描述文字
public abstract void com.ss.bytertc.engine.RTCEngine.setRtcEngineEventHandler(
IRTCEngineEventHandler engineEventHandler)
设置引擎事件回调的接收类,必须继承自 IRTCEngineEventHandler 。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| engineEventHandler | IRTCEngineEventHandler | 事件处理器接口类,详见 IRTCEngineEventHandler 。 |
注意
public abstract int com.ss.bytertc.engine.RTCEngine.joinRoom(
String token,
String roomId,
UserInfo userInfo,
RTCRoomConfig roomConfig)
创建/加入房间:房间不存在时即创建房间;房间存在时即加入这个房间。
同一房间内的用户间可以相互通话。
进房后重复调用无效,用户必须调用 leaveRoom 退出当前房间后,才能加入下一个房间。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| token | String | 动态密钥,用于对进房用户进行鉴权验证。 进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。 请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。 |
| roomId | String | 加入的房间 ID。 该字符串符合正则表达式: [a-zA-Z0-9_@\-]{1,128} |
| userInfo | UserInfo | 用户信息。参看 UserInfo。 |
| roomConfig | RTCRoomConfig | 房间参数配置,设置房间模式以及是否自动发布或订阅流。具体配置模式参看 RTCRoomConfig。 |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.leaveRoom()
离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 onLeaveRoom 回调通知。
返回值
注意
public abstract void com.ss.bytertc.engine.RTCEngine.startVideoCapture()
立即开启内部视频采集。默认为关闭状态。
内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。
调用该方法后,本地用户会收到 onMediaDeviceStateChanged 的回调。
本地用户在非隐身状态下调用该方法后,房间中的其他用户会收到 onUserStartVideoCapture 的回调。
注意
public abstract void com.ss.bytertc.engine.RTCEngine.stopVideoCapture()
立即关闭内部视频采集。默认为关闭状态。
内部视频采集指:使用 RTC SDK 内置视频采集模块,进行采集。
调用该方法,本地用户会收到 onMediaDeviceStateChanged 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。
注意
public abstract void com.ss.bytertc.engine.RTCEngine.startAudioCapture()
开启内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
调用该方法开启后,本地用户会收到 onMediaDeviceStateChanged 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。
注意
public abstract void com.ss.bytertc.engine.RTCEngine.stopAudioCapture()
立即关闭内部音频采集。默认为关闭状态。
内部采集是指:使用 RTC SDK 内置的视频采集机制进行视频采集。
调用该方法,本地用户会收到 onMediaDeviceStateChanged 的回调。
非隐身用户进房后调用该方法,房间中的其他用户会收到 onUserStopAudioCapture 的回调。
注意
public abstract void com.ss.bytertc.engine.RTCEngine.setAudioScenario(
AudioScenarioType audioScenario)
设置音频场景类型
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioScenario | AudioScenarioType | 音频场景类型,参看 AudioScenarioType 。 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.setAudioProfile(
AudioProfileType audioProfile)
设置音质档位。你应根据业务场景需要选择适合的音质档位。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioProfile | AudioProfileType | 音质档位,参看 AudioProfileType |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.setVoiceChangerType(
VoiceChangerType voiceChanger)
设置变声特效类型
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| voiceChanger | VoiceChangerType | 变声特效类型,参看 VoiceChangerType |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.setVoiceReverbType(
VoiceReverbType voiceReverb)
设置混响特效类型
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| voiceReverb | VoiceReverbType | 混响特效类型,参看 VoiceReverbType |
注意
public abstract int com.ss.bytertc.engine.RTCEngine.setLocalVideoCanvas(
StreamIndex streamIndex,
VideoCanvas videoCanvas)
设置本地视频渲染时使用的视图,并设置渲染模式。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamIndex | StreamIndex | 视频流属性, 参看 StreamIndex |
| videoCanvas | VideoCanvas | 视图信息和渲染模式, 参看 VideoCanvas |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.updateLocalVideoCanvas(
StreamIndex streamIndex,
int renderMode,
int background_color)
修改本地视频渲染模式和背景色。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamIndex | StreamIndex | 视频流属性。参看 StreamIndex |
| renderMode | int | 渲染模式。参看 VideoCanvas.renderMode |
| background_color | int | 背景颜色。参看 VideoCanvas.background_color |
返回值
注意 你可以在本地视频渲染过程中,调用此接口。调用结果会实时生效。
public abstract void com.ss.bytertc.engine.RTCEngine.setLocalVideoSink(
StreamIndex index,
IVideoSink videoSink,
@IVideoSink.PixelFormat int requiredFormat)
将本地视频流与自定义渲染器绑定。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 视频流属性。采集的视频流/屏幕视频流,参看 StreamIndex |
| videoSink | IVideoSink | 自定义视频渲染器,参看 IVideoSink |
| requiredFormat | @IVideoSink.PixelFormat int | videoSink 适用的视频帧编码格式,参看 PixelFormat |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.setRemoteVideoSink(
RemoteStreamKey streamKey,
IVideoSink videoSink,
@IVideoSink.PixelFormat int requiredFormat)
将远端视频流与自定义渲染器绑定。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamKey | RemoteStreamKey | 远端流信息,用于指定需要渲染的视频流来源及属性,参看 RemoteStreamKey |
| videoSink | IVideoSink | 自定义视频渲染器,参看 IVideoSink |
| requiredFormat | @IVideoSink.PixelFormat int | videoSink 适用的视频帧编码格式,参看 PixelFormat |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.updateRemoteVideoCanvas(
String roomId,
String userId,
StreamIndex streamIndex,
int renderMode,
int background_color)
修改远端视频渲染模式和背景色。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 房间 ID |
| userId | String | 用户 ID |
| streamIndex | StreamIndex | 参看 StreamIndex |
| renderMode | int | 渲染模式,参看 VideoCanvas.renderMode |
| background_color | int | 背景颜色,参看 VideoCanvas.background_color |
注意 你可以在远端视频渲染过程中,调用此接口。调用结果会实时生效。
public abstract int com.ss.bytertc.engine.RTCEngine.setRemoteVideoCanvas(
String userId,
StreamIndex streamIndex,
VideoCanvas videoCanvas)
渲染来自指定远端用户的视频流时,设置使用的视图和渲染模式。
要解除绑定,将 videoCanvas 设置为空。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userId | String | 视频来源的远端用户 ID |
| streamIndex | StreamIndex | 视频流属性,参看 StreamIndex |
| videoCanvas | VideoCanvas | 视图信息和渲染模式,参看 VideoCanvas |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.setLocalVideoMirrorType(
MirrorType mirrorType)
为采集到的视频流开启镜像
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mirrorType | MirrorType | 镜像类型,参看 MirrorType |
注意
| 前置摄像头 | 后置摄像头 | 自定义采集视频源 | 桌面端摄像头 | |
|---|---|---|---|---|
| 移动端 | 本地预览镜像,编码传输不镜像 | 本地预览不镜像,编码传输不镜像 | 本地预览不镜像,编码传输不镜像 | / |
| 桌面端 | / | / | 本地预览不镜像,编码传输不镜像 | 本地预览镜像,编码传输不镜像 |
public abstract int com.ss.bytertc.engine.RTCEngine.setVideoRotationMode(
VideoRotationMode rotationMode)
设置采集视频的旋转模式。默认以 App 方向为旋转参考系。
接收端渲染视频时,将按照和发送端相同的方式进行旋转。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| rotationMode | VideoRotationMode | 视频旋转参考系为 App 方向或重力方向,参看 VideoRotationMode |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.switchCamera(
CameraId cameraId)
切换视频内部采集时使用的前置/后置摄像头
调用此接口后,在本地会触发 onMediaDeviceStateChanged 回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| cameraId | CameraId | 摄像头 ID,参看 CameraId |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.setAudioPlaybackDevice(
AudioPlaybackDevice audioPlaybackDevice)
设置音频播放设备为扬声器或者听筒,默认使用扬声器。
音频播放设备发生变化时,会收到 onAudioPlaybackDeviceChanged 回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioPlaybackDevice | AudioPlaybackDevice | 音频播放设备(扬声器或者听筒),详见 AudioPlaybackDevice |
返回值
注意
public abstract void com.ss.bytertc.engine.RTCEngine.pauseAllSubscribedStream(
PauseResumeControlMediaType mediaType)
暂停接收来自远端的媒体流。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mediaType | PauseResumeControlMediaType | 媒体流类型,指定需要暂停接收音频还是视频流,参看 PauseResumeControlMediaType。 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.resumeAllSubscribedStream(
PauseResumeControlMediaType mediaType)
恢复接收来自远端的媒体流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mediaType | PauseResumeControlMediaType | 媒体流类型,指定需要暂停接收音频还是视频流,参看 PauseResumeControlMediaType |
注意
public abstract int com.ss.bytertc.engine.RTCEngine.updateToken(
String token)
更新 Token。
用于加入房间的 Token 有一定的有效期。当 Token 过期时,需要调用此方法更新房间的 Token 信息。
调用 joinRoom 方法加入房间或断网重连进入房间时,如果 Token 过期,将导致加入房间失败,并会收到 onJoinRoomResult 回调通知,回调错误码为 ErrorCode 中的 ERROR_CODE_INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| token | String | 获取的新的有效 Token。 |
返回值 方法调用结果。
注意
public abstract int com.ss.bytertc.engine.RTCEngine.setUserVisibility(
boolean enable)
设置用户可见性。默认可见。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | boolean | 设置用户是否对房间内其他用户可见: • true: 可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。 • false: 不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。 |
返回值
注意
WARNING_CODE_PUBLISH_STREAM_FORBIDEN 警告。
public abstract int com.ss.bytertc.engine.RTCEngine.publishStream(
MediaStreamType type)
在当前所在房间内发布本地通过摄像头/麦克风采集的媒体流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | MediaStreamType | 媒体流类型,用于指定发布音频/视频,参看 MediaStreamType |
返回值 方法调用结果:
注意
public abstract int com.ss.bytertc.engine.RTCEngine.unpublishStream(
MediaStreamType type)
停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | MediaStreamType | 媒体流类型,用于指定停止发布音频/视频,参看 MediaStreamType |
返回值
注意
public abstract void com.ss.bytertc.engine.RTCEngine.setCaptureVolume(
StreamIndex index,
int volume)
调节音频采集音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 流索引,指定调节主流还是调节屏幕流的音量,参看 StreamIndex |
| volume | int | 采集的音量值和原始音量的比值,范围是 [0, 400],单位为 %,自带溢出保护。 为保证更好的通话质量,建议将 volume 值设为 [0,100]。 • 0:静音 • 100:原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护) |
注意 在开启音频采集前后,你都可以使用此接口设定采集音量。
public abstract void com.ss.bytertc.engine.RTCEngine.setPlaybackVolume(
int volume)
调节本地播放的所有远端用户混音后的音量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 播放音量,调节范围:[0,400] 为保证更好的通话质量,建议将 volume 值设为 [0,100]。 • 0:静音 • 100:原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护) |
public abstract void com.ss.bytertc.engine.RTCEngine.setLocalVoicePitch(
int pitch)
开启本地语音变调功能,多用于 K 歌场景。
使用该方法,你可以对本地语音的音调进行升调或降调等调整。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| pitch | int | 相对于语音原始音调的升高/降低值,取值范围[-12,12],默认值为 0,即不做调整。 取值范围内每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调,设置的绝对值越大表示音调升高或降低越多。 超出取值范围则设置失败,并且会触发 onWarning 回调,提示 WarningCode 错误码为 WARNING_CODE_SET_SCREEN_STREAM_INVALID_VOICE_PITCH 设置语音音调不合法 |
public abstract void com.ss.bytertc.engine.RTCEngine.enableVocalInstrumentBalance(
boolean enable)
开启/关闭音量均衡功能。
开启音量均衡功能后,人声的响度会调整为 -16lufs。如果已调用 setAudioMixingLoudness 传入了混音音乐的原始响度,此音乐播放时,响度会调整为 -20lufs。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | boolean | 是否开启音量均衡功能: • True: 是 • False: 否 |
注意 该接口须在调用 startAudioMixing 开始播放音频文件之前调用。
public abstract void com.ss.bytertc.engine.RTCEngine.enablePlaybackDucking(
boolean enable)
打开/关闭音量闪避功能,适用于“一起看”等场景。
开启该功能后,当检测到远端人声时,本地的媒体播放音量会自动减弱,从而保证远端人声的清晰可辨;当远端人声消失时,本地媒体音量会恢复到闪避前的音量水平。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | boolean | 是否开启音量闪避: • True: 是 • False: 否 |
public abstract long com.ss.bytertc.engine.RTCEngine.sendRoomMessage(
String messageStr)
给房间内的所有其他用户群发文本消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| messageStr | String | 发送的文本消息内容 消息不超过 62KB。 |
返回值
>0:发送成功,返回这次发送消息的编号,从 1 开始递增
-1:发送失败
注意
public abstract long com.ss.bytertc.engine.RTCEngine.sendRoomBinaryMessage(
byte[] buffer)
给房间内的所有其他用户群发二进制消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| buffer | byte[] | 发送的二进制消息内容 消息不超过 46KB。 |
返回值
>0:发送成功,返回这次发送消息的编号,从 1 开始递增
-1:发送失败
注意
public abstract long com.ss.bytertc.engine.RTCEngine.sendUserMessage(
String userId,
String messageStr)
给房间内指定的用户发送点对点文本消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userId | String | 消息接收用户的 ID |
| messageStr | String | 发送的文本消息内容 消息不超过 62KB。 |
返回值
注意
public abstract long com.ss.bytertc.engine.RTCEngine.sendUserBinaryMessage(
String userId,
byte[] buffer)
给房间内指定的用户发送点对点二进制消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userId | String | 消息接收用户的 ID |
| buffer | byte[] | 发送的二进制消息内容 消息不超过 46KB。 |
返回值
注意
public abstract void com.ss.bytertc.engine.RTCEngine.login(
String token,
String uid)
必须先登录注册一个 uid,才能发送房间外消息和向业务服务器发送消息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| token | String | 动态密钥 用户登录必须携带的 Token,用于鉴权验证。 本 Token 与加入房间时必须携带的 Token 不同。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。 |
| uid | String | 用户 ID 用户 ID 在 appid的维度下是唯一的。 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.logout()
调用本接口登出后,无法调用房间外消息以及端到服务器消息相关的方法或收到相关回调。
注意
public abstract void com.ss.bytertc.engine.RTCEngine.updateLoginToken(
String token)
更新用户用于登录的 Token
Token 有一定的有效期,当 Token 过期时,需调用此方法更新登录的 Token 信息。
调用 login 方法登录时,如果使用了过期的 Token 将导致登录失败,并会收到 onLoginResult 回调通知,错误码为 LOGIN_ERROR_CODE_INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| token | String | 更新的动态密钥 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.setServerParams(
String signature,
String url)
设置业务服务器参数
客户端调用 sendServerMessage 或 sendServerBinaryMessage 发送消息给业务服务器之前,必须需要设置有效签名和业务服务器地址。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| signature | String | 动态签名 业务服务器会使用该签名对请求进行鉴权验证。 |
| url | String | 业务服务器的地址 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.getPeerOnlineStatus(
String peer_user_id)
查询对端用户或本端用户的登录状态
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| peer_user_id | String | 需要查询的用户 ID |
注意
public abstract long com.ss.bytertc.engine.RTCEngine.sendUserMessageOutsideRoom(
String uid,
String message)
给房间外指定的用户发送文本消息(P2P)
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 消息接收用户的 ID |
| message | String | 发送的文本消息内容。 消息不超过 62KB。 |
返回值
注意
public abstract long com.ss.bytertc.engine.RTCEngine.sendUserBinaryMessageOutsideRoom(
String uid,
byte[] buffer)
给房间外指定的用户发送二进制消息(P2P)
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 消息接收用户的 ID |
| buffer | byte[] | 发送的二进制消息内容 消息不超过 46KB。 |
返回值
注意
public abstract long com.ss.bytertc.engine.RTCEngine.sendServerMessage(
String message)
客户端给业务服务器发送文本消息(P2Server)
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| message | String | 发送的文本消息内容 消息不超过 62KB。 |
返回值
注意
public abstract long com.ss.bytertc.engine.RTCEngine.sendServerBinaryMessage(
byte[] buffer)
客户端给业务服务器发送二进制消息(P2Server)
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| buffer | byte[] | 发送的二进制消息内容 消息不超过 46KB。 |
返回值
注意
public abstract IRTCEngineEventHandler.NetworkDetectionStartReturn com.ss.bytertc.engine.RTCEngine.startNetworkDetection(
boolean isTestUplink,
int expectedUplinkBitrate,
boolean isTestDownlink,
int expectedDownlinkBitrate)
开启通话前网络探测
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| isTestUplink | boolean | 是否探测上行带宽 |
| expectedUplinkBitrate | int | 期望上行带宽,单位:kbps范围为 {0, [100-10000]},其中, 0 表示由 SDK 指定最高码率。 |
| isTestDownlink | boolean | 是否探测下行带宽 |
| expectedDownlinkBitrate | int | 期望下行带宽,单位:kbps范围为 {0, [100-10000]},其中, 0 表示由 SDK 指定最高码率。 |
返回值 开启通话前网络探测结果,详见 NetworkDetectionStartReturn
注意
public abstract void com.ss.bytertc.engine.RTCEngine.stopNetworkDetection()
停止通话前网络探测
注意
public abstract boolean com.ss.bytertc.engine.RTCEngine.setRecordingAudioFrameParameters(
int sampleRate,
int channels)
设置本地麦克风录制的音频数据回调参数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sampleRate | int | 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000 |
| channels | int | 音频通道数,支持单声道(1)和双声道(2) |
返回值 方法调用结果
注意 使用本方法设置参数,并使用 registerAudioFrameObserver 注册数据观察者,之后可以在 IAudioFrameObserver 的 onRecordAudioFrame 收到数据。
public abstract boolean com.ss.bytertc.engine.RTCEngine.setPlaybackAudioFrameParameters(
int sampleRate,
int channels)
设置远端所有用户音频数据混音后的音频数据回调参数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sampleRate | int | 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000 |
| channels | int | 音频通道数,支持单声道(1)和双声道(2) |
返回值 方法调用结果
注意 使用本方法设置参数,并使用 registerAudioFrameObserver 注册数据观察者,之后可以在 IAudioFrameObserver 的 onPlaybackAudioFrame 收到数据。
public abstract boolean com.ss.bytertc.engine.RTCEngine.setMixedAudioFrameParameters(
int sampleRate,
int channels)
设置本地麦克风录制音频数据和远端所有用户音频数据混音后的音频数据回调参数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sampleRate | int | 音频采样率(单位HZ),可以设置的值有 8000,16000,32000,44100,48000 |
| channels | int | 音频通道数,支持单声道(1)和双声道(2) |
返回值 方法调用结果
注意 使用本方法设置参数,并使用 registerAudioFrameObserver 注册数据观察者,之后可以在 IAudioFrameObserver 的 onMixedAudioFrame 收到数据。
public abstract int com.ss.bytertc.engine.RTCEngine.registerAudioFrameObserver(
IAudioFrameObserver observer)
注册音频数据回调观察者。
成功注册后,IAudioFrameObserver 会触发相关回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | IAudioFrameObserver | 音频数据回调观察者,详见IAudioFrameObserver。如果传入 null,则取消注册。 |
返回值 方法调用结果:
注意 通过以下的三个 API,你可以对回调的音频数据进行相关设置:setRecordingAudioFrameParameters、 setPlaybackAudioFrameParameters、 setMixedAudioFrameParameters
public abstract int com.ss.bytertc.engine.RTCEngine.registerLocalAudioProcessor(
IAudioProcessor audioProcessor,
AudioFormat audioFormat)
设置自定义音频处理器。
使用该处理器,你可以调用 processAudioFrame 对 RTC SDK 采集得到的音频帧进行自定义处理,并将处理后的音频帧用于 RTC 音视频通信。
SDK 只持有 processor 的弱引用,你应保证其生命周期。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioProcessor | IAudioProcessor | 自定义音频处理器,参看 IAudioProcessor。如果传入null,则不对 RTC SDK 采集得到的音频帧进行自定义处理。 |
| audioFormat | AudioFormat | 自定义音频参数格式,参看 AudioFormat,SDK 将按指定设置给出音频帧。 |
注意 重复调用此接口时,仅最后一次调用生效。效果不会叠加。
public abstract int com.ss.bytertc.engine.RTCEngine.registerLocalVideoProcessor(
IVideoProcessor processor,
VideoPreprocessorConfig config)
设置自定义视频前处理器。
使用这个视频前处理器,你能够调用 processVideoFrame 对 RTC SDK 采集得到的视频帧进行前处理,并将处理后的视频帧用于 RTC 音视频通信。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| processor | IVideoProcessor | 自定义视频处理器,详见 IVideoProcessor。如果传入 null,则不对 RTC SDK 采集得到的视频帧进行前处理。 SDK 只持有 processor 的弱引用,你应保证其生命周期。 |
| config | VideoPreprocessorConfig | 自定义视频前处理器适用的设置,详见 VideoPreprocessorConfig。 当前, config 中的 required_pixel_format 仅支持:I420、TEXTURE_2D 和 UNKNOW:• 设置为 UNKNOW 时,RTC SDK 给出供 processor 处理的视频帧格式即采集的格式。你可以通过 getPixelFormat 获取实际采集的视频帧格式,支持的格式为: kVideoPixelFormatI420、 kVideoPixelFormatTexture2D 和 kVideoPixelFormatTextureOES• 设置为 I420 或 TEXTURE_2D 时,RTC SDK 会将采集得到的视频转变为对应的格式,供前处理使用。• 设置为其他值时,此方法调用失败。 |
返回值
注意
经前处理后,返回给 RTC SDK 的视频帧格式仅支持 I420 和 TEXTURE_2D。
public abstract void com.ss.bytertc.engine.RTCEngine.registerLocalEncodedVideoFrameObserver(
ILocalEncodedVideoFrameObserver observer)
注册本地视频帧监测器。
无论使用内部采集还是自定义采集,调用该方法后,SDK 每监测到一帧本地视频帧时,都会将视频帧信息通过 onLocalEncodedVideoFrame 回调给用户。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | ILocalEncodedVideoFrameObserver | 本地频帧监测器,参看 ILocalEncodedVideoFrameObserver 。将参数设置为 null 则取消注册。 |
注意 该方法可在进房前后的任意时间调用,在进房前调用可保证尽可能早地监测视频帧并触发回调
public abstract void com.ss.bytertc.engine.RTCEngine.setVideoSourceType(
StreamIndex index,
VideoSourceType type)
设置向 SDK 输入的视频源
默认使用内部采集。内部采集指:使用 RTC SDK 内置的视频采集机制进行视频采集。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 视频流的属性,参看 StreamIndex |
| type | VideoSourceType | 视频输入源类型,参看 VideoSourceType |
注意
public abstract boolean com.ss.bytertc.engine.RTCEngine.pushExternalVideoFrame(
VideoFrame frame)
推送外部视频帧。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | VideoFrame | 视频帧的数据信息 |
返回值
注意
public abstract boolean com.ss.bytertc.engine.RTCEngine.pushExternalVideoFrame(
VideoFrame frame,
boolean isDirectEncode)
推送外部视频帧。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | VideoFrame | 视频帧的数据信息 |
| isDirectEncode | boolean | 选填,当你的开发环境不支持默认参数时,你需要填写此参数。true:使用用户的纹理做硬编码;false:拷贝业务纹理后做硬编码 |
返回值
注意
public abstract void com.ss.bytertc.engine.RTCEngine.startLiveTranscoding(
String taskId,
LiveTranscoding liveTranscode,
ILiveTranscodingObserver observer)
新增转推直播任务,并设置合流的视频视图布局和音频属性。
同一个任务中转推多路直播流时,SDK 会先将多路流合成一路流,然后再进行转推。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| taskId | String | 转推直播任务 ID。你可以在同一房间内发起多个转推直播任务,并用不同的任务 ID 加以区分。 |
| liveTranscode | LiveTranscoding | 转推直播配置参数。详见 LiveTranscoding。 |
| observer | ILiveTranscodingObserver | 端云一体转推直播观察者。详见 ILiveTranscodingObserver。 通过注册 observer 接收转推直播相关的回调。 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.stopLiveTranscoding(
String taskId)
停止转推直播。
关于启动转推直播,参看 startLiveTranscoding。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| taskId | String | 转推直播任务 ID。可以指定想要停止的转推直播任务。 |
public abstract void com.ss.bytertc.engine.RTCEngine.updateLiveTranscoding(
String taskId,
LiveTranscoding transcoding)
更新转推直播参数。
使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| taskId | String | 转推直播任务 ID。指定想要更新参数设置的转推直播任务。 |
| transcoding | LiveTranscoding | 配置参数,详见 LiveTranscoding。 |
public abstract int com.ss.bytertc.engine.RTCEngine.setVideoCaptureConfig(
VideoCaptureConfig videoCaptureConfig)
设置 RTC SDK 内部采集时的视频采集参数。
如果你的项目使用了 SDK 内部采集模块,可以通过本接口指定视频采集参数包括模式、分辨率、帧率。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoCaptureConfig | VideoCaptureConfig | 视频采集参数。参看: VideoCaptureConfig。 |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.setVideoEncoderConfig(
List<VideoStreamDescription> videoStreamDescriptions)
设置推送多路流时的各路视频参数,包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoStreamDescriptions | List |
要推送的多路视频流参数,参看 VideoStreamDescription。 最多支持 4 路参数。当设置了多路参数时,分辨率必须是从大到小排列。 最大分辨率为 4096px × 4096px,超过或设置的分辨率无法编码时,会导致编码推流失败。 |
返回值
注意
public abstract void com.ss.bytertc.engine.RTCEngine.subscribeStream(
String uid,
MediaStreamType type)
订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 指定订阅的远端发布音视频流的用户 ID。 |
| type | MediaStreamType | 媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.unsubscribeStream(
String uid,
MediaStreamType type)
取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 指定取消订阅的远端发布音视频流的用户 ID。 |
| type | MediaStreamType | 媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.subscribeScreen(
String uid,
MediaStreamType type)
订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 指定订阅的远端发布屏幕流的用户 ID。 |
| type | MediaStreamType | 媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.unsubscribeScreen(
String uid,
MediaStreamType type)
取消订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 指定取消订阅的远端发布屏幕流的用户 ID。 |
| type | MediaStreamType | 媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.enableExternalAudioDevice(
AudioFormat recordingFormat,
AudioFormat playbackFormat)
启用自定义音频采集和渲染。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| recordingFormat | AudioFormat | 自定义音频数据采集格式,详见 AudioFormat |
| playbackFormat | AudioFormat | 自定义音频数据渲染格式,详见 AudioFormat |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.disableExternalAudioDevice()
禁用自定义音频采集和渲染。
注意
public abstract int com.ss.bytertc.engine.RTCEngine.pushExternalAudioFrame(
AudioFrame audioFrame)
推送自定义采集的音频数据到 RTC SDK。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | AudioFrame | 音频数据帧,详见 AudioFrame |
返回值 方法调用结果
注意
public abstract int com.ss.bytertc.engine.RTCEngine.pullExternalAudioFrame(
AudioFrame audioFrame)
拉取音频数据,用于外部播放。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | AudioFrame | 音频数据帧,详见 AudioFrame |
返回值 方法调用结果
注意
public abstract int com.ss.bytertc.engine.RTCEngine.publishScreen(
MediaStreamType type)
在当前所在房间内发布本地屏幕共享音视频流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | MediaStreamType | 媒体流类型,用于指定发布屏幕音频/视频,参看 MediaStreamType。 |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.unpublishScreen(
MediaStreamType type)
停止将本地屏幕共享音视频流发布到当前所在房间中
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | MediaStreamType | 媒体流类型,用于指定停止发布屏幕音频/视频,参看 MediaStreamType |
返回值
注意
public abstract boolean com.ss.bytertc.engine.RTCEngine.pushScreenFrame(
VideoFrame videoFrame)
推送屏幕视频帧
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoFrame | VideoFrame | 视频帧 VideoFrame |
返回值
public abstract void com.ss.bytertc.engine.RTCEngine.setRemoteAudioPlaybackVolume(
String uid,
int volume)
调节来自指定远端用户的音频播放音量,默认为 100。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 音频来源的远端用户 ID |
| volume | int | 播放音量,调节范围:[0,400] • 0: 静音 • 100: 原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护) |
public abstract IRTCRoom com.ss.bytertc.engine.RTCEngine.createRoom(
String roomId)
创建房间
多次调用此方法以创建多个 IRTCRoom 实例。分别调用各 IRTCRoom 实例中的 joinRoom 方法,同时加入多个房间。多房间模式下,用户可以同时订阅各房间的音视频流。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| roomId | String | 标识通话房间的房间 ID,最大长度为 128 字节的非空字符串。支持的字符集范围为: • 26 个大写字母 A ~ Z • 26 个小写字母 a ~ z • 10 个数字 0 ~ 9 • 下划线 "_", at 符 "@", 减号 "-" 多房间模式下,调用创建房间接口后,请勿调用同样的 roomID 创建房间,否则会导致创建房间失败。 |
返回值
创建的 IRtcRoom 房间实例
注意 如果你需要在多个房间发布音视频流,无须创建多房间,直接调用 startForwardStreamToRooms。
public abstract int com.ss.bytertc.engine.RTCEngine.setPublishFallbackOption(
PublishFallbackOption option)
设置发布的音视频流回退选项。
你可以调用这个接口来设置网络情况不佳或性能不足时只发送小流,以保证通话质量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| option | PublishFallbackOption | 本地发布的音视频流回退选项。 • 0:(默认)上行网络较弱或性能不佳时,不对音视频流作回退处理。 • 1:上行网络较弱或性能不佳时,只发送视频小流。 |
返回值
注意
设置回退选项后,本端发布的音视频流发生回退或从回退中恢复时,对端会收到 onSimulcastSubscribeFallback 回调通知。
你可以调用 API 或者在服务端下发策略设置回退。当使用服务端下发配置实现时,下发配置优先级高于在客户端使用 API 设定的配置。
public abstract int com.ss.bytertc.engine.RTCEngine.setSubscribeFallbackOption(
SubscribeFallbackOptions option)
设置订阅的音视频流回退选项。 你可以通过调用该接口来设置网络情况不佳或性能不足时只订阅小流或音频流,以保证通话流畅。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| option | SubscribeFallbackOptions | 远端订阅的流回退处理选项,详见枚举类型 SubscribeFallbackOptions 。 |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.setRemoteUserPriority(
String uid,
RemoteUserPriority priority)
设置用户优先级。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 远端用户的 ID 。 |
| priority | RemoteUserPriority | 远端用户的优先级,详见枚举类型 RemoteUserPriority 。 |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.sendSEIMessage(
StreamIndex streamIndex,
byte[] message,
int repeatCount)
在视频通信时,通过视频帧发送 SEI 数据。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| streamIndex | StreamIndex | 指定携带 SEI 信息的媒体流类型,参看 StreamIndex |
| message | byte[] | SEI 消息。长度不超过 4 kB。 |
| repeatCount | int | 消息发送重复次数。取值范围是 [0, 30]。 调用此接口后,SEI 数据会添加到当前视频帧开始的连续 repeatCount 个视频帧中。 |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.setBusinessId(
String businessId)
设置业务标识参数
可通过 businessId 区分不同的业务场景。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| businessId | String | 用户设置的自己的 businessId 值 businessId 只是一个标签,颗粒度需要用户自定义。 |
返回值
注意
public abstract void com.ss.bytertc.engine.RTCEngine.setEncryptInfo(
int aesType,
String key)
设置AES加密算法和加密密钥
有四种内置的加密算法,为 AES-128-CBC,AES-256-CBC,AES-128-ECB,AES-256-ECB
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| aesType | int | 加密类型 可选参数为1、2、3、4 代表的含义如下: 1. AES-128-CBC 2. AES-256-CBC 3. AES-128-ECB 4. AES-256-ECB |
| key | String | 加密密钥 长度限制为36位,超出部分将会被截断 |
注意
该方法与 setCustomizeEncryptHandler 为互斥关系, 即按照调用顺序,最后一个调用的方法为最终生效的版本。
该方法必须在调用 joinRoom 之前调用,可重复调用,以最后调用的参数作为生效参数
public abstract void com.ss.bytertc.engine.RTCEngine.setCustomizeEncryptHandler(
RTCEncryptHandler handler)
设置自定义加密方法
自定义加密方法需要实现对应的加密/解密方法
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| handler | RTCEncryptHandler | 自定义加密handler,需要实现里面的加密和解密方法 |
注意
无论加密或者解密,其对原始数据的长度修改,需要控制在90%-120%之间,即如果输入数据为100字节,则处理完成后的数据必须在 90至120自己之间,如果加密或解密结果超出该长度限制,则该音视频帧会被丢弃
数据加密/解密为串行执行,因而视实现方式不同,可能会影响到最终渲染效率,是否使用该方法,需要由使用方谨慎评估
public abstract int com.ss.bytertc.engine.RTCEngine.checkVideoEffectLicense(
Context context,
String licenseFile)
视频特效许可证检查
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| context | Context | Android Context 对象 |
| licenseFile | String | 许可证文件绝对路径 |
返回值
注意 调用 enableVideoEffect 开始使用视频特效前,需要先调用这个方法进行许可证验证
public abstract int com.ss.bytertc.engine.RTCEngine.initVirtualBackground(
Context context,
String licenseFile,
String modelFile)
虚拟背景功能初始化。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| context | Context | Android Context 对象指针(jobject 类型)。 |
| licenseFile | String | CV 许可证文件的绝对路径 |
| modelFile | String | 模型参数文件的绝对路径 |
返回值
public abstract int com.ss.bytertc.engine.RTCEngine.enableVirtualBackground(
VirtualBackgroundSource source)
开启虚拟背景。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| source | VirtualBackgroundSource | 虚拟背景对象,详见 VirtualBackgroundSource 。 |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.disableVirtualBackground()
关闭虚拟背景。
返回值
注意 调用 enableVirtualBackground 开启虚拟背景后,可以调用此接口关闭虚拟背景。
public abstract void com.ss.bytertc.engine.RTCEngine.setVideoEffectAlgoModelPath(
String modelPath)
设置视频特效算法模型路径
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| modelPath | String | 模型路径 |
public abstract int com.ss.bytertc.engine.RTCEngine.enableVideoEffect(
boolean enable)
创建/销毁视频特效引擎
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | boolean | 是否创建视频特效引擎 • true: 创建 • false: 销毁 |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.setVideoEffectNodes(
List<String> effectNodes)
设置视频特效素材包
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectNodes | List |
特效素材包路径数组 要取消当前视频特效,将此参数设置为 null。 |
返回值
注意 你须在调用 enableVideoEffect 后调用该方法。
public abstract int com.ss.bytertc.engine.RTCEngine.updateVideoEffectNode(
String effectNode,
String key,
float value)
设置特效强度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectNode | String | 特效素材包路径 |
| key | String | 需要设置的素材 key 名称,参看 素材key对应说明。 |
| value | float | 需要设置的强度值,取值范围为 [0,1],超出该范围设置无效。 |
返回值
注意 该接口仅适用于同时含有上述三个参数的特效资源,对于如大部分贴纸类等没有强度参数的特效,该接口调用无效。
public abstract int com.ss.bytertc.engine.RTCEngine.setVideoEffectColorFilter(
String resFile)
设置颜色滤镜
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| resFile | String | 滤镜资源包绝对路径 |
返回值
public abstract int com.ss.bytertc.engine.RTCEngine.setVideoEffectColorFilterIntensity(
float intensity)
设置已启用的颜色滤镜强度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| intensity | float | 滤镜强度,取值范围 [0,1],超出范围时设置无效。 |
返回值
public abstract int com.ss.bytertc.engine.RTCEngine.registerFaceDetectionObserver(
IFaceDetectionObserver observer,
int interval)
设置人脸检测结果回调观察者
通过此观察者,你会周期性收到 onFaceDetectResult。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | IFaceDetectionObserver | 参看 IFaceDetectionObserver |
| interval | int | 时间间隔。单位:ms。实际收到回调的时间间隔大于 interval,小于 interval • 视频采集帧间隔 |
返回值 方法调用结果:
public abstract void com.ss.bytertc.engine.RTCEngine.startCloudRendering(
String effectInfo)
开启云端渲染
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectInfo | String | 云端渲染的参数 |
public abstract void com.ss.bytertc.engine.RTCEngine.updateCloudRendering(
String effectInfo)
更新云端渲染参数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectInfo | String | 云端渲染的参数 |
public abstract void com.ss.bytertc.engine.RTCEngine.stopCloudRendering()
关闭云端渲染
public abstract void com.ss.bytertc.engine.RTCEngine.setRuntimeParameters(
JSONObject params)
设置运行时的参数
public abstract int com.ss.bytertc.engine.RTCEngine.feedback(
List<ProblemFeedback> types,
String problemDesc)
通话结束,将用户反馈的问题上报到 RTC
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| types | List |
预设问题列表,参看 ProblemFeedback |
| problemDesc | String | 预设问题以外的其他问题的具体描述 |
返回值
注意 如果用户上报时在房间内,那么问题会定位到用户当前所在的一个或多个房间;如果用户上报时不在房间内,那么问题会定位到引擎此前退出的房间。
public abstract void com.ss.bytertc.engine.RTCEngine.startASR(
RTCASRConfig asrConfig,
IRTCASREngineEventHandler handler)
开启自动语音识别服务。该方法将识别后的用户语音转化成文字,并通过 onMessage 事件回调给用户。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| asrConfig | RTCASRConfig | 校验信息,参看 RTCASRConfig |
| handler | IRTCASREngineEventHandler | 语音识别服务使用状态回调,参看 IRTCASREngineEventHandler。 |
public abstract void com.ss.bytertc.engine.RTCEngine.stopASR()
关闭语音识别服务
public abstract int com.ss.bytertc.engine.RTCEngine.startFileRecording(
StreamIndex type,
RecordingConfig config)
该方法将通话过程中的音视频数据录制到本地的文件中。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | StreamIndex | 流属性,指定录制主流还是屏幕流,参看 StreamIndex |
| config | RecordingConfig | 本地录制参数配置,参看 RecordingConfig |
返回值 0: 正常
-1: 参数设置异常 -2: 当前版本 SDK 不支持该特性,请联系技术支持人员
注意
public abstract void com.ss.bytertc.engine.RTCEngine.stopFileRecording(
StreamIndex type)
停止本地录制
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | StreamIndex | 流属性,指定停止主流或者屏幕流录制,参看 StreamIndex |
注意
public abstract IAudioMixingManager com.ss.bytertc.engine.RTCEngine.getAudioMixingManager()
混音管理接口创建
返回值 混音管理实例,详见IAudioMixingManager
public abstract IPositionAudioRender com.ss.bytertc.engine.RTCEngine.getPositionAudioRender()
获取位置音频接口实例,包括范围语音、空间语音等和位置相关的音频接口。
返回值 位置音频管理接口实例。如果返回 NULL,则表示不支持空间音频,详见 IPositionAudioRender 。
注意
public abstract void com.ss.bytertc.engine.RTCEngine.setScreenAudioSourceType(
AudioSourceType sourceType)
在屏幕共享时,设置屏幕音频的采集方式(内部采集/自定义采集)
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| sourceType | AudioSourceType | 屏幕音频输入源类型, 参看 AudioSourceType。 |
注意
WARNING_CODE_SET_SCREEN_AUDIO_SOURCE_TYPE_FAILED。
public abstract void com.ss.bytertc.engine.RTCEngine.setScreenAudioStreamIndex(
StreamIndex index)
在屏幕共享时,设置屏幕音频流和麦克风采集到的音频流的混流方式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 混流方式,参看 StreamIndex • STREAM_INDEX_MAIN: 将屏幕音频流和麦克风采集到的音频流混流 • STREAM_INDEX_SCREEN: 将屏幕音频流和麦克风采集到的音频流分为两路音频流 |
注意
你应该在 publishScreen 之前,调用此方法。否则,你将收到 onWarning 的报错:WARNING_CODE_SET_SCREEN_STREAM_INDEX_FAILED
public abstract int com.ss.bytertc.engine.RTCEngine.pushScreenAudioFrame(
AudioFrame audioFrame)
使用自定义采集方式,采集屏幕共享时的屏幕音频时,将音频帧推送至 RTC SDK 处进行编码等处理。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | AudioFrame | 音频数据帧,参见 AudioFrame |
返回值 方法调用结果
注意
public abstract void com.ss.bytertc.engine.RTCEngine.startScreenCapture(
ScreenMediaType type,
Intent mediaProjectionResultData)
使用 RTC SDK 内部采集模块开始采集屏幕音频流和(或)视频流。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | ScreenMediaType | 媒体类型,参看 ScreenMediaType。 |
| mediaProjectionResultData | Intent | 向 Android 设备申请屏幕共享权限后,拿到的 Intent 数据,参看 getMediaProjection。 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.updateScreenCapture(
ScreenMediaType type)
使用 RTC SDK 内部屏幕采集后,更新采集的媒体类型。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | ScreenMediaType | 媒体类型,指定屏幕采集媒体类型,参看 ScreenMediaType。 |
返回值
注意 在 startScreenCapture 后调用该方法。
public abstract void com.ss.bytertc.engine.RTCEngine.stopScreenCapture()
在屏幕共享时,停止使用 RTC SDK 内部采集方式采集屏幕音视频。
注意
public abstract void com.ss.bytertc.engine.RTCEngine.setExternalVideoEncoderEventHandler(
IExternalVideoEncoderEventHandler encoder_handler)
注册自定义编码帧推送事件回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| encoder_handler | IExternalVideoEncoderEventHandler | 自定义编码帧回调类,参看 IExternalVideoEncoderEventHandler |
注意
public abstract boolean com.ss.bytertc.engine.RTCEngine.pushExternalEncodedVideoFrame(
StreamIndex index,
int video_index,
RTCEncodedVideoFrame video_stream)
推送自定义编码后的视频流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | StreamIndex | 需要推送的编码流的属性,参看 StreamIndex |
| video_index | int | 对应的编码流下标,从 0 开始,如果调用 setVideoEncoderConfig 设置了多路流,此处数量须与之保持一致 |
| video_stream | RTCEncodedVideoFrame | 编码流视频帧信息,参看 RTCEncodedVideoFrame。 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.setVideoDecoderConfig(
RemoteStreamKey key,
VideoDecoderConfig config)
在订阅远端视频流之前,设置远端视频数据解码方式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| key | RemoteStreamKey | 远端流信息,指定对哪一路视频流进行解码方式设置,参看 RemoteStreamKey。 |
| config | VideoDecoderConfig | 视频解码方式,参看 VideoDecoderConfig。 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.requestRemoteVideoKeyFrame(
RemoteStreamKey stream_info)
在订阅远端视频流之后,向远端请求关键帧
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| stream_info | RemoteStreamKey | 远端流信息,参看 RemoteStreamKey。 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.registerRemoteEncodedVideoFrameObserver(
IRemoteEncodedVideoFrameObserver observer)
注册远端编码后视频数据回調。
完成注册后,当 SDK 监测到远端编码后视频帧时,会触发 OnRemoteEncodedVideoFrame 回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | IRemoteEncodedVideoFrameObserver | 远端编码后视频数据监测器,参看 IRemoteEncodedVideoFrameObserver |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.setEarMonitorMode(
EarMonitorMode mode)
打开/关闭耳返功能。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mode | EarMonitorMode | 耳返模式,详见 EarMonitorMode |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.setEarMonitorVolume(
int volume)
设置耳返音量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 耳返音量,调节范围:[0,100],单位:% |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.enableAudioPropertiesReport(
AudioPropertiesConfig config)
启用音频信息提示。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| config | AudioPropertiesConfig | 详见 AudioPropertiesConfig |
注意 开启提示后,你可以: + 通过 onLocalAudioPropertiesReport 回调获取本地麦克风和屏幕音频流采集的音频信息;
public abstract int com.ss.bytertc.engine.RTCEngine.sendStreamSyncInfo(
byte[] data,
StreamSycnInfoConfig config)
发送音频流同步信息。将消息通过音频流发送到远端,并实现与音频流同步,该接口调用成功后,远端用户会收到 onStreamSyncInfoReceived 回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| data | byte[] | 消息内容。 |
| config | StreamSycnInfoConfig | 音频流同步信息的相关配置。详见 StreamSycnInfoConfig 。 |
返回值
public abstract boolean com.ss.bytertc.engine.RTCEngine.isCameraTorchSupported()
检测当前使用的摄像头(前置/后置),是否支持闪光灯。
返回值
注意 必须已调用 startVideoCapture 使用 SDK 内部采集模块进行视频采集时,才能检测闪光能力。
public abstract boolean com.ss.bytertc.engine.RTCEngine.isCameraZoomSupported()
检测当前使用的摄像头(前置/后置),是否支持变焦(数码/光学变焦)。
返回值
注意 必须已调用 startVideoCapture 使用 SDK 内部采集模块进行视频采集时,才能检测摄像头变焦能力。
public abstract int com.ss.bytertc.engine.RTCEngine.setCameraZoomRatio(
float zoom)
设置当前使用的摄像头(前置/后置)的变焦倍数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| zoom | float | 变焦倍数。取值范围是 [1, <最大变焦倍数>]。 最大变焦倍数可以通过调用 getCameraZoomMaxRatio 获取。 |
返回值
注意
public abstract float com.ss.bytertc.engine.RTCEngine.getCameraZoomMaxRatio()
获取当前使用的摄像头(前置/后置)的最大变焦倍数
返回值 最大变焦倍数
注意 必须已调用 startVideoCapture 使用 SDK 内部采集模块进行视频采集时,才能检测摄像头最大变焦倍数。
public abstract int com.ss.bytertc.engine.RTCEngine.setCameraTorch(
TorchState torch_state)
打开/关闭当前使用的摄像头(前置/后置)的闪光灯
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| torch_state | TorchState | 闪光灯状态。参考 TorchState |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.startForwardStreamToRooms(
List<ForwardStreamInfo> forwardStreamInfos)
开始跨房间转发媒体流。
在用户进入房间后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| forwardStreamInfos | List |
跨房间媒体流转发指定房间的信息。参看 ForwardStreamInfo。 |
返回值
0: 方法调用成功
<0: 方法调用失败
注意
public abstract int com.ss.bytertc.engine.RTCEngine.updateForwardStreamToRooms(
List<ForwardStreamInfo> forwardStreamInfos)
更新跨房间媒体流转发信息。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。
调用本方法增加或删减房间后,将在本端触发 onForwarStreamStateChangedonForwardStreamStateChanged 回调,包含发生了变动的目标房间中媒体流转发状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| forwardStreamInfos | List |
跨房间媒体流转发目标房间信息。参看 ForwardStreamInfo。 |
返回值
0: 方法调用成功
<0: 方法调用失败
注意
public abstract void com.ss.bytertc.engine.RTCEngine.stopForwardStreamToRooms()
停止跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法停止向所有目标房间转发媒体流。
注意
public abstract void com.ss.bytertc.engine.RTCEngine.pauseForwardStreamToAllRooms()
暂停跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法暂停向所有目标房间转发媒体流。 调用本方法暂停向所有目标房间转发后,你可以随时调用 resumeForwardStreamToAllRooms 快速恢复转发。
注意 调用本方法后,目标房间中的用户将接收到本地用户停止发布 onUserUnPublishStream/onUserUnPublishScreen 和退房 onUserLeave 的回调。
public abstract void com.ss.bytertc.engine.RTCEngine.resumeForwardStreamToAllRooms()
恢复跨房间媒体流转发。 调用 pauseForwardStreamToAllRooms 暂停转发之后,调用本方法恢复向所有目标房间转发媒体流。
注意 目标房间中的用户将接收到本地用户进房 onUserJoined 和发布 onUserPublishStream/onUserPublishScreen 的回调。
public abstract void com.ss.bytertc.engine.RTCEngine.muteAudioPlayback(
MuteState muteState)
控制本地音频流播放状态:播放/不播放
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| muteState | MuteState | 播放状态,标识是否播放本地音频流,详见:MuteState |
注意 本方法仅控制本地收到音频流的播放状态,并不影响本地音频播放设备。
public abstract class com.ss.bytertc.engine.audio.IAudioMixingManager
混音管理类
| 返回 | 名称 |
|---|---|
| abstract void | startAudioMixing |
| abstract void | stopAudioMixing |
| abstract void | pauseAudioMixing |
| abstract void | resumeAudioMixing |
| abstract void | preloadAudioMixing |
| abstract void | unloadAudioMixing |
| abstract void | setAudioMixingVolume |
| abstract int | getAudioMixingDuration |
| abstract int | getAudioMixingCurrentPosition |
| abstract void | setAudioMixingPosition |
| abstract void | setAudioMixingDualMonoMode |
| abstract void | setAudioMixingPitch |
| abstract void | setAudioMixingLoudness |
| abstract void | setAudioMixingProgressInterval |
| abstract void | enableAudioMixingFrame |
| abstract void | disableAudioMixingFrame |
| abstract int | pushAudioMixingFrame |
| abstract int | getAudioTrackCount |
| abstract void | selectAudioTrack |
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.startAudioMixing(
int mixId,
String filePath,
AudioMixingConfig config)
开始播放音频文件。
可以通过传入不同的 ID 和 filepath 多次调用本方法,以实现同时播放多个混音文件,实现混音叠加。
传入参数
| 参数名 | 类型 | 说明 | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| mixId | int | 混音 ID。用于标识混音,请保证混音 ID 唯一性。 如果使用相同的 ID 重复调用本方法后,前一次混音会停止,后一次混音开始,SDK 会使用 onAudioMixingStateChanged 回调通知前一次混音已停止。 |
||||||||||||||||||||||||||||||||||||||||
| filePath | String | 用于混音文件路径。 支持在线文件的 URL、本地文件的 URI、本地文件的绝对路径或以 /assets/ 开头的本地文件路径。对于在线文件的 URL,仅支持 https 协议。不同平台支持的音频文件格式:
|
||||||||||||||||||||||||||||||||||||||||
| config | AudioMixingConfig | 混音配置 可以设置混音的播放次数、是否本地播放混音、以及是否将混音发送至远端,详见 AudioMixingConfig |
注意
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.stopAudioMixing(
int mixId)
停止播放音频文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID |
注意
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.pauseAudioMixing(
int mixId)
暂停播放音频文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID |
注意
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.resumeAudioMixing(
int mixId)
恢复播放音频文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID |
注意
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.preloadAudioMixing(
int mixId,
String filePath)
预加载指定音频文件到内存中,以避免频繁播放时的重复加载。
传入参数
| 参数名 | 类型 | 说明 | ||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| mixId | int | 混音 ID。用于标识混音,请保证混音 ID 唯一性。 如果使用相同的 ID 重复调用本方法,后一次会覆盖前一次。 如果先调用 startAudioMixing,再使用相同的 ID 调用本方法 ,会先回调 onAudioMixingStateChanged 上一个混音停止,然后加载后一个混音。 使用一个 ID 调用本方法预加载 A.mp3 后,如果需要使用相同的 ID 调用 startAudioMixing 播放 B.mp3,请先调用 unloadAudioMixing 卸载 A.mp3 ,否则会报错 AUDIO_MIXING_ERROR_LOAD_CONFLICT。 |
||||||||||||||||||||||||||||||||||||||||
| filePath | String | 混音文件路径。 支持在线文件的 URL、本地文件的 URI、本地文件的绝对路径或以 /assets/ 开头的本地文件路径。对于在线文件的 URL,仅支持 https 协议。预加载的文件长度不得超过 20s。不同平台支持的音频文件格式:
|
注意
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.unloadAudioMixing(
int mixId)
卸载指定音频文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID |
注意 调用本方法卸载该文件后,关于当前的混音状态,会收到回调 onAudioMixingStateChanged。
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.setAudioMixingVolume(
int mixId,
int volume,
AudioMixingType type)
调节混音的音量大小,包括音频文件混音和 PCM 混音。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID |
| volume | int | 混音音量相对原音量的比值。范围为 [0, 400],建议范围是 [0, 100]。 • 0:静音 • 100:原始音量(默认值) • 400: 最大可调音量 (自带溢出保护) |
| type | AudioMixingType | 混音类型。是否本地播放、以及是否发送到远端,详见 AudioMixingType。 |
public abstract int com.ss.bytertc.engine.audio.IAudioMixingManager.getAudioMixingDuration(
int mixId)
获取音频文件时长
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID |
返回值
注意 调用本方法获取音频文件时长前,需要先调用 preloadAudioMixing 或 startAudioMixing。
public abstract int com.ss.bytertc.engine.audio.IAudioMixingManager.getAudioMixingCurrentPosition(
int mixId)
获取音频文件播放进度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID |
返回值
注意 调用本方法获取音频文件播放进度前,需要先调用 startAudioMixing 开始播放音频文件。
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.setAudioMixingPosition(
int mixId,
int position)
设置音频文件的起始播放位置
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID |
| position | int | 音频文件起始播放位置,单位为毫秒。 你可以通过 getAudioMixingDuration 获取音频文件总时长,position 的值应小于音频文件总时长。 |
注意 在播放在线文件时,调用此接口可能造成播放延迟的现象。
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.setAudioMixingDualMonoMode(
int mixId,
AudioMixingDualMonoMode mode)
设置当前音频文件的声道模式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID |
| mode | AudioMixingDualMonoMode | 声道模式。默认的声道模式和源文件一致,详见 AudioMixingDualMonoMode。 |
注意
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.setAudioMixingPitch(
int mixId,
int pitch)
开启本地播放音乐文件变调功能,多用于 K 歌场景。
使用该方法,你可以对本地播放音乐文件的音调进行升调或降调等调整。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID |
| pitch | int | 相对于音乐文件原始音调的升高/降低值,取值范围[-12,12],默认值为 0,即不做调整。 取值范围内每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调,设置的绝对值越大表示音调升高或降低越多。 超出取值范围则设置失败,并且会触发 onAudioMixingStateChanged 回调,提示 AudioMixingState 状态为 AUDIO_MIXING_STATE_FAILED 混音播放失败,AudioMixingError 错误码为 AUDIO_MIXING_ERROR_ID_TYPE_INVALID_PITCH 设置混音文件音调不合法。 |
注意 本方法需要在调用 startAudioMixing 开始播放音频文件后、调用 stopAudioMixing 停止播放音频文件前使用,否则会触发 onAudioMixingStateChanged 回调报错
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.setAudioMixingLoudness(
int mixId,
float loudness)
如果你需要使用 enableVocalInstrumentBalance 对混音使音频文件/PCM 音频数据进行音量调整,你必须通过此接口传入其原始响度。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID |
| loudness | float | 原始响度,单位:lufs,取值范围为 [-70.0, 0.0]。 当设置的值小于 -70.0lufs 时,则默认调整为 -70.0lufs,大于 0.0lufs 时,则不对该响度做音均衡处理。默认值为 1.0lufs,即不做处理。 |
注意 建议在 startAudioMixing 开始播放音频文件之前调用该接口,以免播放过程中的音量突变导致听感体验下降。
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.setAudioMixingProgressInterval(
int mixId,
long interval)
设置混音时音频文件播放进度回调的间隔
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID 可以通过多次调用本接口传入不同的 ID 对多个 ID 进行间隔设置。 |
| interval | long | 音频文件播放进度回调的时间间隔,单位毫秒。 • interval 的值为大于 0 的 10 的倍数,当设置的值不能被 10 整除时,则默认向上取整 10,如设为 52ms 时会默认调整为 60ms。设置完成后 SDK 将会按照设置的时间间隔触发 onAudioMixingPlayingProgress 回调。 • interval 的值小于等于 0 时,不会触发进度回调。 |
注意 本方法需要在调用 startAudioMixing 开始播放音频文件后、调用 stopAudioMixing 停止播放音频文件前使用,否则会触发 onAudioMixingStateChanged 回调报错。 若想在音乐文件开始播放前设置播放进度回调间隔,你需调用 startAudioMixing 在 AudioMixingConfig 中设置时间间隔,开始播放后可以通过此接口更新回调间隔。
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.enableAudioMixingFrame(
int mixId,
AudioMixingType type)
启动 PCM 音频数据混音
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID。用于标识混音,保证混音 ID 唯一性。 如果使用相同的 ID 重复调用本方法后,前一次混音会停止,后一次混音开始,会收到 onAudioMixingStateChanged 通知前一次混音已停止。 |
| type | AudioMixingType | 混音类型。是否本地播放、以及是否发送到远端,详见 AudioMixingType。 |
注意
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.disableAudioMixingFrame(
int mixId)
关闭 PCM 混音
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID。 |
public abstract int com.ss.bytertc.engine.audio.IAudioMixingManager.pushAudioMixingFrame(
int mixId,
AudioFrame audioFrame)
推送 PCM 音频帧数据用于混音
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID。 |
| audioFrame | AudioFrame | 音频帧,详见 AudioFrame。 |
返回值
注意
public abstract int com.ss.bytertc.engine.audio.IAudioMixingManager.getAudioTrackCount(
int mixId)
获取当前音频文件的音轨索引
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID |
返回值 方法调用结果
注意
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.selectAudioTrack(
int mixId,
int audioTrackIndex)
指定当前音频文件的播放音轨
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mixId | int | 混音 ID |
| audioTrackIndex | int | 指定的播放音轨 设置的参数值需要小于或等于 getAudioTrackCount 的返回值 |
注意
public interface com.ss.bytertc.engine.audio.IPositionAudioRender
位置音频接口
| 返回 | 名称 |
|---|---|
| void | enableAudioSpatialRender |
| int | updatePosition |
| int | updateSelfOrientation |
void com.ss.bytertc.engine.audio.IPositionAudioRender.enableAudioSpatialRender(
boolean enable)
开启或关闭空间音频效果。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | boolean | 空间音频效果开关,默认关闭。 • true: 开启空间语音; • false: 关闭空间语音。 |
int com.ss.bytertc.engine.audio.IPositionAudioRender.updatePosition(
Position pos)
更新自己的位置坐标。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| pos | Position | 三维坐标的值,默认为 [0, 0, 0]。根据需要,自行建立空间直角坐标系,并将需要使用空间音频功能的用户,都置于同一坐标系下。 三维坐标的值 |
返回值
int com.ss.bytertc.engine.audio.IPositionAudioRender.updateSelfOrientation(
HumanOrientation orientation)
更新自己的朝向。本地朝向的设置只影响本地听到的音频效果,不影响本地发出的音频效果。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| orientation | HumanOrientation | 朝向信息,必须是单位向量。参看 HumanOrientation。当朝向的正方向使用默认值时,朝向的坐标系和位置信息使用的坐标系一致。此时,正前方朝向是:[1, 0, 0],正右方朝向是:[0, 1, 0],正上方朝向是:[0, 0, 1]。 |
返回值 0: 代表更新成功
注意 本地用户调用 enableAudioSpatialRender 使用空间音频功能时,需要调用 updatePosition 接口更新位置坐标后,才能调用此接口。
public abstract class com.ss.bytertc.engine.video.IVideoProcessor
| 返回 | 名称 |
|---|---|
| abstract VideoFrame | processVideoFrame |
| void | onGLEnvInitiated |
| void | onGLEnvRelease |
public abstract VideoFrame com.ss.bytertc.engine.video.IVideoProcessor.processVideoFrame(
VideoFrame frame)
获取 RTC SDK 采集得到的视频帧,根据 registerLocalVideoProcessor 设置的视频前处理器,进行视频前处理,最终将处理后的视频帧给到 RTC SDK 用于编码传输。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | VideoFrame | RTC SDK 采集得到的视频帧,参看 VideoFrame。 |
返回值 经过视频前处理后的视频帧,返回给 RTC SDK 供编码和传输,参看 VideoFrame。
注意
public void com.ss.bytertc.engine.video.IVideoProcessor.onGLEnvInitiated()
OpenGL 环境创建完成时,收到此回调。
注意 当你选择使用 processVideoFrame 所在线程以外的线程进行视频前处理时,必须设置 OpenGL 环境。环境创建完成时,你会收到此通知,此时,你可以进行一些初始化操作。
public void com.ss.bytertc.engine.video.IVideoProcessor.onGLEnvRelease()
OpenGL 环境即将销毁时,收到此回调。此时,你可以释放纹理等资源。
public abstract class com.ss.bytertc.engine.IRTCRoom
| 返回 | 名称 |
|---|---|
| abstract void | destroy |
| abstract int | joinRoom |
| abstract void | setRTCRoomEventHandler |
| abstract void | leaveRoom |
| abstract void | setUserVisibility |
| abstract void | updateToken |
| abstract void | sendUserMessage |
| abstract void | sendUserBinaryMessage |
| abstract void | sendRoomMessage |
| abstract void | sendRoomBinaryMessage |
| abstract void | publishStream |
| abstract void | unpublishStream |
| abstract void | publishScreen |
| abstract void | unpublishScreen |
| abstract void | subscribeStream |
| abstract void | unsubscribeStream |
| abstract void | subscribeScreen |
| abstract void | unsubscribeScreen |
| abstract void | pauseAllSubscribedStream |
| abstract void | resumeAllSubscribedStream |
| abstract void | startLiveTranscoding |
| abstract void | stopLiveTranscoding |
| abstract void | updateLiveTranscoding |
| abstract int | startForwardStreamToRooms |
| abstract int | updateForwardStreamToRooms |
| abstract void | stopForwardStreamToRooms |
| abstract void | pauseForwardStreamToAllRooms |
| abstract void | resumeForwardStreamToAllRooms |
public abstract void com.ss.bytertc.engine.IRTCRoom.destroy()
退出并销毁调用 createRoom 所创建的房间。
public abstract int com.ss.bytertc.engine.IRTCRoom.joinRoom(
String token,
UserInfo userInfo,
MultiRoomConfig roomConfig)
加入房间。
多房间场景下,调用 createRoom 创建房间后,调用此方法加入房间,同房间内其他用户进行音视频通话。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| token | String | 动态密钥。用于对进房用户进行鉴权验证。 进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在你的服务端生成并下发 Token。 使用不同 AppID 的 App 是不能互通的。 请务必保证生成 Token 使用的 AppID 和创建引擎时使用的 AppID 相同,否则会导致加入房间失败。 |
| userInfo | UserInfo | 用户信息。参看 UserInfo。 |
| roomConfig | MultiRoomConfig | 房间参数配置,设置房间模式以及是否自动发布或订阅流。具体配置模式参看 MultiRoomConfig。 |
返回值
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.setRTCRoomEventHandler(
IRTCRoomEventHandler rtcRoomEventHandler)
通过设置房间事件 handler,监听此对象对应的回调事件。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| rtcRoomEventHandler | IRTCRoomEventHandler | 参看 IRTCRoomEventHandler |
public abstract void com.ss.bytertc.engine.IRTCRoom.leaveRoom()
离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
调用 joinRoom 方法加入房间后,必须调用此方法结束通话,否则无法开始下一次通话。无论当前是否在房间内,都可以调用此方法。重复调用此方法没有负面影响。
此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 onLeaveRoom 回调通知。
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.setUserVisibility(
boolean enable)
设置用户可见性。默认可见。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | boolean | 设置用户是否对房间内其他用户可见: • true: 可以在房间内发布音视频流,房间中的其他用户将收到用户的行为通知,例如进房、开启视频采集和退房。 • false: 不可以在房间内发布音视频流,房间中的其他用户不会收到用户的行为通知,例如进房、开启视频采集和退房。 |
返回值
注意
WARNING_CODE_PUBLISH_STREAM_FORBIDEN 警告。
public abstract void com.ss.bytertc.engine.IRTCRoom.updateToken(
String token)
更新 Token。
用于加入房间的 Token 有一定的有效期。当 Token 过期时,需要调用此方法更新房间的 Token 信息。
调用 joinRoom 方法加入房间或断网重连进入房间时,如果 Token 过期,将导致加入房间失败,并会收到 onError 回调通知,回调错误码为 ErrorCode 中的 ERROR_CODE_INVALID_TOKEN。此时需要重新获取 Token,并调用此方法更新 Token。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| token | String | 获取的新的有效 Token。 |
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.sendUserMessage(
String userId,
String messageStr)
给房间内指定的用户发送点对点文本消息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userId | String | 消息接收用户的 ID |
| messageStr | String | 发送的文本消息内容 消息不超过 62KB。 |
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.sendUserBinaryMessage(
String userId,
byte[] buffer)
给房间内指定的用户发送点对点二进制消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userId | String | 消息接收用户的 ID |
| buffer | byte[] | 发送的二进制消息内容 消息不超过 46KB。 |
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.sendRoomMessage(
String messageStr)
给房间内的所有其他用户群发文本消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| messageStr | String | 发送的文本消息内容 消息不超过 62KB。 |
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.sendRoomBinaryMessage(
byte[] buffer)
给房间内的所有其他用户群发二进制消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| buffer | byte[] | 发送的二进制消息内容 消息不超过 46KB。 |
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.publishStream(
RTCEngine.MediaStreamType type)
在当前所在房间内发布本地通过摄像头/麦克风采集的媒体流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | RTCEngine.MediaStreamType | 媒体流类型,用于指定发布音频/视频,参看 MediaStreamType |
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.unpublishStream(
RTCEngine.MediaStreamType type)
停止将本地摄像头/麦克风采集的媒体流发布到当前所在房间中
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | RTCEngine.MediaStreamType | 媒体流类型,用于指定停止发布音频/视频,参看 MediaStreamType |
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.publishScreen(
RTCEngine.MediaStreamType type)
在当前所在房间内发布本地屏幕共享音视频流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | RTCEngine.MediaStreamType | 媒体流类型,用于指定发布屏幕音频/视频,参看 MediaStreamType。 |
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.unpublishScreen(
RTCEngine.MediaStreamType type)
停止将本地屏幕共享音视频流发布到当前所在房间中
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | RTCEngine.MediaStreamType | 媒体流类型,用于指定停止发布屏幕音频/视频,参看 MediaStreamType |
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.subscribeStream(
String uid,
RTCEngine.MediaStreamType type)
订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 指定订阅的远端发布音视频流的用户 ID。 |
| type | RTCEngine.MediaStreamType | 媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。 |
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.unsubscribeStream(
String uid,
RTCEngine.MediaStreamType type)
取消订阅房间内指定的通过摄像头/麦克风采集的媒体流。
该方法对自动订阅和手动订阅模式均适用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 指定取消订阅的远端发布音视频流的用户 ID。 |
| type | RTCEngine.MediaStreamType | 媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。 |
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.subscribeScreen(
String uid,
RTCEngine.MediaStreamType type)
订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 指定订阅的远端发布屏幕流的用户 ID。 |
| type | RTCEngine.MediaStreamType | 媒体流类型,用于指定订阅音频/视频。参看 MediaStreamType。 |
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.unsubscribeScreen(
String uid,
RTCEngine.MediaStreamType type)
取消订阅房间内指定的远端屏幕共享音视频流。
该方法对自动订阅和手动订阅模式均适用。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 指定取消订阅的远端发布屏幕流的用户 ID。 |
| type | RTCEngine.MediaStreamType | 媒体流类型,用于指定取消订阅音频/视频。参看 MediaStreamType。 |
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.pauseAllSubscribedStream(
RTCEngine.PauseResumeControlMediaType mediaType)
暂停接收来自远端的媒体流。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mediaType | RTCEngine.PauseResumeControlMediaType | 媒体流类型,指定需要暂停接收音频还是视频流,参看 PauseResumeControlMediaType。 |
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.resumeAllSubscribedStream(
RTCEngine.PauseResumeControlMediaType mediaType)
恢复接收来自远端的媒体流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mediaType | RTCEngine.PauseResumeControlMediaType | 媒体流类型,指定需要暂停接收音频还是视频流,参看 PauseResumeControlMediaType |
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.startLiveTranscoding(
String taskId,
LiveTranscoding liveTranscode,
ILiveTranscodingObserver observer)
新增转推直播任务,并设置合流的视频视图布局和音频属性。
同一个任务中转推多路直播流时,SDK 会先将多路流合成一路流,然后再进行转推。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| taskId | String | 转推直播任务 ID。你可以在同一房间内发起多个转推直播任务,并用不同的任务 ID 加以区分。 |
| liveTranscode | LiveTranscoding | 转推直播配置参数。详见 LiveTranscoding。 |
| observer | ILiveTranscodingObserver | 端云一体转推直播观察者。详见 ILiveTranscodingObserver。 通过注册 observer 接收转推直播相关的回调。 |
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.stopLiveTranscoding(
String taskId)
停止转推直播。
关于启动转推直播,参看 startLiveTranscoding。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| taskId | String | 转推直播任务 ID。可以指定想要停止的转推直播任务。 |
public abstract void com.ss.bytertc.engine.IRTCRoom.updateLiveTranscoding(
String taskId,
LiveTranscoding transcoding)
更新转推直播参数。
使用 startLiveTranscoding 启用转推直播功能后,使用此方法更新功能配置参数。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| taskId | String | 转推直播任务 ID。指定想要更新参数设置的转推直播任务。 |
| transcoding | LiveTranscoding | 配置参数,详见 LiveTranscoding。 |
public abstract int com.ss.bytertc.engine.IRTCRoom.startForwardStreamToRooms(
List<ForwardStreamInfo> forwardStreamInfos)
开始跨房间转发媒体流。
在用户进入房间后调用本接口,实现向多个房间转发媒体流,适用于跨房间连麦等场景。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| forwardStreamInfos | List |
跨房间媒体流转发指定房间的信息。参看 ForwardStreamInfo。 |
返回值
0: 方法调用成功
<0: 方法调用失败
注意
public abstract int com.ss.bytertc.engine.IRTCRoom.updateForwardStreamToRooms(
List<ForwardStreamInfo> forwardStreamInfos)
更新跨房间媒体流转发信息。
通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法增加或者减少目标房间,或更新房间密钥。
调用本方法增加或删减房间后,将在本端触发 onForwarStreamStateChangedonForwardStreamStateChanged 回调,包含发生了变动的目标房间中媒体流转发状态。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| forwardStreamInfos | List |
跨房间媒体流转发目标房间信息。参看 ForwardStreamInfo。 |
返回值
0: 方法调用成功
<0: 方法调用失败
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.stopForwardStreamToRooms()
停止跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法停止向所有目标房间转发媒体流。
注意
public abstract void com.ss.bytertc.engine.IRTCRoom.pauseForwardStreamToAllRooms()
暂停跨房间媒体流转发。 通过 startForwardStreamToRooms 发起媒体流转发后,可调用本方法暂停向所有目标房间转发媒体流。 调用本方法暂停向所有目标房间转发后,你可以随时调用 resumeForwardStreamToAllRooms 快速恢复转发。
注意 调用本方法后,目标房间中的用户将接收到本地用户停止发布 onUserUnPublishStream/onUserUnPublishScreen 和退房 onUserLeave 的回调。
public abstract void com.ss.bytertc.engine.IRTCRoom.resumeForwardStreamToAllRooms()
恢复跨房间媒体流转发。 调用 pauseForwardStreamToAllRooms 暂停转发之后,调用本方法恢复向所有目标房间转发媒体流。
注意 目标房间中的用户将接收到本地用户进房 onUserJoined 和发布 onUserPublishStream/onUserPublishScreen 的回调。