二函数

1. buffer函数

void alGenBuffers(ALsizei n /* buffer数*/, ALuint * buffers /* buffer ID数组*/);

void alDeleteBuffers(ALsizei n /* buffer数*/, ALuint * buffers /* buffer ID 数组*/);

ALboolean alIsBuffer(ALuint buffer);

// 为buffer填充数据

void alBufferData(ALuint buffer, ALenum format/*声音格式*/,const ALvoid *data/*数据地址*/

, ALsizei size/*数据字节数*/,ALsizei freq/*声音频率*/);

声音格式:AL_FORMAT_[MONO8, MONO16, STEREO8, STEREO16]

// 设置buffer的浮点数属性

void alBufferf (ALuintbuffer, ALenum param/*属性名*/,ALfloat value/*属性值*/);

void alBuffer3f (ALuintbuffer, ALenum param, ALfloat v1, ALfloat v2, ALfloat v3);

void alBufferfv (ALuintbuffer, ALenum param, ALfloat *values);

// 设置buffer的整数属性

void alBufferi (ALuintbuffer, ALenum param, ALint value);

void alBuffer3i (ALuintbuffer, ALenum param, ALint v1, ALint v2, ALint v3);

void alBufferiv (ALuintbuffer, ALenum param, ALint *values);

// 获取buffer属性值

void alGetBufferf(ALuint buffer, ALenum param, ALfloat *value);

void alGetBuffer3f(ALuint buffer, ALenum param, ALfloat *v1, ALfloat *v2, ALfloat *v3);

void alGetBufferfv(ALuint buffer, ALenum param, ALfloat *values);

void alGetBufferi(ALuint buffer, ALenum param, ALint *value);

void alGetBuffer3i(ALuint buffer, ALenum param, ALint *v1, ALint *v2, ALint *v3);

void alGetBufferiv(ALuint buffer, ALenum param, ALint *values);

2. source函数

void alGenSources(ALsizei n, ALuint *sources);

void alDeleteSources(ALsizei n, ALuint *sources);

ALboolean alIsSource(ALuint source);

void alSourcef (ALuintsource, ALenum param, ALfloat value);

void alSource3f (ALuintsource, ALenum param, ALfloat v1, ALfloat v2, ALfloat v3);

void alSourcefv (ALuintsource, ALenum param, ALfloat *values);

void alSourcei (ALuintsource, ALenum param, ALint value);

void alSource3i (ALuintsource, ALenum param, ALint v1, ALint v2, ALint v3);

void alSourceiv (ALuintsource, ALenum param, ALint *values);

void alGetSourcef(ALuint source, ALenum param, ALfloat *value);

void alGetSource3f(ALuint source, ALenum param, ALfloat *v1, ALfloat *v2, ALfloat *v3);

void alGetSourcefv(ALuint source, ALenum param, ALfloat *values);

void alGetSourcei(ALuint source, ALenum param, ALint *value);

void alGetSource3i(ALuint source, ALenum param, ALint *v1, ALint *v2, ALint *v3);

void alGetSourceiv(ALuint source, ALenum param, ALint *values);

void alSourcePlay(ALuint source);

void alSourcePause(ALuint source);

void alSourceStop(ALuint source);

void alSourceRewind(ALuint source); //停止source并将其状态设置为AL_INITIAL

void alSourcePlayv(ALsizei n, ALuint *sources); //播放一系列source

void alSourcePausev(ALsizei n, ALuint *sources);

void alSourceStopv(ALsizei n, ALuint *sources);

void alSourceRewindv(ALsizei n, ALuint *sources);

voidalSourceQueueBuffers (ALuint source, ALsizei n, ALuint *buffers); //alGetSourcei(source,

AL_BUFFERS_PROCESSED,&x)获取已经处理了的buffer数

voidalSourceUnqueueBuffers (ALuint source, ALsizei n, ALuint *buffers);

3. listener函数

void alListenerf(ALenum param, ALfloat value);

void alListener3f(ALenum param, ALfloat v1, ALfloat v2, ALfloat v3);

void alListenerfv(ALenum param, ALfloat *values);

void alListeneri(ALenum param, ALint value);

