Core Audio APIs 在Windows7的新特性

    The Core Audio APIs是在Windows Vista中引入的,它提供了一组新的用户模式音频组件,客户端应用程序可以使用这些组件来呈现或捕获音频流,并提供音频质量。

    The Core Audio APIs在Window 7中得到改善。以下是新特性:

泛型的改进

    ·在Windows 7中,共享模式流在低延迟模式下运行。音频引擎以pull模式运行,延迟显著降低。这对于需要低音频流延迟的通信应用程序非常有用。

    ·当一个新设备被添加到系统中,Windows 7提供了更好的设备检测。

    ·在Windows 7中,你可以通过你的电脑扬声器收听来自你的便携式媒体播放器的音乐。您可以使用这个捕获监视器特性,通过一个模拟音频电缆插入一个便携式媒体播放器到您的计算机。在过去,一些OEMs通过使用硬件环回提供了音频驱动中的这个功能。在Windows 7中,这个功能已经添加到操作系统中。因为这是在系统中而不是驱动程序中,所以您可以将此用于连接到系统的任何其他设备,例如USB耳机。

     ·HDMI音频在Windows 7中得到了增强,这为高比特率的格式提供了支持。有了这个改进,您可以支持多通道音频和压缩音频格式的一个HDMI连接器到一个音频接收器。

     ·在Windows Vista中,Windows媒体播放器只能通过默认的音频设备播放音乐,用户无法更改。对于Windows媒体播放器将音频渲染到特定设备,默认设备必须在声音控制面板中进行更改。在Windows 7中,Windows Media Player提供了api,使应用程序可以呈现给用户所选择的任何设备,而不仅仅是默认设备。

     ·在Windows Vista中,如果一台电脑正在播放音频切换到省电模式,电脑就会被锁定,如果用户想要中断播放,用户必须登录并按下停止键停止播放。在Windows 7中,如果计算机被锁定,你仍然可以通过使用键盘上的HID控件来控制回放。

     ·Windows 7降低了任何使用DirectSound和DirectShow渲染媒体的应用程序的功耗。此外,多媒体类调度器服务启用了glitch-弹性音频,并在生成音频样本时使用更少的电能。

通讯设备(新)

    在这个版本中,一个新的设备类型被添加到声音控制面板:通信设备。该设备主要用于通信,即在计算机上放置或接收电话。通信应用程序可以使用核心音频组件来获得对缺省通信设备端点的引用,并为通信目的呈现音频流。操作系统认为在通信设备上打开的流是通信流。在通信流上的WASAPI操作类似于任何其他音频流。

流衰减或音频闪避(新)

    自动管道或流衰减是Windows 7中的一个新特性,它是用于VoIP和统一通信应用程序的。默认情况下,当通信流(例如电话)通过计算机接收到通信设备时,操作系统会降低音频流的强度。音量选项由用户在声音控制面板中设置。

    在Windows SDK中添加了新的api,使应用程序能够替换默认的ducking行为。

流的分发(Stream routing )(新)

    在Windows 7中,核心音频api已经改进,可以将音频流无缝地从现有设备传输到新的默认音频端点。高级音频API集使用核心音频API,如媒体基础、DirectSound和WAVE API,实现流路由特性。使用这些API集来播放或捕获流的媒体应用程序使用默认实现,不需要修改应用程序。但是,如果您的媒体应用程序直接使用核心的音频api,应用程序需要提供流路由实现。为此,应用程序必须处理添加的新事件,在连接或删除默认设备时通知WASAPI客户端。

保护用户模式音频(PUMA:Protected User Mode Audio)(改进)

    ·在S/PDIF端点上设置串行复制管理系统(SCMS)位和高带宽数字内容保护(HDCP)位在高清晰度多媒体接口(HDMI)端点上。

    ·在受保护的环境之外启用SCMS和HDMI保护控件(PE)

结构体(WAVEFORMATEXTENSIBLE)被扩展为(WAVEFORMATEXTENSIBLE_IEC61937)(新)

    在Windows 7中,一个新的结构体被添加用来支持IEC 61937传输。WAVEFORMATEXTENSIBLE_IEC61937 扩展了WAVEFORMATEXTENSIBLE ,以存储两组音频流特征:编码后的音频格式,在传输和音频流被解码后的特征。新结构显式地指定了非pcm格式的通道、样本大小和数据速率的有效数量。有了这些信息,应用程序就可以推断出非pcm流的质量级别,然后进行解压和播放。

IAudioClient::Initialize(改进)

    IAudioClient::Initialize()函数已经被改进,指示在打开音频流时可能发生的特定错误。新的错误代码如下:

    ·AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED

    ·AUDCLNT_E_BUFFER_SIZE_ERROR

    ·AUDCLNT_E_INVALID_DEVICE_PERIOD

IAudioCaptureClient::GetBuffer 和 IAudioRenderClient::GetBuffer (改进)

    IAudioCaptureClient:GetBuffer 和 IAudioRenderClient::GetBuffer方法被改进为返回错误代码表示端点缓冲区的独占模式没有检索到。

Jack 检查能力(改进)

    在Windows 7中,新接口IKsJackDescription2扩展了IKsJackDescription。通过使用新的接口,音频堆栈或应用程序可以获得额外的Jack信息。这包括了Jack的检测能力,以及设备的格式是否发生了动态变化。

Windows 示例(新)

    新的示例已经添加到Windows SDK中,演示了核心音频api的使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值