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

            支持的格式:

                    4通道,16bit数据

                    6通道(5.1)16bit数据

                    7通道(6.1)16bit数据

                    8通道(7.1)16bit数据

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

     

    1. ALenum eBufferFormat= alGetEnumValue(“AL_FORMAT_51CHN16”);  
    2.   
    3. if (!eBufferFormat) {  
    4.         printf(“No supportfor 5.1 playback! ”);  
    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”。(我没找到)

  • 相关阅读:
    react-project(二)
    JS--轻松设置获取表单数据
    C#基础---Queue(队列)的应用
    C#基础---Attribute(标签) 和 reflect(反射) 应用二
    C#基础---Attribute(标签) 和 reflect(反射) 应用
    基于Cordova的博客园三方App
    Vue站点的搭建之旅
    移动端浏览器问题汇总
    C#基础---浅谈XML读取以及简单的ORM实现
    WebSite---前台系统图片验证码心得
  • 原文地址:https://www.cnblogs.com/dragon2012/p/3228971.html
Copyright © 2020-2023  润新知