作者LCamel (LCamel)
看板AndroidDev
标题Re: [问题] AudioRecord音讯储存成档案
时间Tue Jul 5 16:25:08 2011
※ 引述《fatby (fatby)》之铭言:
: → fatby:谢谢L大的帮忙,昨晚找到一个能播放纯数据的程式,不过听的
: → fatby:时候完全都只有杂音...是哪里出了问题吗??
可能播放的参数和录制时给的参数不同, mplayer / ffmpeg 都可以试试看.
: → fatby:另外有没有音讯档表头资讯的相关资料可以参考呢
Header 格式可以 google 找, 或者生几个.wav来观察.
以下 size 为原本 raw data 的长度, header 输出完再复制 raw data.
程式仅勉强堪用, 请斟酌使用...
private static void writeWaveHeader(OutputStream os, long size)
throws IOException {
os.write(new byte[] { 0x52, 0x49, 0x46, 0x46 });
write4BytesOfLong(os, size + 36);
// 16-bit / 16K
os.write(new byte[] {
0x57, 0x41, 0x56, 0x45, 0x66, 0x6d, 0x74, 0x20,
0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
(byte) 0x80, 0x3e, 0x00, 0x00, 0x00, 0x7d, 0x00, 0x00,
0x02, 0x00, 0x10, 0x00, 0x64, 0x61, 0x74, 0x61 });
write4BytesOfLong(os, size);
}
private static void write4BytesOfLong(OutputStream os, long l)
throws IOException {
byte[] buff = new byte[4];
buff[0] = (byte) l;
buff[1] = (byte) (l >> 8);
buff[2] = (byte) (l >> 16);
buff[3] = (byte) (l >> 24);
os.write(buff);
}
LCamel
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.45.59.89
1F:推 fatby:谢谢L大 我吸收研究一下... 07/06 01:25