重要参数

本文介绍音视频通话 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 时生效。

无论是横屏还是竖屏(分别对应 640 × 360 和 360 × 640 的分辨率),videoProfile 都会选择 PROFILE_360_640P_15 或者 PROFILE_360_640P_30。
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

打开相机预览失败,无法正常打开麦克风。