波形捕捉:(9)写入到WAV文件

简介:

写入到WAV文件

 

      WAV文件为资源交换文件格式(RIFF),包括若干数量的命名块,其中包含头信息(如声音采样格式)或数据(如样本本身)。Win 32 API提供了打开关闭FIFF文件、查找块等函数。这些函数的名字都以“mmio”开头。

      DirectSound API 不包括写入WAV文件的方法。但是 DXUTsound.cpp 文件实现了一个 CWaveFile 类,这个类具有以下管理捕捉文件的方法:
      ·Open 方法。打开一个文件并且写入头部块。
      ·Write 方法。将数据从缓冲区写入到数据块中并且提高写指针。
      ·Close 方法。将数据块的大小写入到头部并且关闭文件。

      写入到一个WAV文件的第一步是调用 CWaveFile::Open 方法。这样会创建一个文件并且写WAV格式块。参数为文件名,一个指向初始化后的WAVEFORMATEX 结构体的指针和 WAVEFILE_WRITE 标志。这个方法返回一个 HRESULT。

下面的代码为写入打开了一个WAV文件:

ContractedBlock.gif Code


      应用程序现在可以开始从捕捉缓冲区复制数据到这个文件了。

      下面的示例函数将在每次读指针到达通知位置时被调用。在这个函数内,将使用如下全局变量:
      ·g_pDSBCapture 是一个指向缓冲区中的 IDirectSoundCaptureBuffer8 接口的指针。
      ·g_dwNextCaptureOffset 跟踪缓冲区中下一个将要被复制到文件的数据块的偏移量。
      ·g_dwCaptureBufferSize 表示缓冲区大小,被用在计算"环绕"。

ContractedBlock.gif Code


查看其它:
      导 言
      1.枚举“捕捉设备”
      2.创建“捕捉设备对象”
      3.“捕捉设备”性能
      4.创建一个“捕捉缓冲区”
      5.“捕捉缓冲区”信息
      6.“捕捉缓冲区”通知
      7. “捕捉缓冲区”特效
      8.使用“捕捉缓冲区”
      9.写入到WAV文件 






本文转自stg609博客园博客,原文链接:http://www.cnblogs.com/stg609/archive/2008/10/24/1314500.html,如需转载请自行联系原作者

目录
相关文章
|
26天前
|
算法
基于DSP的音频信号降噪技术
基于DSP的音频信号降噪技术
23 4
|
5月前
|
存储 算法 异构计算
基于FPGA的ECG心电信号峰值检测和心率计算,包括testbench测试文件和ECG数据转换为coe文件程序
基于FPGA的ECG心电信号峰值检测和心率计算,包括testbench测试文件和ECG数据转换为coe文件程序
|
10月前
无规则波形发生函数
无规则波形发生函数
44 0
|
编解码 算法 内存技术
m基于matlab的PCM-FM码同步和GMSK的调制和解调方法,包括多符号检测MSD和Turbo编解码
m基于matlab的PCM-FM码同步和GMSK的调制和解调方法,包括多符号检测MSD和Turbo编解码
126 0
m基于matlab的PCM-FM码同步和GMSK的调制和解调方法,包括多符号检测MSD和Turbo编解码
|
语音技术 内存技术
用C/CCC++实现输出双声道(立体声).wav 文件
audioCodec为1,channels为2,samplesPerSec为8000(非常重要)。samplesPerSec设置为8000的原因是需要用16000/2,也就是要用采样率除以通道数。这样做的原因是立体声设置语音内容时将左右声道的语音数据打散交叉放置到内容中。
|
Python
Python音频处理(一)——信号,波形与频谱
Python音频处理(一)——信号,波形与频谱
976 1
Python音频处理(一)——信号,波形与频谱

热门文章

最新文章