public enum com.ss.bytertc.engine.RTCEngine.SubscribeMediaType
订阅的媒体类型
| 类型 | 说明 |
|---|---|
| RTC_SUBSCRIBE_MEDIA_TYPE_NONE | 既不订阅音频,也不订阅视频 |
| RTC_SUBSCRIBE_MEDIA_TYPE_AUDIO_ONLY | 只订阅音频,不订阅视频 |
| RTC_SUBSCRIBE_MEDIA_TYPE_VIDEO_ONLY | 只订阅视频,不订阅音频 |
public enum com.ss.bytertc.engine.RTCEngine.PauseResumeControlMediaType
暂停/恢复接收远端的媒体流类型。
| 类型 | 说明 |
|---|---|
| RTC_PAUSE_RESUME_CONTROL_AUDIO | 只控制音频,不影响视频 |
| RTC_PAUSE_RESUME_CONTROL_VIDEO | 只控制视频,不影响音频 |
| RTC_PAUSE_RESUME_CONTROL_AUDIO_AND_VIDEO | 同时控制音频和视频 |
public enum com.ss.bytertc.engine.RTCEngine.RtcMode
引擎工作模式
| 类型 | 说明 |
|---|---|
| RTC_MODE_GENERAL(0) | 通用模式,该模式下只能进行普通会议模式的语音通话,开启自动发布订阅。 |
| RTC_MODE_LOCAL_AUDIO(1) | 游戏语音模式,该模式下关闭自动发布订阅,会按照游戏业务的策略进行主动发布订阅语音。 |
| 返回 | 名称 |
|---|---|
| int | value |
public int com.ss.bytertc.engine.RTCEngine.RtcMode.value()
获取当前值
返回值 当前值
public enum com.ss.bytertc.engine.RTCEngine.SubscribeMode
订阅模式选项。
| 类型 | 说明 |
|---|---|
| AUTO_SUBSCRIBE_MODE(0) | 自动订阅模式。SDK 会自动为用户订阅房间中的每一路流。默认值。 |
| MANUAL_SUBSCRIBE_MODE(1) | 手动订阅模式。SDK 不为自动订阅流。 |
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 |
public int com.ss.bytertc.engine.RTCEngine.RangeAudioMode.value()
获取当前值
返回值 当前值
public enum com.ss.bytertc.engine.RTCEngine.ClientRole
用户角色。
| 类型 | 说明 |
|---|---|
| CLIENT_ROLE_BROADCASTER | 主播角色。该角色用户可在房间内发布和订阅音视频流,房间中的其他用户可以感知到该用户的存在。 |
| CLIENT_ROLE_SILENT_AUDIENCE | 静默观众角色。该众角色用户只可在房间内订阅音视频流,房间中的其他用户无法感知到该用户的存在。 |
public enum com.ss.bytertc.engine.RTCEngine.ChannelProfile
房间模式
| 类型 | 说明 |
|---|---|
| CHANNEL_PROFILE_COMMUNICATION | 普通音视频通话模式。 你应在 1V1 音视频通话时,使用此设置。 此设置下,弱网抗性较好。 |
| CHANNEL_PROFILE_LIVE_BROADCASTING | 直播模式。 当你对音视频通话的音质和画质要求较高时,应使用此设置。 此设置下,当用户使用蓝牙耳机收听时,蓝牙耳机使用媒体模式。 |
| CHANNEL_PROFILE_GAME | 游戏语音模式。 低端机在此模式下运行时,进行了额外的性能优化: + 采集播放采用 16kHz 单通道采样 + 部分低端机型配置编码帧长 40/60 + 部分低端机型关闭软件 3A 音频处理 增强对 iOS 其他屏幕录制进行的兼容性,避免音频录制被 RTC 打断。 |
| CHANNEL_PROFILE_CLOUD_GAME | 云游戏模式。 如果你需要低延迟、高码率的设置时,你可以使用此设置。 此设置下,弱网抗性较差。 |
| CHANNEL_PROFILE_LOW_LATENCY | 低时延模式。SDK 会使用低延时设置。 当你的场景非游戏或云游戏场景,又需要极低延时的体验时,可以使用该模式。 该模式下,音视频通话延时会明显降低,但同时弱网抗性、通话音质等均会受到一定影响。 在使用此模式前,强烈建议咨询技术支持同学。 |
public enum com.ss.bytertc.engine.RTCEngine.AudioScenarioType
音频场景类型。
选择音频场景后,RTC 会自动根据客户端音频采集播放设备和采集播放状态,适用通话音量/媒体音量。
你可以调用 setAudioScenario 设置音频场景。
如果以下音频场景类型无法满足你的业务需要,请联系技术支持同学进行定制。
| 类型 | 说明 | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AUDIO_SCENARIO_MUSIC | 音乐场景。默认为此场景。 此场景适用于对音乐表现力有要求的场景,如音乐直播等。 音频采集播放设备和采集播放状态,到音量类型的映射如下:
|
||||||||||||||||||||
| AUDIO_SCENARIO_HIGHQUALITY_COMMUNICATION | 高质量通话场景。 此场景适用于对音乐表现力有要求,但又希望能够使用蓝牙耳机上自带的麦克风进行音频采集的场景。 此场景可以兼顾外放/使用蓝牙耳机时的音频体验,并避免使用蓝牙耳机时音量类型切换导致的听感突变。 音频采集播放设备和采集播放状态,到音量类型的映射如下:
|
||||||||||||||||||||
| AUDIO_SCENARIO_COMMUNICATION | 纯通话音量场景。 此场景下,无论客户端音频采集播放设备和采集播放状态,全程使用通话音量。 适用于需要频繁上下麦的通话或会议场景。 此场景可以保持统一的音频模式,不会有音量突变的听感; 最大程度地消除回声,使通话清晰度达到最优; 使用蓝牙耳机时,能够使用蓝牙耳机上自带的麦克风进行音频采集。 但是,会压低使用媒体音量进行播放的其他音频的音量,且音质会变差。 |
||||||||||||||||||||
| AUDIO_SCENARIO_MEDIA | 纯媒体场景。一般不建议使用。 此场景下,无论客户端音频采集播放设备和采集播放状态,全程使用媒体音量。 外放通话时,极易出现回声和啸叫。 |
||||||||||||||||||||
| AUDIO_SCENARIO_GAME_STREAMING | 游戏媒体场景。仅适合游戏场景。 此场景下,蓝牙耳机时使用通话音量,其它设备使用媒体音量。 外放通话且无游戏音效消除优化时,极易出现回声和啸叫。 |
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) | 下行网络较弱时,先尝试只接收视频小流;如果网络环境无法显示视频,则再回退到只接收远端订阅的音频流。 |
public enum com.ss.bytertc.engine.RTCEngine.PublishFallbackOption
发布回退选项
| 类型 | 说明 |
|---|---|
| kPublishFallbackDisable(0) | 关闭发送视频流时的性能回退功能,默认值 |
| kPublishFallbackSimulcastSmallVideoOnly(1) | 开启在网络情况不佳或设备性能不足时只发送小流的功能 |
public enum com.ss.bytertc.engine.RTCEngine.RemoteUserPriority
远端用户优先级,在性能不足需要回退时,会优先回退优先级低的用户的音视频流。
| 类型 | 说明 |
|---|---|
| REMOTE_USER_PRIORITY_LOW(0) | 用户优先级为低,默认值。 |
| REMOTE_USER_PRIORITY_MEDIUM(100) | 用户优先级为正常。 |
| REMOTE_USER_PRIORITY_HIGH(200) | 用户优先级为高。 |
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 | 连接断开后重连成功。 |
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_DELAY (1 << 5, "Video Delay") | 视频延迟 |
| PROBLEM_DISCONNECT (1 << 6, "Disconnect") | 连接失败 |
| PROBLEM_NO_AUDIO (1 << 7, "No audio") | 无声音 |
| PROBLEM_NO_VIDEO (1 << 8, "No video") | 无画面 |
| PROBLEM_AUDIO_STRENGTH (1 << 9, "Sound is either too loud or too quiet") | 声音过大或过小 |
| PROBLEM_ECHO (1 << 10, "Echo Noise") | 有回声 |
| PROBLEM_EAR_BACK_DELAY(1 << 11,"Ear back delay") | 耳返延迟大 |
public enum com.ss.bytertc.engine.RTCEngine.RecordingType
本地录制的媒体类型
| 类型 | 说明 |
|---|---|
| RECORD_AUDIO_ONLY(0) | 只录制音频 |
| RECORD_VIDEO_ONLY(1) | 只录制视频 |
| RECORD_VIDEO_AND_AUDIO(2) | 同时录制音频和视频 |
public enum com.ss.bytertc.engine.RTCEngine.RecordingFileType
本地录制文件的存储格式
| 类型 | 说明 |
|---|---|
| RECORDING_FILE_TYPE_AAC(0) | aac 格式文件 |
| RECORDING_FILE_TYPE_MP4(1) | mp4 格式文件 |
public class com.ss.bytertc.engine.data.AudioFormat
音频参数格式
| 类型 | 名称 |
|---|---|
| AudioSampleRate | sampleRate |
| AudioChannel | channel |
public AudioSampleRate com.ss.bytertc.engine.data.AudioFormat.sampleRate;
音频采样率,详见 AudioSampleRate
public AudioChannel com.ss.bytertc.engine.data.AudioFormat.channel;
音频声道,详见 AudioChannel
public class com.ss.bytertc.engine.data.AudioMixingConfig
混音配置
| 类型 | 名称 |
|---|---|
| AudioMixingType | type |
| int | playCount |
public AudioMixingType com.ss.bytertc.engine.data.AudioMixingConfig.type;
混音播放类型,详见 AudioMixingType
public int com.ss.bytertc.engine.data.AudioMixingConfig.playCount;
混音播放次数
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 卸载文件 |
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) | 混音播放结束 |
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) | 本地和远端同时播放 |
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 |
public int com.ss.bytertc.engine.data.AudioPlaybackDevice.value()
获取当前值
返回值 当前值
public enum com.ss.bytertc.engine.data.AudioSourceType
音频输入源类型
| 类型 | 说明 |
|---|---|
| AUDIO_SOURCE_TYPE_EXTERNAL(0) | |
| AUDIO_SOURCE_TYPE_INTERNAL(1) |
public enum com.ss.bytertc.engine.data.CameraId
移动端摄像头
| 类型 | 说明 |
|---|---|
| CAMERA_ID_FRONT (0) | 前置摄像头 |
| CAMERA_ID_BACK (1) | 后置摄像头(默认设置) |
public enum com.ss.bytertc.engine.data.MediaInputType
视频输入类型
| 类型 | 说明 |
|---|---|
| MEDIA_INPUT_TYPE_EXTERNAL(0) | 自定义采集。 设置完成后方可直接向 SDK 推送视频帧。 |
| MEDIA_INPUT_TYPE_INTERNAL(1) | 内部 SDK 采集。 此设置仅切换至内部采集,你需继续调用 startVideoCapture 开启内部采集。 |
public enum com.ss.bytertc.engine.data.MirrorMode
是否开启镜像模式
| 类型 | 说明 |
|---|---|
| MIRROR_MODE_OFF(0) | 不开启(默认设置) |
| MIRROR_MODE_ON(1) | 开启 |
public enum com.ss.bytertc.engine.data.MuteState
停止/启动发送音/视频流的状态
| 类型 | 说明 |
|---|---|
| MUTE_STATE_OFF(0) | 启动发送音/视频流的状态(默认设置) |
| MUTE_STATE_ON(1) | 停止发送音/视频流的状态 |
public enum com.ss.bytertc.engine.data.StreamIndex
流属性
| 类型 | 说明 |
|---|---|
| STREAM_INDEX_MAIN(0) | 主流。包括: + 通过默认摄像头/麦克风采集到的视频/音频; + 通过自定义设备采集到的视频/音频。 |
| STREAM_INDEX_SCREEN(1) | 屏幕流。屏幕共享时共享的视频流,或来自声卡的本地播放音频流。 |
public interface com.ss.bytertc.engine.handler.IRTCASREngineEventHandler
语音识别服务使用状态回调
| 返回 | 名称 |
|---|---|
| void | onSuccess |
| void | onMessage |
| void | onError |
public void com.ss.bytertc.engine.handler.IRTCASREngineEventHandler.onSuccess()
语音识别服务开启成功回调
public void com.ss.bytertc.engine.handler.IRTCASREngineEventHandler.onMessage(
String message)
语音转文字成功后回调,该回调返回识别后的全量消息。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| message | String | 识别完成后得到的文字消息 |
注意 若识别过程中发生了网络连接中断,则重连后回调的信息中只包含重连后识别的文字消息,不再包含上一次连接后识别的消息。
public void com.ss.bytertc.engine.handler.IRTCASREngineEventHandler.onError(
int errorCode,
String errorMessage)
当语音识别服务内部发生错误事件时触发该回调。
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| errorCode | int | 错误码 • <0: 参数错误或 API 调用顺序错误,参看 RTCASRErrorCode; • >0: 参看 语音识别服务错误码 |
| errorMessage | String | 错误原因说明。 |
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 技术支持。 |
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 |
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.NetworkQuality.NETWORK_QUALITY_UNKNOWN = 0;
媒体流网络质量未知。
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.NetworkQuality.NETWORK_QUALITY_EXCELLENT = 1;
媒体流网络质量极好。
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.NetworkQuality.NETWORK_QUALITY_GOOD = 2;
媒体流网络质量好。
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.NetworkQuality.NETWORK_QUALITY_POOR = 3;
媒体流网络质量较差但不影响沟通。
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.NetworkQuality.NETWORK_QUALITY_BAD = 4;
媒体流网络质量差沟通不顺畅。
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.NetworkQuality.NETWORK_QUALITY_VERY_BAD = 5;
媒体流网络质量非常差。
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) | 由性能恢复导致的发布端音视频流恢复。 |
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 | 其他原因。 |
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 |
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) | 本地视频编码失败 |
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) | 远端视频流播放失败 |
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 |
public enum com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RecordingState
本地录制的状态
| 类型 | 说明 |
|---|---|
| RECORDING_STATE_ERROE(0) | 录制异常 |
| RECORDING_STATE_PROCESSING(1) | 录制进行中 |
| RECORDING_STATE_SUCCESS(2) | 录制文件保存成功,调用 stopFileRecording 结束录制之后才会收到该状态码。 |
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) | 其他异常 |
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 秒,仍然会继续重连。 |
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 |
public String com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamSwitch.uid;
订阅的音视频流的发布者的用户 ID
public boolean com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamSwitch.isScreen;
是否是屏幕共享流
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamSwitch.before_video_index;
流切换前订阅视频流的分辨率对应的索引
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamSwitch.after_video_index;
流切换后订阅视频流的分辨率对应的索引
public boolean com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamSwitch.before_enable;
流切换前是否有视频流
public boolean com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamSwitch.after_enable;
流切换后是否有视频流
public FallbackOrRecoverReason com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamSwitch.reason;
流切换原因,详见类型 FallbackOrRecoverReason 。
public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RtcUser
用户信息
| 类型 | 名称 |
|---|---|
| String | userId |
| String | metaData |
public String com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RtcUser.userId;
用户 id
public String com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RtcUser.metaData;
元数据
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) | 发送失败 |
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) |
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 |
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.totalDuration;
用户进房开始通话后的总时长,单位为 s,累计值
public long com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.txBytes;
本地用户的总发送字节数 (bytes),累计值
public long com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.rxBytes;
本地用户的总接收字节数 (bytes),累计值
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.txKBitRate;
发送码率(kbps),获取该数据时的瞬时值
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.rxKBitRate;
接收码率(kbps),获取该数据时的瞬时值
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.txAudioKBitRate;
音频包的发送码率(kbps),获取该数据时的瞬时值
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.rxAudioKBitRate;
音频接收码率(kbps),获取该数据时的瞬时值
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.txVideoKBitRate;
视频发送码率(kbps),获取该数据时的瞬时值
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.rxVideoKBitRate;
视频接收码率(kbps),获取该数据时的瞬时值
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.users;
当前房间内的人数。
public double com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.cpuTotalUsage;
当前系统的 CPU 使用率 (%)
public double com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.cpuAppUsage;
当前应用的 CPU 使用率 (%)
public double com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.txLostrate;
当前应用的上行丢包率,取值范围为 [0, 1]。
public double com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.rxLostrate;
当前应用的下行丢包率,取值范围为 [0, 1]。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.rtt;
客户端到服务端数据传输的往返时延(单位 ms)
public void com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RTCRoomStats.reset()
重置所有的 RTCRoomStats 成员变量的值,重新开始统计。
public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.AudioVolumeInfo
声音音量信息。包含每个说话者的用户 id 和音量信息
| 类型 | 名称 |
|---|---|
| String | uid |
| int | volume |
public String com.ss.bytertc.engine.handler.IRTCEngineEventHandler.AudioVolumeInfo.uid;
说话者的用户 id
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.AudioVolumeInfo.volume;
说话者的音量,范围为 0(最低)- 255(最高)
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 |
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.width;
远端视频流宽度
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.height;
远端视频流高度
public float com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.videoLossRate;
视频丢包率。统计周期内的视频下行丢包率,单位为 % ,取值范围为 [0,1] 。
public float com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.receivedKBitrate;
接收码率。统计周期内的视频接收码率,单位为 kbps 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.decoderOutputFrameRate;
解码器输出帧率。统计周期内的视频解码器输出帧率,单位 fps 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.rendererOutputFrameRate;
渲染帧率。统计周期内的视频渲染帧率,单位 fps 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.stallCount;
卡顿次数。统计周期内的卡顿次数。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.stallDuration;
卡顿时长。统计周期内的视频卡顿总时长。单位 ms 。
public long com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.e2eDelay;
用户体验级别的端到端延时,从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为毫秒
public boolean com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.isScreen;
所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.statsInterval;
统计间隔,此次统计周期的间隔,单位为 ms 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.rtt;
往返时延,单位为 ms 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.frozenRate;
远端用户在进房后发生视频卡顿的累计时长占视频总有效时长的百分比(%)。视频有效时长是指远端用户进房发布视频流后,除停止发送视频流和禁用视频模块之外的视频时长。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteVideoStats.videoIndex;
对应多种分辨率的流的下标,详见 VideoStreamDescription 。
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 |
public float com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.sentKBitrate;
发送码率。此次统计周期内的视频发送码率,单位为 kbps 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.inputFrameRate;
采集帧率。此次统计周期内的视频采集帧率,单位为 fps 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.sentFrameRate;
发送帧率。此次统计周期内的视频发送帧率,单位为 fps 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.encoderOutputFrameRate;
编码器输出帧率。当前编码器在此次统计周期内的输出帧率,单位为 fps 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.rendererOutputFrameRate;
本地渲染帧率。此次统计周期内的本地视频渲染帧率,单位为 fps 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.targetKBitrate;
目标发送码率。此次统计周期内的视频目标发送码率,单位为 kbps 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.targetFrameRate;
目标发送帧率。当前编码器在此次统计周期内的目标发送帧率,单位为 fps 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.statsInterval;
统计间隔,单位为 ms 。
public float com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.videoLossRate;
视频丢包率。此次统计周期内的视频上行丢包率,取值范围: [0,1] 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.rtt;
往返时延,单位为 ms 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.encodedBitrate;
视频编码码率。此次统计周期内的视频编码码率,单位为 kbps 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.encodedFrameWidth;
视频编码宽度,单位为 px 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.encodedFrameHeight;
视频编码高度,单位为 px 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.encodedFrameCount;
此次统计周期内发送的视频帧总数。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.codecType;
视频的编码类型,具体参考 VideoCodecType 。
public boolean com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalVideoStats.isScreen;
所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。
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 |
public float com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.audioLossRate;
音频丢包率。统计周期内的音频下行丢包率,取值范围为 [0, 1] 。
public float com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.receivedKBitrate;
接收码率。统计周期内的音频接收码率,单位为 kbps 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.stallCount;
音频卡顿次数。统计周期内的卡顿次数。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.stallDuration;
音频卡顿时长。统计周期内的卡顿时长,单位为 ms 。
public long com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.e2eDelay;
用户体验级别的端到端延时。从发送端采集完成编码开始到接收端解码完成渲染开始的延时,单位为 ms 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.playoutSampleRate;
播放采样率。统计周期内的音频播放采样率信息,单位为 Hz 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.statsInterval;
统计间隔。此次统计周期的间隔,单位为 ms 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.rtt;
客户端到服务端数据传输的往返时延,单位为 ms 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.total_rtt;
发送端——服务端——接收端全链路数据传输往返时延。单位为 ms 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.quality;
远端用户发送的音频流质量。值含义参考 NetworkQuality 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.jitterBufferDelay;
因引入 jitter buffer 机制导致的延时。单位为 ms 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.numChannels;
音频声道数。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.receivedSampleRate;
音频接收采样率。统计周期内接收到的远端音频采样率信息,单位为 Hz 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.frozenRate;
远端用户在加入房间后发生音频卡顿的累计时长占音频总有效时长的百分比。音频有效时长是指远端用户进房发布音频流后,除停止发送音频流和禁用音频模块之外的音频时长。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.concealedSamples;
音频 PLC 样点总个数。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.concealmentEvent;
PLC 累计次数。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.decSampleRate;
音频解码采样率。统计周期内的音频解码采样率信息,单位为 Hz 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteAudioStats.decDuration;
解码时长。对此次统计周期内接收的远端音频流进行解码的总耗时,单位为 s 。
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 |
public float com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalAudioStats.audioLossRate;
音频丢包率。此次统计周期内的音频上行丢包率,单位为 % ,取值范围为 [0, 1] 。
public float com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalAudioStats.sendKBitrate;
发送码率。此次统计周期内的音频发送码率,单位为 kbps 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalAudioStats.recordSampleRate;
采集采样率。此次统计周期内的音频采集采样率信息,单位为 Hz 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalAudioStats.statsInterval;
统计间隔。此次统计周期的间隔,单位为 ms 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalAudioStats.rtt;
往返时延。单位为 ms 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalAudioStats.numChannels;
音频声道数。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalAudioStats.sentSampleRate;
音频发送采样率。此次统计周期内的音频发送采样率信息,单位为 Hz 。
public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalStreamStats
本地音/视频流统计信息以及网络状况,统计周期为 2s 。
本地用户发布音/视频流成功后,SDK 会周期性地通过 onLocalStreamStats
通知本地用户发布的音/视频流在此次统计周期内的发送状况。此数据结构即为回调给用户的参数类型。
| 类型 | 名称 |
|---|---|
| LocalAudioStats | audioStats |
| LocalVideoStats | videoStats |
| boolean | isScreen |
| int | txQuality |
| int | rxQuality |
public LocalAudioStats com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalStreamStats.audioStats;
本地设备发送音频流的统计信息,详见 LocalAudioStats 。
public LocalVideoStats com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalStreamStats.videoStats;
本地设备发送视频流的统计信息,详见 LocalVideoStats 。
public boolean com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalStreamStats.isScreen;
所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalStreamStats.txQuality;
本地媒体上行网络质量,详见 NetworkQuality 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.LocalStreamStats.rxQuality;
本地媒体下行网络质量,详见 NetworkQuality 。
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 |
public String com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamStats.uid;
用户 ID 。音/视频来源的远端用户 ID 。
public RemoteAudioStats com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamStats.audioStats;
远端音频流的统计信息,详见 RemoteAudioStats
public RemoteVideoStats com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamStats.videoStats;
远端视频流的统计信息,详见 RemoteVideoStats
public boolean com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamStats.isScreen;
所属用户的媒体流是否为屏幕流。你可以知道当前统计数据来自主流还是屏幕流。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamStats.txQuality;
所属用户的媒体流上行网络质量,详见 NetworkQuality 。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.RemoteStreamStats.rxQuality;
所属用户的媒体流下行网络质量,详见 NetworkQuality 。
public enum com.ss.bytertc.engine.handler.IRTCEngineEventHandler.PerformanceAlarmMode
性能回退的模式
| 类型 | 说明 |
|---|---|
| PERFORMANCE_ALARM_MODE_NORMAL | 未开启发布性能回退 |
| PERFORMANCE_ALARM_MODE_SIMULCAST | 已开启发布性能回退 |
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 | 如果未开启发送性能回退,收到此告警时,意味着性能不足已恢复; 如果开启了发送性能回退,收到此告警时,意味着性能不足已恢复,且已发生发送性能回退恢复。 |
public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.SourceWantedData
性能回退相关数据
| 类型 | 名称 |
|---|---|
| int | width |
| int | height |
| int | frameRate |
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.SourceWantedData.width;
如果未开启发送性能回退,此值表示推荐的视频输入宽度;
如果开启了发送性能回退,此值表示当前推流的最大宽度。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.SourceWantedData.height;
如果未开启发送性能回退,此值表示推荐的视频输入高度;
如果开启了发送性能回退,此值表示当前推流的最大高度。
public int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.SourceWantedData.frameRate;
如果未开启发送性能回退,此值表示推荐的视频输入帧率,单位 fps;
如果开启了发送性能回退,此值表示当前推流的最大帧率,单位 fps。
public class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.USER_ONLINE_STATUS
用户在线状态
| 类型 | 名称 |
|---|---|
| int | USER_ONLINE_STATUS_OFFLINE |
| int | USER_ONLINE_STATUS_ONLINE |
| int | USER_ONLINE_STATUS_UNREACHABLE |
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.USER_ONLINE_STATUS.USER_ONLINE_STATUS_OFFLINE = 0;
对端用户离线
对端用户已经调用 logout,或者没有调用 login 进行登录
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.USER_ONLINE_STATUS.USER_ONLINE_STATUS_ONLINE = 1;
对端用户在线
对端用户调用 login 登录,并且连接状态正常。
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.USER_ONLINE_STATUS.USER_ONLINE_STATUS_UNREACHABLE = 2;
无法获取对端用户在线状态
发生级联错误、对端用户在线状态异常时返回
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 |
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceType.MEDIA_DEVICE_TYPE_AUDIO_RENDER_DEVICE = 0;
音频渲染设备类型
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceType.MEDIA_DEVICE_TYPE_AUDIO_CAPTURE_DEVICE = 1;
音频采集设备类型
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceType.MEDIA_DEVICE_TYPE_VIDEO_CAPTURE_DEVICE = 3;
视频采集设备类型
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 |
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceState.MEDIA_DEVICE_STATE_STARTED = 1;
设备已开启
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceState.MEDIA_DEVICE_STATE_STOPPED = 2;
设备已停止
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceState.MEDIA_DEVICE_STATE_RUNTIMEERROR = 3;
设备运行时错误
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceState.MEDIA_DEVICE_STATE_ADDED = 10;
设备已插入
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceState.MEDIA_DEVICE_STATE_REMOVED = 11;
设备被移除
public static class com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceError
媒体设备错误类型
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceError.MEDIA_DEVICE_ERROR_OK = 0;
媒体设备正常
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceError.MEDIA_DEVICE_ERROR_NOPERMISSION = 1;
没有权限启动媒体设备
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceError.MEDIA_DEVICE_ERROR_DEVICEBUSY = 2;
媒体设备已经在使用中
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceError.MEDIA_DEVICE_ERROR_DEVICEFAILURE = 3;
媒体设备错误
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceError.MEDIA_DEVICE_ERROR_DEVICENOTFOUND = 4;
未找到指定的媒体设备
public static final int com.ss.bytertc.engine.handler.IRTCEngineEventHandler.MediaDeviceError.MEDIA_DEVICE_ERROR_DEVICEDISCONNECTED = 5;
媒体设备被移除
enum com.ss.bytertc.engine.live.ILiveTranscodingObserver.StreamMixingEvent
合流状态改变事件
| 类型 | 说明 |
|---|---|
| StreamMixingChangeMixeType | 服务端合流/端云一体合流 |
| StreamMixingFirstAudioFrameByClientMixer | 收到合流音频首帧 |
| StreamMixingFirstVideoFrameByClientMixer | 收到合流视频首帧 |
| StreamMixingStart | 合流开启 |
| StreamMixingStartFailed | 合流启动失败 |
| StreamMixingStartSuccess | 合流启动成功 |
| StreamMixingStop | 合流结束 |
| StreamMixingStopTimeout | 结束合流超时 |
enum com.ss.bytertc.engine.live.ILiveTranscodingObserver.StreamMixingType
合流类型
| 类型 | 说明 |
|---|---|
| StreamMixingTypeByServer | 通过服务端转推直播 |
public class com.ss.bytertc.engine.live.LiveTranscoding
转推直播配置参数。
| 类型 | 名称 |
|---|---|
| String | ACTION_START |
| String | ACTION_CHANGED |
| String | ACTION_STOPPED |
public static final String com.ss.bytertc.engine.live.LiveTranscoding.ACTION_START = "started";
设置转推直播动作参数,ACTION_START 表示开启直播推流功能。
public static final String com.ss.bytertc.engine.live.LiveTranscoding.ACTION_CHANGED = "layoutChanged";
设置转推直播动作参数,ACTION_CHANGED 表示更新视频合流布局。
public static final String com.ss.bytertc.engine.live.LiveTranscoding.ACTION_STOPPED = "stopped";
设置转推直播动作参数,ACTION_STOPPED 表示停止直播推流功能。
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 |
public static class com.ss.bytertc.engine.live.LiveTranscoding.VideoConfig
视频转码配置参数。
public enum com.ss.bytertc.engine.live.LiveTranscoding.VideoConfig.VideoCodecType
转推直播视频编码器格式。
| 类型 | 说明 |
|---|---|
| VIDEO_CODEC_TYPE_H264("H264") | 使用 H264 编码格式 |
| VIDEO_CODEC_TYPE_BYTEVC1("ByteVC1") | 自定义编码器 |
public static class com.ss.bytertc.engine.live.LiveTranscoding.AudioConfig
音频转码配置参数。
public static class com.ss.bytertc.engine.live.LiveTranscoding.Layout
视频流合流整体布局信息。
开启转推直播功能后,你可以设置参与合流的每路视频流的预设布局信息和合流背景信息等。
public static class com.ss.bytertc.engine.live.LiveTranscoding.Layout.Region
单个视频流在合流中的布局信息。
开启转推直播功能后,在多路视频流合流时,你可以设置其中一路视频流在合流中的预设布局信息。
public interface com.ss.bytertc.engine.loader.RTCNativeLibraryLoader
用户自定义动态库加载器实现
| 返回 | 名称 |
|---|---|
| boolean | load |
boolean com.ss.bytertc.engine.loader.RTCNativeLibraryLoader.load(
String libraryName)
SDK在需要加载动态库时通过该方法回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| libraryName | String | 要加载的动态库名称 |
public class com.ss.bytertc.engine.mediaio.RTCVideoFrame
视频帧
| 类型 | 名称 |
|---|---|
| android.opengl.EGLContext | eglContext14 |
| 返回 | 名称 |
|---|---|
| static RTCVideoFrame | createI420Frame |
| static RTCVideoFrame | createTextureFrame |
| 返回 | 名称 |
|---|---|
| int | getPlaneCount |
| ByteBuffer | getPlane |
| int | getPlaneStride |
| ByteBuffer | getExtendData |
| ByteBuffer | getSupplementaryInfo |
| int | getPixelFormat |
| int | getWidth |
| int | getHeight |
| int | getRotation |
| void | setRotation |
| long | getTimestamp |
| void | setTimestamp |
| int | getCropLeft |
| int | getCropTop |
| int | getCropRight |
| int | getCropBottom |
| android.opengl.EGLContext | getEglContext |
| int | getGlTextureId |
| float[] | getTransform |
| RTCVideoFrame | RTCVideoFrame |
| RTCVideoFrame | RTCVideoFrame |
public android.opengl.EGLContext com.ss.bytertc.engine.mediaio.RTCVideoFrame.eglContext14 = null;
EGL 上下文
public static RTCVideoFrame com.ss.bytertc.engine.mediaio.RTCVideoFrame.createI420Frame(
ByteBuffer plane_y,
int stride_y,
ByteBuffer plane_u,
int stride_u,
ByteBuffer plane_v,
int stride_v,
int width,
int height,
int rotation,
long timestamp,
@Nullable Runnable release_callback)
构造 I420 格式的视频帧
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| plane_y | ByteBuffer | 视频数据缓冲区_y |
| stride_y | int | 视频数据缓冲区_y一行跨距 |
| plane_u | ByteBuffer | 视频数据缓冲区_u |
| stride_u | int | 视频数据缓冲区_u一行跨距 |
| plane_v | ByteBuffer | 视频数据缓冲区_v |
| stride_v | int | 视频数据缓冲区_v一行跨距 |
| width | int | 视频帧分辨率宽 |
| height | int | 视频分辨率高度 |
| rotation | int | 视频帧旋转角度 |
| timestamp | long | 视频帧时间戳 |
| release_callback | @Nullable Runnable | 视频帧释放回调 |
public static RTCVideoFrame com.ss.bytertc.engine.mediaio.RTCVideoFrame.createTextureFrame(
@PixelFormat int pixel_format,
int textureId,
int width,
int height,
int rotation,
long timestamp,
float[] transform_matrix,
@Nullable Runnable release_callback)
构造 TextureFrame
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| pixel_format | @PixelFormat int | OpenGL 纹理格式 |
| textureId | int | OpenGL 纹理ID |
| width | int | 视频帧分辨率宽 |
| height | int | 视频分辨率高度 |
| rotation | int | 视频帧旋转角度 |
| timestamp | long | 视频帧时间戳 |
| transform_matrix | float[] | 纹理矩阵 |
| release_callback | @Nullable Runnable | 视频帧释放回调 |
public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.getPlaneCount()
获取像素平面数量
注意 例如,当采用 YUV 格式时,像素平面数为 3
public ByteBuffer com.ss.bytertc.engine.mediaio.RTCVideoFrame.getPlane(
int index)
获取指定像素平面
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | int | 像素平面下标 |
public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.getPlaneStride(
int index)
获取指定像素平面的跨距
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| index | int | 像素平面下标 |
public ByteBuffer com.ss.bytertc.engine.mediaio.RTCVideoFrame.getExtendData()
获取 SEI 数据
public ByteBuffer com.ss.bytertc.engine.mediaio.RTCVideoFrame.getSupplementaryInfo()
获取 SEI 数据
public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.getPixelFormat()
获取视频帧数据格式。
public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.getWidth()
获取视频帧宽度,单位:像素。
public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.getHeight()
获取视频帧高度,单位:像素。
public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.getRotation()
获取视频帧旋转角度,单位:度。
public void com.ss.bytertc.engine.mediaio.RTCVideoFrame.setRotation(
int rotation)
设置视频帧旋转角度,单位:度。
public long com.ss.bytertc.engine.mediaio.RTCVideoFrame.getTimestamp()
获取视频帧时间戳, 单位:纳秒
public void com.ss.bytertc.engine.mediaio.RTCVideoFrame.setTimestamp(
long timestamp)
设定视频帧时间戳, 单位:纳秒
public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.getCropLeft()
指定左边裁剪掉的像素数量。默认为 0。
public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.getCropTop()
指定顶边裁剪掉的像素数量。默认为 0
public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.getCropRight()
指定右边裁剪掉的像素数量。默认为 0
public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.getCropBottom()
指定底边裁剪掉的像素数量。默认为 0
public android.opengl.EGLContext com.ss.bytertc.engine.mediaio.RTCVideoFrame.getEglContext()
获取 EGL 上下文
public int com.ss.bytertc.engine.mediaio.RTCVideoFrame.getGlTextureId()
获取视频帧使用纹理的 ID
public float[] com.ss.bytertc.engine.mediaio.RTCVideoFrame.getTransform()
获取 4x4 的变换矩阵,典型值是单位矩阵
public com.ss.bytertc.engine.mediaio.RTCVideoFrame.RTCVideoFrame(
ByteBuffer[] planes,
int[] strides,
int width,
int height,
@PixelFormat int pixel_fromat,
int rotation,
long timestamp,
ByteBuffer extend_data,
ByteBuffer supplementary_info,
@Nullable Runnable release_callback)
构造函数
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| planes | ByteBuffer[] | 视频数据缓冲区 |
| strides | int[] | 视频数据缓冲区一行跨距 |
| width | int | 视频帧分辨率宽 |
| height | int | 视频分辨率高度 |
| rotation | int | 视频帧旋转角度 |
| timestamp | long | 视频帧时间戳 |
| extend_data | ByteBuffer | 扩展数据缓冲区 |
| supplementary_info | ByteBuffer | 补充数据缓冲区 |
| release_callback | @Nullable Runnable | 视频帧释放回调 |
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 | 视频帧释放回调 |
public @interface com.ss.bytertc.engine.mediaio.RTCVideoFrame.PixelFormat
视频帧数据格式
| 类型 | 名称 |
|---|---|
| int | UNKNOW |
| int | I420 |
| int | NV21 |
| int | TEXTURE_2D |
| int | TEXTURE_OES |
int com.ss.bytertc.engine.mediaio.RTCVideoFrame.PixelFormat.UNKNOW = 0;
UNKNOW用在RTCVideoFrame中时表示不支持的格式,用在接口参数时一般表示不对视频帧格式进行指定。
int com.ss.bytertc.engine.mediaio.RTCVideoFrame.PixelFormat.I420 = 1;
I420 数据格式
int com.ss.bytertc.engine.mediaio.RTCVideoFrame.PixelFormat.NV21 = 3;
NV21 数据格式
int com.ss.bytertc.engine.mediaio.RTCVideoFrame.PixelFormat.TEXTURE_2D = 10;
2D 纹理格式
int com.ss.bytertc.engine.mediaio.RTCVideoFrame.PixelFormat.TEXTURE_OES = 11;
OES 纹理格式
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 interface com.ss.bytertc.engine.video.IVideoSink
自定义视频渲染器。
| 返回 | 名称 |
|---|---|
| void | onFrame |
void com.ss.bytertc.engine.video.IVideoSink.onFrame(
RTCVideoFrame frame)
视频帧回调
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| frame | RTCVideoFrame | 视频帧结构类,参看 RTCVideoFrame |
public @interface com.ss.bytertc.engine.video.IVideoSink.PixelFormat
视频帧数据格式
| 类型 | 名称 |
|---|---|
| int | I420 |
int com.ss.bytertc.engine.video.IVideoSink.PixelFormat.I420 = 1;
I420数据格式
public class com.ss.bytertc.engine.video.ScreenSharingParameters
屏幕共享的编码参数配置
| 类型 | 名称 |
|---|---|
| int | maxWidth |
| int | maxHeight |
| int | frameRate |
| int | bitrate |
public int com.ss.bytertc.engine.video.ScreenSharingParameters.maxWidth = 0;
屏幕采集编码最大宽度,
public int com.ss.bytertc.engine.video.ScreenSharingParameters.maxHeight = 0;
屏幕采集编码最大高度
public int com.ss.bytertc.engine.video.ScreenSharingParameters.frameRate = 15;
屏幕采集编码帧率, 单位 fps
public int com.ss.bytertc.engine.video.ScreenSharingParameters.bitrate = -1;
屏幕采集编码码率, -1 为自动码率, SDK 会根据宽高信息选择合适的码率,单位 kbps
public class com.ss.bytertc.engine.video.VideoEncoderConfiguration
视频编码配置
| 类型 | 名称 |
|---|---|
| VideoDimensions | dimensions |
| FrameRate | frameRate |
| int | kBitrate |
| OrientationMode | orientationMode |
public VideoDimensions com.ss.bytertc.engine.video.VideoEncoderConfiguration.dimensions;
视频编码像素
public FrameRate com.ss.bytertc.engine.video.VideoEncoderConfiguration.frameRate;
视频编码帧率
public int com.ss.bytertc.engine.video.VideoEncoderConfiguration.kBitrate;
视频编码码率
public OrientationMode com.ss.bytertc.engine.video.VideoEncoderConfiguration.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) | 固定竖屏输出视频。若采集到的视频是横屏模式,则视频编码器会对其进行裁剪。 |
public class com.ss.bytertc.engine.video.VideoPreprocessorConfig
视频处理配置参数。
| 类型 | 名称 |
|---|---|
| int | required_pixel_format |
public int com.ss.bytertc.engine.video.VideoPreprocessorConfig.required_pixel_format = RTCVideoFrame.PixelFormat.UNKNOW;
设置请求的像素格式,参看 RTCVideoFrame 中的 PixelFormat。
public enum com.ss.bytertc.engine.data.AudioChannel
音频声道
| 类型 | 说明 |
|---|---|
| AUDIO_CHANNEL_MONO(1) | 单声道 |
| AUDIO_CHANNEL_STEREO(2) | 双声道 |
| 返回 | 名称 |
|---|---|
| int | value |
public int com.ss.bytertc.engine.data.AudioChannel.value()
获取当前值
返回值 当前值
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 |
public int com.ss.bytertc.engine.data.AudioSampleRate.value()
获取当前值
返回值 当前值
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 |
public int com.ss.bytertc.engine.data.LocalAudioStreamError.value()
获取当前值
返回值 当前值
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 |
public int com.ss.bytertc.engine.data.LocalAudioStreamState.value()
获取当前值
返回值 当前值
public class com.ss.bytertc.engine.data.RecordingConfig
本地录制参数配置
| 类型 | 名称 |
|---|---|
| String | dirPath |
| RecordingFileType | recordingFileType |
| RecordingType | recordingType |
public String com.ss.bytertc.engine.data.RecordingConfig.dirPath;
录制文件保存的绝对路径。你需要指定一个有读写权限的合法路径。
public RecordingFileType com.ss.bytertc.engine.data.RecordingConfig.recordingFileType = RecordingFileType.RECORDING_FILE_TYPE_MP4;
录制存储文件格式,参看 RecordingFileType
public RecordingType com.ss.bytertc.engine.data.RecordingConfig.recordingType = RecordingType.RECORD_VIDEO_AND_AUDIO;
录制媒体类型,参看 RecordingType
public class com.ss.bytertc.engine.data.RecordingInfo
本地录制的详细信息
| 类型 | 名称 |
|---|---|
| String | filePath |
| VideoCodecType | videoCodecType |
| int | width |
| int | height |
public String com.ss.bytertc.engine.data.RecordingInfo.filePath;
录制文件的绝对路径,包含文件名和文件后缀
public VideoCodecType com.ss.bytertc.engine.data.RecordingInfo.videoCodecType;
录制文件的视频编码类型,参看 参看 VideoCodecType
public int com.ss.bytertc.engine.data.RecordingInfo.width;
录制视频的宽,单位:像素。纯音频录制请忽略该字段
public int com.ss.bytertc.engine.data.RecordingInfo.height;
录制视频的高,单位:像素。纯音频录制请忽略该字段
public class com.ss.bytertc.engine.data.RecordingProgress
本地录制进度
| 类型 | 名称 |
|---|---|
| long | duration |
| long | fileSize |
public long com.ss.bytertc.engine.data.RecordingProgress.duration;
当前文件的累计录制时长,单位:毫秒
public long com.ss.bytertc.engine.data.RecordingProgress.fileSize;
当前录制文件的大小,单位:byte
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 |
public int com.ss.bytertc.engine.data.RemoteAudioState.value()
获取当前值
返回值 当前值
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 |
public int com.ss.bytertc.engine.data.RemoteAudioStateChangeReason.value()
获取当前值
返回值 当前值
public class com.ss.bytertc.engine.data.RemoteStreamKey
远端流信息
| 返回 | 名称 |
|---|---|
| String | getRoomId |
| String | getUserId |
| StreamIndex | getStreamIndex |
public String com.ss.bytertc.engine.data.RemoteStreamKey.getRoomId()
获取房间 ID
public String com.ss.bytertc.engine.data.RemoteStreamKey.getUserId()
获取用户 ID
public StreamIndex com.ss.bytertc.engine.data.RemoteStreamKey.getStreamIndex()
获取流属性,包括主流、屏幕流。参看 StreamIndex
public class com.ss.bytertc.engine.data.RTCASRConfig
使用自动语音识别服务所需校验信息
| 类型 | 名称 |
|---|---|
| String | userId |
| String | accessToken |
| String | secretKey |
| ASRAuthorizationType | authorizationType |
| String | cluster |
| String | appId |
public String com.ss.bytertc.engine.data.RTCASRConfig.userId;
用户 ID
public String com.ss.bytertc.engine.data.RTCASRConfig.accessToken;
访问令牌
public String com.ss.bytertc.engine.data.RTCASRConfig.secretKey;
私钥。Signature 鉴权模式下不能为空,token 鉴权模式下为空。参看关于鉴权
public ASRAuthorizationType com.ss.bytertc.engine.data.RTCASRConfig.authorizationType;
鉴权方式
public String com.ss.bytertc.engine.data.RTCASRConfig.cluster;
场景信息,参看业务集群
public String com.ss.bytertc.engine.data.RTCASRConfig.appId;
应用 ID
public enum com.ss.bytertc.engine.data.RTCASRConfig.ASRAuthorizationType
语音识别服务鉴权方式,详情请咨询语音识别服务服务相关同学
| 类型 | 说明 |
|---|---|
| ASR_AUTHORIZATION_TYPE_TOKEN(0) | Token 鉴权 |
| ASR_AUTHORIZATION_TYPE_SIGNATURE(1) | Signature 鉴权 |
public class com.ss.bytertc.engine.data.VideoFrameInfo
视频帧信息
| 类型 | 名称 |
|---|---|
| VideoRotation | rotation |
public VideoRotation com.ss.bytertc.engine.data.VideoFrameInfo.rotation = VideoRotation.VIDEO_ROTATION_0;
视频帧顺时针旋转角度。参看 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 度 |
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帧,前后参考帧,编解码需要参考前后两帧视频帧 |
public enum com.ss.bytertc.engine.data.VideoSourceType
视频采集方式
| 类型 | 说明 |
|---|---|
| VIDEO_SOURCE_TYPE_EXTERNAL(0) | 自定义采集 |
| VIDEO_SOURCE_TYPE_INTERNAL(1) | SDK 内部采集 |
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 |
public final ByteBuffer com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.buffer;
视频帧数据指针地址
public long com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.timestampUs;
视频采集时间戳,单位:微秒
public long com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.timestampPts;
视频显示时间戳,单位:微秒
public long com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.timestampDts;
视频解码时间戳,单位:微秒
public long com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.timebaseNum;
视频时间基分子
public long com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.timebaseDen;
视频时间基分母
public int com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.width;
视频分辨率的宽度,单位:px
public int com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.height;
视频分辨率的高度,单位:px
public VideoCodecType com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.videoCodecType;
视频编码类型。参看 VideoCodecType
public VideoPictureType com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.videoPictureType;
编码视频帧类型。参看 VideoPictureType
public VideoRotation com.ss.bytertc.engine.mediaio.RTCEncodedVideoFrame.videoRotation;
视频帧旋转角度。参看 VideoRotation
public class com.ss.bytertc.engine.video.VideoDimensions
视频编码像素
| 类型 | 名称 |
|---|---|
| int | width |
| int | height |
public int com.ss.bytertc.engine.video.VideoDimensions.width;
宽
public int com.ss.bytertc.engine.video.VideoDimensions.height;
高
public class com.ss.bytertc.engine.RTCStream
流属性。
| 类型 | 名称 |
|---|---|
| String | userId |
| boolean | isScreen |
| boolean | hasVideo |
| boolean | hasAudio |
| List |
videoStreamDescriptions |
public String com.ss.bytertc.engine.RTCStream.userId;
发布此流的用户 ID 。
public boolean com.ss.bytertc.engine.RTCStream.isScreen;
此流是否为共享屏幕流。
public boolean com.ss.bytertc.engine.RTCStream.hasVideo;
此流是否包括视频流。
public boolean com.ss.bytertc.engine.RTCStream.hasAudio;
流是否包括音频流。
public List<VideoStreamDescription> com.ss.bytertc.engine.RTCStream.videoStreamDescriptions;
视频流的属性。
当远端用户调用 setVideoEncoderConfig 方法发布多个配置的视频流时,此处会包含该用户发布的所有视频流的属性信息。
参看 VideoStreamDescription。
public class com.ss.bytertc.engine.SubscribeConfig
选择订阅配置
| 类型 | 名称 |
|---|---|
| boolean | isScreen |
| boolean | subVideo |
| boolean | subAudio |
public boolean com.ss.bytertc.engine.SubscribeConfig.isScreen;
是否是屏幕流
public boolean com.ss.bytertc.engine.SubscribeConfig.subVideo;
是否订阅视频
public boolean com.ss.bytertc.engine.SubscribeConfig.subAudio;
是否订阅音频
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 | 修改订阅状态失败,原因是信令错误,请重试 |
public class com.ss.bytertc.engine.SubscribeVideoConfig
视频订阅配置信息
| 返回 | 名称 |
|---|---|
| SubscribeVideoConfig | SubscribeVideoConfig |
public com.ss.bytertc.engine.SubscribeVideoConfig.SubscribeVideoConfig(
int videoIndex,
int priority)
视频订阅配置信息
传入参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| videoIndex | int | 订阅的视频流分辨率下标。 当远端用户通过调用 setVideoEncoderConfig 方法启动发布多路不同分辨率的视频流时,本地用户需通过此参数指定希望订阅的流。 默认值为 0,即订阅第一路流。 如果不想更改之前的设置,可以输入 -1。 |
| priority | int | 远端用户优先级,参看 RemoteUserPriority,默认值为 0。 |
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 |
public int com.ss.bytertc.engine.SysStats.cpu_cores;
设备的 CPU 核数
public double com.ss.bytertc.engine.SysStats.cpu_app_usage;
应用的 CPU 使用率,取值范围为 [0, 1]。
public double com.ss.bytertc.engine.SysStats.cpu_total_usage;
系统的 CPU 使用率,取值范围为 [0, 1]。
public double com.ss.bytertc.engine.SysStats.memory_usage;
应用的内存占用大小(单位 MB)
public long com.ss.bytertc.engine.SysStats.full_memory;
设备的内存大小 单位:B
public long com.ss.bytertc.engine.SysStats.total_memory_usage;
系统已使用内存(单位字节)
public long com.ss.bytertc.engine.SysStats.free_memory;
系统当前空闲内存(单位字节)
public double com.ss.bytertc.engine.SysStats.memory_ratio;
当前应用的内存使用率(单位 %)
public double com.ss.bytertc.engine.SysStats.total_memory_ratio;
系统内存使用率(单位 %)
public class com.ss.bytertc.engine.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
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 |
public static final int com.ss.bytertc.engine.VideoCanvas.RENDER_MODE_HIDDEN = 1;
视窗填满优先。
视频帧等比缩放,直至视窗被视频填满。如果视频帧长宽比例与视窗不同,视频帧的多出部分将无法显示。
缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长大于等于视窗对应边长。
public static final int com.ss.bytertc.engine.VideoCanvas.RENDER_MODE_FIT = 2;
视频帧内容全部显示优先。
视频帧等比缩放,直至视频帧能够在视窗上全部显示。如果视频帧长宽比例与视窗不同,视窗上未被视频帧填满区域将被涂黑。
缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长小于等于视窗对应边长。
public View com.ss.bytertc.engine.VideoCanvas.renderView;
需要渲染的视图
public int com.ss.bytertc.engine.VideoCanvas.renderMode;
渲染模式
public String com.ss.bytertc.engine.VideoCanvas.roomId;
视图所在的房间 ID
public String com.ss.bytertc.engine.VideoCanvas.uid;
视图对应的用户 ID
public boolean com.ss.bytertc.engine.VideoCanvas.isScreen;
是否是屏幕流
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) | 视频帧内容全部显示优先。 视频帧等比缩放,直至视频帧能够在视窗上全部显示。如果视频帧长宽比例与视窗不同,视窗上未被视频帧填满区域将被涂黑。 缩放完成后,视频帧的一边长和视窗的对应边长一致,另一边长小于等于视窗对应边长。 |
public enum com.ss.bytertc.engine.VideoStreamDescription.CodecMode
编码器Mode(使用软编码或者硬编码)
| 类型 | 说明 |
|---|---|
| CODEC_MODE_AUTO(0) | 自动模式 |
| CODEC_MODE_HARDWARE(1) | 硬编码模式 |
| CODEC_MODE_SOFTWARE(2) | 软编码模式 |
public enum com.ss.bytertc.engine.VideoStreamDescription.VideoCodecType
编码模式(H264, ByteVC1)
| 类型 | 说明 |
|---|---|
| CODEC_TYPE_AUTO(0) | 自动选择编码模式 |
| CODEC_TYPE_H264(1) | H264 |
| CODEC_TYPE_BYTEVC1(2) | ByteVC1 |
public enum com.ss.bytertc.engine.VideoStreamDescription.EncoderPreference
编码策略偏好
| 类型 | 说明 |
|---|---|
| Disabled(0) | 无偏好 |
| MaintainFramerate(1) | 帧率优先 |
| MaintainQuality(2) | 质量优先 |
| Balance(3) | 平衡质量与帧率 |
public class com.ss.bytertc.engine.MultiRoomConfig
多房间参数配置
| 类型 | 名称 |
|---|---|
| RTCEngine.ChannelProfile | profile |
| boolean | isAutoSubscribeAudio |
| boolean | isAutoSubscribeVideo |
public RTCEngine.ChannelProfile com.ss.bytertc.engine.MultiRoomConfig.profile;
房间模式,参看 ChannelProfile,默认为普通音视频通话模式,进房后不可更改。
public boolean com.ss.bytertc.engine.MultiRoomConfig.isAutoSubscribeAudio;
是否自动订阅音频流,默认为自动订阅。
进房后,你可以调用 subscribeUserStream 修改订阅设置。
public boolean com.ss.bytertc.engine.MultiRoomConfig.isAutoSubscribeVideo;
是否自动订阅主视频流,默认为自动订阅。
进房后,你可以调用 subscribeUserStream 修改订阅设置。
屏幕流始终自动订阅,不受该方法影响。
public class com.ss.bytertc.engine.RTCRoomConfig
房间参数配置
| 类型 | 名称 |
|---|---|
| RTCEngine.ChannelProfile | profile |
| boolean | isAutoPublish |
| boolean | isAutoSubscribeAudio |
| boolean | isAutoSubscribeVideo |
public RTCEngine.ChannelProfile com.ss.bytertc.engine.RTCRoomConfig.profile;
房间模式,参看 ChannelProfile,默认为普通音视频通话模式,进房后不可更改。
public boolean com.ss.bytertc.engine.RTCRoomConfig.isAutoPublish;
是否自动发布音视频流,默认为自动发布。
若调用 setUserVisibility 将自身可见性设为 false,无论是默认的自动发布流还是手动设置的自动发布流都不会进行发布,你需要将自身可见性设为 true 后方可发布。
public boolean com.ss.bytertc.engine.RTCRoomConfig.isAutoSubscribeAudio;
是否自动订阅音频流,默认为自动订阅。
进房后,你可以调用 subscribeUserStream 修改订阅设置。
public boolean com.ss.bytertc.engine.RTCRoomConfig.isAutoSubscribeVideo;
是否自动订阅主视频流,默认为自动订阅。
进房后,你可以调用 subscribeUserStream 修改订阅设置。
屏幕流始终自动订阅,不受该方法影响。