SparkleComm Android SDK使用说明¶
概述¶
本文档是SparkleComm Android SDK库的使用教程,请先把SparkleCommSDK-release.aar库集成到Android Studio开发环境里。
Demo说明:
HomeActivity.java 是主界面,包含了拨号功能;singleInstance模式。
IncomingActivity.java 是来电界面;singleInstance模式。
InCallActivity.java 是通话界面;singleInstance模式。
LoogearApplication.java 实现前后台切换时,注册与注销的方法。
接口函数¶
PhoneApi是SDK的主要接口函数类;接口的具体使用流程可以参考DEMO APP的调用;
初始化SDK¶
/**
* 初始化SDK,必须第一个被调用:每次进行注册时都先调用一次
* @param context
* @param sipEvent SIP消息接收接口,会在主线程回调
*/
public void initSdk(Context context, ISipEvent sipEvent);
注册SIP服务器¶
/**
* 注册到SIP服务器:initSdk调用后进行调用,注册SIP,注册消息会通过ISipEvent接口回调(initSdk函数里传递的)
* @param serverAddr 服务器地址IP地址或者域名
* @param port SIP服务器端口号
* @param userID 用户ID如10011\@loogear.com或者10011
* @param userPWD 注册密码
* @param accountID 账号编号此处传入0
* @param domain 域名如loogear.com,参考服务器的分配域名可能与serverAddr相同,也可能不同
* @param authWithDomain 是否带域名认证,默认为false。参考服务器的要求。
* @param idUri 参考服务器的注册要求,默认为空
* @param useIMS3GPP 是否采用IMS的3gpp认证,参考服务器的注册要求
* @param extraHeads 扩展消息格式标准为"X-HEAD_NAME1:head1 value;X-HEAD_NAME2:head2 value",头部消息间用";"分隔:
* 如:"X-SparkleComm-Call-DEVICE-ID: EF32D-98AF-9E01-882E;X-SparkleComm-Call-MSG2:this is other message"
*/
public void registerToSipServer(String serverAddr, int port, String userID, String userPWD, int accountID,
String domain, boolean authWithDomain, String idUri, boolean useIMS3GPP, String extraHeads);
注销SIP服务器¶
/**
* 反注册SIP服务器
* @param accountID
*/
public void unRegister(int accountID)
拨打电话¶
/**
* 发起带扩展消息的语音呼叫
* @param calleeAdd 对方号码
* @param extraData 扩展消息格式标准为"X-HEAD_NAME1:head1 value;X-HEAD_NAME2:head2 value",头部消息间用";"分隔:
* 如:"X-SparkleComm-Call-DEVICE-ID: EF32D-98AF-9E01-882E;X-SparkleComm-Call-MSG2:this is other message"
* @param accountID 呼叫帐号编号(用于多账户注册)
*/
public void makeVoiceCall(String calleeAdd, String extraData, int accountID);
挂断电话¶
/**
* 挂断电话
* @param callID
* @param accountID
*/
public void releaseCall(int callID, int accountID);
启用视频¶
/**
* 是否打开视频通话功能
* @param enable
*/
public void enableVideo(boolean enable);
设置视频窗口¶
/**
* 设置视频窗口
* @param preview 预览窗口
* @param remote 对方窗口
*/
public void setVideoDisplays(Surface preview, Surface remote);
设置视频分辨率¶
/**
* 设置视频显示分辨率
*/
public void setVideoResolution(VIDEO_RES res);
旋转摄像头角度¶
/**
* 旋转摄像头角度
* @param angle
*/
public void setVideoCaptureOrient(int angle);
开始录音¶
/**
* 开始录音
* @param path 录音文件存放目录
* @param fileName 录音文件名
* @param accountID 账户ID
* @param callID 通话ID
* @return 录音ID
*/
public int startRecord(String path, String fileName, int accountID, int callID);
停止录音¶
/**
* 停止录音:可以主动调用此函数停止录音,通话结束后也会自动停止录音
* @param recordId 录音ID
* @param accountID 账户ID
* @param callID 通话ID
* @return
*/
public boolean stopRecord(int recordId, int accountID, int callID);
显示预览视频¶
/**
* 显示预览视频
*/
public void showVideoPrevieWindow();
隐藏预览视频¶
/**
* 隐藏预览视频
*/
public void hideVideoPrevieWindow();
呼叫保持¶
/**
* 呼叫保持
* @param accountID
* @param callID
*/
public void callHold(int accountID, int callID);
取消呼叫保持¶
/**
* 取消呼叫保持
* @param accountID
* @param callID
*/
public void releaseHold(int accountID, int callID);
接听¶
/**
* 接听
* @param callID
* @param accountID
*/
public void answerCall(int callID, int accountID);
发送DTMF消息¶
/**
* 发送DTMF消息
* @param digits
*/
public void sendDtmf(String digits);
静音¶
/**
* 设置MIC静音
* @param on true=静音 false=取消静音
*/
public void setMicMute(boolean on);
呼叫转移¶
/**
* 呼叫转移
* @param addr 目标地址
* @param callID
* @param accountID
*/
public void callTransfer(String addr, int callID, int accountID);
获取所有通话信息¶
/**
* 获取所有通话信息,通过ISipEvent.onUpdateCallInfo(List<CallInfo> callList);接口返回
*/
public void getAllCallInfo();
是否在通话中¶
/**
* 是否在通话中
* @return
*/
public boolean isInCalling();
切换摄像头¶
/**
* 切换摄像头
* @param toFront true=切换到前置摄像头 false=切换到后置摄像头
*/
public void cameraSwitch(boolean toFront);
关闭视频¶
/**
* 关闭视频:在视频通话时,去掉视频,只保留语音通话
*/
public void closeVideo();
打开视频¶
/**
* 打开视频,在进行语音通话时,增加视频
*/
public void openVideo();