Windows基础-使用XAudio2播放音频(本质是WASAPI)

本文介绍了Windows音频架构UAA,重点讲解了WASAPI的低延迟特性和XAudio2的易用性。通过示例展示了如何使用XAudio2进行音频播放,揭示了在音频播放场景中,XAudio2相较于WASAPI的优势。
摘要由CSDN通过智能技术生成
对于常见的音频播放,使用XAudio2足够了。

时间是把杀猪刀,滑稽的是我成了猪

早在Windows Vista中,M$推出了新的音频架构UAA,其中的CoreAudio接替了DSound、WaveXxx、MediaFundation,通过Core Audio APIs,Windows的音频性能可以与MacOS X相媲美(手动偷笑)。

Universal Audio Architecture (UAA)

CoreAudio属于UAA,只在用户层进行一系列音频处理,而系统内核只负责递交缓冲数据给音频驱动。
这里写图片描述
在UAA出现之前,程序跑起来是这样的:
这里写图片描述
现在程序在UAA跑起来是这样的:
这里写图片描述

WASAPI和XAudio2

Core Audio APIs的明星:WASAPI

WASAPI可以不进行SRC直接输出,还能提供极低的音频延迟。
为了降低音频延迟,更像AISO,WASAPI的使用方式分为两种:一种是push,组成缓冲区队列,常用于音频播放。一种是event(必须独占),由硬件时钟或音频API提供事件来驱动你提交音频数据(好复杂啊真心没用过,缓存欠载怎么办),这样就可以大幅降低音频延迟,好像连DMA都会跳过(未查证),适用于游戏、实时混音等对实时性要求比较苛刻的场合。
在保真度上,WASAPI被Foobar2000用户吹得神乎其神。而它充其量就是少了个SRC过程,至于两种模式的区别,娱乐一下就行了。什么人声甜美声场宽毛刺少等等故弄玄虚之流,有这功夫还是花点钱吧,你需要更好的器材。
对用户而言,WASAPI真正厉害的在于APO(Audio Processing Objects),基于此技术的音效理论上兼容所有设备(可能是DSP算法的问题,我遇到了采样率上的限制,一旦高于96000Hz就失

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值