基于OpenAL 1.0, 1.1官方文档
因为是边读边翻译. 不是正规的出版作品, 略去非编程直接相关的内容, 非技术性内容也只是点到为止, 语言方面尽可能达意, 也许以后会加以语言上的修饰, 如不辛被转载, 请注意相关的内容及原文版权
By Julian.Zhu
---------------------------------- 正文分割线 ---------------------------
关于本文档
介绍:
OpenAL是跨平台的3D音效API.
这套API使得应用程序能实现以听者为中心的3D空间音效 (包括实现 2.1/5.1等声源产生空间化的音效),
通过扩展, 创意实验室也加入EAX等加强了OpenAL的功能.
OpenAL适用于大多数使用声音的应用程序, 从设计上来讲, OpenAL特别适用于游戏音效.
目标受众:
本文适用于多数开发者. 学习OpenAL的概念并不一定需要C/C++的经验, 但了解C/C++有助于理解OpenAL源代码和示例程序.
与源代码一起发布的还有若干个求你程序, 建议有兴趣的开发者也能利用这些资源.
其它OpenAL资源:
除文档外, OpenAL两个最重要的信息源是 www.openal.org和 developer.creative.com.
OpenAL的主网站主要存放说明文档, 源码实现和示例程序.
Creative开发者网站的OpenAL SDK部分展示了如何使用OpenAL及其多种扩展.
------------ 分割线 ------------
介绍 OpenAL
使用OpenAL主要围绕着三个基本对象: 缓冲(Buffers), 声源(Sources), 听者(Listener).
缓冲可以被音效数据填充(audio data), 可以被挂载到一个声源.
声源可被定位(译注: 放置于3D空间中)和播放.
声源听起来的效果取决于声源相对听者的位置和方向 (仅有一个听者).
创建多个声源, 缓冲及一个听者, 并动态改变声源的位置, 朝向或听者的位置, 可以表现出相当真的3D音效世界.
对象:
下图表现了OpenAL对象和他们和设备上下文的关系 :
当OpenAL被初始化时. 至少一个设备被打开. 对于这个(被打开的)设备, 至少创建一个上下文(Context), 而在此上下文中隐含了一个听者, 并可在此上下文中创建多个声源. 每个声源挂载多个缓冲.
缓冲并不是特定上下文的一部分, 他们被同一个设备的多个上下文所共享.