一个简单的写wave文件头的c函数

原创 2013年12月05日 14:41:16
void write_wave_head(FILE* wav_file, LPCWAVEFORMATEX pcfxFormat, int s_size){
	uint32_t size;

    fwrite("RIFF", 1, 4, wav_file);
    size = s_size+44;
    fwrite(&size, 1,  4, wav_file);
    fwrite("WAVE", 1, 4, wav_file);
    /* write fmt  subchunk */
    fwrite("fmt ", 1, 4, wav_file);
	size = 16;//sizeof(WAVEFORMATEX)
    fwrite(&size, 1,  4, wav_file);
 	fwrite(pcfxFormat, 1, 16, wav_file);
    /* write data subchunk */
    fwrite("data", 1, 4, wav_file);
	size = s_size;
    fwrite(&size, 1,  4, wav_file);
}
用法:
///seek to begin, rewrite wave head
fseek(file_wave, 0, SEEK_SET);
write_wave_head(file_wave, &wfx, buffer_size);
/// seek to end, write new wave data
fseek(file_wave, 0, SEEK_END);
fwrite(wavebuffer, buffer_size, 1, file_wave);

wave文件头图解:


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

java jni 入门1 - 一个简单的从Java程序中调用C函数

参考:《JAVA核心技术 卷II:高级特性》第12章 本地方法 ######################################################3 使用本地代码...

一个简单的文件传输验证码识别c/s实现

一个简单的文件传输验证码识别c/s实现大体思路client通过tcp向server传输一个待识别的验证图片,server端识别后通过tcp回传给client。 server端识别验证码采用pytes...

Directsound 实现录音,以及对wave 文件的读写(一)

由于兼职要做DSP,所以要直接对samples进行处理,考虑到这点,我选择了directsound .(对DSP感兴趣的朋友可以看我关于DSP的一系列文章,我会逐渐添加。) 在这里谈一点粗浅的感受。...

WAVE文件头格式剖析以及pcm2wav

常用语音编码的WAVE文件头格式剖析   WAVE文件头作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Form...

语音编码的WAVE文件头格式剖析

WAVE文件头作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“R...

Linux C 库函数判断一个文件是否为空

C语言fgetc()函数的返回值意义 函数原型:int fgetc( FILE* stream ); 这个函数的返回值,是返回读取的一个字节。如果读到文件末尾返回EOF。 EOF其实就是一个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)