public abstract class com.ss.bytertc.engine.RTCEngine
RtcEngine接口
| 返回 | 名称 |
|---|---|
| static synchronized RTCEngine | createEngine |
| static synchronized void | destroyEngine |
| static synchronized void | destroy |
| static String | getSdkVersion |
| static String | getErrorDescription |
| static int | feedback |
public static synchronized RTCEngine com.ss.bytertc.engine.RTCEngine.createEngine(
Context context,
String appId,
IRTCEngineEventHandler handler,
Object eglContext,
JSONObject parameters)
创建引擎对象
此方法应该作为正常 SDK 流程中的第一步操作,通过创建一个引擎实例,来使用 SDK 的其他能力
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| context | Context | Android Application Context |
| appId | String | 每个应用的唯一标识符,由 VRTC 控制台随机生成的。不同的 AppId 生成的实例在 VRTC 中进行音视频通话完全独立,无法互通。 |
| handler | IRTCEngineEventHandler | SDK 回调给应用层的 Handler,详见 IRTCEngineEventHandler |
| eglContext | Object | 如果需要支持外部纹理硬编码,则需要传入eglContext。以jObject方式传入eglContext |
| parameters | JSONObject | 用以覆盖全局参数的本引擎实例参数 |
返回值
注意
public static synchronized void com.ss.bytertc.engine.RTCEngine.destroyEngine(
RTCEngine engine)
销毁引擎
销毁由 createEngine 所创建引擎实例,并释放所有相关资源
注意
public static synchronized void com.ss.bytertc.engine.RTCEngine.destroy()
销毁引擎
销毁由 create 所创建引擎实例,并释放所有相关资源
注意
该方法不会销毁任何配置,在上一次 create 调用之后对SDK进行的任何配置, 在下一次有效执行 create 时依然生效
本方法为阻塞调用,会阻塞当前线程直到SDK彻底完成退出逻辑,因而需要注意不要在回调线程中直接调用 本方法,也需要注意不要在回调方法中等待主线程的执行,而同时在主线程调用本方法,从而造成死锁
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 static int com.ss.bytertc.engine.RTCEngine.feedback(
Context context,
int grade,
int type,
String problemDesc)
通话结束,用户反馈上报
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| context | Context | 上下文,用户SDK获取网络状态 |
| grade | int | 打分 1~5分 |
| type | int | 问题列表 |
| problemDesc | String | 其他问题 |
返回值 0: 成功;
-1: 还没加入过房间,上报失败; -2: 数据解析错误 -3: 字段缺失 -4: grade不合法
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,
ChannelProfile profile_type)
加入房间。用户调用此方法加入房间,同一房间内的用户间可以相互通话。
进房后重复调用无效,用户必须调用 leaveRoom 退出当前房间后,才能加入下一个房间。
本地用户调用此方法加入房间成功后,会收到 onJoinRoomResult 回调通知,远端用户会收到 onUserJoined 回调通知。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| token | String | 动态密钥,用于对登录用户进行鉴权验证。 进入房间需要携带 Token。测试时可使用控制台生成临时 Token,正式上线需要使用密钥 SDK 在您的服务端生成并下发 Token。 |
| roomId | String | 加入的房间 ID。 房间 ID 为长度在 128 字节以内的非空字符串,支持以下字符集范围: 1. 26 个大写字母 A ~ Z 。 2. 26 个小写字母 a ~ z 。 3. 10 个数字 0 ~ 9 。 4. 下划线 "_",at 符 "@",减号 "-"。 |
| userInfo | UserInfo | 用户信息。参看 UserInfo。 |
| profile_type | ChannelProfile | 房间模式。 你应该根据业务需要,选择合适的房间模式。 你必须在进房前设置房间模式,并且进房后不可更改。 房间模式参看 ChannelProfile。 |
返回值
0:方法调用成功
-1:roomID 为空 -2:userInfo 为空 -3:native engine 为空 -4:JoinRoom 不能重复调用
注意
public abstract int com.ss.bytertc.engine.RTCEngine.leaveRoom()
离开房间。
用户调用此方法离开房间,结束通话过程,释放所有通话相关的资源。
调用 joinRoom 方法加入房间后,必须调用此方法结束通话,否则无法开始下一次通话。无论当前是否在房间内,都可以调用此方法。重复调用此方法没有负面影响。
此方法是异步操作,调用返回时并没有真正退出房间。真正退出房间后,本地会收到 onLeaveRoomonLeaveChannel 回调通知。
返回值
注意
public abstract void com.ss.bytertc.engine.RTCEngine.startVideoCapture()
开启内部视频采集。默认为关闭状态。
进房前调用该方法,本地用户会收到 onMediaDeviceStateChanged 的回调。
进房后调用该方法,房间中的其他用户会收到 onUserStartVideoCapture 的回调。
注意
public abstract void com.ss.bytertc.engine.RTCEngine.stopVideoCapture()
关闭本地视频采集。默认为关闭状态。
进房前调用该方法,本地用户会收到 onMediaDeviceStateChanged 的回调。
进房后调用该方法,房间中的其他用户会收到 onUserStopVideoCapture 的回调。
注意
public abstract void com.ss.bytertc.engine.RTCEngine.startAudioCapture()
开启内部音频采集。默认为关闭状态。
进房前调用该方法,本地用户会收到 onMediaDeviceStateChanged 的回调。
进房后调用该方法,房间中的其他用户会收到 onUserStartAudioCapture 的回调。
注意
public abstract void com.ss.bytertc.engine.RTCEngine.stopAudioCapture()
关闭内部音频采集。默认为关闭状态。
进房前调用该方法,本地用户会收到 onMediaDeviceStateChanged 的回调。
进房后调用该方法,房间中的其他用户会收到 onUserStopAudioCapture 的回调。
注意
public abstract void com.ss.bytertc.engine.RTCEngine.setAudioScenario(
AudioScenarioType audioScenario)
设置音频场景类型
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioScenario | AudioScenarioType | 音频场景类型,业务方在加入房间前、加入房间中均可生效,详见枚举类型 AudioScenarioType |
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.setupLocalVideoRender(
IVideoSink videoSink,
String uid)
设置本地视频外部渲染
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoSink | IVideoSink | 设置视频属性, 参考:IVideoSink |
| uid | String | 要绑定的用户ID |
返回值
注意 该方法设置本地视频外部渲染。应用程序通过调用此接口绑定本地视频流的数据源回调。 在应用程序开发中,通常在 APP 收到 onFirstLocalVideoFrameCaptured 事件后调用该方法进行本地视频设置,然后再加入房间。 退出房间后,会收到 onStop 和 onDispose,如果需要手动提前 Dispose,需要设置 setupLocalVideoRender为 null,清除设置 。
public abstract int com.ss.bytertc.engine.RTCEngine.setupLocalVideoRender(
IVideoSink videoSink,
String uid,
boolean isInitialized)
设置本地视频外部渲染
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoSink | IVideoSink | 设置视频属性, 参考:IVideoSink |
| uid | String | 要绑定的用户ID |
| isInitialized | boolean | 是否初始化 |
返回值
注意 该方法设置本地视频外部渲染。应用程序通过调用此接口绑定本地视频流的数据源回调。 在应用程序开发中,通常在 APP 收到 onFirstLocalVideoFrameCaptured 事件后调用该方法进行本地视频设置,然后再加入房间。 退出房间后,会收到 onStop 和 onDispose,如果需要手动提前 Dispose,需要设置 setupLocalVideoRender为 null,清除设置 。
public abstract int com.ss.bytertc.engine.RTCEngine.setupLocalScreenRender(
IVideoSink videoSink,
String uid)
设置本地屏幕视频的外部渲染
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoSink | IVideoSink | 设置视频属性, 参考:IVideoSink |
| uid | String | 要绑定的用户ID |
返回值
注意 该方法设置本地屏幕视频外部渲染。应用通过调用此接口绑定本地视频流的数据源回调。 在应用开发中,通常在应用收到 onFirstLocalVideoFrameCaptured 事件后调用该方法进行本地视频设置。 退出房间后,需要设置 setupLocalScreenRender 为 null,清除设置 。
public abstract int com.ss.bytertc.engine.RTCEngine.setRemoteVideoCanvas(
String userId,
StreamIndex streamIndex,
VideoCanvas videoCanvas)
设置来自指定远端用户 user_id 的视频渲染时,使用的视图,并设置渲染模式。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userId | String | 视频来源的远端用户 ID |
| streamIndex | StreamIndex | 视频流属性,参看 StreamIndex |
| videoCanvas | VideoCanvas | 视图信息和渲染模式,参看 VideoCanvas |
返回值
public abstract int com.ss.bytertc.engine.RTCEngine.setupRemoteVideoRender(
IVideoSink videoSink,
String roomid,
String uid)
设置远端视频的外部渲染
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoSink | IVideoSink | 设置视频属性, 参考: IVideoSink |
| roomid | String | 要绑定的用户所属房间ID |
| uid | String | 要绑定的用户ID |
返回值
注意 该方法设置远端视频外部渲染。应用程序通过调用此接口绑定远端视频流的数据源回调。 在应用程序开发中,通常在 APP 收到 onFirstRemoteVideoFrameRendered 事件后调用该方法进行远端视频设置,然后再加入房间。 退出房间后,会收到 onStop 和 onDispose,如果需要手动提前 Dispose,需要设置 setupRemoteVideoRender 为 null,清除设置。
public abstract int com.ss.bytertc.engine.RTCEngine.setupRemoteVideoRender(
IVideoSink videoSink,
String uid)
设置远端视频的外部渲染
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoSink | IVideoSink | 设置视频属性,参考: IVideoSink |
| uid | String | 要绑定的用户ID |
返回值
注意 该方法设置远端视频外部渲染。应用程序通过调用此接口绑定远端视频流的数据源回调。 在应用程序开发中,通常在 APP 收到 onFirstRemoteVideoFrameRendered 事件后调用该方法进行远端视频设置,然后再加入房间。 退出房间后,会收到 onStop 和 onDispose,如果需要手动提前 Dispose,需要设置 setupRemoteVideoRender 为 null,清除设置。
public abstract int com.ss.bytertc.engine.RTCEngine.setupRemoteVideoRender(
IVideoSink videoSink,
String roomid,
String uid,
boolean isInitialized)
设置远端视频的外部渲染
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoSink | IVideoSink | 设置视频属性, 参考: IVideoSink |
| uid | String | 要绑定的用户ID |
| roomid | String | 要绑定的用户所属房间 id |
| isInitialized | boolean | videoSink 是否已经初始化 |
返回值
注意 该方法设置远端视频外部渲染。应用程序通过调用此接口绑定远端视频流的数据源回调。 在应用程序开发中,通常在 APP 收到 onFirstRemoteVideoFrameRendered 事件后调用该方法进行远端视频设置,然后再加入房间。 退出房间后,会收到 onStop 和 onDispose,如果需要手动提前 Dispose,需要设置 setupRemoteVideoRender 为 null,清除设置。
public abstract int com.ss.bytertc.engine.RTCEngine.setupRemoteVideoRender(
IVideoSink videoSink,
String uid,
boolean isInitialized)
设置远端视频的外部渲染
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoSink | IVideoSink | 设置视频属性, 参考: IVideoSink |
| uid | String | 要绑定的用户ID |
| isInitialized | boolean | videoSink 是否已经初始化 |
返回值
注意 该方法设置远端视频外部渲染。应用程序通过调用此接口绑定远端视频流的数据源回调。 在应用程序开发中,通常在 APP 收到 onFirstRemoteVideoFrameRendered 事件后调用该方法进行远端视频设置,然后再加入房间。 退出房间后,会收到 onStop 和 onDispose,如果需要手动提前 Dispose,需要设置 setupRemoteVideoRender 为 null,清除设置。。
public abstract int com.ss.bytertc.engine.RTCEngine.setupRemoteScreenRender(
IVideoSink videoSink,
String roomid,
String uid)
设置远端屏幕流视频的外部渲染
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoSink | IVideoSink | 设置视频属性, 参考:IVideoSink |
| uid | String | 要绑定的用户ID |
| roomid | String | 要绑定的用户所属房间ID |
返回值
注意 该方法设置远端屏幕视频外部渲染。应用通过调用此接口绑定远端视频流的数据源回调。 在应用开发中,通常在应用收到 onFirstRemoteVideoFrameRendered 事件后调用该方法进行远端视频设置。 退出房间后,需要设置 setupRemoteScreenRender 为 null,清除设置 。
public abstract int com.ss.bytertc.engine.RTCEngine.setupRemoteScreenRender(
IVideoSink videoSink,
String uid)
设置远端屏幕流视频的外部渲染
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoSink | IVideoSink | 设置视频属性, 参考:IVideoSink |
| uid | String | 要绑定的用户ID |
返回值
注意 该方法设置远端屏幕视频外部渲染。应用程序通过调用此接口绑定远端视频流的数据源回调。 在应用开发中,通常在应用收到 onFirstRemoteVideoFrameRendered 事件后调用该方法进行远端视频设置。 退出房间后,需要设置 setupRemoteScreenRender 为 null,清除设置 。
public abstract int com.ss.bytertc.engine.RTCEngine.setLocalVideoMirrorMode(
MirrorMode mirrorMode)
设置采用前置摄像头采集时,是否开启镜像模式。
调用后,你会收到回调:OnMirrorStateChangedonMirrorStateChanged
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mirrorMode | MirrorMode | 是否开启镜像模式, 参看 MirrorMode |
返回值
public abstract boolean com.ss.bytertc.engine.RTCEngine.isLocalVideoMirrorOn()
获取本地视频镜像。
返回值 当前镜像状态
public abstract int com.ss.bytertc.engine.RTCEngine.switchCamera(
CameraId cameraId)
切换移动端前置/后置摄像头
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| cameraId | CameraId | 摄像头 ID,参看 CameraId |
返回值
public abstract int com.ss.bytertc.engine.RTCEngine.replaceBackground(
BackgroundMode mode,
DivideModel divide_model)
视频图像分割,替换背景
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mode | BackgroundMode | 背景模式,用于设置预置背景,是否虚化等 详见 BackgroundMode |
| divide_model | DivideModel | 选择使用哪种分割模型,@return • 0: 方法调用成功; • <0: 方法调用失败; |
public abstract int com.ss.bytertc.engine.RTCEngine.setAudioPlaybackDevice(
AudioPlaybackDevice audioPlaybackDevice)
设置音频播放设备为扬声器或者听筒,默认使用扬声器。
音频播放设备发生变化时,会收到 onAudioPlaybackDeviceChanged 事件回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioPlaybackDevice | AudioPlaybackDevice | 音频播放设备(扬声器或者听筒),详见 AudioPlaybackDevice |
返回值 方法调用结果
注意
public abstract boolean com.ss.bytertc.engine.RTCEngine.isSpeakerphoneEnabled()
查询扬声器启用状态
返回值 扬声器开启状态
public abstract void com.ss.bytertc.engine.RTCEngine.setAudioVolumeIndicationInterval(
int interval)
开启/关闭音量提示。默认关闭。
开启音量提示后,将按设置的时间间隔收到本地采集音量或订阅的远端用户的音量信息回调。
关于回调的具体信息,参看 onAudioVolumeIndication。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| interval | int | 收到音量提示回调的时间间隔 • ≤ 0:禁用音量提示功能。 • > 0:启用音量提示功能,并设置收到音量提示回调的时间间隔。单位为毫秒。 建议设置为大于等于 200 毫秒;小于 10 毫秒时,行为未定义。 |
public abstract void com.ss.bytertc.engine.RTCEngine.muteLocalAudio(
MuteState muteState)
控制本地音频流的发送状态:发送/不发送。
使用此方法后,房间中的其他用户会收到回调 onUserMuteAudio。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| muteState | MuteState | 发送状态,标识是否发送本地音频流,详见 MuteState |
注意 本方法仅控制本地音频流的发送状态,并不影响本地音频采集状态。
public abstract int com.ss.bytertc.engine.RTCEngine.muteLocalVideo(
MuteState muteState)
停止/启动发送本地视频流。
调用该方法后,房间中的其他用户会收到 onUserMuteVideo 的回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| muteState | MuteState | 发送状态,标识是否发送本地视频流,参看 MuteState |
返回值
public abstract int com.ss.bytertc.engine.RTCEngine.muteAllRemoteVideo(
MuteState muteState)
设置是否播放所有远端视频流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| muteState | MuteState | 播放状态,标识是否播放所有远端视频流,参看 MuteState |
返回值
注意 本方法不影响远端视频采集和发送状态
public abstract void com.ss.bytertc.engine.RTCEngine.muteAllRemoteAudio(
MuteState muteState)
设置对来自远端的所有音频流的接收状态。默认为接收。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| muteState | MuteState | 接收状态,标识是否接收远端音频流,详见 MuteState |
注意 本方法只控制本地是否接收远端音频流,并不影响远端音频设备的采集发送功能。
public abstract void com.ss.bytertc.engine.RTCEngine.muteRemoteAudio(
String uid,
MuteState muteState)
设置对来自指定远端用户的音频流的接收状态。默认为接收。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 指定远端用户的 ID |
| muteState | MuteState | 接收状态,标识是否接收远端音频流,详见 MuteState |
public abstract int com.ss.bytertc.engine.RTCEngine.muteRemoteVideo(
String uid,
MuteState muteState)
设置是否播放远端视频流
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| uid | String | 视频来源的远端用户 ID |
| muteState | MuteState | 播放状态,标识是否播放远端视频流,参看 MuteState |
返回值
注意 本方法不影响远端视频采集和发送状态
public abstract int com.ss.bytertc.engine.RTCEngine.updateToken(
String token)
更新 Token。
Token 有一定的有效期,当 Token 过期时,用户需调用此方法更新房间的 Token 信息。
用户调用 joinRoom 方法加入房间时,如果使用了过期的 Token 将导致加入房间失败,并会收到 onError 回调通知,回调错误码为 ErrorCode.ERROR_CODE_INVALID_TOKENErrorCode。此时需要重新获取 Token,并调用此方法更新 Token。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| token | String | 更新的动态密钥。 |
返回值 方法调用结果。
注意
public abstract int com.ss.bytertc.engine.RTCEngine.setUserRole(
ClientRole clientRole)
设置用户角色。默认角色为主播。
通过设置不同的用户角色,可以控制用户在房间内的行为:
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| clientRole | ClientRole | 用户角色,参看 ClientRole。 |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.startAudioMixing(
String file,
boolean loopback,
boolean replace,
int cycle)
开始播放音乐文件及混音。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| file | String | 指定需要混音的本地文件的绝对路径。支持音频文件格式有: mp3,aac,m4a,3gp,wav。 |
| loopback | boolean | • true: 只有本地可以听到混音或替换后的音频流。 • false: 本地和对方都可以听到混音或替换后的音频流 |
| replace | boolean | • true: 只推送设置的本地音频文件,不传输麦克风采集的音频。 • false: 音频文件内容将会和麦克风采集的音频流进行混音 |
| cycle | int | 指定音频文件循环播放的次数。 • >0: 循环的次数。 • -1: 无限循环 |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.stopAudioMixing()
停止播放音乐文件及混音。
返回值
注意
public abstract void com.ss.bytertc.engine.RTCEngine.setRecordingVolume(
int volume)
调节音频采集音量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音频采集音量,调节范围:[0,400] • 0:静音 • 100:原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护) |
注意 为保证更好的通话质量,建议将 volume 值设为 [0,100]。
public abstract void com.ss.bytertc.engine.RTCEngine.setPlaybackVolume(
int volume)
调节本地播放的所有远端用户混音后的音量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 播放音量,调节范围:[0,400] • 0:静音 • 100:原始音量 • 400: 最大可为原始音量的 4 倍(自带溢出保护) |
注意 为保证更好的通话质量,建议将 volume 值设为 [0,100]。
public abstract int com.ss.bytertc.engine.RTCEngine.pauseAudioMixing()
暂停播放音乐文件
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.resumeAudioMixing()
恢复播放音乐文件
返回值
注意
public abstract long com.ss.bytertc.engine.RTCEngine.sendRoomMessage(
String messgaeStr)
给房间内的所有其他用户发送广播消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| messgaeStr | String | 用户发送的广播消息 |
返回值
>0:发送成功,返回这次发送消息的编号,从 1 开始递增
-1:发送失败
注意 1.调用该函数后会收到一次 onRoomMessageSendResult 回调; 2.同一房间内的其他用户会收到 onRoomMessageReceived 回调。
public abstract long com.ss.bytertc.engine.RTCEngine.sendRoomBinaryMessage(
byte[] buffer)
给房间内的所有其他用户发送广播二进制消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| buffer | byte[] | 用户发送的广播二进制消息 |
返回值 >0:发送成功,返回这次发送消息的编号,从 1 开始递增
-1:发送失败
注意 1.调用该函数后会收到一次 onRoomMessageSendResult 回调; 2.同一房间内的其他用户会收到 onRoomBinaryMessageReceived 回调。
public abstract long com.ss.bytertc.engine.RTCEngine.sendUserMessage(
String userId,
String messageStr)
给房间内指定的用户发送文本消息(P2P),返回这次发送消息的编号。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userId | String | 指定用户 ID 。 |
| messageStr | String | 发送的文本消息内容。 |
返回值
>0:发送成功,返回这次发送消息的编号,从 1 开始递增
-1:发送失败,RtcEngine 实例未创建
-2:发送失败,userId 为空
注意
1. 调用该函数后会收到一次 onUserMessageSendResult 回调,通知消息发送方发送成功或失败;
2. 若文本消息发送成功,则 uid 所指定的用户会收到
onUserMessageReceived 回调。
public abstract long com.ss.bytertc.engine.RTCEngine.sendUserBinaryMessage(
String userId,
byte[] buffer)
给房间内指定的用户发送二进制消息(P2P),返回这次发送消息的编号。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userId | String | 指定用户 ID。 |
| buffer | byte[] | 发送的二进制消息内容。 |
返回值
>0:发送成功,返回这次发送消息的编号,从 1 开始递增
-1:发送失败,RtcEngine 实例未创建
-2:发送失败,uid 为空
注意
1. 调用该函数后会收到一次 onUserMessageSendResult 回调,通知消息发送方发送成功或失败;
2. 若二进制消息发送成功,则 userId 所指定的用户会收到
onUserBinaryMessageReceived 回调。
public abstract int com.ss.bytertc.engine.RTCEngine.adjustAudioMixingVolume(
int volume)
调节音乐文件的文件音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音乐文件播放音量范围为 0~400。 • 0:静音 • 100:原始音量 • 400: 最大可调音量 (自带溢出保护) |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.getAudioMixingDuration()
获取音乐文件时长
返回值
注意 请在房间内调用该方法。
public abstract int com.ss.bytertc.engine.RTCEngine.getAudioMixingCurrentPosition()
获取音乐文件播放进度
返回值
注意 请在房间内调用该方法。
public abstract int com.ss.bytertc.engine.RTCEngine.setAudioMixingPosition(
int pos)
设置音频文件的播放位置
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| pos | int | 整数。进度条位置,单位为毫秒。 |
返回值
注意 该方法可以设置音频文件的播放位置,这样你可以根据实际情况从指定的位置播放音乐文件,无需从头到尾完整播放一个音乐文件。
public abstract int com.ss.bytertc.engine.RTCEngine.adjustAudioMixingPlayoutVolume(
int volume)
调节音乐文件的本地播放音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音乐文件播放音量范围为 0~400。 • 0:静音 • 100:原始音量 • 400: 最大可调音量 (自带溢出保护) |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.adjustAudioMixingPublishVolume(
int volume)
调节音乐文件的远端播放音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音乐文件播放音量范围为 0~400。 • 0:静音 • 100:原始音量 • 400: 最大可调音量 (自带溢出保护) |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.getEffectVolume(
int soundId)
获取指定音效文件的文件音量
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| soundId | int | 音效ID,应用调用者维护,请保证唯一性。确保此处的 soundId 与 playEffect 设置的 soundId 相同。 |
返回值
注意 请在房间内调用该方法。
public abstract int com.ss.bytertc.engine.RTCEngine.setVolumeOfEffect(
int soundId,
int volume)
调节指定音效文件的文件音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| soundId | int | 音效ID,应用调用者维护,请保证唯一性。确保此处的 soundId 与 playEffect 设置的 soundId 相同。 |
| volume | int | 音乐文件播放音量范围为 0~400。 • 0:静音 • 100:原始音量 • 400:最大可为原始音量的 4 倍(自带溢出保护) |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.setEffectsVolume(
int volume)
调节所有音效文件的文件音量。为保证更好的音质,建议将 volume 值设为 [0,100]。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| volume | int | 音乐文件播放音量范围为 0~400。 • 0:静音 • 100:原始音量 • 400: 最大可调音量 (自带溢出保护) |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.playEffect(
int soundId,
String filePath,
boolean loopback,
int cycle,
int volume)
开始播放指定音效文件。你可以在该方法中设置音效文件的播放次数、音量大小,以及远端用户是否能听到该音效。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| soundId | int | 音效ID,应用调用者维护,请保证唯一性。如果已经通过 preloadEffect 将音效加载至内存,确保此处的 soundId 与 preloadEffect 设置的 soundId 相同。 |
| filePath | String | 指定需要混音的音频文件名和文件路径名。支持以下音频格式: mp3,aac,m4a,3gp,wav |
| loopback | boolean | • true: 只有本地可以听到该音效。 • false: 本地和远端用户都可以听到该音效 |
| cycle | int | 指定音频文件循环播放的次数。 • >0:循环的次数。 • -1:无限循环,直至调用 stopEffect 或 stopAllEffects 后停止。 |
| volume | int | 音效文件播放音量范围为 0~400。默认 100 为原始文件音量 |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.preloadEffect(
int soundId,
String filePath)
预加载指定音效文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| soundId | int | 音效ID,应用调用者维护,请保证唯一性。 |
| filePath | String | 指定需要混音的音频文件名和文件路径名。支持以下音频格式: mp3,aac,m4a,3gp,wav。 |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.unloadEffect(
int soundId)
卸载指定音效文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| soundId | int | 音效ID,应用调用者维护,请保证唯一性。 |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.stopEffect(
int soundId)
停止播放指定音效文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| soundId | int | 音效ID,应用调用者维护,请保证唯一性。如果已经通过 preloadEffect 将音效加载至内存,确保此处的 soundId 与 preloadEffect 设置的 soundId 相同。 |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.pauseEffect(
int soundId)
暂停播放指定音效文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| soundId | int | 音效ID,应用调用者维护,请保证唯一性 |
返回值
注意 调用该方法暂停播放指定音效文件,可以调用 resumeEffect 方法恢复播放。
public abstract int com.ss.bytertc.engine.RTCEngine.resumeEffect(
int soundId)
恢复播放指定音效文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| soundId | int | 音效ID,应用调用者维护,请保证唯一性。 |
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.stopAllEffects()
停止所有音效文件的播放
返回值
注意 该方法停止所有音效文件的播放。
public abstract int com.ss.bytertc.engine.RTCEngine.unloadAllEffects()
卸载所有音效文件
返回值
注意
public abstract int com.ss.bytertc.engine.RTCEngine.pauseAllEffects()
暂停所有音效文件的播放
返回值
注意 该方法暂停所有音效文件的播放,可调用 resumeAllEffects 方法恢复播放。
public abstract int com.ss.bytertc.engine.RTCEngine.resumeAllEffects()
恢复所有音效文件的播放
返回值
注意
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)
注册音频数据回调观察者
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | IAudioFrameObserver | 音频数据回调观察者,详见IAudioFrameObserver。如果传入 null,则取消注册。 |
返回值 方法调用结果
注意 本方法需要与下面3个方法配合使用:setRecordingAudioFrameParameters、 setPlaybackAudioFrameParameters、 setMixedAudioFrameParameters
public abstract void com.ss.bytertc.engine.RTCEngine.setVideoInputType(
MediaInputType type)
配置视频采集源。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | MediaInputType | 要设置的视频输入模式,参看 MediaInputType。 |
注意
public abstract boolean com.ss.bytertc.engine.RTCEngine.pushExternalVideoFrame(
RTCVideoFrame frame)
推送外部视频帧。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | RTCVideoFrame | 视频帧的数据信息 |
返回值
注意
public abstract boolean com.ss.bytertc.engine.RTCEngine.pushExternalVideoFrame(
RTCVideoFrame frame,
boolean isDirectEncode)
推送外部视频帧。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | RTCVideoFrame | 视频帧的数据信息 |
| isDirectEncode | boolean | true:使用用户的纹理做硬编码;false:拷贝业务纹理后做硬编码 |
返回值
注意
public abstract void com.ss.bytertc.engine.RTCEngine.startLiveTranscoding(
LiveTranscoding liveTranscode,
ILiveTranscodingObserver observer)
开启合流转推,并设置合流的视频视图布局和音频属性。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| liveTranscode | LiveTranscoding | 合流转推配置参数,详见 LiveTranscoding |
| observer | ILiveTranscodingObserver | 端云一体合流转推观察者。 • 合流转推的状态和方式会通过回调上报 RTC Engine。 • 只有房间模式为直播模式,且用户角色为主播的用户才能调用此方法。 • 启用端云一体合流转推时,回调合流完成的音视频流和 SEI 信息给 App。详见 ILiveTranscodingObserver 数据类型。 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.stopLiveTranscoding()
停止合流转推。
public abstract void com.ss.bytertc.engine.RTCEngine.updateLiveTranscoding(
LiveTranscoding transcoding)
更新合流转推参数。
启用合流转推功能后,你可以使用此方法更新合流转推功能配置参数。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| transcoding | LiveTranscoding | 视频合流配置参数,详见 LiveTranscoding 类型。 |
public abstract int com.ss.bytertc.engine.RTCEngine.setVideoEncoderConfig(
List<VideoStreamDescription> videoStreamDescriptions)
启动推送多路视频流,设置推送多路流时的各路视频参数, 包括分辨率、帧率、码率、缩放模式、网络不佳时的回退策略等。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoStreamDescriptions | List |
要推送的多路视频流参数,参看: VideoStreamDescription |
返回值
public abstract int com.ss.bytertc.engine.RTCEngine.setVideoEncoderConfig(
List<VideoStreamDescription> videoStreamDescriptions,
VideoEncoderConfiguration.OrientationMode orientationMode)
设置推送多路流时的各路视频参数,以及视频旋转角度。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoStreamDescriptions | List |
要推送的多路视频流参数,参看 VideoStreamDescription |
| orientationMode | VideoEncoderConfiguration.OrientationMode | 视频编码的方向模式,参看 OrientationMode |
返回值
public abstract void com.ss.bytertc.engine.RTCEngine.enableAutoSubscribe(
SubscribeMode audioMode,
SubscribeMode videoMode)
开启/关闭自动订阅功能。
用户调用此方法设置房间中是否开启自动订阅功能。SDK 默认开启自动订阅功能。
如需关闭自动订阅功能,建议在调用 joinRoom 方法加入房间前设置完成。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioMode | SubscribeMode | 开启/关闭音频自动订阅功能。详见枚举类型 SubscribeMode 。 |
| videoMode | SubscribeMode | 开启/关闭视频自动订阅功能。详见枚举类型 SubscribeMode 。 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.subscribeStream(
String userId,
SubscribeConfig info)
订阅指定的房间内远端音视频流。
关闭自动订阅功能,使用手动订阅模式时用户调用此方法按需订阅房间中的音视频流。
此方法仅在关闭自动订阅功能时生效。用户需在加入房间前调用 enableAutoSubscribe 方法关闭自动订阅功能以使用手动订阅模式。
订阅流失败时,SDK 会按失败原因回调 onError 通知用户,具体错误可参考错误码 ErrorCode 描述。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userId | String | 要订阅的流的发布用户的用户的ID 。 |
| info | SubscribeConfig | 选择订阅配置,详见数据结构 SubscribeConfig 。 |
注意
public abstract void com.ss.bytertc.engine.RTCEngine.unSubscribe(
String userId,
boolean isScreen)
停止订阅指定的房间内远端音视频流。
关闭自动订阅功能,使用手动订阅模式时用户调用此方法停止订阅已订阅的音视频流。
此方法仅在开启手动订阅功能时生效,用户需在加入房间前调用 enableAutoSubscribe 方法关闭自动订阅功能以使用手动订阅模式。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| userId | String | 指定停止订阅的远端音视频流的发布用户的用户的ID 。 |
| isScreen | boolean | 是否是屏幕共享流。 |
注意
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)
推送外部音频数据。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | AudioFrame | 音频数据帧,详见 AudioFrame |
返回值 方法调用结果
注意
此方法推送音频数据的间隔为 10 毫秒。 samples (音频采样点个数)应该为 audioFrame.sampleRate / 100, 如设置采样率为 48000 时, 每次应该推送 480 个采样点。
音频采样格式为 S16。音频缓冲区内的数据格式必须为 PCM 数据,其容量大小应该为 audioFrame.samples
public abstract int com.ss.bytertc.engine.RTCEngine.pullExternalAudioFrame(
AudioFrame audioFrame)
拉取外部音频数据。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | AudioFrame | 音频数据帧,详见 AudioFrame |
返回值 方法调用结果
注意
此方法拉取音频数据的间隔为 10 毫秒,音频采样格式为 S16。 samples (音频采样点个数)应该为 audioFrame.sampleRate / 100, 如设置采样率为 48000 时, 每次应该拉取 480 个采样点。
音频采样格式为 S16。音频缓冲区内的数据格式必须为 PCM 数据,其容量大小应该为 audioFrame.samples
public abstract int com.ss.bytertc.engine.RTCEngine.publishScreen()
发布本地屏幕共享流。
返回值 0 :发布成功
-1 :发布失败
注意 1. 直播、游戏、云游戏房间模式下,此方法仅适用于角色为主播的用户。应用可以通过调用 setUserRole 方法设置用户角色。 2. 调用此方法发布本端屏幕共享流后,用户还需要通过设置定时任务周期性调用 pushScreenFrame 方法,将需要发送的屏幕数据推送给 SDK。 3. 调用该接口后远端能收到 onFirstRemoteVideoFrameRendered 和 onStreamAdd 事件。 4. 调用该接口后本地能收到 onFirstLocalVideoFrameCaptured 事件。
public abstract int com.ss.bytertc.engine.RTCEngine.unpublishScreen()
停止发布本地屏幕共享流。
返回值 0 :发布成功
-1 :发布失败
注意 调用该接口后远端会收到 onStreamRemove 事件
public abstract int com.ss.bytertc.engine.RTCEngine.startScreenSharing(
Intent mediaProjectionResultData,
ScreenSharingParameters parameters)
开启屏幕共享。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mediaProjectionResultData | Intent | Android屏幕共享Intent,申请屏幕共享权限之后拿到的Intent |
| parameters | ScreenSharingParameters | 屏幕共享流参数 ScreenSharingParameters |
返回值 0 :开启成功
-1 :开启失败
注意 1. 直播、游戏、云游戏房间模式下,此方法仅适用于角色为主播的用户。应用可以通过调用 setUserRole 方法设置用户角色。 2. 调用此方法发布本端屏幕共享流后,内部会自动采集当前屏幕数据 3. 调用该接口后远端能收到 onFirstRemoteVideoFrameRendered 和 onStreamAdd 事件。 4. 调用该接口后本地能收到 onFirstLocalVideoFrameCaptured 事件。
public abstract int com.ss.bytertc.engine.RTCEngine.updateScreenSharingParameters(
ScreenSharingParameters parameters)
修改屏幕共享流参数。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| parameters | ScreenSharingParameters | 屏幕共享流参数 ScreenSharingParameters |
返回值 0 :开启成功
-1 :开启失败
public abstract int com.ss.bytertc.engine.RTCEngine.stopScreenSharing()
关闭屏幕共享。
返回值 0 :关闭成功
-1 :关闭失败
注意 调用该接口后远端会收到 onStreamRemove 事件
public abstract boolean com.ss.bytertc.engine.RTCEngine.pushScreenFrame(
RTCVideoFrame videoFrame)
发布共享屏幕视频帧
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoFrame | RTCVideoFrame | 视频帧 RTCVideoFrame |
返回值 true :发布成功 false :发布失败
public abstract void com.ss.bytertc.engine.RTCEngine.setOnDestroyCompletedCallback(
Runnable callback)
设置引擎销毁后通知 App 的回调函数。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| callback | Runnable | App 接收引擎销毁的回调函数。 |
public abstract void com.ss.bytertc.engine.RTCEngine.setAudioPlayoutMixStream(
boolean enable,
int sampleRate,
int channelNum)
启动/停止外部音频流混音, 并设置混音数据格式
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| enable | boolean | • true: 启用外部音频流混音。 • false: 停止外部音频流混音。 |
| sampleRate | int | 音频采样率,单位HZ。目前支持的采样率有:8000HZ, 16000HZ, 32000HZ, 44100HZ,48000HZ。 |
| channelNum | int | 音频声道个数。目前支持单通道(1),双通道(2) |
注意
public abstract int com.ss.bytertc.engine.RTCEngine.getAudioMixingStreamCachedFrameNum()
获取SDK当前缓冲数据
返回值
注意 调用该方法可以实时获取缓存数据量,并以此数据为基准调整数据推送节奏来避免内存溢出
public abstract boolean com.ss.bytertc.engine.RTCEngine.pushAudioMixingStreamData(
byte[] audioFrame,
int frameNum)
向SDK推送混音的音频数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | byte[] | PCM音频数据,其格式与 setAudioPlayoutMixStream 保持一致。 |
| frameNum | int | 采样点数。若音频采样率为 48000HZ,则单个声道每秒的数据量为 48000 个采样点,10 毫秒的音频数据对应的采样点数为 480 个采样点。 |
返回值
注意
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 int com.ss.bytertc.engine.RTCEngine.setPublishFallbackOption(
PublishFallbackOption option)
设置发布的音视频流回退选项。
你可以调用这个接口来设置网络情况不佳或性能不足时只发送小流,以保证通话质量。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| option | PublishFallbackOption | 本地发布的音视频流回退选项。 • 0:(默认)上行网络较弱或性能不佳时,不对音视频流作回退处理。 • 1:上行网络较弱或性能不佳时,只发送视频小流。 |
返回值
注意
设置回退选项后,本端发布的音视频流发生回退或从回退中恢复时,对端会收到 onSimulcastSubscribeFallback 回调通知。
你可以调用 API 或者在服务端下发策略设置回退。当使用服务端下发配置实现时,下发配置优先级高于在客户端使用 API 设定的配置。
public abstract int com.ss.bytertc.engine.RTCEngine.setRemoteSubscribeFallbackOption(
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 void com.ss.bytertc.engine.RTCEngine.registerMetadataObserver(
IMetadataObserver observer)
注册 metadata 观察者,用于接收或发送 metadata,底层通过在视频帧中添加 SEI 数据实现该功能。
注册观察者后,发送的视频帧里面没有 SEI 信息, 会触发 onReadyToSendMetadata 回调。
注册观察者后,接收的视频帧里面有 SEI 信息,会触发接收 onMetadataReceived 回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | IMetadataObserver | metadata 观察者,详见:IMetadataObserver |
注意
public abstract int com.ss.bytertc.engine.RTCEngine.setBusinessId(
String businessId)
设置业务标识参数。
可通过 businessId 区分不同的业务场景(角色/策略等)。businessId 由客户自定义,相当于一个“标签”,可以分担和细化现在 AppId 的逻辑划分的功能。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| businessId | String | 用户设置的自己的 businessId 值。businessId 相当于一个 sub AppId,可以分担和细化现在 AppId 的逻辑划分的功能,但不需要鉴权。 businessId 只是一个标签,颗粒度需要用户自定义。 |
返回值
注意
public abstract void com.ss.bytertc.engine.RTCEngine.setAudioPerformanceProfile(
AudioPerformanceProfile profile)
通过设置音频处理策略等级,获得不同的音频处理质量,默认为 auto 模式。
auto 模式下,SDK 会根据应用所在机型等级,自动适配音频处理策略。一般情况下,使用 auto 模式就可满足你的音视频通话需求。
你应使用此方法,实现音频体验和系统性能占用之间的平衡:
如果你希望系统性能占用较低,你应设置较低的策略等级;如果你更在意音频质量,你应选择设置更高的策略等级。
音频处理策略详见 AudioPerformanceProfile。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| profile | AudioPerformanceProfile | 音频处理策略等级, 详见 AudioPerformanceProfile |
注意
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 | 许可证文件绝对路径 |
返回值 0: 许可证验证成功 !0: 许可证验证验证失败
注意 调用enableVideoEffect开始使用视频特效前,需要先调用这个方法进行许可证验证
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 void com.ss.bytertc.engine.RTCEngine.setVideoEffectPath(
List<String> effectPaths)
设置视频特效包,支持同时设置多个特效包
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectPaths | List |
特效包路径数组 |
注意 你须在调用 enableVideoEffect 后调用该方法。
public abstract void com.ss.bytertc.engine.RTCEngine.addVideoEffectPath(
List<String> effectPaths)
增加特效包,支持同时增加多个特效包
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectPaths | List |
要追加的特效包路径数组 |
public abstract void com.ss.bytertc.engine.RTCEngine.removeVideoEffectPath(
List<String> effectPaths)
移除特效包,支持同时移除多个特效包
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectPaths | List |
要移除的特效包路径数组 |
public abstract void com.ss.bytertc.engine.RTCEngine.updateVideoEffect(
String effectPath,
String key,
float value)
设置特效强度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| effectPath | String | 特效包路径 |
| key | String | 需要设置的特效名称。参看素材key对应说明。 |
| value | float | 要设置的强度值。取值范围为 [0,1],超出该范围设置无效。 |
注意 该接口仅适用于同时含有上述三个参数的特效资源,对于如大部分贴纸类等没有强度参数的特效,该接口调用无效。
public abstract void com.ss.bytertc.engine.RTCEngine.setVideoEffectColorFilter(
String resFile)
设置颜色滤镜
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| resFile | String | 滤镜资源包绝对路径 |
public abstract void com.ss.bytertc.engine.RTCEngine.setVideoEffectColorFilterIntensity(
float intensity)
设置颜色滤镜强度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| intensity | float | 滤镜强度。取值范围[0,1] ,超出范围时设置无效 |
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 class com.ss.bytertc.engine.utils.AudioFrame
音频帧数据封装
| 类型 | 名称 |
|---|---|
| byte[] | buffer |
| int | samples |
| AudioSampleRate | sampleRate |
| AudioChannel | channel |
public byte[] com.ss.bytertc.engine.utils.AudioFrame.buffer;
音频 PCM 数据
public int com.ss.bytertc.engine.utils.AudioFrame.samples;
音频数据的采样点个数
public AudioSampleRate com.ss.bytertc.engine.utils.AudioFrame.sampleRate;
音频采样率
public AudioChannel com.ss.bytertc.engine.utils.AudioFrame.channel;
音频声道
public class com.ss.bytertc.engine.VideoStreamDescription
视频流参数描述
| 类型 | 名称 |
|---|---|
| Integer> | videoSize |
| int | frameRate |
| int | maxKbps |
| ScaleMode | scaleMode |
| EncoderPreference | encodePreference |
public Pair<Integer, Integer> com.ss.bytertc.engine.VideoStreamDescription.videoSize;
视频大小
public int com.ss.bytertc.engine.VideoStreamDescription.frameRate;
视频帧率
public int com.ss.bytertc.engine.VideoStreamDescription.maxKbps;
最大码率
public ScaleMode com.ss.bytertc.engine.VideoStreamDescription.scaleMode = ScaleMode.SCALE_MODE_AUTO;
缩放策略,默认是拉伸
public EncoderPreference com.ss.bytertc.engine.VideoStreamDescription.encodePreference = EncoderPreference.MaintainFramerate;
编码策略偏好