(二)VC的声音操作

操作声音文件,也就是将WAVE文件打开获取其中的声音数据,根据所需要的声音数据处理算法,进行相应的数学运算,然后将结果重新存储与WAVE格式的文件中去;可以使用CFILE类来实现读取操作,也可以使用另外一种方法,拿就是使用Windows提供的多媒体处理函数(这些函数都以mmino打头;

WAVE文件的操作流程如下:

1.调用mminoOpen函数来打开WAVE文件,获取HMMIO类型的文件句柄;

2.根据WAVE文件的结构,调用mmioRead、mmioWrite和mmioSeek函数实现文件的读、写和定位操作;

3.调用mmioClose函数来关闭WAVE文件。

(三)VC中相关的数据结构

MMCKINFO

包含RIFF文件中一个Chunk块的信息

typedef struct {

FOURCC  ckid;

DWORD  cksize;

FOURCC  fccType;

DWORD  dwDataOffset;

DWORD  dwFlags;

} MMCKINFO;

ckid

块标识符

cksize
    块大小
fccType

“RIFF”结构类型或者“LIST”块的列表类型

dwDataOffset

文件偏移量,块的数据成员相对于文件开始位置的偏移量

dwFlags
    附加信息
 

版权申明:本站文章均来自网络,如有侵权,请评论 ,收到后立即删除,谢谢!

基于VC的声音文件操作(二)的更多相关文章

  1. 基于VC的声音文件操作(三)

    (四)VC中相关的操作 1.mmioOpen 打开一个文件 Syntax MMIO mmioOpen( LPTSTR szFilename, LPMMIOINFO lpmmioinfo, DWORD ...

  2. 基于VC的声音文件操作(四)

    (五)读取wav的实例 跟据WAVE文件的格式,实现了读取双声道立体声数据的例子如下: BYTE * GetData(Cstring *pString) //获取声音文件数据的函数,pString参数 ...

  3. 基于VC的声音文件操作(一)

    (一)文件格式 1.RIFF文件结构和WAVE文件格式 Windows支持两种RIFF(Resource Interchange File Format,"资源交互文件格式")格式 ...

  4. 基于VC的声音文件操作(五)

    (六)读取波形文件的实例 1.打开文件后,可通过HMMO句柄获得文件中的波形部份:MMCKINFO mmckinfo;mmckinfo.fccType = mmioFOURCC('W','A','V' ...

  5. Node.js文件操作二

    前面的博客 Node.js文件操作一中主要是对文件的读写操作,其实还有文件这块还有一些其他操作. 一.验证文件path是否正确(系统是如下定义的) fs.exists = function(path, ...

  6. 【Directory】文件操作(初识文件操作二)

    上篇我们说了关于文件的创建删除更改可以通过File这个类来完成.对于目录的操作其实File类也可以完成创建删除等相关的操作.用法跟文件的方法大致相同. 那么下面就一起来看一下关于目录相关的用法. 一, ...

  7. DAY8 文件操作(二)

    一.写 1.1写文件 # w:没有文件新建文件,有文件就清空文件 w = open('1.txt', 'w', encoding='utf-8') w.write('000\n') # 在写入大量数据 ...

  8. Java文件操作二:File文件的方法

    一.文件的判断方法 判断方法 .boolean canExecute()判断文件是否可执行 .boolean canRead()判断文件是否可读 .boolean canWrite() 判断文件是否可 ...

  9. ObjectiveC 文件操作二

    10,文件委托,以便操作文件.头部看起来像是这样. @interface MyFileManager : NSObject @property(strong)NSFileManager *fileMa ...

随机推荐

  1. (转载)关于web端功能测试的测试方向

    一.功能测试 1.1链接测试 链接是web应用系统的一个很重要的特征,主要是用于页面之间切换跳转,指导用户去一些不知道地址的页面的主要手段,链接测试一般关注三点: 1)链接是否按照既定指示那样,确实链 ...

  2. eclipse配置javacv0.8

    之前配置了一次javacv,但是忘了做笔记,这次又重新查了一遍资料,很多东西模棱两可,浪费了很多时间,这次配置成功,总结如下,希望能帮到大家. 如不明确,可以联系我.   javacv下载 https ...

  3. php接口post提交方法 (改良版)

    $postData = "reqType=2&caller=15088719619&called=15068722845"; $result = send_post ...

  4. 一千行MySQL学习笔记

    以下为本人当年初学MySQL时做的笔记,也从那时起没再更新过,但还是囊括了基本的知识点,有时还翻出来查查.是不是干货,就看亲们了~ 如果哪天笔记有更新了,我还是会更新该文章滴,其实笔记已经放到了Git ...

  5. js动态生成input指定My97DatePicker时间问题

    js生成的input指定onclick时间: 以下1.2为错误: onclick="WdatePicker()"; onclick=WdatePicker(); 若指定到windo ...

  6. winform.布局

    布局:默认布局:自己拖动进行布局,工具栏里对齐方式 右键,锁定.##随容器拉动变化属性:Anchor:上下左右,固定的设置 panel的排列 1.Dock属性:(顺序填充)Top:靠上,高度不变,左右 ...

  7. nginx环境下配置nagios-关于perl-fcgi.pl

    配置文件如下: 请注意,网上提供的官方文档在运行时可能会出现问题,此文中保证无问题. ; ; ; ;  ); ;  ); ; ;          my $pidnumber = $$;        ...

  8. Lua __index元方法

    [Lua __index元方法] 当你通过键来访问 table 的时候,如果这个键没有值,那么Lua就会寻找该table的metatable(假定有metatable)中的__index 键.如果__ ...

  9. java查看本机hostName可代表的ip列表

    java查看本机hostName可代表的ip列表 import java.net.InetAddress; public class ent { public static void main(Str ...

  10. linux编译curl库的动态库so(转)

    转载请注明出处:帘卷西风的专栏(http://blog.csdn.NET/ljxfblog) curl库是一个很强大的http开源库,c++里面能够很方便的和http服务器交互. 最近项目开始内测,开 ...