Core Audio(一)
Core Audio APIs
core audio apis是vista之后引入的,不使用与之前的windows版本;core audio apis提供访问endpoint devices,比如耳机、麦克风等,它是higher-level audio APIs(比如directsound, waveXXX 函数)的基础。
(一)Windows Core Audio APIs简介
1.功能:
(1)低延时,几乎无故障的音频流。
(2)提高可靠性 ( 很多音频函数从核心态移到了用户态 )
(3)提高了安全性 (在安全的,低优先级别的线程处理被保护的音频内容)
(4)分配了特定的系统级别的规则 (console, multimedia, communications) 给单独的音频设备
(5)用户可以直接操作,相应 endpoint 设备的软件抽象 ( 如:扩音器,耳麦及麦克风 )
2. 以下higher-level APIs的基础:
(1)DirectSound
(2)DirectMusic
(3)Windows multimedia waveXxx and mixerXxx functions
(4)Media Foundation
3.需要用到这些核心的 API的地方:
(1)专业的音频应用程序 (PRO AUDIO)
(2)实时通信 (RTC) 应用程序
(3)第三方音频 API
一个 PRO AUDIO 和 RTC 应用程序可能需要直接用底层 Core Audio API 访问音频硬件来达到最小延时的效果,一个第三方的音频 API 需要直接访问 Core Audio API 来实现高层的 API 没有提供的功能;
4.Api包括(这些 API 提供对于设备的抽象概念,这些概念被描述成为 Audio Endpoint Device ):
(1)Multimedia Device (MMDevice) API :用这些 API 来枚举系统中的音频设备。
(2)Windows Audio Session API (WASAPI) :用这些 API 来创建和管理来自音频设备音频流。
(3)DeviceTopology API :用这些 API 来直接访问声音适配器中的硬件数据通路的拓扑特性(如音量控制,复用器等)
(4)EndpointVolume API :用这些 API 直接访问音频设备的声音控制。这些 API 通常是给那些以独占模式管理音频流的应用程序。
本文参考文档:http://msdn.microsoft.com/en-us/library/dd370802(v=vs.85).aspx
Core Audio(一)的更多相关文章
- Core Audio(二)
用户模式音频组件 在windows vista中,core audio apis充当用户模式音频子系统的基础,core audio apis作为用户模式系统组件的一个thin layer,它用来将用户 ...
- Core Audio 在Vista/Win7上实现
应用范围:Vista / win7, 不支持XP 1. 关于Windows Core Auido APIs 在Windowss Vista及Windows 7操作系统下,微软为应用程序提供了一套新的音 ...
- 使用Core Audio实现VoIP通用音频模块
最近一直在做iOS音频技术相关的项目,由于单项直播SDK,互动直播SDK(iOS/Mac),短视频SDK,都会用到音频技术,因此在这里收集三个SDK的音频技术需求,开发一个通用的音频模块用于三个SDK ...
- 使用 Windows Core Audio APs 进行 Loopback Recording 并生成 WAV 文件
参考文档 COM Coding Practices Audio File Format Specifications Core Audio APIs Loopback Recording #inclu ...
- Core Audio(三)
音频终端设备(Audio Endpoint Devices) endpoint device指的是应用程序的数据通道上起始或终止的硬件设备,如扬声器,耳机,话筒等:沿着数据通道可能穿越一定数目的硬件和 ...
- windows core audio apis
这个播放流程有一次当初不是很理解,做个记录,代码中的中文部分,原文档是有解释的:To move a stream of rendering data through the endpoint buff ...
- 使用Core Audio实现对声卡输出的捕捉
涉及的接口有: IMMDeviceEnumerator IMMDevice IAudioClient IAudioCaptureClient 主要过程: 创建多媒体设备枚举器(IMMDeviceEnu ...
- Core MIDI and Friends
http://www.slideshare.net/invalidname/core-midi-and-friends 31 of 31 Core MIDI and ...
- UIKit,Core Data , Core Graphics, Core Animation,和OpenGLES框架
iOS的主要框架介绍 框架是一个目录,这个目录包含了共享库,访问共享库里代码的头文件,和其它的图片和声音的资源文件.一个共享库定义的方法或函数可以被应用程序调用. IOS提供了很多你可以在应用程序 ...
随机推荐
- 十.oc内存管理
引用百度百科图 栈(stack)又名堆栈. 栈定义:栈是限定仅在表头进行插入和删除操作的线性表(有序).(又称:后进先出表) (动态)数据展示存储的地方.(举例:升降电梯)特点:先进后出(FILO—F ...
- C# 从字符串中取出英文字母
string fid = context.Request["value2"];//fid=FCT1234 Regex re = new Regex(@"[a-zA-Z]+ ...
- 安装一些包管理的记录 win10
我大php的composer 国内镜像包http://pkg.phpcomposer.com/ 还是全局的爽些: omposer config -g repo.packagist composer ...
- Splinter学习--初探1,模拟百度搜索
Splinter是以Selenium, PhantomJS 和 zope.testbrowser为基础构建的web自动化测试工具,基本原理同selenium 支持的浏览器包括:Chrome, Fire ...
- java.lang.OutOfMemoryError: Java heap space的解决方法
windows->preferences->Java->Installed JRES->edit->Default VM Arguments添加-Xms256m -Xmx ...
- 09-JAVA中的异常处理
1. 程序执行结果: 也就是它根本就没抛出异常,更别提捕获异常了.那么,为什么会这样呢? 原来, 如上面程序展示,程序运行到k=i/j;的时候,就会直接终止,根本就不会运行到监视的程序,更不会运行到捕 ...
- 16.10.18学到的Java知识
1. 突然间发现自己忘了关于自增自减运算符放在变量前后的区别是什么了? 于是乎,我查了资料. 如果只对自变量进行加1或减1的时候,放在前面和后面都是没有区别的. 但是,如果自增自减运算符使用在需要赋值 ...
- vs命令行采集性能数据
VSPerfASPNETCmd /output:d://PerformanceReport.vsp http://localhost/store/cart.aspx
- android ListView点击item返回后listview滚动位置
1.Don't work when dynamically loading content Parcelable state; @Override public void onPause() { // ...
- java虚拟机运行时乱码问题
问题: Android端通过socket发送文本到windows,windows调用系统剪切板进行粘贴的操作,java服务端在eclipse下直接运行粘贴的文本无乱码,打包jar后粘贴的文本乱码. 解 ...