四创新科技extension (Creative Labs'Extensions)

创新科技为OpenAL添加了多个extensions,许多都利用了他们声卡的特性。

“Enumerate All”extension 类似于“EnumerationExtension”,但是扩展到可以覆盖所有可用声卡(包括WindowsVista里面的声音end-points)。

“X-RAM” extension允许开发者使用板上声音RAM用来存储OpenALbuffers。

“Multi-ChannelBuffers” extension 允许开发者播放多通道buffers。

“Effects Extension(EFX)” 允许应用程序通过音效(如混音、低通滤波)来创建一个逼真的3D听觉世界。

1. “EnumerateAll” extension, “ALC_ENUMERATE_ALL_EXT

它工作模式与“EnumerationExtension”相同,但是额外检测其它的音频路径。若你不需要这样完全控制输出路径的选择,则应该使用标准EnumerationExtension。

1) 检测EnumerateAll Extension

alcIsExtensionPresent (NULL, “ALC_ENUMERATE_ALL_EXT”) == AL_TRUE

2) 获取device名字

alcGetString(NULL, ALC_ALL_DEVICES_SPECIFIER);可获取全部device名字列表。

alcGetString(NULL, ALC_DEFAULT_ALL_DEVICES_SPECIFIER);可获取默认device的名字。

2. X-RAM

声卡特性。

3. 多通道buffers(Multi-Channel Buffers)

此extension提供了播放多通道数据的功能,支持多种格式。多通道buffers可以附加(attach)或者入队(queue)到某个source上。当使用“GenericSoftware” device时,多通道buffers混合成双通道输出。在硬件device(比如“GenericHardware” device或本地device)上,buffer的每个通道都需要一个硬件发声器(hardwarevoice)。例如播放一个AL_FORMAT_511CHN16格式的buffer,需要6个独立的硬件发声器。若硬件资源不可用,则alSourceQueueBuffers和alSourcei都会调用失败。

支持的格式:

4通道,16bit数据

6通道(5.1),16bit数据

7通道(6.1),16bit数据

8通道(7.1),16bit数据

在切换不同格式的多通道buffer之前,要用alGetEnumValue来检查格式是否支持。

  1. ALenum eBufferFormat= alGetEnumValue(“AL_FORMAT_51CHN16”);
  2. if (!eBufferFormat) {
  3. printf(“No supportfor 5.1 playback!\n”);
  4. return 0;
  5. }

1)AL_FORMAT_QUAD16,16bit采样4通道buffer数据组织

Sample 1, 左前扬声器

Sample 1, 右前扬声器

Sample 1, 左后扬声器

Sample 1, 右后扬声器

Sample 2, 左前扬声器

2)AL_FORMAT_51CHN16,16bit采样5.1通道buffer数据组织

Sample 1, 左前扬声器

Sample 1, 右前扬声器

Sample 1, 中央扬声器

Sample 1, 低频扬声器

Sample 1, 左后扬声器

Sample 1, 右后扬声器

Sample 2, 左前扬声器

3)AL_FORMAT_61CHN16,16bit采样6.1通道buffer数据组织

Sample 1, 左前扬声器

Sample 1, 右前扬声器

Sample 1, 中前扬声器

Sample 1, 低频扬声器

Sample 1, 左后扬声器

Sample 1, 右后扬声器

Sample 1, 中后扬声器

Sample 2, 左前扬声器

4)AL_FORMAT_71CHN16,16bit采样7.1通道buffer数据组织

Sample 1, 左前扬声器

Sample 1, 右前扬声器

Sample 1, 中前扬声器

Sample 1, 低频扬声器

Sample 1, 左后扬声器

Sample 1, 右后扬声器

Sample 1, 左侧扬声器

Sample 1, 右侧扬声器

Sample 2, 左前扬声器

4. 音效extension(Effects Extension (EFX))

参见“EffectsExtension Guide”。(我没找到)

04-21 06:57