public abstract class com.ss.bytertc.engine.RTCEngine
RtcEngine接口
| 返回 | 名称 |
|---|---|
| static synchronized RTCEngine | createEngine |
| static synchronized void | destroyEngine |
| 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)
创建引擎对象
如果当前线程中未创建引擎实例,那么你必须先使用此方法,以使用 RTC 提供的各种音视频能力。
如果当前线程中已创建了引擎实例,再次调用此方法时,会创建另一个独立的引擎实例。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| context | Context | Android Application Context |
| appId | String | 每个应用的唯一标识符,由 RTC 控制台随机生成的。不同的 AppId 生成的实例在 RTC 中进行音视频通话完全独立,无法互通。 |
| handler | IRTCEngineEventHandler | SDK 回调给应用层的 Handler,详见 IRTCEngineEventHandler |
| eglContext | Object | 如果需要支持外部纹理硬编码,则需要传入 eglContext。以 jObject 方式传入 eglContext |
| parameters | JSONObject | 用以覆盖默认参数的本引擎实例参数。JSON 字符串格式。 |
返回值
注意
你应注意保持 handler 的生命周期必须大于 RtcEngineRTCEngine 的生命周期,即 handler 必须在调用 createEngine 之前创建,在调用 destroyEngine 之后销毁。
如果你在同一个线程中创建了多个引擎实例,这些实例必须分别调用 destroyEngine 销毁。
public static synchronized void com.ss.bytertc.engine.RTCEngine.destroyEngine(
RTCEngine engine)
销毁引擎
销毁由 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 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 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 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.setLocalVideoMirrorMode(
MirrorMode mirrorMode)
设置采用前置摄像头采集时,是否开启镜像模式。
调用后,你会收到回调:OnMirrorStateChangedonMirrorStateChanged
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| mirrorMode | MirrorMode | 是否开启镜像模式, 参看 MirrorMode |
返回值
public abstract int com.ss.bytertc.engine.RTCEngine.switchCamera(
CameraId cameraId)
切换移动端前置/后置摄像头
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| cameraId | CameraId | 摄像头 ID,参看 CameraId |
返回值
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 void com.ss.bytertc.engine.RTCEngine.muteLocalVideo(
MuteState muteState)
停止/启动发送本地视频流,默认不发送。
无论你使用 SDK 的视频采集编码功能,还是使用自定义采集功能,你都应使用此接口启动发送本地视频流。
调用该方法后,房间中的其他用户会收到 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 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 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 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.registerLocalEncodedVideoFrameObserver(
ILocalEncodedVideoFrameObserver observer)
注册本地视频帧监测器。
无论使用内部采集还是自定义采集,调用该方法后,SDK 每监测到一帧本地视频帧时,都会将视频帧信息通过 onLocalEncodedVideoFrame 回调给用户
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| observer | ILocalEncodedVideoFrameObserver | 本地频帧监测器,参看 ILocalEncodedVideoFrameObserver 。将参数设置为 null 则取消注册。 |
注意 该方法可在进房前后的任意时间调用,越早调用越早监测视频帧
public abstract void com.ss.bytertc.engine.RTCEngine.setVideoSourceType(
VideoSourceType type)
切换视频输入源(自定义采集/内部采集)
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | VideoSourceType | 频输入源类型,参看 VideoSourceType |
注意
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.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.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.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 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 |
特效素材包路径数组 |
返回值
注意 你须在调用 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 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 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 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 | enableAudioMixingFrame |
| abstract void | disableAudioMixingFrame |
| abstract int | pushAudioMixingFrame |
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.startAudioMixing(
int id,
String filePath,
AudioMixingConfig config)
开始播放音乐文件及混音
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | int | 混音 ID 混音 ID 用于标识混音,请保证混音 ID 唯一性。 如果已经通过 preloadAudioMixing 将音效加载至内存,确保此处的 ID 与 preloadAudioMixing 设置的 ID 相同。 如果使用相同的 ID 重复调用本方法后,前一次混音会停止,后一次混音开始,SDK 会使用 onAudioMixingStateChanged 回调通知前一次混音已停止。 |
| filePath | String | 指定需要混音的本地文件的绝对路径,支持音频文件格式有: mp3,aac,m4a,3gp,wav。 可以通过传入不同的 ID 和 filepath 多次调用本方法,以实现同时播放多个混音文件,实现混音叠加。 |
| config | AudioMixingConfig | 混音配置 可以设置混音的播放次数、是否本地播放混音、以及是否将混音发送至远端,详见 AudioMixingConfig |
注意
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.stopAudioMixing(
int id)
停止播放音乐文件及混音
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | int | 混音 ID |
注意
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.pauseAudioMixing(
int id)
暂停播放音乐文件及混音
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | int | 混音 ID |
注意
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.resumeAudioMixing(
int id)
恢复播放音乐文件及混音
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | int | 混音 ID |
注意
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.preloadAudioMixing(
int id,
String filePath)
预加载指定音乐文件到内存中
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | int | 混音 ID 应用调用者维护,请保证唯一性。 如果使用相同的 ID 重复调用本方法,后一次会覆盖前一次。 如果先调用 startAudioMixing,再使用相同的 ID 调用本方法 ,会先回调 onAudioMixingStateChanged 上一个混音停止,然后加载后一个混音。 使用一个 ID 调用本方法预加载 A.mp3 后,如果需要使用相同的 ID 调用 startAudioMixing 播放 B.mp3,请先调用 unloadAudioMixing 卸载 A.mp3 ,否则会报错 AUDIO_MIXING_ERROR_LOAD_CONFLICT。 |
| filePath | String | 指定需要混音的本地文件的绝对路径,支持音频文件格式有: mp3,aac,m4a,3gp,wav。 如果音乐文件长度超过 20s,会回调加载失败,见 onAudioMixingStateChanged。 |
注意
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.unloadAudioMixing(
int id)
卸载指定音乐文件
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | int | 混音 ID |
注意 不论音乐文件是否播放,调用本方法卸载该文件后,SDK 会回调通知混音已停止,见 onAudioMixingStateChanged。
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.setAudioMixingVolume(
int id,
int volume,
AudioMixingType type)
调节音乐文件在本地和远端播放的音量大小
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | int | 混音 ID |
| volume | int | 音乐文件播放音量范围为 0~400。 • 0:静音 • 100:原始音量 • 400: 最大可调音量 (自带溢出保护) |
| type | AudioMixingType | 混音播放类型 设置音乐文件是否本地播放、以及是否发送到远端,由此控制音乐文件本地或远端播放的音量,详见 AudioMixingType。 |
注意
public abstract int com.ss.bytertc.engine.audio.IAudioMixingManager.getAudioMixingDuration(
int id)
获取音乐文件时长
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | int | 混音 ID |
返回值
注意 调用本方法获取音乐文件时长前,需要先调用 preloadAudioMixing 或 startAudioMixing。
public abstract int com.ss.bytertc.engine.audio.IAudioMixingManager.getAudioMixingCurrentPosition(
int id)
获取音乐文件播放进度
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | int | 混音 ID |
返回值
注意 调用本方法获取音乐文件播放进度前,需要先调用 startAudioMixings tartAudioMixing 开始播放音乐文件。
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.setAudioMixingPosition(
int id,
int position)
设置音乐文件的播放位置
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| id | int | 混音 ID |
| position | int | 进度条位置 参数为整数,单位为毫秒。 |
注意
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.enableAudioMixingFrame(
AudioMixingType type)
启动外部音频流混音
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| type | AudioMixingType | 混音播放类型 设置外部音频流是否本地播放、以及是否发送到远端,详见 AudioMixingType。 |
注意
public abstract void com.ss.bytertc.engine.audio.IAudioMixingManager.disableAudioMixingFrame()
关闭外部音频流混音
注意 使用 enableAudioMixingFrame 开启外部音频流混音后,请使用本方法关闭该混音。
public abstract int com.ss.bytertc.engine.audio.IAudioMixingManager.pushAudioMixingFrame(
AudioFrame audioFrame)
向 SDK 推送外部音频帧数据
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| audioFrame | AudioFrame | 音频帧 详见 AudioFrame。 |
返回值
注意
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;
编码策略偏好