3.关键概念
这对于使用XAudio2概述介绍了一些关键的概念。
XAudio2引擎
声音
音频图
回调
相关主题
XAudio2 Engine
IXAudio2是XAudio2引擎和核心接口。创建一个IXAudio2接口允许客户列举的实例可用的音频设备(如何:列举音频设备),配置全局API属性,创建和销毁的声音,和监控性能。
XAudio2 Xbox 360作为静态库实现。在Windows上,XAudio2被实现为组件对象模型(COM)对象在一个动态链接库(DLL),客户可以创建使用COM CoCreateInstance函数。在这两个平台上,XAudio2Create 帮助层函数可以用来执行适当的实例化和初始化任务。在Xbox 360,XAudio2Create是一个真正的库函数。在Windows XAudio2Create是内联函数,定义在XAudio2.h,调用CoCreateInstance和 IXAudio2::Initialize函数。
虽然XAudio2Create函数允许类似的实例代码使用在这两个平台上,在Windows,COM函数必须在调用XAudio2Create之前调用CoInitialize或CoInitializeEx。COM的规则不允许这个函数调用被合并入XAudio2Create。同时,COM的规则需要在使用XAudio2的线程都调用CoInitialize或CoInitializeEx。
可以创建的实例XAudio2多次在一个进程。每个XAudio2对象独立运作,并有自己的音频处理线程。只有调试设置共享。这是很重要的,在Windows上,几个不同的组件可以加载在一个过程的例子,互联网Explorer-might XAudio2同时使用。虽然可以创建多个XAudio2引擎对象在一个客户机应用程序,信息不应该各自之间传递图。
一个初始化XAudio2引擎的例子,如何:初始化XAudio2。
Voices
Voices是XAudio2处理的对象,操作,播放音频数据。XAudio2有三种类型的Voices对象。
- Source Voices
Source Voices代表的音频数据流。Source Voices把他们的数据传送到其他类型的Voices。
- Submix Voices
Submix Voices执行一些操作的音频数据。音频数据的一个例子可能是采样率转换。Submix Voices的数据处理之后,它将数据传递给另一个Submix Voices或Mastering Voices。
- Mastering Voices
Mastering Voices接收数据从Source Voices和Submix Voices,并将这些数据发送到音频硬件。
转到 XAudio2 Voices的概述。
Audio Graph
Audio Graph是XAudio2 Voices的集合。音频的音频图从一侧开始声音来源,可以通过一个或多个submix声音,终于送到掌握的声音。音频图将包含一个来源为每个声音现在玩的声音,零个或多个submix的声音,一个掌握的声音。最简单的音频图,和所需的最低XAudio2喧哗,是单一来源的声音输出直接掌握的声音。看到如何:播放一个声音与XAudio2最低的一个例子与XAudio2步骤需要扮演一个声音。
转到XAudio2 Audio Graph的概述。
回调
回调机制XAudio2使用信号客户机代码,一些事件发生的声音或引擎对象。因为音频播放XAudio2引擎是异步的,回调时提供唯一的方法来确定声音完成演奏。
转到XAudio2回调的概述。