下载openal开发工具:相关资料可以在OpenAL官网http://connect.creativelabs.com/openal/default.aspx上获得。这里下载的SDK为OpenAL11CoreSDK

安装运行:OpenAL11CoreSDK.exe,并将安装后的目录下的文件夹:include中的头文件复制到vs2010项目工程文件下;libs目录下的OpenAL32.lib(文件可能存在于win64目录下或者win32目录下,找到与pc系统相应的目录中文件)复制到vs2010安装目录中的vc/libs目录中。

配置vs2010:点击“项目”→“属性”→“配置属性”→“链接器”→“常规”,在“附加库目录”中添:OpenAL32.lib,即从openal安装目录路径下拷贝到vs2010安装目录中的那个文件。

编程实现:

 // openal_test.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include "al.h" // for glXzzz
#include "alc.h" // for glcXzzz
#include <stdio.h> // for printf
#include <math.h> // for cosf #define SHRT_MAX 8192 ALuint Source;// 用于播放声音
ALuint Buffer;// 声音数据 bool InitOpenAL()
{
ALCdevice * pDevice = alcOpenDevice(NULL); // 打开默认音频设备
ALCcontext * pContext = alcCreateContext(pDevice, NULL);
alcMakeContextCurrent(pContext);
return true;
// 注意:这里没有进行失败检测,仅用于示例
} void ShutdownOpenAL()
{
ALCcontext *pContext;
ALCdevice *pDevice; pContext = alcGetCurrentContext();
pDevice = alcGetContextsDevice(pContext); alcMakeContextCurrent(NULL);
alcDestroyContext(pContext);
alcCloseDevice(pDevice);
} bool LoadData()
{
// 载入变量.
const ALsizei size = ;
ALsizei freq = ;
ALboolean loop = ; // 循环播放
// 使用一段正弦波作数据
short data[];
alGenBuffers(, &Buffer);
float max = SHRT_MAX / ;
float rad = ;
for(int e= ; e<;e++)
{
data[e] = (short)(max * cosf(rad));
rad += .f;
}
// 载入WAV数据
alBufferData(Buffer, AL_FORMAT_MONO16, data, size, freq);
alGenSources(, &Source); // 源声音的位置
ALfloat SourcePos[] = { 0.0, 0.0, 0.0 };
// 源声音的速度
ALfloat SourceVel[] = { 0.0, 0.0, 0.0 }; alSourcei (Source, AL_BUFFER, Buffer );
alSourcef (Source, AL_PITCH, 1.0f );
alSourcef (Source, AL_GAIN, 1.0f );
alSourcefv(Source, AL_POSITION, SourcePos);
alSourcefv(Source, AL_VELOCITY, SourceVel);
alSourcei (Source, AL_LOOPING, loop ); return true;
}
void UnloadData()
{
alDeleteBuffers(, &Buffer);
alDeleteSources(, &Source);
} void Play()
{
// 播放
alSourcePlay(Source);
printf("Press Enter To Stop Sound\n");
getchar();
alSourceStop(Source);
} int main(int argc, char *argv[])
{
InitOpenAL(); // 初始化openal
LoadData(); // 载入WAV数据
Play(); // 播放
UnloadData(); // 卸载WAV数据
ShutdownOpenAL(); // 关闭openal
return ;
}

(备注:代码来自友博客......粘贴在此,纯粹为了个人理解,再次谢谢共享的原著)

