客户端纯呼叫 API 参考
本页提供声网灵隼客户端 Android API 参考。
类 | 描述 |
---|---|
IAgoraCallkitSdk | 提供总的服务接口 |
IAccountMgr | 账号注册、登录与登出 |
ICallkitMgr | 来电呼叫管理,包括拨号、接听、挂断等 |
ErrCode | Iot SDK 在使用过程中的报错信息 |
IAgoraCallkitSdk
SDK 引擎接口。
initialize
Java
int initialize(InitParam initParam);
初始化 SDK。
参数
参数 | 描述 |
---|---|
initParam | SDK 初始化参数,详见 InitParam。 |
release
Java
void release();
释放 SDK 所有资源。
getAccountMgr
Java
IAccountMgr getAccountMgr();
获取账号管理接口。
返回
- 账号管理接口,详见 IAccountMgr。
getCallkitMgr
Java
ICallkitMgr getCallkitMgr();
获取呼叫系统接口。
返回
- 呼叫系统接口,详见 ICallkitMgr。
IAccountMgr
账号管理接口。
login
Swift
func login(account: String, password: String,result:@escaping (Int,String)->Void)
登录一个用户账号。
参数
参数 | 描述 |
---|---|
account | 账号 ID,需要为邮箱地址或手机号码。 |
password | 账号密码。 |
返回
- 错误码,详见 ErrCode。
logout
Swift
func logout(result:@escaping (Int,String)->Void)
登出当前账号。
返回
- 错误码,详见 ErrCode。
getUserId
Swift
func getUserId()->String
获取当前用户 ID。
返回
-
user ID。
-
错误码,详见 ErrCode。
getAccount
Java
String getAccount();
获取当前已经登录的账号名称
返回
当前已经登录的账号名称
ICallkitMgr
呼叫系统管理接口。
registerListener
Java
int registerListener(ICallkitMgr.ICallback callback);
注册回调接口。
参数
参数 | 描述 |
---|---|
callback | ICallback 对象。 |
unregisterListener
Java
int unregisterListener(ICallkitMgr.ICallback callback);
注销回调接口。
参数
参数 | 描述 |
---|---|
callback | ICallback 对象。 |
callDial
Java
int callDial(final String peerAccountId, final String attachMsg);
呼叫设备。
参数
参数 | 描述 |
---|---|
peerAccountId | 要呼叫的账号。 |
attachMsg | 呼叫时附带的信息。 |
返回
- 错误码,详见 ErrCode。
callHangup
Java
int callHangup();
挂断当前通话。
返回
- 错误码,详见 ErrCode。
callAnswer
Java
int callAnswer();
接听当前来电。
返回
- 错误码,详见 ErrCode。
setLocalVideoView
Java
int setLocalVideoView(final SurfaceView localView);
设置本地视频显示控件。如果不设置则不显示本地视频。
参数
参数 | 描述 |
---|---|
localView | 本地视频显示控件。 |
返回
- 错误码,详见 ErrCode。
setPeerVideoView
Java
int setPeerVideoView(final SurfaceView peerView);
设置对端视频显示控件。如果不设置则不显示对端视频。
参数
参数 | 描述 |
---|---|
localView | 本地视频显示控件。 |
返回
- 错误码,详见 ErrCode。
muteLocalVideo
Java
int muteLocalVideo(boolean mute);
停止/恢复发布本地视频流。
参数
参数 | 描述 |
---|---|
mute | 是否停止发布本地视频流:
|
返回
- 错误码,详见 ErrCode。
muteLocalAudio
Java
int muteLocalAudio(boolean mute);
停止/恢复发布本地音频流。
参数
参数 | 描述 |
---|---|
mute | 是否停止发布本地音频流:
|
返回
- 错误码,详见 ErrCode。
mutePeerVideo
Java
int mutePeerVideo(boolean mute);
停止/恢复订阅远端视频流。
参数
参数 | 描述 |
---|---|
mute | 是否停止发布远端视频流:
|
返回
- 错误码,详见 ErrCode。
mutePeerAudio
Java
int mutePeerAudio(boolean mute);
停止/恢复订阅远端音频流。
参数
参数 | 描述 |
---|---|
mute | 是否停止发布远端音频流:
|
返回
- 错误码,详见 ErrCode。
setVolume
Java
int setVolume(int volumeLevel);
设置音频播放的音量。
参数
参数 | 描述 |
---|---|
volumeLevel | 音量级别,取值范围为 [0,100]。 |
返回
- 错误码,详见 ErrCode。
setAudioEffect
Java
int setAudioEffect(final AudioEffectId effectId);
设置音效效果(通常是变声等音效)。
参数
参数 | 描述 |
---|---|
effectId | 音效文件的 ID。详见 AudioEffectId。 |
返回
- 错误码,详见 ErrCode。
talkingRecordStart
Java
int talkingRecordStart();
开始录制当前通话(包括音视频流),仅在通话状态下才能调用。
返回
- 错误码,详见 ErrCode。
talkingRecordStop
Java
int talkingRecordStop();
停止录制当前通话,仅在通话状态下才能调用。
返回
- 错误码,详见 ErrCode。
capturePeerVideoFrame
Java
Bitmap capturePeerVideoFrame();
截屏对端视频帧图像,仅在通话状态下才能调用。
返回
-
截取到的视频帧图像。
-
错误码,详见 ErrCode。
ICallback
Java
public static interface ICallback {
default void onDialDone(int errCode, final String peerAccountId) {}
default void onPeerIncoming(final String peerAccountId, final String attachMsg) {}
default void onPeerAnswer(final String peerAccountId) {}
default void onPeerHangup(final String peerAccountId) {}
default void onPeerTimeout(final String peerAccountId) {}
default void onPeerFirstVideo(final String peerAccountId, int videoWidth, int videoHeight) {}
default void onCallkitError(int errCode) {}
}
onDialDone
呼叫请求成功事件,服务器正在转接。
参数 | 描述 |
---|---|
errCode | 错误码。详见 ErrCode。 |
peerAccountId | 对端账号 ID。 |
onPeerIncoming
对端呼叫事件。
参数 | 描述 |
---|---|
peerAccountId | 对端账号 ID。 |
attachMsg | 附加信息。 |
onPeerAnswer
对端接听事件。
参数 | 描述 |
---|---|
peerAccountId | 对端账号 ID。 |
onPeerHangup
对端挂断事件。
参数 | 描述 |
---|---|
peerAccountId | 对端账号 ID。 |
onPeerTimeout
对端无人接听超时事件。
参数 | 描述 |
---|---|
peerAccountId | 对端账号 ID。 |
onPeerFirstVideo
对端视频首帧出图事件。
参数 | 描述 |
---|---|
peerAccountId | 对端账号 ID。 |
videoWidth | 首帧视频宽度。 |
videoHeight | 首帧视频高度。 |
onCallkitError
错误事件,在呼叫系统中遇到任意错误时发生,触发该事件后,整个呼叫过程全部清除。
参数 | 描述 |
---|---|
errCode | 错误码。详见 ErrCode。 |
ErrCode
全局错误
错误码 | 错误代码 | 描述 |
---|---|---|
0 | XERR_NONG | 无错误。 |
0 | XOK | 无错误。 |
-3 | XERR_TOKEN_INVALID | Token 过期。 |
通用错误
错误码 | 错误代码 | 描述 |
---|---|---|
-10000 | XERR_BASE | 通用错误。 |
-10001 | XERR_UNKNOWN | 未知错误。 |
-10002 | XERR_INVALID_PARAM | 参数错误。 |
-10003 | XERR_UNSUPPORTED | 当前操作不支持。 |
-10004 | XERR_BAD_STATE | 当前状态不正确,无法操作。 |
-10005 | XERR_NOT_FOUND | 没有找到相关数据。 |
-10006 | XERR_NO_MEMORY | 内存不足。 |
-10007 | XERR_BUFFER_OVERFLOW | 缓冲区中数据不足。 |
-10008 | XERR_BUFFER_UNDERFLOW | 缓冲区中数据过多。 |
-10009 | XERR_TIMEOUT | 操作超时。 |
-10012 | XERR_NETWORK | 网络错误。 |
-10015 | XERR_TOKEN_EXPIRED | Token 过期。 |
呼叫系统相关错误
错误码 | 错误代码 | 描述 |
---|---|---|
-40000 | XERR_CALLKIT_BASE | 呼叫系统相关错误。 |
-40001 | XERR_CALLKIT_TIMEOUT | 呼叫超时无响应。 |
-40002 | XERR_CALLKIT_DIAL | 呼叫拨号失败。 |
-40003 | XERR_CALLKIT_HANGUP | 呼叫挂断失败。 |
-40004 | XERR_CALLKIT_ANSWER | 呼叫接听失败。 |
-40005 | XERR_CALLKIT_REJECT | 呼叫拒绝失败。 |
-40006 | XERR_CALLKIT_PEER_BUSY | 对端忙。 |
-40007 | XERR_CALLKIT_PEERTIMEOUT | 对端超时无响应。 |
-40008 | XERR_CALLKIT_LOCAL_BUSY | 本地端忙。 |
-40009 | XERR_CALLKIT_ERR_OPT | 不支持的错误操作。 |
-40010 | XERR_CALLKIT_PEER_UNREG | 对端未注册。 |
-40011 | XERR_CALLKIT_NO_APPID | 未上报 App ID。 |
-40012 | XERR_CALLKIT_SAME_ID | 主叫和被叫同一个 ID。 |
数据类型
InitParam
类Iot SDK 初始化参数。
Java
public static class InitParam {
public Context mContext;
public String mRtcAppId;
public String mProjectId;
public String mLogFilePath;
public boolean mPublishAudio = false;
public boolean mPublishVideo = false;
public boolean mSubscribeAudio = true;
public boolean mSubscribeVideo = true;
public String mMasterServerUrl;
public String mSlaveServerUrl;
public String mPusherId;
}
参数 | 描述 |
---|---|
mContext | Android 系统的 context。 |
mRtcAppId | 声网的 App ID。 |
mProjectId | 项目 ID,作为查询产品列表的过滤条件。 |
mLogFilePath | 日志文件路径。如果不设置该参数,则日志不会输出到本地文件。 |
mPublishAudio | 通话时是否自动发布本地音频:
|
mPublishVideo | 通话时是否自动发布本地视频:
|
mSubscribeAudio | 通话时是否自动订阅对端音频:
|
mSubscribeVideo | 通话时是否自动订阅对端视频:
|
mMasterServerUrl | 主服务器后台地址。 |
mSlaveServerUrl | 副服务器后台地址。 |
mPusherId | 离线推送的 pusher ID。 |
CALLKIT_STATE
相关常量
通话状态。
Java
public static final int CALLKIT_STATE_IDLE = 0x0001;
public static final int CALLKIT_STATE_DIALING = 0x0002;
public static final int CALLKIT_STATE_INCOMING = 0x0003;
public static final int CALLKIT_STATE_TALKING = 0x0004;
public static final int CALLKIT_STATE_DIAL_REQING = 0x0005;
public static final int CALLKIT_STATE_DIAL_RSPING = 0x0006;
public static final int CALLKIT_STATE_ANSWER_REQING = 0x0007;
public static final int CALLKIT_STATE_ANSWER_RSPING = 0x0008;
public static final int CALLKIT_STATE_HANGUP_REQING = 0x0009;
参数
参数 | 描述 |
---|---|
CALLKIT_STATE_IDLE | 当前空闲状态,无通话。 |
CALLKIT_STATE_DIALING | 正在呼叫设备中。 |
CALLKIT_STATE_INCOMING | 正在来电中。 |
CALLKIT_STATE_TALKING | 正在通话中。 |
CALLKIT_STATE_DIAL_REQING | 正在发送主叫请求中。 |
CALLKIT_STATE_DIAL_RSPING | 正在等待主叫响应中。 |
CALLKIT_STATE_ANSWER_REQING | 正在发送接听请求中。 |
CALLKIT_STATE_ANSWER_RSPING | 正在等待接听响应中。 |
CALLKIT_STATE_HANGUP_REQING | 正在发送挂断请求中。 |
AudioEffectId
音频特效。
Java
public enum AudioEffectId {
NORMAL, OLDMAN, BABYBOY, BABYGIRL, ZHUBAJIE, ETHEREAL, HULK
}
参数
参数 | 描述 |
---|---|
NORMAL | (默认)原声,即关闭本地语音的变声、美音或语聊美声效果。 |
OLDMAN | 变声:老男孩。 |
BABYBOY | 变声:小男孩。 |
BABYGIRL | 变声:小女孩。 |
ZHUBAJIE | 变声:猪八戒 |
ETHEREAL | 变声:空灵。 |
HULK | 变声:绿巨人。 |