电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

OpenAl笔记VIP免费

OpenAl笔记_第1页
OpenAl笔记_第2页
OpenAl笔记_第3页
OpenAl 学习笔记 Openal 的基本组成就是上图所描述的,包括一个设备device,设备里面包含至少一个context,和若干个缓冲,而context 里面只包含一个listener,和若干个源。 源(sou rce)是指向放声音的空间。明白源是非常 的重要。源只播放内存中的背景声音数据。源也给出了特殊的属性如位置和速度。 使用 openal 的第一步就是包含头文件了: #inclu de #inclu de #inclu de #inclu de 使用过 opengl 的肯定对 al 的头文件感觉熟悉,其实 al 就是模仿 gl 写的。 关于设备的创建: ALCdevice *alcOpenDevice( const ALCchar *devicename ); 1,上面是创建的函数,返回一个指向设备的指针,如果返回NULL,那肯定是出了问题。 2,传入值是一个ALCchar*,其实就是一个字符串,在 alc.h 头文件中有这样的代码:typedef char ALCchar;说明 ALCchar 就是char。那传入什么值才可以?你可以传入一个现有的设备的名字,或者是一个NULL,NULL 代表新建一个默认设备。 插曲:如何知道当前可用的设备,那就使用 glcGetString 函数 const ALCchar * alcGetString( ALCdevice *device, ALenum param ); Parameters device a pointer to the device to be queried param an attribute to be retrieved: ALC_DEFAULT_DEVICE_SPECIFIER ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER ALC_DEVICE_SPECIFIER ALC_CAPTURE_DEVICE_SPECIFIER ALC_EXTENSIONS 传给该函数ALC_DEVICE_SPECIFIER 就可以返回一个指针,指向的是一个字符串(设备名). 3,判断是否出错,使用 alGetError 该函数返回当前错误状态,并清除该项纪录。 if (alGetError() != AL_NO_ERROR) { exit(0); } 4, 如果设备成功创建了,则下一步创建设备context ALCcontext* context = 0; context = alcCreateContext(device,NULL); alcMakeContextCurrent(context); 5,创建缓冲区buffer 的索引 ALCuintbufferIndex = 0; 获得一个随机索引值:alGenBuffers(1,&bufferIndex); 可以将1 改为任意数值,但是bufferIndex 就必须是数组了,用于存放多个缓冲索引值。这个值用于表示每个缓冲,就和人的名字一样,不同的是他们不能重复,否则代表的就是同一个缓冲。 6,下面要做的就是给缓冲索引处填充内容了,就是音频数据,可以利用现有的alut.h 里的函数...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部