开发者如何依托 ERTC 枚举配置安卓端音视频编码参数?
ERTC SDK Android 类型定义.md
常量定义 RTCConstant
1. 码流类型
| 类型 | 描述 |
|---|---|
| ERTC_VIDEO_STREAM_TYPE_NULL | 码流类型,未订阅 |
| ERTC_VIDEO_STREAM_TYPE_BIG | 码流类型,订阅大流 |
| ERTC_VIDEO_STREAM_TYPE_SMALL | 码流类型,订阅小流,当发布端未发布小流时会自动订阅大流,当发布端小流发布后,会自动切换成小流 |
| ERTC_VIDEO_STREAM_TYPE_SHARE | 订阅屏幕共享视频分享流 |
2. 填充模式
| 类型 | 描述 |
|---|---|
| ERTC_VIDEO_RENDER_MODE_FILL | 填充模式:即将画面内容居中等比缩放以充满整个显示区域,超出显示区域的部分将会被裁剪掉,此模式下画面可能不完整 |
| ERTC_VIDEO_RENDER_MODE_FIT | 适应模式:即按画面长边进行缩放以适应显示区域,短边部分会被填充为黑色,此模式下图像完整但可能留有黑边。 |
3. 网络质量类型
onNetworkQuality回调质量参数
| 类型 | 描述 |
|---|---|
| ERTC_QUALITY_UNKNOWN | 网络类型——未定义 |
| ERTC_QUALITY_EXCELLENT | 当前网络非常好 |
| ERTC_QUALITY_GOOD | 当前网络一般 |
| ERTC_QUALITY_POOR | 当前网络较差 |
| ERTC_QUALITY_BAD | 当前网络很差 |
| ERTC_QUALITY_VBAD | 当前网络不满足 ERTC 的最低要求 |
| ERTC_QUALITY_UNSUPPORTED | 暂时无法检测到网络质量 |
| ERTC_QUALITY_DETECTING | 网络质量检测已开始还没有完成 |
枚举定义
1. BavLogLevel
日志等级类型
| 类型 | 描述 |
|---|---|
| BAV_LOG_LEVEL_OFF | 关闭 |
| BAV_LOG_LEVEL_ERROR | ERROR级别 |
| BAV_LOG_LEVEL_WARN | WARN级别 |
| BAV_LOG_LEVEL_INFO | INFO级别 |
| BAV_LOG_LEVEL_DEBUG | DEBUG级别 |
| BAV_LOG_LEVEL_TRACE | TRACE级别 |
2. Scene
| 类型 | 描述 |
|---|---|
| VideoCall | 视频通话 |
3. ERTCVideoResolution
| 类型 | 描述 |
|---|---|
| ERTCVideoResolution_120_120 | 宽高比 1:1;分辨率 120x120;建议码率(VideoCall)80kbps; 建议码率(LIVE)120kbps |
| ERTCVideoResolution_160_160 | 宽高比 1:1;分辨率 120x120;建议码率(VideoCall)80kbps; 建议码率(LIVE)120kbps |
| ERTCVideoResolution_270_270 | 宽高比 1:1;分辨率 270x270;建议码率(VideoCall)200kbps; 建议码率(LIVE)300kbps |
| ERTCVideoResolution_480_480 | 宽高比 1:1;分辨率 480x480;建议码率(VideoCall)350kbps; 建议码率(LIVE)500kbps |
| ERTCVideoResolution_160_120 | 宽高比4:3;分辨率 160x120;建议码率(VideoCall)100kbps; 建议码率(LIVE)150kbps |
| ERTCVideoResolution_240_180 | 宽高比 4:3;分辨率 240x180;建议码率(VideoCall)150kbps; 建议码率(LIVE)250kbps |
| ERTCVideoResolution_280_210 | 宽高比 4:3;分辨率 280x210;建议码率(VideoCall)200kbps; 建议码率(LIVE)300kbps |
| ERTCVideoResolution_320_240 | 宽高比 4:3;分辨率 320x240;建议码率(VideoCall)250kbps; 建议码率(LIVE)375kbps |
| ERTCVideoResolution_400_300 | 宽高比 4:3;分辨率 400x300;建议码率(VideoCall)300kbps; 建议码率(LIVE)450kbps |
| ERTCVideoResolution_480_360 | 宽高比 4:3;分辨率 480x360;建议码率(VideoCall)400kbps; 建议码率(LIVE)600kbps |
| ERTCVideoResolution_640_480 | 宽高比 4:3;分辨率 640x480;建议码率(VideoCall)600kbps; 建议码率(LIVE)900kbps |
| ERTCVideoResolution_960_720 | 宽高比 4:3;分辨率 960x720;建议码率(VideoCall)1000kbps; 建议码率(LIVE)1500kbps |
| ERTCVideoResolution_160_90 | 宽高比 16:9;分辨率 160x90;建议码率(VideoCall)150kbps; 建议码率(LIVE)250kbps |
| ERTCVideoResolution_256_144 | 宽高比 16:9;分辨率 256x144;建议码率(VideoCall)200kbps; 建议码率(LIVE)300kbps |
| ERTCVideoResolution_320_180 | 宽高比 16:9;分辨率 320x180;建议码率(VideoCall)250kbps; 建议码率(LIVE)400kbps |
| ERTCVideoResolution_480_270 | 宽高比 16:9;分辨率 480x270;建议码率(VideoCall)350kbps; 建议码率(LIVE)550kbps |
| ERTCVideoResolution_640_360 | 宽高比 16:9;分辨率 640x360;建议码率(VideoCall)500kbps; 建议码率(LIVE)900kbps |
| ERTCVideoResolution_960_540 | 宽高比 16:9;分辨率 960x540;建议码率(VideoCall)850kbps; 建议码率(LIVE)1300kbps |
| ERTCVideoResolution_1280_720 | 宽高比 16:9;分辨率 1280x720;建议码率(VideoCall)1200kbps; 建议码率(LIVE)1800kbps |
| ERTCVideoResolution_1920_1080 | 宽高比 16:9;分辨率 1920x1080;建议码率(VideoCall)2000kbps; 建议码率(LIVE)3000kbps |
常用结构
1. RTCEngineConfig
初始化数据结构
| 字段名 | 类型 | 说明 |
|---|---|---|
| context | Context | 上下文 |
| appId | String | appId |
| accessToken | String | accessToken |
| logPath | String | 日志路径,可以不设置 |
| logLevel | int | 日志等级 参考:com.ez.baselib.utils.LogUtil |
1. RTCConstant.EnterParam
入会数据结构
| 字段名 | 类型 | 说明 |
|---|---|---|
| userId | String | 用户 |
| roomId | String | 房间号 |
| token | String | token |
1. ERTCVideoEncParam
视频编码参数
| 字段名 | 类型 | 说明 |
|---|---|---|
| videoResolution | ERTCVideoResolution | 视频分辨率 如需使用竖屏分辨率,请指定 resMode 为 Portrait,例如: 640 × 360 + Portrait = 360 × 640 |
| videoFps | int | 视频采集帧率 15fps或20fps。5fps以下,卡顿感明显。10fps以下,会有轻微卡顿感。20fps以上,会浪费带宽(电影的帧率为24fps) |
| videoBitrate | int | 目标视频码率,单位Kbps,SDK 会按照目标码率进行编码,只有在弱网络环境下才会主动降低视频码率 |
2. AudioVolumeInfo
音量信息参数
| 字段名 | 类型 | 说明 |
|---|---|---|
| userId | String | 说话者的 userId, 如果 userId 为0则代表是当前用户自己 |
| volume | int | 说话者的音量大小, 取值范围[0 - 100] |
3. ERTCLocalVideoStats
本地视频实时数据,质量监听时用
public void setRtcStatsListener(RTCStatsListener rtcStatsListener)
| 字段名 | 类型 | 说明 |
|---|---|---|
| width | int | 视频宽 |
| height | int | 视频高 |
| sentBitrate | int | 视频传输码率(上行) |
| sentFrameRate | int | 帧率大小 |
| streamType | int | 流类型 0:大码流 1:小码流 2:屏幕共享流 |
| packetCount | int | 发视频总包数 |
| compensateLossRate | int | 补偿后丢包率 |
4. ERTCLocalAudioStats
本地音频实时数据,质量监听时用
public void setRtcStatsListener(RTCStatsListener rtcStatsListener)
| 字段名 | 类型 | 说明 |
|---|---|---|
| sentBitrate | int | 音频传输码率 |
| packetLossRate | int | 音频丢包率 |
| packetCount | int | 发音频总包数 |
5. ERTCRemoteVideoStats
远程视频实时数据,质量监听时用
public void setRtcStatsListener(RTCStatsListener rtcStatsListener)
| 字段名 | 类型 | 说明 |
|---|---|---|
| userId | String | 远端视频用户ID |
| receivedBitrate | int | 远端视频传输码率(下行) |
| receivedFrameRate | int | 远端帧率大小 |
| packetLossRate | int | 远端视频丢包率(下行) |
| totalFrozenTime | int | 远端视频总的卡顿时长 |
| frozenRate | int | 远端视频卡顿比 |
| streamType | int | 流类型 0:大码流 1:小码流 2:屏幕共享流 |
| width | int | 视频宽 |
| height | int | 视频高 |
| packetCount | int | 接收视频总包数 |
| uncompensateLoss | int | 视频补偿前丢包率(%) |
ERTCRemoteAudioStats
远端音频实时数据,质量监听时用
public void setRtcStatsListener(RTCStatsListener rtcStatsListener)
| 字段名 | 类型 | 说明 |
|---|---|---|
| userId | String | 远端视频用户ID |
| receivedBitrate | int | 远端音频传输码率(下行) |
| packetLossRate | int | 远端音频丢包率(下行) |
| totalFrozenTime | int | 远端音频总的卡顿时长 |
| frozenRate | int | 远端音频卡顿比 |
| packetCount | int | 接收音频总包数 |
| plcPacketCount | int | 音频帧补偿数量 |
| uncompensateLoss | int | 音频补偿前丢包率(%) |
| totalTime | int | 播放音频总时间 |
SpeedTestResult
速度测试结果回调数据结构 public void setSpeedTestListener(RTCSpeedTestListener listener)
| 字段名 | 类型 | 说明 |
|---|---|---|
| success | boolean | 测试是否成功 |
| quality | int | 内部通过评估算法测算出的网络质量 |
| upLostRate | int | 上行丢包率,取值范围是 [0 - 100],例如 30% 表示每向服务器发送 10 个数据包可能会在中途丢失 3 个 |
| downLostRate | int | 下行丢包率,取值范围是 [0 - 100],例如 20% 表示每从服务器收取 10 个数据包可能会在中途丢失 2 个 |
| rtt | int | 延迟(毫秒),指当前设备到 服务器的一次网络往返时间,该值越小越好,正常数值范围是10ms - 100ms |
| availableUpBandwidth | int | 上行带宽(kbps,-1:无效值) |
| availableDownBandwidth | int | 下行带宽(kbps,-1:无效值) |
| stsConnect | int | 流媒体服务器连接情况 |
萤石致力于成为全球领先的智能视觉物联网服务商,构建了全球领先的视觉物联网云平台,打造了硬件产品+软件云服务一体化的物联网服务体系。萤石云通过构建多数据中心+就近服务点的方式服务于全球客户。截至2025 年底,萤石物联网云平台在全球拥有超过120 个数据站点,平台上的IoT 设备接入数超过3.6 亿,其中视频类设备超过3 亿。在夯实自身平台能力的基础上,萤石进一步开放技术能力,将物联价值延伸至千行百业。萤石开放平台深度融合AI中台能力,涵盖音视频多媒体、消息通知处理、智能算法调度、视频存储备份、ERTC、大数据、物联接入等,已为智慧连锁、智慧养老、文教娱乐、畜牧养殖等42万余位行业客户提供数智化转型升级支撑;萤石物联专有云支持专有化部署,助力中大型企业和组织的数字化转型升级。
火山引擎视频云技术社区,是面向 AI 音视频开发者的技术交流平台。这里汇聚源自抖音、豆包等亿级 DAU 产品的 RTC、直播、点播、AI 媒体处理、音视频互动技术,提供接入指南、最佳实践、性能调优、场景案例、Demo 代码、开源项目、白皮书和 API 文档。社区汇聚官方工程师与一线开发者,为 AI 视频通话、数字人、AI 视频处理等应用的开发与落地提供技术支持。
更多推荐
所有评论(0)