RtcMode

public enum com.ss.bytertc.engine.RTCEngine.RtcMode

引擎工作模式

枚举值

类型 说明
RTC_MODE_GENERAL(0) 通用模式,该模式下只能进行普通会议模式的语音通话,开启自动发布订阅。
RTC_MODE_LOCAL_AUDIO(1) 游戏语音模式,该模式下关闭自动发布订阅,会按照游戏业务的策略进行主动发布订阅语音。

成员函数

返回 名称
int value

函数说明

value

public int com.ss.bytertc.engine.RTCEngine.RtcMode.value()

获取当前值

返回值 当前值

SubscribeMode

public enum com.ss.bytertc.engine.RTCEngine.SubscribeMode

订阅模式选项。业务方在加入房间前,调用 enableAutoSubscribe 接口设置订阅模式。

枚举值

类型 说明
AUTO_SUBSCRIBE_MODE(0) 自动订阅模式。SDK 会自动为用户订阅房间中的每一路流。默认值。
MANUAL_SUBSCRIBE_MODE(1) 手动订阅模式。SDK 不为自动订阅流。

RangeAudioMode

public enum com.ss.bytertc.engine.RTCEngine.RangeAudioMode

语音通话模式 在小队语音里用这个接口设置自己的发送模式

枚举值

类型 说明
RANGE_AUDIO_MODE_UNDEFINED(0) 默认模式
RANGE_AUDIO_MODE_TEAM(1) 小队模式
RANGE_AUDIO_MODE_WORLD(2) 世界模式

成员函数

返回 名称
int value

函数说明

value

public int com.ss.bytertc.engine.RTCEngine.RangeAudioMode.value()

获取当前值

返回值 当前值

ClientRole

public enum com.ss.bytertc.engine.RTCEngine.ClientRole

用户角色。

枚举值

类型 说明
CLIENT_ROLE_BROADCASTER 主播角色。该角色用户可在房间内发布和订阅音视频流,房间中的其他用户可以感知到该用户的存在。
CLIENT_ROLE_SILENT_AUDIENCE 静默观众角色。该众角色用户只可在房间内订阅音视频流,房间中的其他用户无法感知到该用户的存在。

ChannelProfile

public enum com.ss.bytertc.engine.RTCEngine.ChannelProfile

房间模式

枚举值

类型 说明
CHANNEL_PROFILE_COMMUNICATION 通信模式。

如果希望在网络较差时,也能获得较好的通信效果,应当选择此模式。
CHANNEL_PROFILE_LIVE_BROADCASTING 直播模式。

如果对音质,画质要求较高,应当选择此模式。
CHANNEL_PROFILE_GAME 游戏模式。

为低端机提供了额外的性能优化,并提升了游戏录屏对 iOS 其他进程的兼容性。
CHANNEL_PROFILE_CLOUD_GAME 云游戏模式。

适用于低延迟、高码率的业务场景。典型的场景如云游戏。

该模式下,音视频通话延时会明显降低,但同时弱网抗性、通话音质等均会受到一定影响。在使用此模式前,强烈建议咨询技术支持同学。
CHANNEL_PROFILE_LOW_LATENCY 低时延模式。SDK 会使用低延时设置。

适用于非游戏或云游戏,又需要极低延时的场景。

该模式下,音视频通话延时会明显降低,但同时弱网抗性、通话音质等均会受到一定影响。在使用此模式前,强烈建议咨询技术支持同学。

AudioScenarioType

public enum com.ss.bytertc.engine.RTCEngine.AudioScenarioType

音频场景类型。
选择音频场景后,RTC 会自动根据客户端音频路由和发布订阅状态,适用通话音量/媒体音量。
你可以调用 setAudioScenario 设置音频场景。
如果以下音频场景类型无法满足你的业务需要,请联系技术支持同学进行定制。

枚举值

类型 说明
AUDIO_SCENARIO_MUSIC 音乐场景。默认为此场景。

此场景适用于对音乐表现力有要求的场景,如音乐直播等。

音频路由和发布订阅状态,到音量类型的映射如下:






仅发布音视频流仅订阅音视频流发布并订阅音视频流备注
设备自带麦克风和扬声器/听筒媒体音量媒体音量通话音量/
有线耳机媒体音量媒体音量媒体音量/
蓝牙耳机媒体音量媒体音量媒体音量即使蓝牙耳机有麦克风,也只能使用设备自带麦克风进行本地音频采集。
AUDIO_SCENARIO_HIGHQUALITY_COMMUNICATION 高质量通话场景。

此场景适用于对音乐表现力有要求,但又希望能够使用蓝牙耳机上自带的麦克风进行音频采集的场景。

此场景可以兼顾外放/使用蓝牙耳机时的音频体验,并避免使用蓝牙耳机时音量类型切换导致的听感突变。

音频路由和发布订阅状态,到音量类型的映射如下:






仅发布音视频流仅订阅音视频流发布并订阅音视频流 备注
设备自带麦克风和扬声器/听筒媒体音量媒体音量通话音量/
有线耳机媒体音量媒体音量媒体音量/
蓝牙耳机通话音量通话音量通话音量使用蓝牙耳机上自带的麦克风进行音频采集。
AUDIO_SCENARIO_COMMUNICATION 纯通话音量场景。

此场景下,无论客户端音频路由情况和发布订阅状态,全程使用通话音量。
适用于需要频繁上下麦的通话或会议场景。

此场景可以保持统一的音频模式,不会有音量突变的听感;
最大程度地消除回声,使通话清晰度达到最优;
使用蓝牙耳机时,能够使用蓝牙耳机上自带的麦克风进行音频采集。

但是,会压低使用媒体音量进行播放的其他音频的音量,且音质会变差。
AUDIO_SCENARIO_MEDIA 纯媒体场景。一般不建议使用。

此场景下,无论客户端音频路由情况和发布订阅状态,全程使用媒体音量。

外放通话时,极易出现回声和啸叫。

SubscribeFallbackOptions

public enum com.ss.bytertc.engine.RTCEngine.SubscribeFallbackOptions

订阅回退选项。

枚举值

类型 说明
SUBSCRIBE_FALLBACK_OPTIONS_DISABLED(0) 下行网络较弱时,不对音视频流作回退处理,默认值。
SUBSCRIBE_FALLBACK_OPTIONS_STREAM_LOW(1) 下行网络较弱时只接收视频小流。
SUBSCRIBE_FALLBACK_OPTIONS_AUDIO_ONLY(2) 下行网络较弱时,先尝试只接收视频小流;如果网络环境无法显示视频,则再回退到只接收远端订阅的音频流。

PublishFallbackOption

public enum com.ss.bytertc.engine.RTCEngine.PublishFallbackOption

发布回退选项

枚举值

类型 说明
kPublishFallbackDisable(0) 关闭发送视频流时的性能回退功能,默认值
kPublishFallbackSimulcastSmallVideoOnly(1) 开启在网络情况不佳或设备性能不足时只发送小流的功能

RemoteUserPriority

public enum com.ss.bytertc.engine.RTCEngine.RemoteUserPriority

远端用户优先级,在性能不足需要回退时,会优先回退优先级低的用户的音视频流。

枚举值

类型 说明
REMOTE_USER_PRIORITY_LOW(0) 用户优先级为低,默认值。
REMOTE_USER_PRIORITY_MEDIUM(100) 用户优先级为正常。
REMOTE_USER_PRIORITY_HIGH(200) 用户优先级为高。

ConnectionState

public enum com.ss.bytertc.engine.RTCEngine.ConnectionState

SDK 与信令服务器连接状态。

枚举值

类型 说明
CONNECTION_START 占位,不使用。
CONNECTION_STATE_DISCONNECTED 连接断开。
CONNECTION_STATE_CONNECTING 首次连接,正在连接中。
CONNECTION_STATE_CONNECTED 首次连接成功。
CONNECTION_STATE_RECONNECTING 连接断开后重新连接中。
CONNECTION_STATE_RECONNECTED 连接断开后重连成功。

ProblemFeedback

public enum com.ss.bytertc.engine.RTCEngine.ProblemFeedback

音视频质量反馈问题类型

枚举值

类型 说明
PROBLEM_NONE(0, "No problem") 没有问题
PROBLEM_OTHER_MSG (1,"Other Issues") 其他问题
PROBLEM_AUDIO_NOT_CLEAR (1 << 1, "Sound is not clear") 声音不清晰
PROBLEM_VIDEO_NOT_CLEAR (1 << 2, "Video is not clear") 视频不清晰
PROBLEM_SYNC (1 << 3, "Audio and video is not synchronized") 音视频不同步
PROBLEM_AUDIO_LAGGING (1 << 4, "Audio lagging") 音频卡顿
PROBLEM_VIDEO_LAGGING (1 << 5, "Video lagging") 视频卡顿
PROBLEM_CONNECT_FAILED (1 << 6, "Connect failed") 无法连接
PROBLEM_AUDIO_DELAY (1 << 7, "Audio Delay") 音频延迟
PROBLEM_VIDEO_DELAY (1 << 8, "Video Delay") 视频延迟
PROBLEM_DISCONNECT (1 << 9, "Disconnect") 连接断开
PROBLEM_NO_AUDIO (1 << 10, "No audio") 无声音
PROBLEM_NO_VIDEO (1 << 11, "No video") 无画面
PROBLEM_AUDIO_STRENGTH (1 << 12, "Sound is either too loud or too quiet") 声音过大或过小
PROBLEM_ECHO (1 << 13, "Echo Noise") 回声噪音

RecordingType

public enum com.ss.bytertc.engine.RTCEngine.RecordingType

本地录制的媒体类型

枚举值

类型 说明
RECORD_AUDIO_ONLY(0) 只录制音频
RECORD_VIDEO_ONLY(1) 只录制视频
RECORD_VIDEO_AND_AUDIO(2) 同时录制音频和视频

RecordingFileType

public enum com.ss.bytertc.engine.RTCEngine.RecordingFileType

本地录制文件的存储格式

枚举值

类型 说明
RECORDING_FILE_TYPE_AAC(0) aac 格式文件
RECORDING_FILE_TYPE_MP4(1) mp4 格式文件

AudioFormat

public class com.ss.bytertc.engine.data.AudioFormat

音频参数格式

成员变量

类型 名称
AudioSampleRate sampleRate
AudioChannel channel

变量说明

sampleRate

public AudioSampleRate com.ss.bytertc.engine.data.AudioFormat.sampleRate;

音频采样率,详见 AudioSampleRate

channel

