====== 一. 智能硬件接口====== =====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 的值需要谨慎使用 |