====== 一. 智能硬件接口======
=====1. 透传接口=====
====1.1. 发送透传数据====
原型:- UCSManager.sendTransData(String targetId, UCSTransStock stock,OnSendTransRequestListener sendListener)
功能:发送透传数据,透传数据不能超过256个字节
返回:无
备注:通过sendListener回调发送结果,errorCode请参考IUCSRequest.SendErrorCode说明
参数:
^参数名 ^类型 ^约束 ^说明 |
|targetId |String |不能为空 |接收方userId |
|stock |UCSTransStock |不能为空 |数据内容实现onTranslate方法,返回发送内容。 |
|sendListener |OnSendTransRequestListener |无 |发送回调 |
示例:
//发送透传数据:123
UCSManager.sendTransData(phone, new UCSTransStock() {
@Override
public String onTranslate() {
//返回要发送的数据
return "123";
}
}, new OnSendTransRequestListener() {
@Override
public void onSuccess(String msgId) {
Toast.makeText(TransDataActivity.this, "发送透传数据成功", 0).show();
}
@Override
public void onError(int errorCode, String msgId) {
Toast.makeText(TransDataActivity.this, "发送透传数据失败,errorCode:"+errorCode, 0).show();
}
});
====1.2. 设置透传监听====
原型:- UCSManager. setOnRecvTransUCSListener(OnRecvTransUCSListener listener)
功能:设置接收透传数据监听
返回:无
备注:无
参数:
^参数名 ^类型 ^约束 ^说明 |
|listener |OnRecvTransUCSListener |不能为空 |接收回调 |
示例:
UCSManager.setOnRecvTransUCSListener(new OnRecvTransUCSListener() {
@Override
public void onRecvTranslate(String fromUserId, String data) {
Log.i("YZX", "发送方UserId:"+fromUserId+",收到透传数据:"+data);
}
});
====1.3. 移除透传监听====
原型:- UCSManager.removeOnRecvTransUCSListener (OnRecvTransUCSListener listener)
功能:移除接收透传数据监听
返回:无
备注:无
参数:
^参数名 ^类型 ^约束 ^说明 |
|listener |OnRecvTransUCSListener |不能为空 |接收回调 |
====1.4. 发送错误码说明====
^参数名 ^说明 |
|0 |发送成功 |
|1 |对方不在线 |
|2 |消息不可达 |
|3 |发送超时 |
|4 |对方版本不支持 |
|5 |上一条透传数据超时 |
|6 |TCP已经断开 |
|7 |发送数据为空 |
|8 |加密content失败 |
|9 |透传数据为空 |
|10 |透传数据超过256字节 |
|11 |接收方不存在 |
=====2. 音频PCM码流功能接口=====
====2.1. 控制是否开启外部音频传输(PCM码流)====
原型:- UCSCall.setExtAudioTransEnable(Context context,boolean isEnable)
功能:控制是否开启外部音频传输(PCM码流)
返回:无
备注:在开启音频pcm码流时设置,此功能适合在一端开启一端不开启
参数:
^参数名 ^类型 ^约束 ^说明 |
|context |Context | |程序上下文 |
|isEnable |boolean | |true:开启,false:不开启 |
====2.2. 使用指定参数值对外部音频播放设备进行初始化(回调接口)====
原型:- initPlayout(int sample_rate, int bytes_per_sample,int num_of_channels)
功能:使用指定参数值对外部音频播放设备进行初始化
返回:无
备注:拨打电话时会回调此方法
参数:
^参数名 ^类型 ^约束 ^说明 |
|sample_rate |int | |采样率 |
|bytes_per_sample |int | |采样深度,每个样点字节数 |
|num_of_channels |int | |通道数 |
====2.3. 使用指定参数值对外部音频设备的采集进行初始化(回调接口)====
原型:- initRecording(int sample_rate, int bytes_per_sample,int num_of_channels)
功能:使用指定参数值对外部音频设备的采集进行初始化
返回:无
备注:接通时回调此方法
参数:
^参数名 ^类型 ^约束 ^说明 |
|sample_rate |int | |采样率 |
|bytes_per_sample |int | |采样深度,每个样点字节数 |
|num_of_channels |int | |通道数 |
====2.4. 将解码后指定数据长度的PCM码流给外部设备进行播放(回调接口)====
原型:- writePlayoutData(byte[] outData, int outSize)
功能:将解码后指定数据长度的PCM码流给外部设备进行播放
返回:0:成功;-1:失败
备注:无
参数:
^参数名 ^类型 ^约束 ^说明 |
|outData |byte[] | |解码后给外部音频设备播放的码流 |
|outSize |int | |数据长度 |
====2.5. 从外部音频设备读取指定数据长度的采集PCM码流(回调接口)====
原型:- readRecordingData(byte[] inData, int inSize)
功能:从外部音频设备读取指定数据长度的采集PCM码流
返回:0:成功;-1:失败
备注:无
参数:
^参数名 ^类型 ^约束 ^说明 |
|outData |byte[] | |需填充为从外部音频设备采集的码流 |
|outSize |int | |数据长度 |
=====3. 虚拟摄像头功能接口=====
====3.1. 设置是否使用虚拟摄像头和设置输入流文件格式====
原型:- UCSCall.setVideoExternCapture(VideoExternFormat ucExternformate, boolean useExternCapture)
功能:设置是否使用虚拟摄像头和设置输入流文件格式
返回:0:设置成功;-1设置失败
备注:该接口在使用虚拟摄像头功能时调用
参数:
^参数名 ^类型 ^约束 ^说明 |
|ucExternformate |VideoExternFormat | |枚举类型,i420,h264,目前只支持h264格式 |
|useExternCapture |boolean | |true:使用;false:不使用 |
====3.2. 用于虚拟摄像头,将data数据插入====
原型:- UCSCall. VideoIncomingFrame(byte[] data, int len)
功能:将本地h264文件数据发送到对端
返回:0:设置成功;-1设置失败
备注:无
参数:
^参数名 ^类型 ^约束 ^说明 |
|data |byte[] | |输入数据流 |
|len |int | |输入流的长度 |
====3.3. 获取是否使用外部摄像头来拨打视频====
原型:- UCSCall. getVideoExternCapture()
功能:获取是否使用外部摄像头来拨打视频
返回:true:是;false:否
备注:无
参数:无
=====4. 通话媒体流加密接口=====
====4.1. 通话媒体流加密开关(RTP)====
原型:- UCSCall. setEncryptEnable (boolean bEnable)
功能:通话媒体流加密开关
返回:无
备注:该开关默认关闭,打开该开关后用户须自己实现加密算法
参数:
^参数名 ^类型 ^约束 ^说明 |
|bEnable |boolean | |true为开启,false为关闭 |
====4.2. 通话媒体流加密回调(RTP)====
原型:- onEncryptStream(byte[] inMsg, byte[] outMsg, int inLen, int[] outLen)
功能:通话媒体流加密回调
返回:无
备注:通话媒体流加密回调
参数:
^参数名 ^类型 ^约束 ^说明 |
|inMsg |byte[] | |输入的原始媒体流数据包 |
|outMsg |byte[] | |加密后的输出包 |
|inLen |int | |输入包的长度 |
|outLen |int[] | |输出包的长度(长度存储在outLen[0]) |
====4.3. 通话媒体流解密回调(RTP)====
原型:- onDecryptStream (byte[] inMsg, byte[] outMsg, int inLen, int[] outLen)
功能:通话媒体流解密回调
返回:无
备注:通话媒体流解密回调
参数:
^参数名 ^类型 ^约束 ^说明 |
|inMsg |byte[] | |输入的媒体流数据包 |
|outMsg |byte[] | |解密后的输出包 |
|inLen |int | |输入包的长度 |
|outLen |int[] | |输出包的长度(长度存储在outLen[0]) |
=====5. 音频3a算法接口=====
====5.1. 音频AGC增益控制接口====
原型:- UCSCall.setAGCPlus(int agc_compressionGaindB, int agc_targetDbfs)
功能:设置AGC音效增益
返回:成功返回0 失败返回-1
备注:此接口建议在拨打电话之前设置
参数:
^参数名 ^类型 ^约束 ^说明 |
|agc_compressionGaindB |int | |自适应语音增益的压缩增益;设置范围值为1 - 30;建议值为6 - 12,6为小音量,9为默认音量,12为大音量, 1 - 6 或者 12 - 30 的值需要谨慎使用,通话前或者通话中设置均有效,建议通话前设置 |
|agc_targetDbfs |int | |自适应语音增益模块的目标电平;自适应语音增益的目标电平: 取值范围:1---15; 此值越小音量越大;建议值为3 - 9,9为小音量,6为默认音量,3为大音量,1 - 3 或者 9 - 15 的值需要谨慎使用 |