public AudioChannel com.ss.bytertc.engine.data.AudioFormat.channel;

音频声道,详见 AudioChannel

AudioMixingConfig

public class com.ss.bytertc.engine.data.AudioMixingConfig

混音配置

成员变量

类型 名称
AudioMixingType type
int playCount

变量说明

type

public AudioMixingType com.ss.bytertc.engine.data.AudioMixingConfig.type;

混音播放类型,详见 AudioMixingType

playCount

public int com.ss.bytertc.engine.data.AudioMixingConfig.playCount;

混音播放次数

AudioMixingError

public enum com.ss.bytertc.engine.data.AudioMixingError

音频混音文件播放错误码。

枚举值

类型 说明
AUDIO_MIXING_ERROR_OK(0) 混音错误码,正常
AUDIO_MIXING_ERROR_PRELOAD_FAILED(1) 预加载失败,找不到混音文件或者文件长度超出 20s
AUDIO_MIXING_ERROR_START_FAILED(2) 混音开启失败,找不到混音文件或者混音文件打开失败
AUDIO_MIXING_ERROR_ID_NOT_FOUND(3) 混音 ID 异常
AUDIO_MIXING_ERROR_SET_POSITION_FAILED(4) 设置混音文件的播放位置出错
AUDIO_MIXING_ERROR_INVALID_VOLUME(5) 音量参数不合法,仅支持设置的音量值为[0 400]
AUDIO_MIXING_ERROR_LOAD_CONFLICT(6) 播放的文件与预加载的文件不一致,请先使用 unloadAudioMixing 卸载文件

AudioMixingState

public enum com.ss.bytertc.engine.data.AudioMixingState

音频混音文件播放状态。

枚举值

类型 说明
AUDIO_MIXING_STATE_PRELOADED(0) 混音已加载
AUDIO_MIXING_STATE_PLAYING(1) 混音正在播放
AUDIO_MIXING_STATE_PAUSED(2) 混音暂停
AUDIO_MIXING_STATE_STOPPED(3) 混音停止
AUDIO_MIXING_STATE_FAILED(4) 混音播放失败
AUDIO_MIXING_STATE_FINISHED(5) 混音播放结束

AudioMixingType

public enum com.ss.bytertc.engine.data.AudioMixingType

混音播放类型

枚举值

类型 说明
AUDIO_MIXING_TYPE_PLAYOUT(0) 仅本地播放
AUDIO_MIXING_TYPE_PUBLISH(1) 仅远端播放
AUDIO_MIXING_TYPE_PLAYOUT_AND_PUBLISH(2) 本地和远端同时播放

AudioPlaybackDevice

public enum com.ss.bytertc.engine.data.AudioPlaybackDevice

音频设备类型。
音频设备变化时 SDK 通过 onAudioPlaybackDeviceChanged 回调当前音频设备播放类型。

枚举值

类型 说明
AUDIO_PLAYBACK_DEVICE_HEADSET(1) 有线耳机
AUDIO_PLAYBACK_DEVICE_EARPIECE(2) 听筒
AUDIO_PLAYBACK_DEVICE_SPEAKERPHONE(3) 扬声器
AUDIO_PLAYBACK_DEVICE_HEADSET_BLUETOOTH(4) 蓝牙耳机

成员函数

返回 名称
int value

函数说明

value

public int com.ss.bytertc.engine.data.AudioPlaybackDevice.value()

获取当前值

返回值 当前值

CameraId

public enum com.ss.bytertc.engine.data.CameraId

移动端摄像头

枚举值

类型 说明
CAMERA_ID_FRONT (0) 前置摄像头
CAMERA_ID_BACK (1) 后置摄像头(默认设置)

MediaInputType

public enum com.ss.bytertc.engine.data.MediaInputType

视频输入类型

枚举值

类型 说明
MEDIA_INPUT_TYPE_EXTERNAL(0) 自定义采集。

设置完成后方可直接向 SDK 推送视频帧。
MEDIA_INPUT_TYPE_INTERNAL(1) 内部 SDK 采集。

此设置仅切换至内部采集,你需继续调用 startVideoCapture 开启内部采集。

MirrorMode

public enum com.ss.bytertc.engine.data.MirrorMode

是否开启镜像模式

枚举值

类型 说明
MIRROR_MODE_OFF(0) 不开启(默认设置)
MIRROR_MODE_ON(1) 开启

MuteState

public enum com.ss.bytertc.engine.data.MuteState

停止/启动发送音/视频流的状态

枚举值

类型 说明
MUTE_STATE_OFF(0) 启动发送音/视频流的状态(默认设置)
MUTE_STATE_ON(1) 停止发送音/视频流的状态

StreamIndex

public enum com.ss.bytertc.engine.data.StreamIndex

流属性

枚举值

类型 说明
STREAM_INDEX_MAIN(0) 主流。

包括:

+ 通过默认摄像头/麦克风采集到的视频/音频;

+ 通过自定义设备采集到的视频/音频。
STREAM_INDEX_SCREEN(1) 屏幕流。

屏幕共享时共享的视频流,或来自声卡的本地播放音频流。

IRTCASREngineEventHandler

public interface com.ss.bytertc.engine.handler.IRTCASREngineEventHandler

语音识别服务使用状态回调

成员函数

返回 名称
void onSuccess
void onMessage
void onError

函数说明

onSuccess

public void com.ss.bytertc.engine.handler.IRTCASREngineEventHandler.onSuccess()

语音识别服务开启成功回调

onMessage

public void com.ss.bytertc.engine.handler.IRTCASREngineEventHandler.onMessage(
    String message)

语音转文字成功后回调,该回调返回识别后的全量消息。

传入参数

参数名 类型 说明
message String 识别完成后得到的文字消息

注意 若识别过程中发生了网络连接中断,则重连后回调的信息中只包含重连后识别的文字消息,不再包含上一次连接后识别的消息。

onError

public void com.ss.bytertc.engine.handler.IRTCASREngineEventHandler.onError(
    int errorCode,
    String errorMessage)

当语音识别服务内部发生错误事件时触发该回调。

传入参数

参数名 类型 说明
errorCode int 错误码
• <0: 参数错误或 API 调用顺序错误,参看 RTCASRErrorCode;
• >0: 参看 语音识别服务错误码
errorMessage String 错误原因说明。

RTCASRErrorCode

public enum com.ss.bytertc.engine.handler.IRTCASREngineEventHandler.RTCASRErrorCode

语音识别服务错误码。
除网络原因导致的错误,语音识别服务内部会自行重试之外,其他错误都会停止服务,此时建议再次调用 startASR 重启语音识别功能。

枚举值

类型 说明
RTCASRErrorNetworkInterrupted(-1) 网络连接中断,服务不可用,内部会进行重连
RTCASRErrorAlreadyStarted(-2) 重复调用 startASR。开启语音识别服务后,你需要先调用 stopASR 停止语音识别服务,才能二次调用 startASR 再次开启服务。
RTCASRErrorTokenEmpty(-3) 语音识别服务所需 token 为空
RTCErrorSignatureKeyEmpty(-4) Signature 鉴权模式下 secretKey 为空
RTCASRErrorUserIdNull(-5) 用户 ID 为空
RTCASRErrorAPPIDNull(-6) 应用 ID 为空
RTCASRErrorClusterNull(-7) 语音识别服务 cluster 为空
RTCASRErrorOperationDenied(-8) 语音识别服务连接失败,该版本没有语音识别功能,请联系 RTC 技术支持。

NetworkQuality

public class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.NetworkQuality

所属用户的媒体流网络质量。

成员变量

类型 名称
int NETWORK_QUALITY_UNKNOWN
int NETWORK_QUALITY_EXCELLENT
int NETWORK_QUALITY_GOOD
int NETWORK_QUALITY_POOR
int NETWORK_QUALITY_BAD
int NETWORK_QUALITY_VERY_BAD

变量说明

NETWORK_QUALITY_UNKNOWN

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.NetworkQuality.NETWORK_QUALITY_UNKNOWN = 0;

媒体流网络质量未知。

NETWORK_QUALITY_EXCELLENT

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.NetworkQuality.NETWORK_QUALITY_EXCELLENT = 1;

媒体流网络质量极好。

NETWORK_QUALITY_GOOD

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.NetworkQuality.NETWORK_QUALITY_GOOD = 2;

媒体流网络质量好。

NETWORK_QUALITY_POOR

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.NetworkQuality.NETWORK_QUALITY_POOR = 3;

媒体流网络质量较差但不影响沟通。

NETWORK_QUALITY_BAD

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.NetworkQuality.NETWORK_QUALITY_BAD = 4;

媒体流网络质量差沟通不顺畅。

NETWORK_QUALITY_VERY_BAD

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.NetworkQuality.NETWORK_QUALITY_VERY_BAD = 5;

媒体流网络质量非常差。

FallbackOrRecoverReason

public enum com.ss.bytertc.engine.handler.IRTCEngineEventHandler.FallbackOrRecoverReason

远端订阅流发生回退或恢复的原因

枚举值

类型 说明
FALLBACK_OR_RECOVER_REASON_UNKNOWN(-1) 其他原因,非带宽和性能原因引起的回退或恢复。默认值
FALLBACK_OR_RECOVER_REASON_SUBSCRIBE_FALLBACK_BY_BANDWIDTH(0) 由带宽不足导致的订阅端音视频流回退。
FALLBACK_OR_RECOVER_REASON_SUBSCRIBE_FALLBACK_BY_PERFORMANCE(1) 由性能不足导致的订阅端音视频流回退。
FALLBACK_OR_RECOVER_REASON_SUBSCRIBE_RECOVER_BY_BANDWIDTH(2) 由带宽恢复导致的订阅端音视频流恢复。
FALLBACK_OR_RECOVER_REASON_SUBSCRIBE_RECOVER_BY_PERFORMANCE(3) 由性能恢复导致的订阅端音视频流恢复。
FALLBACK_OR_RECOVER_REASON_PUBLISH_FALLBACK_BY_BANDWIDTH(4) 由带宽不足导致的发布端音视频流回退。
FALLBACK_OR_RECOVER_REASON_PUBLISH_FALLBACK_BY_PERFORMANCE(5) 由性能不足导致的发布端音视频流回退。
FALLBACK_OR_RECOVER_REASON_PUBLISH_RECOVER_BY_BANDWIDTH(6) 由带宽恢复导致的发布端音视频流恢复。
FALLBACK_OR_RECOVER_REASON_PUBLISH_RECOVER_BY_PERFORMANCE(7) 由性能恢复导致的发布端音视频流恢复。

