从WAVE头文件里获取压缩方式

在解析WAV文件时。会从头文件里读取TAG值,表示当前文件的压缩格式,如该值为1,表示没有压缩,其他表示不同的压缩方式。

如当中为6时,表示压缩方式是alaw

列表例如以下:


TAG值


音频描写叙述


0


0x0000


Unknown


1


0x0001


Microsoft PCM


2


0x0002


Microsoft ADPCM


3


0x0003


IEEE Float


4


0x0004


Compaq VSELP


5


0x0005


IBM CVSD


6


0x0006


Microsoft ALAW


7


0x0007


Microsoft MULAW


16


0x0010


OKI ADPCM


17


0x0011


Intel DVI ADPCM


18


0x0012


Videologic MediaSpace ADPCM


19


0x0013


Sierra ADPCM


20


0x0014


Antex Electronics G.723 ADPCM


21


0x0015


DSP Solution DIGISTD


22


0x0016


DSP Solution DIGIFIX


23


0x0017


Dialogic OKI ADPCM


24


0x0018


MediaVision ADPCM


25


0x0019


HP CU


32


0x0020


Yamaha ADPCM


33


0x0021


Speech Compression Sonarc


34


0x0022


DSP Group True Speech


35


0x0023


Echo Speech EchoSC1


36


0x0024


Audiofile AF36


37


0x0025


APTX


38


0x0026


AudioFile AF10


39


0x0027


Prosody 1612


40


0x0028


LRC


48


0x0030


Dolby AC2


49


0x0031


Microsoft GSM610


50


0x0032


Microsoft MSNAudio


51


0x0033


Antex ADPCME


52


0x0034


Control Res VQLPC


53


0x0035


Digireal


54


0x0036


DigiADPCM AC2


55


0x0037


Control Res CR10


56


0x0038


NMS VBXADPCM AC2


57


0x0039


Roland RDAC


58


0x003A


EchoSC3


59


0x003B


Rockwell ADPCM


60


0x003C


Rockwell Digit LK


61


0x003D


Xebec


64


0x0040


Antex Electronics G.721


65


0x0041


Antex Electronics G.728 CELP


66


0x0042


Microsoft MSG723


80


0x0050


MPEG


82


0x0052


Voxware RT24


83


0x0053


InSoft PAC


85


0x0055


MPEG Layer 3


89


0x0059


Lucent G.723


96


0x0060


Cirrus


97


0x0061


ESPCM


98


0x0062


Voxware


99


0x0063


Canopus Atrac


100


0x0064


APICOM G.726 ADPCM


101


0x0065


APICOM G.722 ADPCM


102


0x0066


Microsoft DSAT


103


0x0067


Microsoft DSAT Display


105


0x0069


Voxware Byte Aligned


112


0x0070


Voxware AC8


113


0x0071


Voxware AC10


114


0x0072


Voxware AC16


115


0x0073


Voxware AC20


116


0x0074


Voxware Metavoice


117


0x0075


Voxware Metasound


118


0x0076


Voxware RT29HW


119


0x0077


Voxware VR12


120


0x0078


Voxware VR18


121


0x0079


Voxware TQ40


128


0x0080


Softsound


129


0x0081


Voxware TQ60


130


0x0082


MSRT24


131


0x0083


AT&T G.729A


132


0x0084


Motion Pixels MVI MV12


133


0x0085


DF G.726


134


0x0086


DF GSM610


136


0x0088


ISIAudio


137


0x0089


Onlive


145


0x0091


Siemens SBC24


146


0x0092


Dolby AC3 SPDIF


151


0x0097


ZyXEL ADPCM


152


0x0098


Philips LPCBB


153


0x0099


Packed


256


0x0100


Rhetorex ADPCM


257


0x0101


BeCubed IRAT


273


0x0111


Vivo G.723


274


0x0112


Vivo Siren


291


0x0123


DEC G.723


512


0x0200


Creative ADPCM


514


0x0202


Creative FastSpeech8


515


0x0203


Creative FastSpeech10


544


0x0220


Quarterdeck


768


0x0300


Fujitsu FM Towns Snd


1024


0x0400


BTV Digital


1664


0x0680


AT&T VME VMPCM


4096


0x1000


Olivetti OLIGSM


4097


0x1001


Olivetti OLIADPCM


4098


0x1002


Olivetti OLICELP


4099


0x1003


Olivetti OLISBC


4100


0x1004


Olivetti OLIOPR


4352


0x1100


LH Codec


5120


0x1400


Norris


5121


0x1401


AT&T ISIAudio


5376


0x1500


AT&T Soundspace Music Compression


8192


0x2000


DVM


65534


0xFFFE


WAVE_FORMAT_EXTENSIBLE


65535


0xFFFF


Experimental

时间: 2024-10-13 08:57:06

从WAVE头文件里获取压缩方式的相关文章

