快速开始
本文按“初始化 → 绑定回调 → 加入频道 → 发布本地媒体 → 订阅远端媒体 → 离会释放”的顺序,给出 Android SRTC SDK 的最小可用流程。 开始前请先完成以下准备:- 按照 集成 完成 Maven 仓库、SDK 依赖和基础环境配置。
- 准备好服务端签发的
token,它是调用join(...)的必填参数。 - 如果要打开摄像头、麦克风或屏幕共享,请在应用侧先处理好 Android 运行时权限。
- 如果业务中需要管理扬声器、听筒、蓝牙耳机等输出设备,可继续参考 音频路由使用。
Step 1:创建并初始化 RTCEngine
在调用任何频道、采集、发布、订阅相关接口前,先创建 RTCEngine 实例并调用 initSDK()。
app:建议传Application实例。enableLocalLog:是否启用本地日志,联调阶段建议开启。localLogPath:日志目录;不传时使用 SDK 默认目录。version:上层应用版本标识,建议写入 App 版本号,便于排查问题。
Step 2:绑定常见回调与媒体参数
建议在加入频道前就把回调绑定好,这样从join(...) 开始产生的状态变化都能及时接收到。
RTCClientEvent.onJoinSucceed(...):以这个回调作为“真正入会成功”的依据。RTCClientEvent.onRemoteUserJoin(...)/onRemoteUserLeave(...):维护成员列表。RTCClientEvent.onStreamTrackAdd(...)/onStreamTrackRemove(...):维护远端轨道订阅与渲染。RTCClientEvent.onDisconnected(...):处理不可恢复断连。RTCMediaEvent.onVolumesReport(...):做说话人检测或音量展示。
Step 3:加入频道
调用join(...) 后,RTCResultListener.onSuccess() 只表示请求发送成功;是否真正加入频道,以 RTCClientEvent.onJoinSucceed(...) 回调为准。
JoinOptions 常见理解如下:
autoSubscribeAudio = true:加入频道后自动订阅远端音频。autoSubscribeVideo = true:加入频道后自动订阅远端视频。
onStreamTrackAdd(...) 中按需订阅。
Step 4:发布本地媒体
4.1 摄像头采集与发布
操作顺序建议固定为:- 获取
LocalCameraTrack - 绑定本地预览视图
- 调用
startCapture(...)启动采集 - 在启动成功后调用
publishLocalVideo(...)
- 切换前后摄像头:
cameraTrack.switchCameraPosition(...) - 特殊设备方向校正:
cameraTrack.setCameraAngleOffset(...)
4.2 麦克风采集与发布
麦克风轨道获取后,可以直接调用publishLocalAudio(...) 发布本地音频。
TrackDesc.TRACK_AUDIO.value:表示按音频轨道发布。micTrack.getVolume():可用于显示当前本地麦克风音量。
4.3 屏幕共享(可选)
如果业务中需要共享屏幕,建议按下面顺序操作:- 获取
LocalScreenTrack - 设置
RTCScreenStateEvent - 调用
request(...)拉起系统录屏授权 - 在授权成功回调中调用
startCapture(...) - 再调用
publishLocalVideo(...)发布屏幕轨道
Step 5:订阅并播放远端媒体
推荐把远端视频处理拆成下面几个动作:- 在
onStreamTrackAdd(...)中拿到uid、trackId、trackDesc - 用
getRemoteVideoTrack(uid, trackDesc)获取轨道对象 - 先绑定远端渲染视图
- 再调用
subscribeRemoteTrack(uid, trackId, ...)发起订阅 - 在
onStreamTrackRemove(...)中取消订阅并移除渲染视图
Step 6:查询信息、离开频道并释放资源
离会前后,业务层通常会读取当前频道信息、当前用户信息和成员列表;当页面销毁或应用不再使用 RTC 能力时,记得调用releaseSDK()。
- 页面退出时先
leave(),再根据生命周期决定是否releaseSDK()。 - 如果你还初始化了音频路由管理器,离会或销毁时也要同步释放,具体可参考 音频路由使用。
更多能力
本文只覆盖最小可跑通的主线能力。如果你还需要以下高级场景,可继续阅读对应文档:- 自定义编码视频流: CustomVideoTrack
- 自定义原始视频帧输入: LocalCustomVideoTrack
- 引擎完整接口: RTCEngine
- 音频输出设备管理: 音频路由使用