StreamRemoveReason

public enum com.ss.bytertc.engine.handler.IRTCEngineEventHandler.StreamRemoveReason

房间内远端流移除原因。

枚举值

类型 说明
STREAM_REMOVE_REASON_UNPUBLISH 远端用户停止发布流。
STREAM_REMOVE_REASON_PUBLISH_FAILED 远端用户发布流失败。
STREAM_REMOVE_REASON_KEEP_LIVE_FAILED 保活失败。
STREAM_REMOVE_REASON_CLIENT_DISCONNECTED 远端用户断网。
STREAM_REMOVE_REASON_REPUBLISH 远端用户重新发布流。
STREAM_REMOVE_REASON_OTHER 其他原因。

LocalVideoStreamState

public enum com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStreamState

本地视频流状态

枚举值

类型 说明
LOCAL_VIDEO_STREAM_STATE_STOPPED(0) 本地视频采集停止状态(默认初始状态)
本地视频采集关闭时回调该状态,对应错误码 LOCAL_VIDEO_STREAM_ERROR_OKLocalVideoStreamError
LOCAL_VIDEO_STREAM_STATE_RECORDING(1) 本地视频采集设备启动成功
本地视频采集开启时回调该状态,对应错误码 LOCAL_VIDEO_STREAM_ERROR_OKLocalVideoStreamError
LOCAL_VIDEO_STREAM_STATE_ENCODING(2) 本地视频采集后,首帧编码成功
本地视频首帧编码成功时回调该状态,对应错误码 LOCAL_VIDEO_STREAM_ERROR_OKLocalVideoStreamError
LOCAL_VIDEO_STREAM_STATE_FAILED(3) 本地视频启动失败
+ 本地视频采集设备启动失败,对应错误码 LOCAL_VIDEO_STREAM_ERROR_FAILURELocalVideoStreamError

+ 检测到没有视频采集设备权限,对应错误码 LOCAL_VIDEO_STREAM_ERROR_DEVICE_NO_PERMISSIONLocalVideoStreamError

+ 视频编码失败,对应错误码 LOCAL_VIDEO_STREAM_ERROR_ENCODE_FAILURELocalVideoStreamError

LocalVideoStreamError

public enum com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStreamError

本地视频状态改变时的错误码

枚举值

类型 说明
LOCAL_VIDEO_STREAM_ERROR_OK(0) 状态正常(本地视频状态改变正常时默认返回值)
LOCAL_VIDEO_STREAM_ERROR_FAILURE(1) 本地视频流发布失败
LOCAL_VIDEO_STREAM_ERROR_DEVICE_NO_PERMISSION(2) 没有权限启动本地视频采集设备
LOCAL_VIDEO_STREAM_ERROR_DEVICE_BUSY(3) 本地视频采集设备被占用
LOCAL_VIDEO_STREAM_ERROR_DEVICE_NOT_FOUND(4) 本地视频采集设备不存在或已移除
LOCAL_VIDEO_STREAM_ERROR_CAPTURE_FAILURE(5) 本地视频采集失败,建议检查采集设备是否正常工作
LOCAL_VIDEO_STREAM_ERROR_ENCODE_FAILURE(6) 本地视频编码失败

RemoteVideoState

public enum com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoState

远端视频流状态。状态改变时,会收到回调:onRemoteVideoStateChanged

枚举值

类型 说明
REMOTE_VIDEO_STATE_STOPPED(0) 远端视频流默认初始状态
在以下时机回调该状态:

+ 本地用户停止接收远端视频流,对应错误码 REMOTE_VIDEO_REASON_LOCAL_MUTEDRemoteVideoStateReason

+ 远端用户停止发送视频流,对应错误码 REMOTE_VIDEO_REASON_REMOTE_MUTEDRemoteVideoStateReason

+ 远端用户离开房间,对应错误码 REMOTE_VIDEO_REASON_REMOTE_OFFLINERemoteVideoStateReason
REMOTE_VIDEO_STATE_STARTING(1) 本地用户已接收远端视频首包
收到远端视频首包时回调该状态,对应错误码 REMOTE_VIDEO_REASON_LOCAL_UNMUTEDRemoteVideoStateReason
REMOTE_VIDEO_STATE_DECODING(2) 远端视频流正在解码,正常播放
在以下时机回调该状态:

+ 成功解码远端视频首帧,对应错误码 REMOTE_VIDEO_REASON_LOCAL_UNMUTEDRemoteVideoStateReason

+ 网络由阻塞恢复正常,对应错误码 REMOTE_VIDEO_REASON_NETWORK_RECOVERYRemoteVideoStateReason

+ 本地用户恢复接收远端视频流,对应错误码 REMOTE_VIDEO_REASON_LOCAL_UNMUTEDRemoteVideoStateReason

+ 远端用户恢复发送视频流,对应错误码 REMOTE_VIDEO_REASON_REMOTE_UNMUTEDRemoteVideoStateReason
REMOTE_VIDEO_STATE_FROZEN(3) 远端视频流卡顿
网络阻塞、丢包率大于40%时回调该状态,对应错误码 REMOTE_VIDEO_REASON_NETWORK_CONGESTIONRemoteVideoStateReason
REMOTE_VIDEO_STATE_FAILED(4) 远端视频流播放失败

RemoteVideoStateChangeReason

public enum com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStateChangeReason

远端视频流状态改变的原因

枚举值

类型 说明
REMOTE_VIDEO_STATE_CHANGE_REASON_INTERNAL(0) 内部原因
REMOTE_VIDEO_STATE_CHANGE_REASON_NETWORK_CONGESTION(1) 网络阻塞
REMOTE_VIDEO_STATE_CHANGE_REASON_NETWORK_RECOVERY(2) 网络恢复正常
REMOTE_VIDEO_STATE_CHANGE_REASON_LOCAL_MUTED(3) 本地用户停止接收远端视频流或本地用户禁用视频模块
REMOTE_VIDEO_STATE_CHANGE_REASON_LOCAL_UNMUTED(4) 本地用户恢复接收远端视频流或本地用户启用视频模块
REMOTE_VIDEO_STATE_CHANGE_REASON_REMOTE_MUTED(5) 远端用户停止发送视频流或远端用户禁用视频模块
REMOTE_VIDEO_STATE_CHANGE_REASON_REMOTE_UNMUTED(6) 远端用户恢复发送视频流或远端用户启用视频模块
REMOTE_VIDEO_STATE_CHANGE_REASON_REMOTE_OFFLINE(7) 远端用户离开频道
状态转换参看 onStreamRemove

RecordingState

public enum com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RecordingState

本地录制的状态

枚举值

类型 说明
RECORDING_STATE_ERROE(0) 录制异常
RECORDING_STATE_PROCESSING(1) 录制进行中
RECORDING_STATE_SUCCESS(2) 录制文件保存成功,调用 stopFileRecording 结束录制之后才会收到该状态码。

RecordingErrorCode

public enum com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RecordingErrorCode

本地录制的错误码

枚举值

类型 说明
RECORDING_ERROR_CODE_OK(0) 录制正常
RECORDING_ERROR_CODE_NO_PERMISSION(-1) 没有文件写权限
RECORDING_ERROR_CODE_NOT_SUPPORT(-2) 当前版本 SDK 不支持本地录制功能,请联系技术支持人员
RECORDING_ERROR_CODE_NO_OTHER(-3) 其他异常

ConnectionState

public enum com.ss.bytertc.engine.handler.IRTCEngineEventHandler.ConnectionState

SDK 与信令服务器连接状态。

枚举值

类型 说明
CONNECTION_STATE_DISCONNECTED(1) 连接断开。
CONNECTION_STATE_CONNECTING(2) 首次连接,正在连接中。
CONNECTION_STATE_CONNECTED(3) 首次连接成功。
CONNECTION_STATE_RECONNECTING(4) 连接断开后重新连接中。
CONNECTION_STATE_RECONNECTED(5) 连接断开后重连成功。
CONNECTION_STATE_LOST(6) 网络连接断开超过 10 秒,仍然会继续重连。

RemoteStreamSwitch

public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamSwitch

流切换信息。本地用户订阅的远端流触发回退策略时的流切换信息。

成员变量

类型 名称
String uid
boolean isScreen
int before_video_index
int after_video_index
boolean before_enable
boolean after_enable
FallbackOrRecoverReason reason

变量说明

uid

public String com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamSwitch.uid;

订阅的音视频流的发布者的用户 ID

isScreen

public boolean com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamSwitch.isScreen;

是否是屏幕共享流

before_video_index

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamSwitch.before_video_index;

流切换前订阅视频流的分辨率对应的索引

after_video_index

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamSwitch.after_video_index;

流切换后订阅视频流的分辨率对应的索引

before_enable

public boolean com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamSwitch.before_enable;

流切换前是否有视频流

after_enable

public boolean com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamSwitch.after_enable;

流切换后是否有视频流

reason

public FallbackOrRecoverReason com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamSwitch.reason;

流切换原因,详见类型 FallbackOrRecoverReason 。

RtcUser

public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RtcUser

用户信息

成员变量

类型 名称
String userId
String metaData

变量说明

userId

public String com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RtcUser.userId;

用户 id

metaData

public String com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RtcUser.metaData;

元数据

FirstFrameSendState

public enum com.ss.bytertc.engine.handler.IRTCEngineEventHandler.FirstFrameSendState

首帧发送状态

枚举值

类型 说明
FIRST_FRAME_SEND_STATE_SENDING(0) 发送中
FIRST_FRAME_SEND_STATE_SENT(1) 发送成功
FIRST_FRAME_SEND_STAT_END(2) 发送失败

FirstFramePlayState

public enum com.ss.bytertc.engine.handler.IRTCEngineEventHandler.FirstFramePlayState

首帧播放状态

枚举值

类型 说明
FIRST_FRAME_PLAY_STATE_PLAYING(0)
FIRST_FRAME_PLAY_STATE_PLAYED(1)
FIRST_FRAME_PLAY_STATE_END(2)

RTCRoomStats

public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats

通话相关的统计信息

成员变量

类型 名称
int totalDuration
long txBytes
long rxBytes
int txKBitRate
int rxKBitRate
int txAudioKBitRate
int rxAudioKBitRate
int txVideoKBitRate
int rxVideoKBitRate
int users
double cpuTotalUsage
double cpuAppUsage
double txLostrate
double rxLostrate
int rtt

成员函数

返回 名称
void reset

变量说明

totalDuration

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.totalDuration;

