- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
VISTA、Server2008、Win7等系统音频系统底层API
CoreAudioAPIs的优势:
WindowsVista、Windows7、Windowsserver2008等系统音频系统相比之前的系统有很大的变化,产生了一套新的底层API即CoreAudioAPIs。该底层API为高层API(如
MediaFoundation(将要取代DirectShow等高层API)等)提供服务。相比之前版本的API有如下优势:
具有低延时、故障恢复能力的音频流。
提高可靠性(将很多音频函数从核心态移到了用户态)
提高了安全性(在安全的,低优先级别的线程处理被保护的音频内容)
为单独的音频设备分配了特定的系统级别的规则(console,multimedia,communications)。
用户可以直接操作相应音频终端设备(AudioEndpointDevices如:扬声器、耳机、麦克风、CD播放器)的软件抽象。
CoreAudioAPIs在系统中的位置:
CoreAudioAPIs的组成:
MultimediaDevice(MMDevice)API 该API用于枚举系统中的音频终端设备(AudioEndpointDevices)。告诉音频客户端程序有哪些音频终端设备以及它们的性能,并且为这些设备创建驱动实例(driverinstances)。是最基本的CoreAudioAPI,为其他三个API提供服务。
主要接口:
IMMDeviceEnumerator用来列举音频终端设备。
IMMDevice 代表一个音频设备(audiodevice)。
IMMEndpoint 代表一个音频终端设备(audioendpointdevice),只有一个方法GetDataFlow,用来识别一个音频终端设备是一个输出设备(renderingdevice)还是一个输入设备(capturedevice)。
IMMDeviceCollection 代表一个音频终端设备的集合
EndpointVolumeAPI 使客户端程序能够操作音频终端设备。主要接口:
IAudioEndpointVolume 用于控制音频终端设备的音量、静音。
WindowsAudioSessionAPI(WASAPI) 使客户端程序能够管理介于程序和音频终端设备之间的音频数据,如应用程序本身的音量。
主要接口:
ISimpleAudioVolume 代表控制来往音频终端设备的音频流的音量。
DeviceTopologyAPI客户端程序使用这个API可直接沿着音频适配器(audioadapters)的硬件设备里的数据通道进入布局特征。是最底层的音频API,可以通过适配器
设备(adapterdevices)的布局来查看和管理设备中的音频控制。下图为DeviceTopologyAPI的作用范围
音频适配器设备(audioadapterdevice)内部是由很多Part组成。主要包括亚单位
(Subunit)和连接头(Connector)。亚单位主要分为:音量控制(Vol)、静音控制(Mute)、多路器(MUX)等。连接头(Con)是一个连接的两端。
CoreAudioAPIs的使用:
1音频终端设备(AudioEndpointDevice)音量、静音控制
比如控制“声音”对话框下“播放”选项卡中的“扬声器”等,“录制”选项卡中的“麦克风”、“立体声混音”等。
步骤:
得到IMMDeviceEnumerator接口。
遍历音频终端设备得到IMMDeviceCollection接口。
根据IMMDeviceCollection得到每个设备的IPropertyStore接口,从而分辨并搜索到指定的设备IMMDevice接口。
用IMMDevice接口激活音量、静音控制接口IAudioEndpointVolume。
2音频适配器设备亚单位(Subunit)的音量、静音控制
比如控制“声音”对话框下“播放”选项卡中的“扬声器”下的“CD音频”、“麦克风”、
“ForntPinkIn”等的控制。
步骤:
得到IMMDeviceEnumerator接口。
遍历音频终端设备得到IMMDeviceCollection接口。
根据IMMDeviceCollection得到每个设备的IPropertyStore接口,从而分辨并搜索到指定的设备IMMDevice接口。
根据IMMDevice接口和连接器接口IConnector得到音频终端设备所对应的设备适配器(adapter
您可能关注的文档
- VB程序设计综合测试21.docx
- VB多选题分析和总结.docx
- VB国家二级公共基础教程.docx
- vb获取相对坐标.docx
- vb机试模拟试题.docx
- VB课程设计报告.docx
- VB类模块教程分析和总结.docx
- VB模拟鼠标操作.docx
- VB模拟题分析和总结.docx
- VB期末考复习分析和总结.docx
- 北师大版小学数学三年级上册《寄书》教学设计.docx
- 统编版(部编版)语文二年级上册《雪孩子》教学设计.docx
- 统编版(部编版)语文二年级上册《八角楼上》教学设计.docx
- 北师大版小学数学三年级上册《长方形周长》教学设计.docx
- 北师大版小学数学三年级上册《丰收了》教学设计.docx
- 统编版(部编版)语文二年级上册《夜宿山寺》教学设计.docx
- 统编版(部编版)语文二年级上册《风娃娃》教学设计.docx
- 统编版(部编版)语文二年级上册《朱德的扁担》教学设计.docx
- 统编版(部编版)语文二年级上册《难忘的泼水节》教学设计.docx
- 统编版(部编版)语文二年级上册《纸船和风筝》教学设计.docx
文档评论(0)