openal在vs2010中的配置的更多相关文章

  1. VS2010中项目配置引入GDAL

    在上一篇文章中,小编介绍了使用VS2010编译GDAL的方法,但是上文中仅仅完成了编译的工作,但是在具体是使用过程中,需要先对VS2010的项目进行配置,引入GDAL的库.配置GDAL的的过程如下: ...

  2. VS2010中xercesc配置及简单示例

    从官网下载xerces-c-3.1.1并解压,打开工程项目 xerces-c-3.1.1\projects\Win32\VC10\xerces-all\xerces-all.sln, 选择Xerces ...

  3. 【转】Win7下VS2010中配置Opencv2.4.4的方法(32位和64位都有效)(亲测成功)

    在vs2010下配置opencv是件痛苦的事情,一点点错误可能就会导致莫名其妙的报错,各种error让人郁闷不已,这里提供给大家一篇vs2010下配置opencv2.4.4的方法,我是64位的win7 ...

  4. 在VS2010中配置ICE插件的步骤

    ICE为不同的IDE都提供了插件.本文介绍VS2010下的配置. 首先建立一个控制台工程,以此为例,进行介绍. 1.激活插件 选择工具-> IceConfiguration或者在工程右键选择Ic ...

  5. VS2010中配置OpenGL

    下面将对VS2010中配置OpenGL进行简单介绍. 学习OpenGL前的准备工作第一步,选择一个编译环境现在Windows系统的主流编译环境有Visual Studio,Broland C++ Bu ...

  6. vs2010中配置OpenGL以及针对64位系统所遇问题的解决办法

    一.下面将对VS2010中配置OpenGL进行简单介绍. 学习OpenGL前的准备工作 第一步,选择一个编译环境 现在Windows系统的主流编译环境有Visual Studio,Broland C+ ...

  7. VS2010中配置C#Project不生成.vhost.exe和.pdb文件的方法

    在VS2010中编译C#工程时,在C#的Project的属性界面的Build选项卡中当Configuration : Relese 时,依然会生成扩展名为.vhost.exe和.pdb文件. 其中.p ...

  8. 百度的Ueditor在VS2015/VS2010中配置需注意的地方

    1.下载:https://ueditor.baidu.com/website/download.html#uedito 官网已无1.4.3的.net版本下载,不知道百度在搞什么,下载完整版和ASP版本 ...

  9. CxImage在VS2010下的配置

    http://blog.csdn.net/youzhuo/article/details/24601621 一.编译Cximage 1.在SourceForge上下载cximage702_full.7 ...

随机推荐

  1. nmcli配置ipv6

    nmcli配置ipv6 作者:Eric 微信:loveoracle11g [root@racooler ~]# nmcli connection show eno16777736 | grep ipv ...

  2. 转载一份kaggle的特征工程:经纬度、特征构造、转化率

    转载:https://www.toutiao.com/i6642477603657613831/ 1 如果训练/测试都来自同一时间线,那么就可以非常巧妙地使用特性.虽然这只是一个kaggle的案例,但 ...

  3. GSM与GPRS的区别

    1.    GSM是全球移动通讯系统(Global System for Mobile Communications)的简称 2.    GPRS是通用分组无线业务(General Packet Ra ...

  4. 最大化等比例测试演化Demo-传统方法

    demo-1: <!doctype html> <html> <head> <meta charset="utf-8"> <t ...

  5. AJAX注册

    注册的时候,编号自动生成,需要在数据库查询出当前的最大编号是多少,然后在此基础上+1//绑定编号 $.ajax({ url: "ajax/returnUcode.ashx", da ...

  6. FastSocket客户端/服务端通讯示例 客户端被动接收

    示例代码参见  http://www.cnblogs.com/T-MAC/p/fastsocket-asyncbinary-usage.html 我这里只写一份客户端如何被动接收的代码.   先从As ...

  7. Spring获取URL相关信息

    获取请求的URL:request.getRequestURL().toString(); 获取上下文名称(项目名称):request.getContextPath()

  8. wx.navigateBack(OBJECT)怎么携带参数呢?

    wx.navigateBack(OBJECT) 关闭当前页面,返回上一页面或多级页面.可通过 getCurrentPages() 获取当前的页面栈,决定需要返回几层. OBJECT 参数说明: 参数 ...

  9. spring入门 依赖入注的三种方式(1)

    第一种:构造器参数注入 第二种:setter方法属性注入(setter方法的规范-JavaBean规范) 第三种:接口注入 Bean 属性的注入:对一个对象的属性的赋值 1.构造器参数注入: publ ...

  10. redis-大key寻找

    使用redis-rdb-tools 项目地址 https://github.com/sripathikrishnan/redis-rdb-tools 生成csv命令 rdb -c memory //d ...