用户进房开始通话后的总时长,单位为 s,累计值

txBytes

public long com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.txBytes;

本地用户的总发送字节数 (bytes),累计值

rxBytes

public long com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.rxBytes;

本地用户的总接收字节数 (bytes),累计值

txKBitRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.txKBitRate;

发送码率(kbps),获取该数据时的瞬时值

rxKBitRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.rxKBitRate;

接收码率(kbps),获取该数据时的瞬时值

txAudioKBitRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.txAudioKBitRate;

音频包的发送码率(kbps),获取该数据时的瞬时值

rxAudioKBitRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.rxAudioKBitRate;

音频接收码率(kbps),获取该数据时的瞬时值

txVideoKBitRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.txVideoKBitRate;

视频发送码率(kbps),获取该数据时的瞬时值

rxVideoKBitRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.rxVideoKBitRate;

视频接收码率(kbps),获取该数据时的瞬时值

users

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.users;

当前房间内的人数。

cpuTotalUsage

public double com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.cpuTotalUsage;

当前系统的 CPU 使用率 (%)

cpuAppUsage

public double com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.cpuAppUsage;

当前应用的 CPU 使用率 (%)

txLostrate

public double com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.txLostrate;

当前应用的上行丢包率,取值范围为 [0, 1]。

rxLostrate

public double com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.rxLostrate;

当前应用的下行丢包率,取值范围为 [0, 1]。

rtt

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.rtt;

客户端到服务端数据传输的往返时延(单位 ms)

函数说明

reset

public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.reset()

重置所有的 RTCRoomStats 成员变量的值,重新开始统计。

AudioVolumeInfo

public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.AudioVolumeInfo

声音音量信息。包含每个说话者的用户 id 和音量信息

成员变量

类型 名称
String uid
int volume

变量说明

uid

public String com.ss.bytertc.engine.handler.IRTCEngineEventHandler.AudioVolumeInfo.uid;

说话者的用户 id

volume

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.AudioVolumeInfo.volume;

说话者的音量,范围为 0(最低)- 255(最高)

RemoteVideoStats

public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats

远端音频流统计信息,统计周期为 2s 。
本地用户订阅远端音频流成功后,SDK 会周期性地通过 onRemoteStreamStats 通知本地用户订阅的远端视频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。

成员变量

类型 名称
int width
int height
float videoLossRate
float receivedKBitrate
int decoderOutputFrameRate
int rendererOutputFrameRate
int stallCount
int stallDuration
long e2eDelay
boolean isScreen
int statsInterval
int rtt
int frozenRate
int videoIndex

变量说明

width

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.width;

远端视频流宽度

height

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.height;

远端视频流高度

videoLossRate

public float com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.videoLossRate;

视频丢包率。统计周期内的视频下行丢包率,单位为 % ,取值范围为 [0,1] 。

receivedKBitrate

public float com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.receivedKBitrate;

接收码率。统计周期内的视频接收码率,单位为 kbps 。

decoderOutputFrameRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.decoderOutputFrameRate;

解码器输出帧率。统计周期内的视频解码器输出帧率,单位 fps 。

rendererOutputFrameRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.rendererOutputFrameRate;

渲染帧率。统计周期内的视频渲染帧率,单位 fps 。

stallCount

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.stallCount;

卡顿次数。统计周期内的卡顿次数。

stallDuration

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.stallDuration;

卡顿时长。统计周期内的视频卡顿总时长。单位 ms 。

e2eDelay

public long com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.e2eDelay;

用户体验级别的端到端延时,从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为毫秒

isScreen

public boolean com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.isScreen;

所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

statsInterval

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.statsInterval;

统计间隔,此次统计周期的间隔,单位为 ms 。

rtt

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.rtt;

往返时延,单位为 ms 。

frozenRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.frozenRate;

远端用户在进房后发生视频卡顿的累计时长占视频总有效时长的百分比(%)。视频有效时长是指远端用户进房发布视频流后,除停止发送视频流和禁用视频模块之外的视频时长。

videoIndex

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.videoIndex;

对应多种分辨率的流的下标,详见 VideoStreamDescription 。

LocalVideoStats

public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats

本地视频流统计信息,统计周期为 2s 。
本地用户发布视频流成功后,SDK 会周期性地通过 onLocalStreamStats 通知用户发布的视频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。

成员变量

类型 名称
float sentKBitrate
int inputFrameRate
int sentFrameRate
int encoderOutputFrameRate
int rendererOutputFrameRate
int targetKBitrate
int targetFrameRate
int statsInterval
float videoLossRate
int rtt
int encodedBitrate
int encodedFrameWidth
int encodedFrameHeight
int encodedFrameCount
int codecType
boolean isScreen

变量说明

sentKBitrate

public float com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.sentKBitrate;

发送码率。此次统计周期内的视频发送码率,单位为 kbps 。

inputFrameRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.inputFrameRate;

采集帧率。此次统计周期内的视频采集帧率,单位为 fps 。

sentFrameRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.sentFrameRate;

发送帧率。此次统计周期内的视频发送帧率,单位为 fps 。

encoderOutputFrameRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.encoderOutputFrameRate;

编码器输出帧率。当前编码器在此次统计周期内的输出帧率,单位为 fps 。

rendererOutputFrameRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.rendererOutputFrameRate;

本地渲染帧率。此次统计周期内的本地视频渲染帧率,单位为 fps 。

targetKBitrate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.targetKBitrate;

目标发送码率。此次统计周期内的视频目标发送码率,单位为 kbps 。

targetFrameRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.targetFrameRate;

目标发送帧率。当前编码器在此次统计周期内的目标发送帧率,单位为 fps 。

statsInterval

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.statsInterval;

统计间隔,单位为 ms 。

videoLossRate

public float com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.videoLossRate;

视频丢包率。此次统计周期内的视频上行丢包率,取值范围: [0,1] 。

rtt

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.rtt;

往返时延,单位为 ms 。

encodedBitrate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.encodedBitrate;

视频编码码率。此次统计周期内的视频编码码率,单位为 kbps 。

encodedFrameWidth

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.encodedFrameWidth;

视频编码宽度,单位为 px 。

encodedFrameHeight

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.encodedFrameHeight;

视频编码高度,单位为 px 。

encodedFrameCount

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.encodedFrameCount;

此次统计周期内发送的视频帧总数。

codecType

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.codecType;

视频的编码类型,具体参考 VideoCodecType 。

isScreen

public boolean com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.isScreen;

所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

RemoteAudioStats

public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats

远端音频流统计信息,统计周期为 2s。
本地用户订阅远端音频流成功后,SDK 会周期性地通过 onRemoteStreamStats 通知本地用户订阅的音频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。

成员变量

类型 名称
float audioLossRate
float receivedKBitrate
int stallCount
int stallDuration
long e2eDelay
int playoutSampleRate
int statsInterval
int rtt
int total_rtt
int quality
int jitterBufferDelay
int numChannels
int receivedSampleRate
int frozenRate
int concealedSamples
int concealmentEvent
int decSampleRate
int decDuration

变量说明

audioLossRate

public float com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.audioLossRate;

音频丢包率。统计周期内的音频下行丢包率,取值范围为 [0, 1] 。

receivedKBitrate

public float com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.receivedKBitrate;

接收码率。统计周期内的音频接收码率,单位为 kbps 。

stallCount

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.stallCount;

音频卡顿次数。统计周期内的卡顿次数。

stallDuration

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.stallDuration;

音频卡顿时长。统计周期内的卡顿时长,单位为 ms 。

e2eDelay

public long com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.e2eDelay;

用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。

playoutSampleRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.playoutSampleRate;

播放采样率。统计周期内的音频播放采样率信息,单位为 Hz 。

statsInterval

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.statsInterval;

统计间隔。此次统计周期的间隔,单位为 ms 。

rtt

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.rtt;

客户端到服务端数据传输的往返时延,单位为 ms 。

total_rtt

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.total_rtt;

发送端——服务端——接收端全链路数据传输往返时延。单位为 ms 。

quality

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.quality;

远端用户发送的音频流质量。值含义参考 NetworkQuality 。

jitterBufferDelay

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.jitterBufferDelay;

因引入 jitter buffer 机制导致的延时。单位为 ms 。

numChannels

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.numChannels;

音频声道数。

receivedSampleRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.receivedSampleRate;

音频接收采样率。统计周期内接收到的远端音频采样率信息,单位为 Hz 。

frozenRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.frozenRate;

远端用户在加入房间后发生音频卡顿的累计时长占音频总有效时长的百分比。音频有效时长是指远端用户进房发布音频流后,除停止发送音频流和禁用音频模块之外的音频时长。

concealedSamples

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.concealedSamples;

音频 PLC 样点总个数。

concealmentEvent

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.concealmentEvent;

PLC 累计次数。

decSampleRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.decSampleRate;

音频解码采样率。统计周期内的音频解码采样率信息,单位为 Hz 。

decDuration

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.decDuration;

解码时长。对此次统计周期内接收的远端音频流进行解码的总耗时,单位为 s 。

LocalAudioStats

public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalAudioStats

本地音频流统计信息,统计周期为 2s 。
本地用户发布音频流成功后,SDK 会周期性地通过 onLocalStreamStats 通知用户发布的音频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。

成员变量

类型 名称
float audioLossRate
float sendKBitrate
int recordSampleRate
int statsInterval
int rtt
int numChannels
int sentSampleRate

变量说明

audioLossRate

public float com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalAudioStats.audioLossRate;

音频丢包率。此次统计周期内的音频上行丢包率,单位为 % ,取值范围为 [0, 1] 。

sendKBitrate

public float com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalAudioStats.sendKBitrate;

发送码率。此次统计周期内的音频发送码率,单位为 kbps 。

recordSampleRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalAudioStats.recordSampleRate;

采集采样率。此次统计周期内的音频采集采样率信息,单位为 Hz 。

statsInterval

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalAudioStats.statsInterval;

统计间隔。此次统计周期的间隔,单位为 ms 。

rtt

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalAudioStats.rtt;

往返时延。单位为 ms 。

numChannels

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalAudioStats.numChannels;

音频声道数。

sentSampleRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalAudioStats.sentSampleRate;

音频发送采样率。此次统计周期内的音频发送采样率信息,单位为 Hz 。

LocalStreamStats

public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalStreamStats

本地音/视频流统计信息以及网络状况,统计周期为 2s 。
本地用户发布音/视频流成功后,SDK 会周期性地通过 onLocalStreamStats 通知本地用户发布的音/视频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。

