本文介绍音视频通话 API 在接入 Android 时涉及的重要参数。
参数 | 说明 |
---|---|
CreateRoomParams | 创建房间。 |
JoinRoomParams | 加入房间。 |
PublishConfig | 发布媒体流。 |
UnpublishConfig | 取消订阅。 |
SubscribeConfig | 订阅媒体流。 |
UnsubscribeConfig | 取消订阅媒体流。 |
LocalVideoInfo | 本地视频信息,可用于暂停继续本地视频流的推送。 |
RemoteVideoInfo | 远程视频信息,可以用于暂停继续远端视频流的渲染。 |
LocalAudioInfo | 本地音频流信息,可以用于暂停继续本地音频流的推送。 |
RemoteAudioInfo | 远端音频流信息,可以用于暂停继续远程音频的播放。 |
ParticipantInfo | 视频通话参与者的用户信息,可用于订阅,发布等各种用户操作。 |
RoomInfo | 创建房间返回的房间信息。 |
PublishEventCode | 发布相关操作返回的事件码信息。 |
FeedInfo | 可被订阅流的信息。 |
SubscribeEventCode | 订阅相关操作返回的事件码信息。 |
Logger | 业务可提供自定义 log,将 SDK 的日志输出到业务的 log 处。 |
ErrorCode | 错误码。 |
CreateRoomParams
创建房间。作为创建房间的参数,只有该参数填写正确,才能顺利创建音视频房间。
属性 | 类型 | 说明 | 推荐值 | 是否必填 |
---|---|---|---|---|
uid | String | 用户 ID。 说明 目前 uid 只支持英文字母、数字、下划线的组合,且长度不超过 128 个字符。 | 无 | 是 |
bizName | String | 业务名称,需要向服务提供方进行申请。 | 无 | 是 |
signature | String | 业务签名。 | 无 | 是 |
extraInfo | String | 额外信息,与业务相关。 | null | 否 |
JoinRoomParams
加入房间。作为进房参数,只有该参数填写正确,才能顺利进入 roomId 所指定的音视频房间。
属性 | 类型 | 说明 | 推荐值 | 是否必填 |
---|---|---|---|---|
uid | String | 用户 ID。 | 无 | 是 |
bizName | String | 业务名称,需要向服务提供方进行申请。 | 无 | 是 |
roomId | String | 房间 ID。 | 无 | 是 |
rtoken | String | 进入房间所需要的 Token。 | 无 | 是 |
signature | String | 业务签名。 | 无 | 是 |
envType | int | 服务提供类型,当前支持 alipay 和 aliyun,alipay=0(默认值)、aliyun=1。 | 0 | 否 |
PublishConfig
发布媒体流。配置需要发布媒体流的参数,包括音频和视频。
属性 | 类型 | 说明 | 推荐值 | 是否必填 |
---|---|---|---|---|
videoSource | PublishVideoSource | 待发布媒体流的视频源VIDEO_SOURCE_CAMERA(默认值)。 | 无 | 否 |
videoProfile | VideoProfile | 视频属性配置PROFILE_360_640P_15(默认值)。 | PROFILE_540_960P_15 | 否 |
audioSource | PublishAudioSource | 待发布媒体流的音频源AUDIO_SOURCE_MIC(默认值)。 | 无 | 否 |
videoCustomWidth | int | 用户自定义视频输出 width 仅当 videoProfile = PROFILE_CUSTOM 时生效。 | 无 | 否 |
VideoCustomHeight | int | 用户自定义视频输出 height 仅当 videoProfile = PROFILE_CUSTOM 时生效。 | 无 | 否 |
videoCustomFps | int | 用户自定义视频输出 fps 仅当 videoProfile = PROFILE_CUSTOM 时生效。 | 无 | 否 |
videoCustomMaxBitrate | int | 用户自定义视频输出的最大 bitrate,即自定义视频编码时的最大码率,当输入值大于此值时,MRTC 将根据本地推送模式(流畅度优先模式、分辨率优先模式、平衡模式)进行丢帧或降低清晰度。 仅当 videoProfile = PROFILE_CUSTOM 时生效。 | 无 | 否 |
videoCustomMinBitrate | int | 预留参数,暂未使用。 用户自定义视频输出最小比特率,仅当 videoProfile = PROFILE_CUSTOM 时生效。 | 无 | 否 |
enum PublishVideoSource {
VIDEO_SOURCE_CAMERA, //视频源是摄像头
VIDEO_SOURCE_SCREEN, //视频源是屏幕共享
VIDEO_SOURCE_CUSTOM, //视频源是自定义数据
VIDEO_SOURCE_NULL //禁止输出视频
}
enum VideoProfile {
PROFILE_360_640P_15, //分辨率为 360 * 640,帧率为 15
PROFILE_360_640P_30, //分辨率为 360 * 640,帧率为 30
PROFILE_540_960P_15, //分辨率为 540 * 960,帧率为 15
PROFILE_540_960P_30, //分辨率为 540 * 960,帧率为 30
PROFILE_720_1280P_15, //分辨率为 720 * 1280,帧率为 15
PROFILE_720_1280P_30, //分辨率为 720 * 1280,帧率为 30
PROFILE_1080_1920P_15, //分辨率为 1080 * 1920,帧率为 30
PROFILE_1080_1920P_30, //分辨率为 1080 * 1920,帧率为 30
PROFILED_EFAULT, //默认,分辨率为 360 * 640,帧率为 15
PROFILE_CUSTOM //自定义模式,需要设置自定义视频属性
}
enum PublishAudioSource {
AUDIO_SOURCE_MIC, //音频源是麦克风
AUDIO_SOURCE_NULL //禁止输出音频
}
UnpublishConfig
取消订阅。配置需要取消发布的媒体流信息。
属性 | 类型 | 说明 | 推荐值 | 是否必填 |
---|---|---|---|---|
videoSource | PublishVideoSource | 待取消发布的媒体流视频源 VIDEO_SOURCE_CAMERA(默认值)。 | 无 | 否 |
audioSource | PublishAudioSource | 待取消发布媒体流的音频源 AUDIO_SOURCE_MIC(默认值)。 | 无 | 否 |
SubscribeConfig
订阅媒体流。配置需要订阅的媒体流参数。
属性 | 类型 | 说明 | 推荐值 | 是否必填 |
---|---|---|---|---|
info | FeedInfo | 需要订阅的流信息,包含 uid、feedId 和 tag 信息。 | 无 | 是 |
UnsubscribeConfig
取消订阅媒体流。配置需要取消订阅的媒体流参数。
属性 | 类型 | 说明 | 推荐值 | 是否必填 |
---|---|---|---|---|
info | FeedInfo | 需要订阅的流信息,包含 uid、feedId 和 tag 信息。 | 无 | 是 |
LocalVideoInfo
本地视频信息,可用于暂停继续本地视频流的推送。包含了视频源信息。
属性 | 类型 | 说明 | 推荐值 | 是否必填 |
---|---|---|---|---|
videoSource | PublishVideoSource | 本地媒体流视频源信息 VIDEO_SOURCE_CAMERA(默认值)。 | 无 | 否 |
RemoteVideoInfo
远程视频信息,可以用于暂停继续远端视频流的渲染。包含了远端视频流信息。
属性 | 类型 | 说明 | 推荐值 | 是否必填 |
---|---|---|---|---|
feedId | String | 远端媒体流 ID。 | 无 | 是 |
LocalAudioInfo
本地音频流信息,可以用于暂停继续本地音频流的推送。包含了本地音频流源信息。
属性 | 类型 | 说明 | 推荐值 | 是否必填 |
---|---|---|---|---|
audioSource | PublishAudioSource | 本地音频源信息 AUDIO_SOURCE_MIC(默认值)。 | 无 | 否 |
RemoteAudioInfo
远端音频流信息,可以用于暂停继续远程音频的播放。包含了远程音频信息。
属性 | 类型 | 说明 | 推荐值 | 是否必填 |
---|---|---|---|---|
feedId | String | 远端媒体流 ID。 | 无 | 是 |
FeedInfo
可被订阅流的信息。一条可被订阅流的信息,包含了流所属用户的 uid、流的 feedId 和流的额外属性 tag。
属性 | 类型 | 说明 | 推荐值 | 是否必填 |
---|---|---|---|---|
uid | String | 可被订阅流的所属用户 ID。 | 无 | 是 |
feedId | String | 可被订阅流的 ID。 | 无 | 是 |
tag | String | 可被订阅流的额外属性,目前是 PublishVideoSource 的字符串表现形式。 | 无 | 否 |
ParticipantInfo
视频通话参与者的用户信息,可用于订阅、发布等各种用户操作。用户信息,包含用户 ID、用户发布的流信息和用户订阅的流信息。
属性 | 类型 | 说明 |
---|---|---|
uid | String | 用户 uid。 |
feedList | List | 用户推送的流信息,一个用户可以推送多路流供其他用户订阅。 |
subscribeIdList | List | 用户订阅的流信息,一个用户可以订阅多路流。 |
RoomInfo
创建房间返回的房间信息。通过该房间信息,可以加入对应的房间,进行音视频通话。
属性 | 类型 | 说明 |
---|---|---|
roomId | String | 房间 ID。 |
rtoken | String | 房间对应的 Token。 |
PublishEventCode
发布相关操作返回的事件码信息。在发布、取消发布后,返回的对应事件码信息。
属性 | 说明 |
---|---|
PUBLISH_START | 发布操作有效,服务器接受该发布请求,本地准备资源进行发布。 |
PUBLISH_SUCCESS | 发布操作成功,媒体流成功推送到服务器上。 |
PUBLISH_FAIL | 发布操作失败,可能是媒体流获取失败,也可能是媒体流推送失败。 |
PUBLISH_DISCONNECT | 发布断开,媒体流推送遇到错误,与服务器断开连接。 |
UNPUBLISH_SUCCESS | 取消发布成功。 |
UNPUBLISH_FAIL | 取消发布失败,参数有误或者服务器出错。 |
SubscribeEventCode
订阅相关操作返回的事件码信息。在订阅、取消订阅后,返回的对应事件码信息。
属性 | 说明 |
---|---|
SUBSCRIBE_START | 订阅操作有效,服务器接受该订阅请求,本地准备拉流操作。 |
SUBSCRIBE_SUCCESS | 订阅操作成功,成功从服务器拉取媒体流到本地。 |
SUBSCRIBE_FAIL | 订阅操作失败,可能是参数错误,也可能是服务器错误。 |
SUBSCRIBE_DISCONNECT | 订阅断开,媒体流推送遇到错误,与服务器断开连接。 |
UNSUBSCRIBE_SUCCESS | 取消订阅成功。 |
UNSUBSCRIBE_FAIL | 取消订阅失败,参数有误或者服务器出错。 |
Logger
业务可提供自定义 log,将 SDK 的日志输出到业务的 log 处,只需实现该 Logger 接口,然后通过 setLogger 设置到 SDK 即可。
interface Logger {
int v(String tag, String msg);
int d(String tag, String msg);
int i(String tag, String msg);
int w(String tag, String msg);
int e(String tag, String msg);
int e(String tag, String msg, Throwable tr);
}
ErrorCode
各个错误码的具体说明见下表。
错误 | 错误码 | 说明 |
---|---|---|
ERROR_NULL | 0 | 无错误。 |
ERROR_CREATE_ROOM | -115 | 创建房间失败,可能参数为 null,或者参数在服务器端验证不通过,需要查阅参数正确配置后,再次创建房间。也可能是服务器内部处理出错(概率很低),如果遇到服务器内部错误,请通知服务提供商。 |
ERROR_JOIN_ROOM | -116 | 加入房间失败,可能参数为 null,或者参数在服务器端验证不通过,需要查阅参数正确配置后,再次加入房间。也可能是服务器内部处理出错(概率很低),如果遇到服务器内部错误,请通知服务提供商。 |
ERROR_LEAVE_ROOM | -1002 | 退出房间失败,可能当前不在房间内,或者服务器验证不通过。无论退出房间成功与否,都会释放所有的发布和订阅。 |
ERROR_INVITE_TO_JOIN_ROOM | -1003 | 邀请对方加入房间失败,可能参数为 null,或者参数在服务端验证不通过。 |
ERROR_NETWORK | -1004 | 网络错误,无法正常连接到服务器。此时,无法正常执行任何发布订阅等操作。 |
ERROR_CAMERA_PERMISSION | -104 | 打开相机预览失败,相机没有正确授权。 |
ERROR_MIC_PERMISSION | -105 | 打开相机预览失败,麦克风没有正确授权。 |
ERROR_OPEN_CAMERA | -1007 | 打开相机预览失败,无法正常打开摄像头。 |
ERROR_OPEN_MIC | -1008 | 打开相机预览失败,无法正常打开麦克风。 |