zoukankan      html  css  js  c++  java
  • 基于VC的声音文件操作(一)

    (一)文件格式

     1、RIFF文件结构和WAVE文件格式

    Windows支持两种RIFF(Resource Interchange File Format,"资源交互文件格式")格式的音频文件,MIDI的RMID文件和波形音频文件格式WAVE文件,其中在计算机领域最常用的数字化声音文件格式是后者,它是微软专门为Windows系统定义的波形文件格式,本文涉及到的声音文件所指的就是WAVE文件;常见的WAVE语音文件主要有两种,分别对应于单声道(11.025KHz采样率、8Bit的采样值)和双声道(44.1KHz采样率、16Bit的采样值);

    RIFF文件结构可以看作是树状结构,其基本构成是称为"块"(Chunk)的单元,每个块有"标志符"、"数据大小"及"数据"所组成,块的结构如下:

    块的标志符(4BYTES)
    数据大小 (4BYTES)
    数据

    其中"标志符"为4个字符所组成的代码,如"RIFF","LIST"等,指定块的标志ID;数据大小用来指定块的数据域大小,它的尺寸也为4个字符;数据用来描述具体的声音信号,它可以由若干个子块构成,一般情况下块与块是平行的,不能相互嵌套,但是有两种类型的块可以嵌套子块,他们是"RIFF"或"LIST"标志的块,其中RIFF块的级别最高,它可以包括LIST块;

    RIFF块和LIST块与其他块不同,RIFF块的数据总是以一个指定文件中数据存储格式的四个字符码(称为格式类型)开始,如WAVE文件有一个"WAVE"的格式类型;LIST块的数据总是以一个指定列表内容的4个字符码(称为列表类型)开始,例如扩展名为".AVI"的视频文件就有一个"strl"的列表类型,RIFF和LIST的块结构如下:

     

    RIFF/LIST标志符
    数据1大小
    数据1
    格式/列表类型
    数据

    WAVE文件结构,WAVE是非常简单的一种RIFF文件,它的格式类型为"WAVE";RIFF块包含两个子块,这两个子块的ID分别是"fmt"和"data",其中"fmt"子块由结构PCMWAVEFORMAT所组成,数据组成就是PCMWAVEFORMAT结构中的数据,WAVE文件的结构如下:

    标志符(RIFF)
    数据大小
    格式类型("WAVE")
    "fmt"
    Sizeof(PCMWAVEFORMAT)
    PCMWAVEFORMAT
    "data"
    声音数据大小
    声音数据

     Wave的具体格式,请阅读wav文件格式分析

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

  • 相关阅读:
    如何:为 Silverlight 客户端生成双工服务
    Microsoft Sync Framework 2.1 软件开发包 (SDK)
    Windows 下的安装phpMoAdmin
    asp.net安全检测工具 Padding Oracle 检测
    HTTP Basic Authentication for RESTFul Service
    Windows系统性能分析
    Windows Server AppFabric Management Pack for Operations Manager 2007
    Mongo Database 性能优化
    服务器未能识别 HTTP 标头 SOAPAction 的值
    TCP WAIT状态及其对繁忙的服务器的影响
  • 原文地址:https://www.cnblogs.com/wanghoney/p/3449569.html
Copyright © 2011-2022 走看看