成员变量

类型 名称
LocalAudioStats audioStats
LocalVideoStats videoStats
boolean isScreen
int txQuality
int rxQuality

变量说明

audioStats

public LocalAudioStats com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalStreamStats.audioStats;

本地设备发送音频流的统计信息,详见 LocalAudioStats 。

videoStats

public LocalVideoStats com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalStreamStats.videoStats;

本地设备发送视频流的统计信息,详见 LocalVideoStats 。

isScreen

public boolean com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalStreamStats.isScreen;

所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

txQuality

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalStreamStats.txQuality;

本地媒体上行网络质量,详见 NetworkQuality 。

rxQuality

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalStreamStats.rxQuality;

本地媒体下行网络质量,详见 NetworkQuality 。

RemoteStreamStats

public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamStats

用户订阅的远端音/视频流统计信息以及网络状况,统计周期为 2s 。
订阅远端用户发布音/视频流成功后,SDK 会周期性地通过 onRemoteStreamStats 通知本地用户订阅的远端音/视频流在此次统计周期内的接收状况。此数据结构即为回调给本地用户的参数类型。

成员变量

类型 名称
String uid
RemoteAudioStats audioStats
RemoteVideoStats videoStats
boolean isScreen
int txQuality
int rxQuality

变量说明

uid

public String com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamStats.uid;

用户 ID 。音/视频来源的远端用户 ID 。

audioStats

public RemoteAudioStats com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamStats.audioStats;

远端音频流的统计信息,详见 RemoteAudioStats

videoStats

public RemoteVideoStats com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamStats.videoStats;

远端视频流的统计信息,详见 RemoteVideoStats

isScreen

public boolean com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamStats.isScreen;

所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。

txQuality

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamStats.txQuality;

所属用户的媒体流上行网络质量,详见 NetworkQuality 。

rxQuality

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamStats.rxQuality;

所属用户的媒体流下行网络质量,详见 NetworkQuality 。

PerformanceAlarmMode

public enum com.ss.bytertc.engine.handler.IRTCEngineEventHandler.PerformanceAlarmMode

性能回退的模式

枚举值

类型 说明
PERFORMANCE_ALARM_MODE_NORMAL 未开启发布性能回退
PERFORMANCE_ALARM_MODE_SIMULCAST 已开启发布性能回退

PerformanceAlarmReason

public enum com.ss.bytertc.engine.handler.IRTCEngineEventHandler.PerformanceAlarmReason

性能回退或者恢复的原因

枚举值

类型 说明
PERFORMANCE_ALARM_REASON_BANDWIDTH_FALLBACKED 网络原因差,造成了发送性能回退。仅在开启发送性能回退时,会收到此原因。
PERFORMANCE_ALARM_REASON_BANDWIDTH_RESUMED 网络性能恢复,发送性能回退恢复。仅在开启发送性能回退时,会收到此原因。
PERFORMANCE_ALARM_REASON_PERFORMANCE_FALLBACKED 如果未开启发送性能回退,收到此告警时,意味着性能不足;

如果开启了发送性能回退,收到此告警时,意味着性能不足,且已发生发送性能回退。
PERFORMANCE_ALARM_REASON_PERFORMANCE_RESUMED 如果未开启发送性能回退,收到此告警时,意味着性能不足已恢复;

如果开启了发送性能回退,收到此告警时,意味着性能不足已恢复,且已发生发送性能回退恢复。

SourceWantedData

public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.SourceWantedData

性能回退相关数据

成员变量

类型 名称
int width
int height
int frameRate

变量说明

width

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.SourceWantedData.width;

如果未开启发送性能回退,此值表示推荐的视频输入宽度;
如果开启了发送性能回退,此值表示当前推流的最大宽度。

height

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.SourceWantedData.height;

如果未开启发送性能回退,此值表示推荐的视频输入高度;
如果开启了发送性能回退,此值表示当前推流的最大高度。

frameRate

public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.SourceWantedData.frameRate;

如果未开启发送性能回退,此值表示推荐的视频输入帧率,单位 fps;
如果开启了发送性能回退,此值表示当前推流的最大帧率,单位 fps。

MediaDeviceType

public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceType

当前媒体设备类型

成员变量

类型 名称
int MEDIA_DEVICE_TYPE_AUDIO_RENDER_DEVICE
int MEDIA_DEVICE_TYPE_AUDIO_CAPTURE_DEVICE
int MEDIA_DEVICE_TYPE_VIDEO_CAPTURE_DEVICE

变量说明

MEDIA_DEVICE_TYPE_AUDIO_RENDER_DEVICE

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceType.MEDIA_DEVICE_TYPE_AUDIO_RENDER_DEVICE = 0;

音频渲染设备类型

MEDIA_DEVICE_TYPE_AUDIO_CAPTURE_DEVICE

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceType.MEDIA_DEVICE_TYPE_AUDIO_CAPTURE_DEVICE = 1;

音频采集设备类型

MEDIA_DEVICE_TYPE_VIDEO_CAPTURE_DEVICE

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceType.MEDIA_DEVICE_TYPE_VIDEO_CAPTURE_DEVICE = 3;

视频采集设备类型

MediaDeviceState

public static class  com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceState

媒体设备状态

成员变量

类型 名称
int MEDIA_DEVICE_STATE_STARTED
int MEDIA_DEVICE_STATE_STOPPED
int MEDIA_DEVICE_STATE_RUNTIMEERROR
int MEDIA_DEVICE_STATE_ADDED
int MEDIA_DEVICE_STATE_REMOVED

变量说明

MEDIA_DEVICE_STATE_STARTED

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceState.MEDIA_DEVICE_STATE_STARTED = 1;

设备已开启

MEDIA_DEVICE_STATE_STOPPED

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceState.MEDIA_DEVICE_STATE_STOPPED = 2;

设备已停止

MEDIA_DEVICE_STATE_RUNTIMEERROR

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceState.MEDIA_DEVICE_STATE_RUNTIMEERROR = 3;

设备运行时错误

MEDIA_DEVICE_STATE_ADDED

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceState.MEDIA_DEVICE_STATE_ADDED = 10;

设备已插入

MEDIA_DEVICE_STATE_REMOVED

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceState.MEDIA_DEVICE_STATE_REMOVED = 11;

设备被移除

MediaDeviceError

public static class  com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceError

媒体设备错误类型

成员变量

类型 名称
int MEDIA_DEVICE_ERROR_OK
int MEDIA_DEVICE_ERROR_NOPERMISSION
int MEDIA_DEVICE_ERROR_DEVICEBUSY
int MEDIA_DEVICE_ERROR_DEVICEFAILURE
int MEDIA_DEVICE_ERROR_DEVICENOTFOUND
int MEDIA_DEVICE_ERROR_DEVICEDISCONNECTED

变量说明

MEDIA_DEVICE_ERROR_OK

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceError.MEDIA_DEVICE_ERROR_OK = 0;

媒体设备正常

MEDIA_DEVICE_ERROR_NOPERMISSION

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceError.MEDIA_DEVICE_ERROR_NOPERMISSION = 1;

没有权限启动媒体设备

MEDIA_DEVICE_ERROR_DEVICEBUSY

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceError.MEDIA_DEVICE_ERROR_DEVICEBUSY = 2;

媒体设备已经在使用中

MEDIA_DEVICE_ERROR_DEVICEFAILURE

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceError.MEDIA_DEVICE_ERROR_DEVICEFAILURE = 3;

媒体设备错误

MEDIA_DEVICE_ERROR_DEVICENOTFOUND

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceError.MEDIA_DEVICE_ERROR_DEVICENOTFOUND = 4;

未找到指定的媒体设备

MEDIA_DEVICE_ERROR_DEVICEDISCONNECTED

public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceError.MEDIA_DEVICE_ERROR_DEVICEDISCONNECTED = 5;

媒体设备被移除

StreamMixingEvent

enum com.ss.bytertc.engine.live.ILiveTranscodingObserver.StreamMixingEvent

合流状态改变事件

枚举值

类型 说明
StreamMixingChangeMixeType 服务端合流/端云一体合流
StreamMixingFirstAudioFrameByClientMixer 收到合流音频首帧
StreamMixingFirstVideoFrameByClientMixer 收到合流视频首帧
StreamMixingStart 合流开启
StreamMixingStartFailed 合流启动失败
StreamMixingStartSuccess 合流启动成功
StreamMixingStop 合流结束
StreamMixingStopTimeout 结束合流超时

StreamMixingType

enum com.ss.bytertc.engine.live.ILiveTranscodingObserver.StreamMixingType

合流类型

枚举值

类型 说明
StreamMixingTypeByServer 通过服务端合流转推

LiveTranscoding

public class com.ss.bytertc.engine.live.LiveTranscoding

合流转推配置参数。

成员变量

类型 名称
String ACTION_START
String ACTION_CHANGED
String ACTION_STOPPED

变量说明

ACTION_START

public static final String com.ss.bytertc.engine.live.LiveTranscoding.ACTION_START = "started";

设置合流转推动作参数,ACTION_START 表示开启直播推流功能。

ACTION_CHANGED

public static final String com.ss.bytertc.engine.live.LiveTranscoding.ACTION_CHANGED = "layoutChanged";

设置合流转推动作参数,ACTION_CHANGED 表示更新视频合流布局。

ACTION_STOPPED

public static final String com.ss.bytertc.engine.live.LiveTranscoding.ACTION_STOPPED = "stopped";

设置合流转推动作参数,ACTION_STOPPED 表示停止直播推流功能。

AACProfile

public enum com.ss.bytertc.engine.live.LiveTranscoding.AACProfile

AAC 编码类型。

枚举值

类型 说明
AAC_PROFILE_LC("LC") 编码等级 AAC-LC
AAC_PROFILE_MAIN("MAIN") 编码等级 AAC-MAIN
AAC_PROFILE_HEV1("HEv1") 编码等级 HE-AAC v1
AAC_PROFILE_HEV2("HEv2") 编码等级 HE-AAC v2

VideoConfig

public static class com.ss.bytertc.engine.live.LiveTranscoding.VideoConfig

视频转码配置参数。

VideoCodecType

public enum com.ss.bytertc.engine.live.LiveTranscoding.VideoConfig.VideoCodecType

合流转推视频编码器格式。

枚举值

类型 说明
VIDEO_CODEC_TYPE_H264("H264") 使用 H264 编码格式
VIDEO_CODEC_TYPE_BYTEVC1("ByteVC1") 自定义编码器

