转自 http://net.eagle.blog.163.com/blog/static/124195920069148310829/
ACM(Audio Compression Manager)技术手册
l ACM是什么?
ACM是"audio compression manager"缩写,翻译过来就是声音压缩管理器,是微软编写的
用于调用codec功能的接口函数库。它本来应该声明在mmsystem.pas单元中,但是Borland
Delphi将其省略了。当然,也已经有其PAS文件出版了,可以到 http://www.delphi-jedi.org
下载到。当然您想做更深广的应用,这个还是不够用的。
l 先看看ACM是怎么工作的
ACM根据已有的波表音频设备提供的驱动接口,允许应用程序直接调用设备。ACM可以处理
多样化的音频数据,例如添加一个外部多媒体数字信号编解码器(CODEC),ACM可以使用
到的驱动有:多媒体数字信号编解码器(Compressor and decompressor)驱动、格式转换
驱动和筛选驱动。
多媒体数字信号编解码器(CODEC)可以支持转换媒体格式。例如,转换一个PCM (Pulse Code
Modulation)文件到ADPCM (Adaptive Differential Pulse Code Modulation)文件。格式转换器所
做的是转换媒体格式,而不是媒体数据类型,例如44-kHz或16-bit音频数据可以转换成44-kHz,
8-bit的。筛选器不处理媒体数据格式,但仍改变波表音频的一些样式,如:筛选器可以连接
一个流数据和它的回音。一个简单的ACM驱动、甚至一个筛选标识或一个格式标识都支持上述
格式。
经过ACM音频数据分解成的每个缓冲数据被送入转换器,转化器将该数据解压缩,并将此解压
数据列队到一个新的缓冲,可以比喻为"映射",然后ACM将此"映射"数据输出到波表驱动设备
等待播放。要说明的是,无论相应的"映射"数据有没有正常转化,ACM将自动在新的缓冲列队
预留下数据段。
至于音频输入,ACM使用一个后台作业从相关驱动设备接收数据源,然后将此数据段压缩然后
反馈到输出设备,因此一个缓冲单位也就是一个处理周期。数据完成压缩后便直接发送给相关
应用程序。
ACM是"audio compression manager"缩写,翻译过来就是声音压缩管理器,是微软编写的
用于调用codec功能的接口函数库。它本来应该声明在mmsystem.pas单元中,但是Borland
Delphi将其省略了。当然,也已经有其PAS文件出版了,可以到 http://www.delphi-jedi.org
下载到。当然您想做更深广的应用,这个还是不够用的。
l 先看看ACM是怎么工作的
ACM根据已有的波表音频设备提供的驱动接口,允许应用程序直接调用设备。ACM可以处理
多样化的音频数据,例如添加一个外部多媒体数字信号编解码器(CODEC),ACM可以使用
到的驱动有:多媒体数字信号编解码器(Compressor and decompressor)驱动、格式转换
驱动和筛选驱动。
多媒体数字信号编解码器(CODEC)可以支持转换媒体格式。例如,转换一个PCM (Pulse Code
Modulation)文件到ADPCM (Adaptive Differential Pulse Code Modulation)文件。格式转换器所
做的是转换媒体格式,而不是媒体数据类型,例如44-kHz或16-bit音频数据可以转换成44-kHz,
8-bit的。筛选器不处理媒体数据格式,但仍改变波表音频的一些样式,如:筛选器可以连接
一个流数据和它的回音。一个简单的ACM驱动、甚至一个筛选标识或一个格式标识都支持上述
格式。
经过ACM音频数据分解成的每个缓冲数据被送入转换器,转化器将该数据解压缩,并将此解压
数据列队到一个新的缓冲,可以比喻为"映射",然后ACM将此"映射"数据输出到波表驱动设备
等待播放。要说明的是,无论相应的"映射"数据有没有正常转化,ACM将自动在新的缓冲列队
预留下数据段。
至于音频输入,ACM使用一个后台作业从相关驱动设备接收数据源,然后将此数据段压缩然后
反馈到输出设备,因此一个缓冲单位也就是一个处理周期。数据完成压缩后便直接发送给相关
应用程序。