PCM格式保存为wav

	HANDLE hFile;

	WAVE_HEADER wh;
	wh.szRiff = 'FFIR';
	wh.szWave = 'EVAW';
	wh.szFmt = ' tmf';
	wh.FmtSize = sizeof(PCMWAVEFORMAT);
	CopyMemory(&wh.Fmt, lpFormat, sizeof(PCMWAVEFORMAT));
	wh.szData = 'atad';
	DWORD dwOpt;
	WriteFile(hFile, &wh, sizeof(wh), &dwOpt, NULL);
	//写入PCM数据后
	DWORD dwFileSize = GetFileSize(hFile, NULL);
	DWORD dwOpt;

	SetFilePointer(hFile, 0x04, NULL, FILE_BEGIN);
	dwFileSize = dwFileSize - sizeof(UINT) * 3;
	WriteFile(hFile, &dwFileSize, 4, &dwOpt, NULL);

	SetFilePointer(hFile, 0x28, NULL, FILE_BEGIN);
	dwFileSize = dwFileSize + sizeof(UINT) * 3 - sizeof(WAVE_HEADER);
	WriteFile(hFile, &dwFileSize, 4, &dwOpt, NULL);
	CloseHandle(hFile);


typedef	struct _WAVE_HEADER
{
	UINT szRiff;
	UINT FileSize;
	UINT szWave;

	UINT szFmt;
	UINT FmtSize;
	PCMWAVEFORMAT Fmt;
	UINT szData;
	UINT DataSize;
}WAVE_HEADER, *PWAVE_HEADER;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值