标签:
音效软件OpenAL是自由软件界的跨平台音效API,它最初是由Loki Software所开发,是为了将Windows商业游戏移植到Linux上,Loki倒闭以后,这个项目由自由软件/开放源始码社群继续维护,OpenAL主要的功能是在来源物体、音效缓冲和收听者中编码。
来源物体包含一个指向缓冲区的指标、声音的速度、位置和方向,以及声音强度。收听者物体包含收听者的速度、位置和方向,以及全部声音的整体增益,缓冲里包含8或16位元、单声道或立体声PCM格式的音效资料,表现引擎进行所有必要的计算,如距离衰减、都普勒效应等。
发展历程
OpenAL是自由软件界的跨平台音效API,OpenAL最初是由Loki Software所开发,是为了将Windows商业游戏移植到Linux上,Loki倒闭以后,这个项目由自由软件/开放源始码社群继续维护。
OpenAL是Open Audio Library的简称,在PC游戏中经常用到OPENAL。OPENAL有许多的潜能,有许多的声音库工作在最地层的hardware上,但OPENAL的设计者经过无数的测试使她成为一个高级的API。
主要功能
在来源物体、音效缓冲和收听者中编码。来源物体包含一个指向缓冲区的指标、声音的速度、位置和方向,以及声音强度。收听者物体包含收听者的速度、位置和方向,以及全部声音的整体增益。缓冲里包含8或16位元、单声道或立体声PCM格式的音效资料,表现引擎进行所有必要的计算,如距离衰减、都普勒效应等。用于Windows的OpenAL安装程序将安装OpenAL 1.1库,从而使核心的OpenAL业务以及诸如EAX和EFX效果扩展的支持。安装程序支持32位和64位Windows版本。
软件特色
OpenAL 主要的功能是在来源物体、音效缓冲和收听者中编码。来源物体包含一个指向缓冲区的指标、声音的速度、位置和方向,以及声音强度。收听者物体包含收听者的速度、位置和方向,以及全部声音的整体增益。缓冲里包含 8 或 16 位元、单声道或立体声 PCM 格式的音效资料,表现引擎进行所有必要的计算,如距离衰减、都普勒效应等。
不同于 OpenGL 规格,OpenAL 规格包含两个API分支;以实际 OpenAL 函式组成的核心,和 ALC API,ALC 用于管理表现内容、资源使用情况,并将跨平台风格封在其中。还有“ALUT”程式库,提供高阶“易用”的函式,其定位相当于 OpenGL 的 GLUT。
使用方法
OpenAL v2.0.3的安装很简单,运行程序,点击“OK”,就完成了。没有很烦琐的安装过程。
OpenAL主要由3个实体构成:听众Listener, 声源Source, 以及缓存Buffer。
听众Listener:就是你。Listener的位置是可以移动的。
声源Source:类似一个话筒。它发出声音给听众听。和Listener一样,声源的位置也是可以移动的。例如oalTouch中实现了声音远近的控制(近响远轻),就是通过Listener和Source两张图片之间的距离实现的。
缓存Buffer:存着原始声音数据,就是你需要播放的声音。
还有2个重要的对象:设备device和环境context。
设备是播放声音的硬件。
环境是声源和听众所在的空间。
常见问题
openAl整个定位问题过程中暴露出来的问题,不能播放声音?
1、定位环境没有搭好,每次在重新问题的时候花费大量的时间。(把播放声音放在切换场景,每次都要先进去才能触发)
2、定位问题的资源要选好,这样就可以缩小问题的范围
3、定位问题的思路不太发散,总是想着代码的问题,一直在代码上纠结。应该将代码移植到可以运行的环境来确定代码的正确性后,将查找问题重点放在资源的缺少上。
小编寄语
openAl是一个音效API,在系统和声卡之间扮演着一个沟通的角色,目前来说几乎没有一个API可以达到openAl的全部潜能,这款软件设计给多通道三维位置音效的特效表现,常用于某些游戏系统。