AudioConfig

public static class com.ss.bytertc.engine.live.LiveTranscoding.AudioConfig

音频转码配置参数。

Layout

public static class com.ss.bytertc.engine.live.LiveTranscoding.Layout

视频流合流整体布局信息。
开启合流转推功能后,你可以设置参与合流的每路视频流的预设布局信息和合流背景信息等。

Region

public static class com.ss.bytertc.engine.live.LiveTranscoding.Layout.Region

单个视频流在合流中的布局信息。
开启合流转推功能后,在多路视频流合流时,你可以设置其中一路视频流在合流中的预设布局信息。

RTCVideoFrame

public class com.ss.bytertc.engine.mediaio.RTCVideoFrame

成员变量

类型 名称
ByteBuffer buffer
ByteBuffer extend_data
ByteBuffer supplementary_info
int buffer_type
int format
int stride
int height
int rotation
long timestamp
int cropLeft
int cropTop
int cropRight
int cropBottom
EGLContext eglContext11
android.opengl.EGLContext eglContext14
int glTarget
int textureId
float[] transform

成员函数

返回 名称
RTCVideoFrame RTCVideoFrame

变量说明

buffer

public ByteBuffer com.ss.bytertc.engine.mediaio.RTCVideoFrame.buffer;

视频数据缓冲区

extend_data

public ByteBuffer com.ss.bytertc.engine.mediaio.RTCVideoFrame.extend_data;

视频扩展数据

supplementary_info

public ByteBuffer com.ss.bytertc.engine.mediaio.RTCVideoFrame.supplementary_info;

补充数据

buffer_type

public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.buffer_type;

缓冲区类型,详见 BufferType。

format

public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.format;

视频帧数据格式, 详见PixelFormat。

stride

public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.stride;

视频帧数据跨距

height

public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.height;

视频帧分辨率高度

rotation

public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.rotation;

旋转角度

timestamp

public long com.ss.bytertc.engine.mediaio.RTCVideoFrame.timestamp;

视频帧时间戳, 单位纳秒

cropLeft

public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.cropLeft = 0;

指定左边裁剪掉的像素数量。默认为 0

cropTop

public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.cropTop = 0;

指定顶边裁剪掉的像素数量。默认为 0

cropRight

public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.cropRight = 0;

指定右边裁剪掉的像素数量。默认为 0

cropBottom

public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.cropBottom = 0;

指定底边裁剪掉的像素数量。默认为 0

eglContext11

public EGLContext com.ss.bytertc.engine.mediaio.RTCVideoFrame.eglContext11 = null;

EGL Context

eglContext14

public android.opengl.EGLContext com.ss.bytertc.engine.mediaio.RTCVideoFrame.eglContext14 = null;

EGL上下文

glTarget

public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.glTarget;

textureId

public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.textureId;

视频帧使用纹理的Id

transform

public float[] com.ss.bytertc.engine.mediaio.RTCVideoFrame.transform = null;

传入一个 4x4 的变换矩阵,典型值是传入一个单位矩阵

函数说明

RTCVideoFrame

public com.ss.bytertc.engine.mediaio.RTCVideoFrame.RTCVideoFrame(
    int textureId,
    @PixelFormat int format,
    float[] transform_matrix,
    @Nullable ByteBuffer extend_data,
    @Nullable ByteBuffer supplementary_info,
    int width,
    int height,
    int rotation,
    long timestamp,
    @Nullable Runnable releaseCallback)

构造函数

传入参数

参数名 类型 说明
textureId int OpenGL纹理ID
format @PixelFormat int Opengl纹理格式 2D/OES
transform_matrix float[] 纹理矩阵
extend_data @Nullable ByteBuffer 扩展数据缓冲区
supplementary_info @Nullable ByteBuffer 补充数据缓冲区
width int 视频帧分辨率宽
height int 视频分辨率高度
rotation int 视频帧旋转角度
timestamp long 视频帧时间戳
releaseCallback @Nullable Runnable 视频帧释放回调

BufferType

public @interface com.ss.bytertc.engine.mediaio.RTCVideoFrame.BufferType

视频帧缓冲区格式

成员变量

类型 名称
int RAWDATA
int TEXTURE

变量说明

RAWDATA

int com.ss.bytertc.engine.mediaio.RTCVideoFrame.BufferType.RAWDATA = 0;

原始数据

TEXTURE

int com.ss.bytertc.engine.mediaio.RTCVideoFrame.BufferType.TEXTURE = 1;

纹理数据格式

PixelFormat

public @interface com.ss.bytertc.engine.mediaio.RTCVideoFrame.PixelFormat

视频帧数据格式

成员变量

类型 名称
int I420
int NV21
int TEXTURE_2D
int TEXTURE_OES

变量说明

I420

int com.ss.bytertc.engine.mediaio.RTCVideoFrame.PixelFormat.I420 = 1;

I420数据格式

NV21

int com.ss.bytertc.engine.mediaio.RTCVideoFrame.PixelFormat.NV21 = 3;

NV21数据格式

TEXTURE_2D

int com.ss.bytertc.engine.mediaio.RTCVideoFrame.PixelFormat.TEXTURE_2D = 10;

2d纹理格式

TEXTURE_OES

int com.ss.bytertc.engine.mediaio.RTCVideoFrame.PixelFormat.TEXTURE_OES = 11;

oes纹理格式

IVideoSink

public interface com.ss.bytertc.engine.video.IVideoSink

自定义视频渲染器。

成员函数

返回 名称
void onFrame

函数说明

onFrame

void com.ss.bytertc.engine.video.IVideoSink.onFrame(
    RTCVideoFrame frame)

视频帧回调

传入参数

参数名 类型 说明
frame RTCVideoFrame 视频帧结构类,参看 RTCVideoFrame

PixelFormat

public @interface com.ss.bytertc.engine.video.IVideoSink.PixelFormat

视频帧数据格式

成员变量

类型 名称
int I420

变量说明

I420

int com.ss.bytertc.engine.video.IVideoSink.PixelFormat.I420 = 1;

I420数据格式

ScreenSharingParameters

public class com.ss.bytertc.engine.video.ScreenSharingParameters

屏幕共享的编码参数配置

成员变量

类型 名称
int maxWidth
int maxHeight
int frameRate
int bitrate

变量说明

maxWidth

public int com.ss.bytertc.engine.video.ScreenSharingParameters.maxWidth = 0;

屏幕采集编码最大宽度,

maxHeight

public int com.ss.bytertc.engine.video.ScreenSharingParameters.maxHeight = 0;

屏幕采集编码最大高度

frameRate

public int com.ss.bytertc.engine.video.ScreenSharingParameters.frameRate = 15;

屏幕采集编码帧率, 单位 fps

bitrate

public int com.ss.bytertc.engine.video.ScreenSharingParameters.bitrate = -1;

屏幕采集编码码率, -1 为自动码率, SDK 会根据宽高信息选择合适的码率,单位 kbps

VideoEncoderConfiguration

public class com.ss.bytertc.engine.video.VideoEncoderConfiguration

视频编码配置

成员变量

类型 名称
VideoDimensions dimensions
FrameRate frameRate
int kBitrate
OrientationMode orientationMode

变量说明

dimensions

public VideoDimensions com.ss.bytertc.engine.video.VideoEncoderConfiguration.dimensions;

视频编码像素

frameRate

public FrameRate com.ss.bytertc.engine.video.VideoEncoderConfiguration.frameRate;

视频编码帧率

kBitrate

public int com.ss.bytertc.engine.video.VideoEncoderConfiguration.kBitrate;

视频编码码率

orientationMode

public OrientationMode com.ss.bytertc.engine.video.VideoEncoderConfiguration.orientationMode;

视频编码方向模式

OrientationMode

public static enum com.ss.bytertc.engine.video.VideoEncoderConfiguration.OrientationMode

视频编码的方向模式

枚举值

类型 说明
ORIENTATION_MODE_ADAPTIVE(0) 视频输出方向与采集方向一致。
ORIENTATION_MODE_FIXED_LANDSCAPE(1) 固定横屏输出视频。若采集到的视频是竖屏模式,则视频编码器会对其进行裁剪。
ORIENTATION_MODE_FIXED_PORTRAIT(2) 固定竖屏输出视频。若采集到的视频是横屏模式,则视频编码器会对其进行裁剪。

AudioChannel

public enum com.ss.bytertc.engine.data.AudioChannel

音频声道

枚举值

类型 说明
AUDIO_CHANNEL_MONO(1) 单声道
AUDIO_CHANNEL_STEREO(2) 双声道

成员函数

返回 名称
int value

函数说明

value

public int com.ss.bytertc.engine.data.AudioChannel.value()

获取当前值

返回值 当前值

AudioSampleRate

public enum com.ss.bytertc.engine.data.AudioSampleRate

音频采样率,单位为 Hz。

枚举值

类型 说明
AUDIO_SAMPLE_RATE_8000(8000) 8000 采样率
AUDIO_SAMPLE_RATE_16000(16000) 16000 采样率
AUDIO_SAMPLE_RATE_32000(32000) 32000 采样率
AUDIO_SAMPLE_RATE_44100(44100) 44100 采样率
AUDIO_SAMPLE_RATE_48000(48000) 48000 采样率

成员函数

返回 名称
int value

函数说明

value

public int com.ss.bytertc.engine.data.AudioSampleRate.value()

获取当前值

返回值 当前值

LocalAudioStreamError

public enum com.ss.bytertc.engine.data.LocalAudioStreamError

本地音频流状态改变时的错误码。
SDK 通过 onLocalAudioStateChanged 回调该错误码。

枚举值

类型 说明
LOCAL_AUDIO_STREAM_ERROR_OK(0) 本地音频状态正常
LOCAL_AUDIO_STREAM_ERROR_FAILURE(1) 本地音频出错原因未知
LOCAL_AUDIO_STREAM_ERROR_DEVICE_NO_PERMISSION(2) 没有权限启动本地音频录制设备
LOCAL_AUDIO_STREAM_ERROR_RECORD_FAILURE(4) 本地音频录制失败,建议你检查录制设备是否正常工作
LOCAL_AUDIO_STREAM_ERROR_ENCODE_FAILURE(5) 本地音频编码失败
LOCAL_AUDIO_STREAM_ERROR_NO_RECORDING_DEVICE(6) 没有可用的音频录制设备

成员函数

返回 名称
int value

函数说明

value

public int com.ss.bytertc.engine.data.LocalAudioStreamError.value()

获取当前值

