zx303定位录音模块
设备上传的16进制录音数据,转为音频文件,这个怎么转? 淘宝上相应设备 早已经做好了,录音功能 也 健全 ,我们现在自己制作,不知道代码。 java版本。天琴协议。 java的AudioSystem已经试过了,无效。 csdn上的chatgpt已经问过了,无效。java的文件输入流不支持bin文件读取。目前为止,前六条都已经测试过了,无效。
zx303定位录音模块录音数据转录音文件
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
8条回答 默认 最新
- CSDN专家-sinJack 2023-07-26 15:03关注
转换一下就好了。
import javax.sound.sampled.*; public class ConvertHexToAudio { public static void main(String[] args) { try { // 打开输入流并读取 16 进制数据 FileInputStream fis = new FileInputStream("input.bin"); // 解析 16 进制数据为 PCM 音频样本 byte[] pcmData = parseHexData(fis); // 创建 WAV 文件 AudioFormat audioFormat = new AudioFormat(44100, 16, 1, true, false); AudioInputStream audioStream = new AudioInputStream(new ByteArrayInputStream(pcmData), audioFormat, pcmData.length / audioFormat.getFrameSize()); // 写入音频数据到 WAV 文件 File outputFile = new File("output.wav"); AudioSystem.write(audioStream, AudioFileFormat.Type.WAVE, outputFile); System.out.println("转换完成!"); } catch (Exception e) { e.printStackTrace(); } } private static byte[] parseHexData(FileInputStream fis) throws IOException { // 解析过程根据天琴协议或相关文档进行具体实现 // 示例:直接将每个字节转换为 PCM 样本 ByteArrayOutputStream bos = new ByteArrayOutputStream(); int data; while ((data = fis.read()) != -1) { bos.write(data); } return bos.toByteArray(); } }解决 无用评论 打赏 举报