openal在vs2010中的配置
下载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中的配置的更多相关文章
- VS2010中项目配置引入GDAL
在上一篇文章中,小编介绍了使用VS2010编译GDAL的方法,但是上文中仅仅完成了编译的工作,但是在具体是使用过程中,需要先对VS2010的项目进行配置,引入GDAL的库.配置GDAL的的过程如下: ...
- VS2010中xercesc配置及简单示例
从官网下载xerces-c-3.1.1并解压,打开工程项目 xerces-c-3.1.1\projects\Win32\VC10\xerces-all\xerces-all.sln, 选择Xerces ...
- 【转】Win7下VS2010中配置Opencv2.4.4的方法(32位和64位都有效)(亲测成功)
在vs2010下配置opencv是件痛苦的事情,一点点错误可能就会导致莫名其妙的报错,各种error让人郁闷不已,这里提供给大家一篇vs2010下配置opencv2.4.4的方法,我是64位的win7 ...
- 在VS2010中配置ICE插件的步骤
ICE为不同的IDE都提供了插件.本文介绍VS2010下的配置. 首先建立一个控制台工程,以此为例,进行介绍. 1.激活插件 选择工具-> IceConfiguration或者在工程右键选择Ic ...
- VS2010中配置OpenGL
下面将对VS2010中配置OpenGL进行简单介绍. 学习OpenGL前的准备工作第一步,选择一个编译环境现在Windows系统的主流编译环境有Visual Studio,Broland C++ Bu ...
- vs2010中配置OpenGL以及针对64位系统所遇问题的解决办法
一.下面将对VS2010中配置OpenGL进行简单介绍. 学习OpenGL前的准备工作 第一步,选择一个编译环境 现在Windows系统的主流编译环境有Visual Studio,Broland C+ ...
- VS2010中配置C#Project不生成.vhost.exe和.pdb文件的方法
在VS2010中编译C#工程时,在C#的Project的属性界面的Build选项卡中当Configuration : Relese 时,依然会生成扩展名为.vhost.exe和.pdb文件. 其中.p ...
- 百度的Ueditor在VS2015/VS2010中配置需注意的地方
1.下载:https://ueditor.baidu.com/website/download.html#uedito 官网已无1.4.3的.net版本下载,不知道百度在搞什么,下载完整版和ASP版本 ...
- CxImage在VS2010下的配置
http://blog.csdn.net/youzhuo/article/details/24601621 一.编译Cximage 1.在SourceForge上下载cximage702_full.7 ...
随机推荐
- cookie和session的讲解
php和js都是脚本语言: 客户端与服务器之间的交互,都是传输协议来进行交互的,客户向服务器发送的数据叫请求 request 服务器向客户端传输数据叫响应 response 他们之间都是无状态的: 无 ...
- [UE4]抓取准备
一.引擎的VR实例工程是使用手柄进行抓取的.我们需要加上可以使用鼠标进行抓取操作. 二.将左右手保存到全局变量. 三.左右手分别调用抓取和扔方法
- 如何以system身份运行指定的程序?
Local System(本地系统)是Windows操作系统内置的特殊账户.它拥有比Administartor更高的权限.smss.exe(会话管理器).csrss.exe(客户端/服务器运行时子系统 ...
- 微信小程序是怎么运行的?
微信客户端在打开小程序之前,会把整个小程序的代码包下载到本地. 紧接着通过 app.json 的 pages 字段就可以知道你当前小程序的所有页面路径 而写在 pages 字段的第一个页面就是这个小程 ...
- Allegro16.6 PCB 导入DXF 外框后曲线不闭合
Allegro16.6 PCB 导入DXF 外框后曲线不闭合,边框不封闭导致的z-copy无法用的问题.解决办法: 菜单栏依次选择 shape--compose shape,options选择好ou ...
- 接口与继承:方法覆盖(super)
源代码 //父类Parent class Parent{ int x; int y; Parent() { x = ; y = ; } public void Set(int a,int b) { x ...
- Z 字形变换
将一个给定字符串根据给定的行数,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "LEETCODEISHIRING" 行数为 3 时,排列如下: L C I R E T ...
- 基于bootstrap table配置的二次封装
准备 jQuery js css 引用完毕 开始 如果对bootstrap table 的方法与事件不熟悉: Bootstrap table方法,Bootstrap table事件 <table ...
- JConsole监控Linux上的Tomcat
JConsole监控Linux上的Tomcat 从Java 5开始引入了 JConsole,来监控 Java 应用程序性能和跟踪 Java 中的代码.jconsole是JDK自带监控工具,只需要找到 ...
- java idea 代码规范插件
推荐阿里的 p3c https://github.com/alibaba/p3c