在类的头文件里尽量少引入其它头文件 <<Effective Objective-C>>

与C 和C++ 一样,Objective-C 也使用"头文件"(header file) 与"实现文件"(implementation file)来区隔代码.用Objective-C 语言编写"类"(class)的标准方式为:以类名做文件名称,分别创建两个文件,头文件后缀用.h,实现文件后缀用.m. 创建好一个类之后,其代码看上去例如以下所看到的: // EOCPerson.h #import <Foundation/Foundation.

头文件里不要有全局定义

//由于一个头文件可能会被多次包含,所以有全局定义的情况下,在链接会出现重定义错误 //全局定义不应该放在头文件里,应该放入其相应的实现文件中. //如果一个头文件里的全局定义被多个cpp文件所使用,则只有一个文件可以include这个头文件,其他只能是extern这些全局声明. #ifndef LOCK_H #define LOCK_H void lock(); void unlock(); void quanju(){};/////////小心 int quanjubianliang;///

头文件里应该写些什么

1.输入输出接口函数声明如extern void InitLcd1602(); 2.全局变量声明 3.声明自定义数据类型:结构体,枚举体 typedef signed char int8; main.h #ifndef _MAIN_H #define _MAIN_H enum eStaSystem { E_NORMAL, E_SET_TIME, E_SET_ALARM }; #ifndef _MAIN_C extern enum eStaSystem staSystem; #endif void

纯java从apk文件里获取包名、版本号、icon

简洁:不超过5个java文件 依赖:仅依赖aapt.exe 支持:仅限windows 功能:用纯java获取apk文集里的包名,版本号,图标文件[可获取到流直接保存到文件系统] 原理:比较上一篇文章里通过反编译然后解析AndroidManifest.xml的方式,此种方式更加简单,通过模拟执行aapt截取cmd输出并整理获取信息. 附件为源码,test/demo 为演示,output下为编译后的jar文件. 参考开源项目: http://code.google.com/p/cfuture09-a

IAR 数据类型/扩展关键字/位操作/SRAM操作/中断/头文件/汇编嵌入方式

--数据类型 数据类型(编译器支持 ISO/ANSI C 基本数据类型和一些附加数据类型) 1.1. 整型数据 bool 数据类型在C++语言里是默认支持的.如果你在C代码的头文件里包含stdbool.h, bool数据类型也可以使用在C语言里.也可以使用布尔值 false和 true. 1.2.浮点数据类型: 1.3.指针类型:指针有数据指针和函数指针. 1.数据指针: 数据指针的大小为8位,16位,24位.定义为:在整型数据类型后加"*"符号. 例如:char * p; 整型数据没

C语言中,头文件和源文件的关系(转)

简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件)4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成跟特定平台相关的可执行文件,当然,最后还可以用objcopy生成纯二进制码,也就是去掉了文件格式信息.(生成.exe文件) 编译器在编译时是以C文件为单位进行的,也就是

函数实现不放在头文件的原因,及何时可以放头文件的情况

1 .引子       在平常的 C/C++ 开发中,几乎所有的人都已经习惯了把类和函数分离放置,一个 .h 的头文件里放声明,对应的 .c 或者 .cpp 中放实现.从开始接触,到熟练使用,几乎已经形成了下意识的流程.尽管这样的做法无可厚非,而且在不少情况下是相对合理甚至必须的,但我还是要给大家介绍一下把实现全部放置到头文件中的方式,给出可供大家使用的另一个选择.同时针对这一做法,也顺便说一下其优缺点以及需要注意的情况.       我是一个很喜欢简洁的人,多年以来甚至养成了这样的癖好,如果一

.h头文件、 .lib库文件、 .dll动态链接库文件之间的关系(转)

h头文件作用:声明函数接口 dll动态链接库作用:含有函数的可执行代码 lib库有两种: (1)静态链接库(Static Libary,以下简称“静态库”) (2)动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库”) 两者的区别: 实质是不一样的东西. 静态库本身就包含了实际执行代码.符号表等等,而对于导入库而言,其实际的执行代码位于动态库中,导入库只包含了地址符号表等,确保程序找到对应函数的一些基本地址信息. 如:当我们在自己的程序中引用了一个h头

.c和.h文件的区别(头文件与之实现文件的的关系~ )

 .c和.h文件的区别 一个简单的问题:.c和.h文件的区别 学了几个月的C语言,反而觉得越来越不懂了.同样是子程序,可以定义在.c文件中,也可以定义在.h文件中,那这两个文件到底在用法上有什么区别呢? 2楼: 子程序不要定义在.h中. 函数定义要放在.c中,而.h只做声明.否则多引用几次,就会发生函数重复定义的错误. 3楼: .h只做声明,编译后不产生代码   4楼: 这样做目的是为了实现软件的模块化 使软件结构清晰,而且也便于别人使用你写的程序 纯粹用 C 语言语法的角度,你当然可以在 .h