返回值 当前值

LocalAudioStreamState

public enum com.ss.bytertc.engine.data.LocalAudioStreamState

本地音频流状态。
SDK 通过 onLocalAudioStateChanged 回调该状态。

枚举值

类型 说明
LOCAL_AUDIO_STREAM_STATE_STOPPED(0) 本地音频默认初始状态。

麦克风停止工作时回调该状态,对应错误码 LocalAudioStreamError.kLocalAudioStreamErrorOkLocalAudioStreamError
LOCAL_AUDIO_STREAM_STATE_RECORDING(1) 本地音频录制设备启动成功。

采集到音频首帧时回调该状态,对应错误码 LocalAudioStreamError.kLocalAudioStreamErrorOkLocalAudioStreamError
LOCAL_AUDIO_STREAM_STATE_ENCODING(2) 本地音频首帧编码成功。

音频首帧编码成功时回调该状态,对应错误码 LocalAudioStreamError.kLocalAudioStreamErrorOkLocalAudioStreamError
LOCAL_AUDIO_STREAM_STATE_FAILED(3) 本地音频启动失败,在以下时机回调该状态:

+ 本地录音设备启动失败,对应错误码 LocalAudioStreamError.kLocalAudioStreamErrorRecordFailureLocalAudioStreamError

+ 检测到没有录音设备权限,对应错误码 LocalAudioStreamError.kLocalAudioStreamErrorDeviceNoPermissionLocalAudioStreamError

+ 音频编码失败,对应错误码 LocalAudioStreamError.kLocalAudioStreamErrorEncodeFailureLocalAudioStreamError

成员函数

返回 名称
int value

函数说明

value

public int com.ss.bytertc.engine.data.LocalAudioStreamState.value()

获取当前值

返回值 当前值

RecordingConfig

public class com.ss.bytertc.engine.data.RecordingConfig

本地录制参数配置

成员变量

类型 名称
String dirPath
RecordingFileType recordingFileType
RecordingType recordingType

变量说明

dirPath

public String com.ss.bytertc.engine.data.RecordingConfig.dirPath;

录制文件保存的绝对路径。你需要指定一个有读写权限的合法路径。

recordingFileType

public RecordingFileType com.ss.bytertc.engine.data.RecordingConfig.recordingFileType = RecordingFileType.RECORDING_FILE_TYPE_MP4;

录制存储文件格式,参看 RecordingFileType

recordingType

public RecordingType com.ss.bytertc.engine.data.RecordingConfig.recordingType = RecordingType.RECORD_VIDEO_AND_AUDIO;

录制媒体类型,参看 RecordingType

RecordingInfo

public class com.ss.bytertc.engine.data.RecordingInfo

本地录制的详细信息

成员变量

类型 名称
String filePath
VideoCodecType videoCodecType
int width
int height

变量说明

filePath

public String com.ss.bytertc.engine.data.RecordingInfo.filePath;

录制文件的绝对路径,包含文件名和文件后缀

videoCodecType

public VideoCodecType com.ss.bytertc.engine.data.RecordingInfo.videoCodecType;

录制文件的视频编码类型,参看 参看 VideoCodecType

width

public int com.ss.bytertc.engine.data.RecordingInfo.width;

录制视频的宽,单位:像素。纯音频录制请忽略该字段

height

public int com.ss.bytertc.engine.data.RecordingInfo.height;

录制视频的高,单位:像素。纯音频录制请忽略该字段

RecordingProgress

public class com.ss.bytertc.engine.data.RecordingProgress

本地录制进度

成员变量

类型 名称
long duration
long fileSize

变量说明

duration

public long com.ss.bytertc.engine.data.RecordingProgress.duration;

当前文件的累计录制时长,单位:毫秒

fileSize

public long com.ss.bytertc.engine.data.RecordingProgress.fileSize;

当前录制文件的大小,单位:byte

RemoteAudioState

public enum com.ss.bytertc.engine.data.RemoteAudioState

用户订阅的远端音频流状态。
SDK 通过 onRemoteAudioStateChanged 回调该状态。

枚举值

类型 说明
REMOTE_AUDIO_STATE_STOPPED(0) 远端音频流默认初始状态,在以下时机回调该状态:

+ 本地用户停止接收远端音频流,对应原因是 RemoteAudioStateChangeReason.kRemoteAudioReasonLocalMutedRemoteAudioStateChangeReason

+ 远端用户停止发送音频流,对应原因是 RemoteAudioStateChangeReason.kRemoteAudioReasonRemoteMutedRemoteAudioStateChangeReason

+ 远端用户离开房间,对应原因是 RemoteAudioStateChangeReason.kRemoteAudioReasonRemoteOfflineRemoteAudioStateChangeReason
REMOTE_AUDIO_STATE_STARTING(1) 开始接收远端音频流首包。

刚收到远端音频流首包时,会触发回调 onRemoteAudioStateChanged,
对应原因是 RemoteAudioStateChangeReason.kRemoteAudioReasonLocalUnmutedRemoteAudioStateChangeReason。
REMOTE_AUDIO_STATE_DECODING(2) 远端音频流正在解码,正常播放,在以下时机回调该状态:

+ 成功解码远端音频首帧,对应原因是 RemoteAudioStateChangeReason.kRemoteAudioReasonLocalUnmutedRemoteAudioStateChangeReason

+ 网络由阻塞恢复正常,对应原因是 RemoteAudioStateChangeReason.kRemoteAudioReasonNetworkRecoveryRemoteAudioStateChangeReason

+ 本地用户恢复接收远端音频流,对应原因是 RemoteAudioStateChangeReason.kRemoteAudioReasonLocalUnmutedRemoteAudioStateChangeReason

+ 远端用户恢复发送音频流,对应原因是 RemoteAudioStateChangeReason.kRemoteAudioReasonRemoteUnmutedRemoteAudioStateChangeReason
REMOTE_AUDIO_STATE_FROZEN(3) 远端音频流卡顿。
网络阻塞导致丢包率大于 40% 时回调该状态,对应原因是
RemoteAudioStateChangeReason.kRemoteAudioReasonNetworkCongestionRemoteAudioStateChangeReason 。

成员函数

返回 名称
int value

函数说明

value

public int com.ss.bytertc.engine.data.RemoteAudioState.value()

获取当前值

返回值 当前值

RemoteAudioStateChangeReason

public enum com.ss.bytertc.engine.data.RemoteAudioStateChangeReason

远端音频流状态改变的原因。 SDK 通过 onRemoteAudioStateChanged 回调该错误码。

枚举值

类型 说明
REMOTE_AUDIO_STATE_CHANGE_REASON_INTERNAL(0) 内部原因
REMOTE_AUDIO_STATE_CHANGE_REASON_NETWORK_CONGESTION(1) 网络阻塞
REMOTE_AUDIO_STATE_CHANGE_REASON_NETWORK_RECOVERY(2) 网络恢复正常
REMOTE_AUDIO_STATE_CHANGE_REASON_LOCAL_MUTED(3) 本地用户停止接收远端音频流
REMOTE_AUDIO_STATE_CHANGE_REASON_LOCAL_UNMUTED(4) 本地用户恢复接收远端音频流
REMOTE_AUDIO_STATE_CHANGE_REASON_REMOTE_MUTED(5) 远端用户停止发送音频流
REMOTE_AUDIO_STATE_CHANGE_REASON_REMOTE_UNMUTED(6) 远端用户恢复发送音频流
REMOTE_AUDIO_STATE_CHANGE_REASON_REMOTE_OFFLINE(7) 远端用户离开房间

成员函数

返回 名称
int value

函数说明

value

public int com.ss.bytertc.engine.data.RemoteAudioStateChangeReason.value()

获取当前值

返回值 当前值

RemoteStreamKey

public class com.ss.bytertc.engine.data.RemoteStreamKey

远端流信息

成员函数

返回 名称
String getRoomId
String getUserId
StreamIndex getStreamIndex

函数说明

getRoomId

public String com.ss.bytertc.engine.data.RemoteStreamKey.getRoomId()

获取房间 ID

getUserId

public String com.ss.bytertc.engine.data.RemoteStreamKey.getUserId()

获取用户 ID

getStreamIndex

public StreamIndex com.ss.bytertc.engine.data.RemoteStreamKey.getStreamIndex()

获取流属性,包括主流、屏幕流。参看 StreamIndex

RTCASRConfig

public class com.ss.bytertc.engine.data.RTCASRConfig

使用自动语音识别服务所需校验信息

成员变量

类型 名称
String userId
String accessToken
String secretKey
ASRAuthorizationType authorizationType
String cluster
String appId

变量说明

userId

public String com.ss.bytertc.engine.data.RTCASRConfig.userId;

用户 ID

accessToken

public String com.ss.bytertc.engine.data.RTCASRConfig.accessToken;

访问令牌

secretKey

public String com.ss.bytertc.engine.data.RTCASRConfig.secretKey;

私钥。Signature 鉴权模式下不能为空,token 鉴权模式下为空。参看关于鉴权

authorizationType

public ASRAuthorizationType com.ss.bytertc.engine.data.RTCASRConfig.authorizationType;

鉴权方式

cluster

public String com.ss.bytertc.engine.data.RTCASRConfig.cluster;

场景信息,参看业务集群

appId

public String com.ss.bytertc.engine.data.RTCASRConfig.appId;

应用 ID

ASRAuthorizationType

public enum com.ss.bytertc.engine.data.RTCASRConfig.ASRAuthorizationType

语音识别服务鉴权方式,详情请咨询语音识别服务服务相关同学

枚举值

类型 说明
ASR_AUTHORIZATION_TYPE_TOKEN(0) Token 鉴权
ASR_AUTHORIZATION_TYPE_SIGNATURE(1) Signature 鉴权

VideoFrameInfo

public class com.ss.bytertc.engine.data.VideoFrameInfo

视频帧信息

成员变量

类型 名称
VideoRotation rotation

变量说明

rotation

public VideoRotation com.ss.bytertc.engine.data.VideoFrameInfo.rotation = VideoRotation.VIDEO_ROTATION_0;

视频帧顺时针旋转角度。参看 VideoRotation。

VideoRotation

public enum com.ss.bytertc.engine.data.VideoRotation

视频帧旋转角度

枚举值

类型 说明
VIDEO_ROTATION_0(0) 顺时针旋转 0 度(默认设置)
VIDEO_ROTATION_90(90) 顺时针旋转 90 度
VIDEO_ROTATION_180(180) 顺时针旋转 180 度
VIDEO_ROTATION_270(270) 顺时针旋转 270 度