void alListener3i(ALenum param, ALint v1, ALint v2, ALint v3);

void alListeneriv(ALenum param, ALint *values);

void alGetListenerf(ALenum param, ALfloat *value);

void alGetListener3f(ALenum param, ALfloat *v1, ALfloat *v2, ALfloat *v3);

void alGetListenerfv(ALenum param, ALfloat *values);

void alGetListeneri(ALenum param, ALint *value);

void alGetListener3i(ALenum param, ALint *v1, ALint *v2, ALint *v3);

void alGetListeneriv(ALenum param, ALint *values);

4. 状态函数

AL_DOPPLER_FACTOR f 全局多普勒系数

AL_SPEED_OF_SOUND f 声音的每秒传播速度

AL_DISTANCE_MODEL i 距离模型枚举值

void alEnable (ALenumcapability); //使能某项功能

void alDisable (ALenumcapability);

ALboolean alIsEnabled(ALenum capability);

// FIXME:这一堆不知道是干吗的。。。

ALboolean alGetBoolean(ALenum param);

ALdouble alGetDouble(ALenum param);

ALfloat alGetFloat(ALenum param);

ALint alGetInteger(ALenum param);

void alGetBooleanv(ALenum param, ALboolean *data);

void alGetDoublev(ALenum param, ALdouble *data);

void alGetFloatv(ALenum param, ALfloat *data);

void alGetIntegerv(ALenum param, ALint *data);

const Alchar *alGetString (ALenum param); // param为

AL_VENDOR,AL_VERSION, AL_RENDERER, AL_EXTENSIONS

void alDopplerFactor(ALfloat value); //设置多普勒因子,默认1.0

void alSpeedOfSound(ALfloat value); //默认343.3

void alDistanceModel(ALenum value); //设置OpenAL的距离模型

AL_INVERSE_DISTANCE//倒数距离

AL_INVERSE_DISTANCE_CLAMPED//默认值

AL_LINEAR_DISTANCE //线性距离

AL_LINEAR_DISTANCE_CLAMPED

AL_EXPONENT_DISTANCE//指数距离

AL_EXPONENT_DISTANCE_CLAMPED

AL_NONE

//这两个参数是计算距离中用的,公式参考原版文档,总之越近增益越大

AL_REFERENCE_DISTANCE//参考距离

AL_ROLLOFF_FACTOR //衰减因子

5. 错误函数

ALenum alGetError(ALvoid);

6. extension函数

ALbooleanalIsExtensionPresent (const ALchar *extname); //extension有效时返回AL_TRUE

void * alGetProcAddress(const ALchar *fname); //返回指定的函数指针或者NULL

ALenum alGetEnumValue(const ALchar *ename); //返回ename描述的ALenum或者NULL

7. context函数

ALC_FREQUENCY l 输出频率

ALC_MONO_SOURCES l 请求的单声道source数

ALC_STEREO_SOURCES l 请求的双声道source数

ALC_REFRESH l context运行的刷新率

ALC_SYNC i 同步context的标志位

ALContext *alcCreateContext (ALCdevice *device, ALCint *attrlist);

attrlist:上述属性集的指针,可以是NULL或以0结尾的列表,列表中每一项是属性名和属性值组成的数对

ALCbooleanalcMakeContextCurrent (ALCcontext *context);

void alcProcessContext(ALCcontext *context); //通知指定context开始运行

void alcSuspendContext(ALCcontext *context); //这两个组合使用可以使状态的改变迅速生效

void alcDestroyContext(ALCcontext *context); //关闭非当前的context

ALCcontext*alcGetCurrentContext (ALCvoid);

ALCdevice*alcGetContextDevice (ALCcontext *context);

8. context错误函数

ALCenum alcGetError(ALCdevice *device);

9. contextdevice函数

ALCdevice*alcOpenDevice (const ALCchar *devicename);

ALCbooleanalcCloseDevice (ALCdevice *device);

10. contextextension函数

ALCbooleanalcIsExtensionPresent (ALCdevice *device, const ALCchar *extName);

void* alcGetProcAddress(ALCdevice *device, const ALCchar *funcName);

