首页
友情链接
Search
1
centos 7 部署ollama 本地大模型并使用open-webui 可视化
2,047 阅读
2
利用calibre-web搭建私人书库
1,152 阅读
3
webStrom 通过electron创建第一个桌面程序
923 阅读
4
AdGuardHome 个人DNS服务器搭建记录
775 阅读
5
gitee 发了个人生第一个开源项目
717 阅读
默认分类
kafka
JavaScript
linux
java
vue
自建服务
spring
登录
Search
标签搜索
kafka
vue
docker
electron
JavaScript
spring
quartz
图床
Nginx
spring boot
宝塔
aria2
webUI
docker-compose
Python
小程序
SUI Mobile
k8s
html
PotPlayer
Abdulla
累计撰写
43
篇文章
累计收到
39
条评论
首页
栏目
默认分类
kafka
JavaScript
linux
java
vue
自建服务
spring
页面
友情链接
搜索到
43
篇与
的结果
2023-01-16
pypy-server 运行
pypi-server
2023年01月16日
117 阅读
0 评论
0 点赞
2023-01-16
docker redis 脚本
docker redis,redis,docker
2023年01月16日
131 阅读
0 评论
0 点赞
2022-10-18
docker desktop 启动容器 attempt was made to access a socket in a way forbidden by its access permissions.
net stop winnat{dotted startColor="#ff6c6c" endColor="#1989fa"/}net start winnat
2022年10月18日
481 阅读
8 评论
0 点赞
2022-08-04
react 获取浏览器地址栏中的参数
let url = window.location.toString(); let urlParams = []; let paramPos = url.lastIndexOf("?"); if (paramPos !== -1) { let anchorPos = url.lastIndexOf("#") let paramAry = ((paramPos < anchorPos) ? url.substring(paramPos + 1, anchorPos) : url.substring(paramPos + 1)).split("&") for (let i = 0; i < paramAry.length; i++) { urlParams[paramAry[i].split("=")[0]] = unescape(paramAry[i].split("=")[1]) } } console.log(urlParams)
2022年08月04日
218 阅读
0 评论
0 点赞
2022-08-03
Java 写Avi(烽火sdk)
public class OnCtsSdkCallBack implements CtsSdk.OnCtsSdkCallBack{ private static Logger logger = LoggerFactory.getLogger(OnCtsSdkCallBack.class); private static OnCtsSdkCallBack instance = new OnCtsSdkCallBack(); private byte[] G_buffer = new byte[0]; private Map<Integer,byte[]> G_bufferMap = new HashMap<>(); private static final String pcmFilePath = "/data/audios/"; private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss"); private int devName=0; private String fname = devName + "_" + dateFormat.format(new Date())+".wav"; private String filename = pcmFilePath+fname; private KafkaSender kafkaSender; private int writeNum = 0; //采样率 private static float RATE = 16000f; //编码格式PCM private static AudioFormat.Encoding ENCODING = AudioFormat.Encoding.PCM_SIGNED; //帧大小 16 private static int SAMPLE_SIZE = 16; //是否大端 private static boolean BIG_ENDIAN = false;//true //通道数 private static int CHANNELS = 1; public OnCtsSdkCallBack() { } public static OnCtsSdkCallBack getInstance() { return instance; } public KafkaSender getKafkaSender() { return kafkaSender; } public void setKafkaSender(KafkaSender kafkaSender) { this.kafkaSender = kafkaSender; } public static byte[] byteMerger(byte[] a, byte[] b){ byte[] temp = new byte[a.length+b.length]; System.arraycopy(a,0,temp,0,a.length); System.arraycopy(b,0,temp,a.length,b.length); return temp; } @Override public int invoke(int eCbType, Pointer pParam, int dwSize, int usr_data) throws IOException, ClassNotFoundException { switch (eCbType) { case CB_Event_TermRegister: CtsSdk.TSdkEventTermRegister tSdkTermRegister = null; assert false; ToolKits.GetPointerDataToStruct(pParam, 0, tSdkTermRegister); break; case CB_Event_TermConnect: break; case CB_Data_TermMp3L: break; case CB_Data_TermMp3R: System.out.println("____________________"); break; case CB_Data_TermPcmL: CtsSdk.TSdkDataTermPcmL tSdkDataTermPcmL = new CtsSdk.TSdkDataTermPcmL(); ToolKits.GetPointerDataToStruct(pParam, 0, tSdkDataTermPcmL); Pointer pPcmData = tSdkDataTermPcmL.pPcmData; if (pPcmData == null){ return 0; } if (tSdkDataTermPcmL.dwTermID != devName){ devName = tSdkDataTermPcmL.dwTermID; fname = devName + "_" + dateFormat.format(new Date())+".wav"; filename = pcmFilePath+fname; } byte[] p_recive_buf = pPcmData.getByteArray(0, tSdkDataTermPcmL.nDataSize); //判断缓存数组是否超过2048字节,如果超出则写入队列,然后清空数组 byte[] G_bytes = null; if (null == G_bufferMap.get(devName)){ G_bytes = new byte[0]; }else { G_bytes = G_bufferMap.get(devName); } int p_gBufferLen = G_bytes.length; int p_reciveBufferLen = p_recive_buf.length; int p_totalLen = p_gBufferLen + p_reciveBufferLen; if(p_totalLen >= Constance.maxByte){ writeNum ++; logger.info("写入次数:{},文件路径:{}",writeNum,filename); byte[] temBuffer01 = new byte[Constance.maxByte-p_gBufferLen]; System.arraycopy(p_recive_buf,0,temBuffer01,0,Constance.maxByte-p_gBufferLen); G_bytes = byteMerger(G_bytes,temBuffer01); InputStream b_in = new ByteArrayInputStream(G_bytes); AudioFormat format = new AudioFormat(ENCODING,RATE, SAMPLE_SIZE, CHANNELS, (SAMPLE_SIZE / 8) * CHANNELS, RATE, BIG_ENDIAN); AudioInputStream stream = new AudioInputStream(b_in, format, G_bytes.length); File file = new File(filename); int writeResult = AudioSystem.write(stream, AudioFileFormat.Type.WAVE, file); JSONObject params = new JSONObject(); params.put("deviceId",devName); params.put("audioUrl",this.getKafkaSender().getAudioNginxFile()+fname); logger.info("kafka消息内容:{}",JSONObject.toJSONString(params)); this.getKafkaSender().send("audio-sensor-topic",JSONObject.toJSONString(params)); fname = devName + "_" + dateFormat.format(new Date())+".wav"; filename = pcmFilePath + fname; G_bytes = new byte[0]; byte[] temBuffer02 = new byte[p_totalLen-Constance.maxByte]; System.arraycopy(p_recive_buf,Constance.maxByte-p_gBufferLen,temBuffer02,0,p_totalLen-Constance.maxByte); G_bytes = byteMerger(G_bytes,temBuffer02); G_bufferMap.remove(devName); } else { G_bytes = byteMerger(G_bytes,p_recive_buf); G_bufferMap.put(devName,G_bytes); } return 0; case CB_Data_TermPcmR: break; case CB_Data_TermAudio://播放音频 break; } return 0; } /** * byte转对象 * * @param bytes * @return */ private Object ByteToObject(byte[] bytes) { Object obj = null; try { // bytearray to object ByteArrayInputStream bi = new ByteArrayInputStream(bytes); ObjectInputStream oi = new ObjectInputStream(bi); obj = oi.readObject(); bi.close(); oi.close(); } catch (Exception e) { System.out.println("translation" + e.getMessage()); e.printStackTrace(); } return obj; } public static void main(String[] args) { Map<Integer,byte[]> myMap = new HashMap<Integer,byte[]>(0); byte[] bytes = null; if (null == myMap.get(123)){ bytes = new byte[0]; } System.out.println("bytes = " + bytes.length); myMap.put(123,new byte[1024]); byte[] bytes1 = myMap.get(123); System.out.println("bytes = " + bytes1.length); } }
2022年08月03日
208 阅读
0 评论
1 点赞
1
...
3
4
5
...
9