Java中PCM转WAV怎么返回文件开头加文件头呢?

u010073323 2017-09-12 10:54:34
是用socket接收数据,需要在开头加上WAV文件头。我用了BufferedReader中的mark reset 方法但是并不能返回文件开头,请问什么问题呢?

mAudioFile = new File(filePath + time + ".wav");
mAudioFile.getParentFile().mkdirs();
mAudioFile.createNewFile();
fos = new FileOutputStream(mAudioFile);
socket = new DatagramSocket(9003);
buffer = new byte[320];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);

BufferedReader reader;
reader = new BufferedReader(new FileReader(mAudioFile));
reader.mark((int)mAudioFile.length()+1);

while (mIsRecording) {
socket.setSoTimeout(1000);//等待1s 无数据则提示错误
socket.receive(packet);
//将录制的音频数据存储到本地
fos.write(buffer, 0, buffer.length);
fos.flush();
}
/**
* 加WAV头文件
*/
FileInputStream in;
in = new FileInputStream(mAudioFile);
totalAudioLen = in.getChannel().size();
//由于不包括RIFF和WAV
totalDataLen = totalAudioLen + 36;
reader.reset();
writeWaveFileHeader(fos, totalAudioLen, totalDataLen, longSampleRate, channels, byteRate);
...全文
246 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
u010073323 2017-09-12
  • 打赏
  • 举报
回复
哎 第一次提问 格式没弄对
u010073323 2017-09-12
  • 打赏
  • 举报
回复
mAudioFile = new File(filePath + time + ".wav"); mAudioFile.getParentFile().mkdirs(); mAudioFile.createNewFile(); fos = new FileOutputStream(mAudioFile); socket = new DatagramSocket(9003); buffer = new byte[320]; DatagramPacket packet = new DatagramPacket(buffer, buffer.length); BufferedReader reader; reader = new BufferedReader(new FileReader(mAudioFile)); reader.mark((int)mAudioFile.length()+1); while (mIsRecording) { socket.setSoTimeout(1000);//等待1s 无数据则提示错误 socket.receive(packet); //将录制的音频数据存储到本地 fos.write(buffer, 0, buffer.length); fos.flush(); } /** * 加WAV头文件 */ FileInputStream in; in = new FileInputStream(mAudioFile); totalAudioLen = in.getChannel().size(); //由于不包括RIFF和WAV totalDataLen = totalAudioLen + 36; reader.reset(); writeWaveFileHeader(fos, totalAudioLen, totalDataLen, longSampleRate, channels, byteRate);

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