VideoPictureType

public enum com.ss.bytertc.engine.data.VideoPictureType

编码帧类型

枚举值

类型 说明
VIDEO_PICTURE_TYPE_UNKNOWN(0) 未知类型
VIDEO_PICTURE_TYPE_I(1) I帧,关键帧,编解码不需要参考其他视频帧
VIDEO_PICTURE_TYPE_P(2) P帧,向前参考帧,编解码需要参考前一帧视频帧
VIDEO_PICTURE_TYPE_B(3) B帧,前后参考帧,编解码需要参考前后两帧视频帧

静态函数

返回 名称
static VideoPictureType fromId

函数说明

fromId

public static VideoPictureType com.ss.bytertc.engine.data.VideoPictureType.fromId(
    int id)

VideoSourceType

public enum com.ss.bytertc.engine.data.VideoSourceType

视频源类型

枚举值

类型 说明
VIDEO_SOURCE_TYPE_EXTERNAL(0) 自定义采集视频源
VIDEO_SOURCE_TYPE_INTERNAL(1) SDK 内部采集视频源

RTCEncodedVideoFrame

public class com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame

视频帧信息

成员变量

类型 名称
ByteBuffer buffer
long timestampUs
long timestampPts
long timestampDts
long timebaseNum
long timebaseDen
int width
int height
VideoCodecType videoCodecType
VideoPictureType videoPictureType
VideoRotation videoRotation

变量说明

buffer

public final ByteBuffer com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.buffer;

视频帧数据指针地址

timestampUs

public long com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.timestampUs;

视频采集时间戳,单位:微秒

timestampPts

public long com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.timestampPts;

视频显示时间戳,单位:微秒

timestampDts

public long com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.timestampDts;

视频解码时间戳,单位:微秒

timebaseNum

public long com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.timebaseNum;

视频时间基分子

timebaseDen

public long com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.timebaseDen;

视频时间基分母

width

public int com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.width;

视频分辨率的宽度,单位:px

height

public int com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.height;

视频分辨率的高度,单位:px

videoCodecType

public VideoCodecType com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.videoCodecType;

视频编码类型。参看 VideoCodecType

videoPictureType

public VideoPictureType com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.videoPictureType;

编码视频帧类型。参看 VideoPictureType

videoRotation

public VideoRotation com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.videoRotation;

视频帧旋转角度。参看 VideoRotation

VideoDimensions

public class com.ss.bytertc.engine.video.VideoDimensions

视频编码像素

成员变量

类型 名称
int width
int height

变量说明

width

public int com.ss.bytertc.engine.video.VideoDimensions.width;

宽

height

public int com.ss.bytertc.engine.video.VideoDimensions.height;

高

RTCStream

public class com.ss.bytertc.engine.RTCStream

流属性。

成员变量

类型 名称
String userId
boolean isScreen
boolean hasVideo
boolean hasAudio
List videoStreamDescriptions

变量说明

userId

public String com.ss.bytertc.engine.RTCStream.userId;

发布此流的用户 ID 。

isScreen

public boolean com.ss.bytertc.engine.RTCStream.isScreen;

此流是否为共享屏幕流。

hasVideo

public boolean com.ss.bytertc.engine.RTCStream.hasVideo;

此流是否包括视频流。

hasAudio

public boolean com.ss.bytertc.engine.RTCStream.hasAudio;

流是否包括音频流。

videoStreamDescriptions

public List<VideoStreamDescription> com.ss.bytertc.engine.RTCStream.videoStreamDescriptions;

视频流的属性。
当远端用户调用 setVideoEncoderConfig 方法发布多个配置的视频流时,此处会包含该用户发布的所有视频流的属性信息。
参看 VideoStreamDescription。

SubscribeConfig

public class com.ss.bytertc.engine.SubscribeConfig

选择订阅配置

成员变量

类型 名称
boolean isScreen
boolean subVideo
boolean subAudio

变量说明

isScreen

public boolean com.ss.bytertc.engine.SubscribeConfig.isScreen;

是否是屏幕流

subVideo

public boolean com.ss.bytertc.engine.SubscribeConfig.subVideo;

是否订阅视频

subAudio

public boolean com.ss.bytertc.engine.SubscribeConfig.subAudio;

是否订阅音频

SubscribeState

public enum com.ss.bytertc.engine.SubscribeState

音视频流订阅状态

枚举值

类型 说明
SUBSCRIBE_STATE_SUCCESS 修改订阅状态成功
SUBSCRIBE_STATE_FAILED_NOT_IN_ROOM 修改订阅状态失败,原因是不在房间中
SUBSCRIBE_STATE_FAILED_STREAM_NOT_FOUND 修改订阅状态失败,原因是没有找到指定的音视频流
SUBSCRIBE_STATE_FAILED_AUTO_MODE 自动订阅模式
SUBSCRIBE_STATE_FAILED_SIGNAL 修改订阅状态失败,原因是信令错误,请重试

SysStats

public class com.ss.bytertc.engine.SysStats

CPU 和内存统计信息

成员变量

类型 名称
int cpu_cores
double cpu_app_usage
double cpu_total_usage
double memory_usage
long full_memory
long total_memory_usage
long free_memory
double memory_ratio
double total_memory_ratio

变量说明

cpu_cores

public int com.ss.bytertc.engine.SysStats.cpu_cores;

设备的 CPU 核数

cpu_app_usage

public double com.ss.bytertc.engine.SysStats.cpu_app_usage;

应用的 CPU 使用率,取值范围为 [0, 1]。

cpu_total_usage

public double com.ss.bytertc.engine.SysStats.cpu_total_usage;

系统的 CPU 使用率,取值范围为 [0, 1]。

memory_usage

public double com.ss.bytertc.engine.SysStats.memory_usage;

应用的内存占用大小(单位 MB)

full_memory

public long com.ss.bytertc.engine.SysStats.full_memory;

设备的内存大小 单位:B

total_memory_usage

public long com.ss.bytertc.engine.SysStats.total_memory_usage;

系统已使用内存(单位字节)

free_memory

public long com.ss.bytertc.engine.SysStats.free_memory;

系统当前空闲内存(单位字节)

memory_ratio

public double com.ss.bytertc.engine.SysStats.memory_ratio;

当前应用的内存使用率(单位 %)

total_memory_ratio

public double com.ss.bytertc.engine.SysStats.total_memory_ratio;

系统内存使用率(单位 %)

UserInfo

public class com.ss.bytertc.engine.UserInfo

用户信息

成员函数

返回 名称
UserInfo UserInfo

函数说明

UserInfo

public com.ss.bytertc.engine.UserInfo.UserInfo(
    String uid,
    String extraInfo)

用户信息

传入参数

参数名 类型 说明
uid String 用户 ID,长度在 128 字节以内的非空字符串。
extraInfo String 用户传递的额外信息,最大长度为 200 字节。会在 onUserJoined 中回调给远端用户。

注意 支持以下字符集范围 + 26 个大写字母 A ~ Z

VideoCanvas

public class com.ss.bytertc.engine.VideoCanvas

画布信息和渲染模式

成员变量

类型 名称
int RENDER_MODE_HIDDEN
int RENDER_MODE_FIT
View renderView
int renderMode
String roomId
String uid
boolean isScreen

变量说明

RENDER_MODE_HIDDEN

public static final int com.ss.bytertc.engine.VideoCanvas.RENDER_MODE_HIDDEN = 1;

视窗填满优先。
视频帧等比缩放,直至视窗被视频填满。如果视频帧长宽比例与视窗不同,视频帧的多出部分将无法显示。
缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长大于等于视窗对应边长。

RENDER_MODE_FIT

public static final int com.ss.bytertc.engine.VideoCanvas.RENDER_MODE_FIT = 2;

视频帧内容全部显示优先。
视频帧等比缩放,直至视频帧能够在视窗上全部显示。如果视频帧长宽比例与视窗不同,视窗上未被视频帧填满区域将被涂黑。
缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长小于等于视窗对应边长。

renderView

public View com.ss.bytertc.engine.VideoCanvas.renderView;

需要渲染的视图

renderMode

public int com.ss.bytertc.engine.VideoCanvas.renderMode;

渲染模式

roomId

public String com.ss.bytertc.engine.VideoCanvas.roomId;

视图所在的房间 ID

uid

public String com.ss.bytertc.engine.VideoCanvas.uid;

视图对应的用户 ID

isScreen

public boolean com.ss.bytertc.engine.VideoCanvas.isScreen;

是否是屏幕流

ScaleMode

public enum com.ss.bytertc.engine.VideoStreamDescription.ScaleMode

视频帧缩放模式,可设置缩放以适应视窗。

枚举值

类型 说明
SCALE_MODE_AUTO(0) 自动模式,默认值为Stretch
SCALE_MODE_STRETCH(1) 对视频帧进行缩放,直至视频帧和视窗分辨率一致为止。这一过程不保证等比缩放。
SCALE_MODE_FIT_WITH_CROPPING(2) 视窗填满优先。

视频帧等比缩放,直至视窗被视频填满。如果视频帧长宽比例与视窗不同,视频帧的多出部分将无法显示。

缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长大于等于视窗对应边长。
SCALE_MODE_FIT_WITH_FILLING(3) 视频帧内容全部显示优先。

视频帧等比缩放,直至视频帧能够在视窗上全部显示。如果视频帧长宽比例与视窗不同,视窗上未被视频帧填满区域将被涂黑。

缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长小于等于视窗对应边长。

CodecMode

public enum com.ss.bytertc.engine.VideoStreamDescription.CodecMode

编码器Mode(使用软编码或者硬编码)

枚举值

类型 说明
CODEC_MODE_AUTO(0) 自动模式
CODEC_MODE_HARDWARE(1) 硬编码模式
CODEC_MODE_SOFTWARE(2) 软编码模式

VideoCodecType

public enum com.ss.bytertc.engine.VideoStreamDescription.VideoCodecType

编码模式(H264, ByteVC1)

枚举值

类型 说明
CODEC_TYPE_AUTO(0) 自动选择编码模式
CODEC_TYPE_H264(1) H264
CODEC_TYPE_BYTEVC1(2) ByteVC1

EncoderPreference

public enum com.ss.bytertc.engine.VideoStreamDescription.EncoderPreference

编码策略偏好

枚举值

类型 说明
Disabled(0) 无偏好
MaintainFramerate(1) 帧率优先
MaintainQuality(2) 质量优先
Balance(3) 平衡质量与帧率