openal 基础知识3
四创新科技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来检查格式是否支持。
- ALenum eBufferFormat= alGetEnumValue(“AL_FORMAT_51CHN16”);
- if (!eBufferFormat) {
- printf(“No supportfor 5.1 playback!\n”);
- return 0;
- }
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的更多相关文章
- openal 基础知识4
二函数 1. buffer函数 void alGenBuffers(ALsizei n /* buffer数*/, ALuint * buffers /* buffer ID数组*/); void a ...
- openal 基础知识2
三枚举扩展包(enumeration extension,“ALC_ENUMERATION_EXT”) 开发者可以通过这个extension得到一个字符串列表,区分不同的渲染/捕捉设备.OpenALr ...
- openal 基础知识
原文地址:http://blog.csdn.net/woker/article/details/8687380 一简介 OpenAL抽象出三种基本对象:buffers(缓冲区).sources(源). ...
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- selenium自动化基础知识
什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
- [SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
随机推荐
- Solr4:配置Data Import,从数据库直接创建索引
1. 要求 将数据库中的数据直接创建到Solr索引中去.先做全部索引,然后定期做增量索引. 2. 环境 Solr4.4版本,Tomcat7.0版本,Oracle 11g,已经配置好Tomcat与Sol ...
- 【Android】21.3 动画
分类:C#.Android.VS2015: 创建日期:2016-03-21 一.简介 Android 提供了以下三种创建动画的方式: Drawable Animations – 画板动画,也叫帧动画( ...
- CF 366E - Dima and Magic Guitar 最远曼哈顿距离
题目:http://codeforces.com/problemset/problem/366/E 事实上就是找 n * m 矩阵中数字 x 和 数字 y 的最远距离. 方法參照武森的论文<浅谈 ...
- angular学习笔记(十)-src和href处理
本篇主要介绍angular中图片的src和链接的href的处理: 用到了以下两个属性: ng-src: 绑定了数据的路径表达式 ng-href: 绑定了数据的路径表达式 例如: <!DOCTYP ...
- Spark: Best practice for retrieving big data from RDD to local machine
've got big RDD(1gb) in yarn cluster. On local machine, which use this cluster I have only 512 mb. I ...
- jQuery+Ajax获取百度百科历史上的今天
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Windows2012R2版本区别
From:https://zh.wikipedia.org/wiki/Windows_Server_2012 Windows Server 2012有4种版本:Foundation, Essentia ...
- LeetCode: Intersection of Two Linked Lists 解题报告
Intersection of Two Linked Lists Write a program to find the node at which the intersection of two s ...
- ucos-III基础教程汇总
目录: 1.ucos-III前言 2.uC/OS-III 概要 3.移植 uC/OS-III 到 STM32 4.调度器 5.uC/OS-III 时钟节拍,时间管理,时间片调度
- [转]Windows Server 2008 对 CPU 及 RAM 的支持规格
Windows Server 2008 对 CPU 的支援: 在看到下表时,请注意其数字所指的是:主板上的实体 CPU的个数,也就是几个 Sockets 举例来说,机器上安装 2 个 4 核心的 CP ...