四创新科技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”。(我没找到)

openal 基础知识3的更多相关文章

  1. openal 基础知识4

    二函数 1. buffer函数 void alGenBuffers(ALsizei n /* buffer数*/, ALuint * buffers /* buffer ID数组*/); void a ...

  2. openal 基础知识2

    三枚举扩展包(enumeration extension,“ALC_ENUMERATION_EXT”) 开发者可以通过这个extension得到一个字符串列表,区分不同的渲染/捕捉设备.OpenALr ...

  3. openal 基础知识

    原文地址:http://blog.csdn.net/woker/article/details/8687380 一简介 OpenAL抽象出三种基本对象:buffers(缓冲区).sources(源). ...

  4. .NET面试题系列[1] - .NET框架基础知识(1)

    很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...

  5. RabbitMQ基础知识

    RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...

  6. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  7. selenium自动化基础知识

    什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...

  8. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  9. [SQL] SQL 基础知识梳理(二) - 查询基础

    SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...

随机推荐

  1. linux下查看doc在线帮助文件

    常看到某个linux下的工具,有带有doc结尾的文件,但是新手不知道如何查看. 我一番查找,终于知道了... 比如:ipython这个软件,在ubuntu里面,有ipython-doc的一个包. 安装 ...

  2. iOS改变UINavigationBar导航条标题颜色和字体

    转自:http://www.2cto.com/kf/201311/260409.html iOS 5 以后 UINavigationController 可以 改变UINavigationBar导航条 ...

  3. 每日英语:For Michael Dell, Saving His Deal Is Just First Step

    Michael Dell is set to win a bruising, yearlong battle for control of his company. His next task -- ...

  4. 李洪强iOS开发之极光推送JPush

    李洪强iOS开发之极光推送JPush

  5. Spark Streaming使用Kafka保证数据零丢失

    来自: https://community.qingcloud.com/topic/344/spark-streaming使用kafka保证数据零丢失 spark streaming从1.2开始提供了 ...

  6. 【Java】包装类总结

    Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的,这在实际使用时存在很多的不便,为了解决这个不足,在设计类时为每个基本数据类型设计了一个对应的类进行代表,这样八个和基本数 ...

  7. org.apache.commons

    Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.我选了一些比较常用的项目做简单介绍. 一.Commons BeanUtils http://jakar ...

  8. win下安装redis

    redis官方不提供win安装程序,github上有个开源项目提供. https://github.com/MSOpenTech/redis 微软开源团队维护 ## 目录 - 安装 - 启动 - 使用 ...

  9. 基于html5鼠标悬停图片动画展示效果

    分享一款基于html5鼠标悬停图片动画展示效果.里面包含两款不同效果的html5图片展示效果.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div class=" ...

  10. 来自阿里的 json 解析方案 fastjson

    说起Json 解析,有非常多方法,不管是出自Google 的Gson也好,还是来自其它的某某.想必大家都非常熟悉. 今日在github上闲逛.偶遇 一 json 解析库.看起来非常不错,据说是眼下最快 ...