ALCenum alcGetEnumValue(ALCdevice *device, const ALCchar *enumName);

11. context状态函数

const ALCchar *alcGetString (ALCdevice *device, ALenum param);

属性: ALC_DEFAULT_DEVICE_SPECIFIER

ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER

ALC_DEVICE_SPECIFIER

ALC_CAPTURE_DEVICE_SPECIFIER

ALC_EXTENSIONS

void alcGetIntegerv(ALCdevice *device, ALCenum param, ALCsizei size, ALCint *data);

param: ALC_MAJOR_VERSION,ALC_MINOR_VERSION,

ALC_ATTRIBUTES_SIZE,ALC_ALL_ATTRIBUTES

size: 传入的目标buffer的大小

12. context 捕捉函数

ALCdevice*alcCaptureOpenDevice (const ALCchar *devicename, ALCuint frequency, ALCenum format,ALCsizei buffersize);

frequency: 捕捉的频率

ALCbooleanalcCaptureCloseDevice (ALCdevice *device);

void alcCaptureStart(ALCdevice *device); //启动捕捉,数据存入一个内部环形buffer,buffer大小是opendevice时候传入。通过alcGetIntegerv和ALC_CAPTURE_SAMPLES可以获得当前有效采样数,然后可用alcCaptureSamples获得已经采样的样本。

void alcCaptureStop(ALCdevice *device);

void alcCaptureSamples(ALCdevice *device, ALCvoid *buffer, ALCsizei samples);

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

  1. openal 基础知识3

    四创新科技extension (Creative Labs'Extensions) 创新科技为OpenAL添加了多个extensions,许多都利用了他们声卡的特性. “Enumerate All”e ...

  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. gcc自有的define语法,解决变量多次自加的问题

    如果定义一个这样的宏: #define MAX(a,b) ((a)>(b)?(a):(b)) int main(void){ int a=5,b=10; MAX(a++,b++); printf ...

  2. ssh:Permissions 0644 for ‘/root/.ssh/id_rsa’ are too open

    最近,用ssh连接github时,突然提示“Permissions 0644 for ‘/root/.ssh/id_rsa’ are too open”,并且断开连接. 仔细阅读了一下ssh文档和这句 ...

  3. [svc]mousedos网络批量部署xp

    小时候对这个东西很好奇,不知道什么原理.一直觉得很好玩.现在研究了下,总结如下 软件的操作步骤很讲究,稍微不慎,则就需要重新来过 知识点: 1,掌握诺顿ghost分区为gh文件 2,学会清理至一个干净 ...

  4. C++windows内核编程笔记day13 进程、线程与信号量

    Windows进程 进程是一个容器,包括程序运行须要的代码.数据.资源等信息, windows进程的特点: 每一个进程都有自己的ID号 每一个进程都有自己的地址空间.进程之间无法訪问对方的地址空间. ...

  5. nyoj 715 Adjacent Bit Counts

    描述 For a string of n bits x1, x2, x3, …, xn,  the adjacent bit count of the string  is given by      ...

  6. windows 简单api应用

    //调用系统函数 将鼠标移动到相应位置 [DllImport("user32.dll", EntryPoint = "SetCursorPos")] publi ...

  7. php phpmail发送邮件的效果

    方法一: /*                                                                                * 发送邮件 原 smtp ...

  8. java 多线程5: java 终止线程及中断机制 (stop()、interrupt() 、interrupted()、isInterrupted())

    JAVA中有3种方式可以终止正在运行的线程 ①线程正常退出,即run()方法执行完毕了 ②使用Thread类中的stop()方法强行终止线程.但stop()方法已经过期了,不推荐使用 ③使用中断机制i ...

  9. freemarker遍历java.util.Properties

    java.util.Properties类 学习笔记 http://trans.blog.51cto.com/503170/110227/ FreeMarker代码 <#list systemP ...

  10. 纯css3实现的创意图片放大镜

    今天要给大家分享的的一款用纯css3实现的图片放大镜特效.页面打开五个小图显示于页面.当鼠标经过图片时,当前图片以灰色背景图的形式展示.效果非常不错. 在线预览   源码下载 实现的代码: html代 ...