一个简单的写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文件头图解:


简单的PCM类型的WAVE的文件格式

WAVE PCM soundfile format The WAVE file format is a subset of Microsofts RIFF specification for the ...

PCM WAVE格式详解及用C语言实现wave文件的读取

转自:http://ibillxia.github.io/blog/2013/07/20/details-of-wave-format-and-reading-wave-files-in-C-lang...
  • yasi_xi
  • yasi_xi
  • 2014年07月28日 10:18
  • 5228

读取*.wav音频文件

1、wav音频文件的格式 wav文件由文件头和采样数据2部分组成。 文件头又分为RIFF(Resource Interchange File Format)、WAVE文件标识段 和 声音数据格式说明段...

关于大小端的简单介绍以及使用C写一个函数判断当前系统是大端存储还是小端存储

大端模式: 字数据的高字节存储在低地址中,而字数据的低字节存储在高地址中。 小端模式: 字数据的低字节存储在低地址中,而字数据的高字节存储在高地址中。 如图: 用C写一个函数判断当前系统...
  • w_y_x_y
  • w_y_x_y
  • 2017年10月25日 21:53
  • 211

写一个简单的可变参数的C函数

写一个简单的可变参数的C函数  下面我们来探讨如何写一个简单的可变参数的C函数.写可变参数的  C函数要在程序中用到以下这些宏:  void va_start( va_list arg_pt...

用c写一个简单json处理器之头文件,可能会不断完善吧(二)

/** json处理器 php开发工程师 毕康 cabing_2005@126.com **/ #ifndef __JSON_H__ #define __J...

使用PlaySound函数播放WAVE文件

  • 2010年07月01日 11:16
  • 64KB
  • 下载

fputc是一个简单的C文件输出

  • 2010年10月28日 22:35
  • 348B
  • 下载

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

由于兼职要做DSP,所以要直接对samples进行处理,考虑到这点,我选择了directsound .(对DSP感兴趣的朋友可以看我关于DSP的一系列文章,我会逐渐添加。) 在这里谈一点粗浅的感受。...
  • mnhg123
  • mnhg123
  • 2016年03月31日 16:18
  • 278
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个简单的写wave文件头的c函数
举报原因:
原因补充:

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