1 背景
项目中需要拾音器去采集音频数据并保存成mp3这种音频文件,以便以后如果有纠纷后可以作为证据去减少纠纷,于是采购了一台烽火科技的拾音器设备,包括一个采音器及一个处理终端。
2 接线
设备拿过来第一件事是接线,通电,让设备运行起来。
采音器一共有三根线,红、黑、白,白线接音频输入端R、黑线接音频输入端的G、红色接音频输入端的V,网线接入网络,电源接通,这样接线就算是结束了
3 官方提供的sdk
这是官方提供的工具包及一个java的demo:
链接:https://pan.baidu.com/s/1Aq2Yq4DWn_eDaN4IlzO2gg?pwd=rntp
提取码:rntp
先说一下里面的内容
接下来我说一下sdk里面的都有啥
1 Exe2文件夹
这个就是官方提供的一个调试功能的一个工具,有两个工具,都可以打开看一下
2 Include文件夹
这个里面是要引入的一些文件,可以理解为java的sdk
3 Java_Demo
这个里面就是官方提供的java的Demo了,方法写的都比较全,我这边就不去赘述太多,直接拿过来都跑的通的,主要说一下,他的OnCtsSdkCallBack.invoke方法
@Override
public int invoke(int eCbType, Pointer pParam, int dwSize, int usr_data) throws IOException, ClassNotFoundException {
// 所有的操作的后续处理都在这个回调函数里,根据这个eCbType去穷举,类型有很多种,根据你的需要去添加响应的类型,然后在类型下做你相应的业务操作,代码里的注释也比较明白包括变量的名称也是见名知意
System.out.println(eCbType);
switch (eCbType) {
case CB_Event_TermConnect:
return 0;
case CB_Data_TermMp3L:
return 0;
case CB_Data_TermMp3R:
System.out.println("____________________");
break;
case CB_Data_TermPcmL:
break;
case CB_Data_TermPcmR:
break;
}
return 0;
}
4 SdkMp3和TestSdk
这两个文件夹主要是两个调试工具的功能实现,但是是用c写的,必要的时候可以参考里面的代码,看看业务实现,说不定对你有帮助
4 调试详细
设备接好线,准备好代码就要进入调试阶段了,首先要打开官方提供的配置工具,点击搜索,此时需要你的电脑和设备处在同一网络下
如果搜索不到,看下网络配置,我那个没有禁用,也搜索不到
点击修改设备配置,将拾音器的ip改到和你电脑同一网段,然后重启设备,重新搜索,发现拾音器ip已经修改完毕,那么点击选择设备,点击连接,如果能连上,那么就前进了已大步。
此时启动java项目,调初始化的接口,如果出现初始化sdk成功,那么证明java服务和拾音器也可以连接成功了。
打开配置工具
点击保存设置,这块点了之后可以在后台回调函数里面注册功能取到拾音器的设备信息(CB_Event_TermRegister),名称ip这些,可以用来保存设备信息这样的有业务处理。
然后其他的功能就继续写接口去调,注意,他代码里的参数,就是设备的id,他的入参是需要一个int类型的16进制的这样一个值,你从回调函数取到的是一个十进制的设备id,java转成16进制的是个字符串,这个让我也很头疼,没有很好的解决办法,我是通过postman直接调接口去测试的。
其他的就正常调接口,然后在回调函数里面去处理业务就可以了,最后非常感谢烽火智能科技公司的工程师的耐心指导,让我顺利的调试完毕。