博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
openal 基础知识3
阅读量:7078 次
发布时间:2019-06-28

本文共 2058 字,大约阅读时间需要 6 分钟。

四创新科技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个独立的硬件发声器。若硬件资源不可用,则alSourceQueueBuffersalSourcei都会调用失败。

        支持的格式:

                4通道,16bit数据

                6通道(5.1)16bit数据

                7通道(6.1)16bit数据

                8通道(7.1)16bit数据

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

 

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

 

 

1)AL_FORMAT_QUAD1616bit采样4通道buffer数据组织

                Sample 1, 左前扬声器

                Sample 1, 右前扬声器

                Sample 1, 左后扬声器

                Sample 1, 右后扬声器

                Sample 2, 左前扬声器

                …

2)AL_FORMAT_51CHN1616bit采样5.1通道buffer数据组织

                Sample 1, 左前扬声器

                Sample 1, 右前扬声器

                Sample 1, 中央扬声器

                Sample 1, 低频扬声器

                Sample 1, 左后扬声器

                Sample 1, 右后扬声器

                Sample 2, 左前扬声器

                …

3)AL_FORMAT_61CHN1616bit采样6.1通道buffer数据组织

                Sample 1, 左前扬声器

                Sample 1, 右前扬声器

                Sample 1, 中前扬声器

                Sample 1, 低频扬声器

                Sample 1, 左后扬声器

                Sample 1, 右后扬声器

                Sample 1, 中后扬声器

                Sample 2, 左前扬声器

                …

4)AL_FORMAT_71CHN1616bit采样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”。(我没找到)

转载地址:http://ksdml.baihongyu.com/

你可能感兴趣的文章
iOS -Swift 3.0 -Array(数组与可变数组相关属性及用法)
查看>>
探索推荐引擎内部的秘密,第 3 部分: 深入推荐引擎相关算法 - 聚类
查看>>
MySQL各版本的性能特性(从4.0版本开始)
查看>>
linux包之bash之内置命令ulimit
查看>>
HBase与Zookeeper数据结构查询
查看>>
QQ等软件可以联网 网页打不开
查看>>
c++ 使用socket实现C/S端文件的下载传输
查看>>
JMF获取设备列表失败,获取视频设备失败?
查看>>
国内 Mono 相关文章汇总
查看>>
Python模块学习 ---- datetime
查看>>
MS SQL Server Quarter Function
查看>>
linux日志(常用命令)
查看>>
history
查看>>
Leetcode: Arranging Coins
查看>>
HttpUtil 【判断网络连接的封装类】
查看>>
【转】TCP分段与IP分片
查看>>
iOS 多线程 NSOperation、NSOperationQueue
查看>>
delphi执行查询语句时的进度条怎么做
查看>>
CF 335A(Banana-贪心-priority_queue是大根堆)
查看>>
python的memcache使用如果对key设置了一个int型
查看>>