openal alut vs2019编译
1,下载 VS2019 社区版(community),这是微软提供的开源免费版本,针对个人用户。离线安装参考微软的说明。
2,下载 openal-soft-1.20.1.tar.bz2 : https://www.openal-soft.org/openal-releases/openal-soft-1.20.1.tar.bz2
3,下载 freealut-last-upstream-commit.zip : https://github.com/vancegroup/freealut/archive/last-upstream-commit.zip
4,下载cmake : cmake-3.18.0-win64-x64.msi : https://github.com/Kitware/CMake/releases/download/v3.18.0/cmake-3.18.0-win64-x64.msi
安装:
1,安装cmake
2,安装VS2019
3,解压 openal-soft ,进入源码目录,建立 build 目录(如果没有),进入 build 目录,执行 cmake .. ,生成vs2019工程文件 OpenAl.sln,用vs2019打开工程文件,编译64位目标文件。
4,解压 freealut ,进入源码目录,建立 build 目录(如果没有),进入 build 目录,执行 cmake .. ,生成vs2019工程文件 Alut.sln,用vs2019打开工程文件,编译64位目标文件。需要指定 openal-soft 的 include 及 include\AL 目录。如果cmake时总是头文件找不到,需要修改一下CMakeLists.txt,添加OPENAL_INCLUDE_DIR变量目录,注释掉出错的提示行IF(NOT AL_HEADERS)
测试代码:
建立新工程,终端控制台工程,使用下列源码:
// ==============================================================
#include <al.h>
#include <alc.h>
#include <alut.h>
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
// 存储声音数据.
ALuint Buffer;
// 用于播放声音.
ALuint Source;
// 源声音的位置.
ALfloat SourcePos[] = { 0.0, 0.0, 0.0 };
// 源声音的速度.
ALfloat SourceVel[] = { 0.0, 0.0, 0.1 };
// 听者的位置.
ALfloat ListenerPos[] = { 0.0, 0.0, 0.0 };
// 听者的速度
ALfloat ListenerVel[] = { 0.0, 0.0, 0.0 };
// 听者的方向 (first 3 elements are "at", second 3 are "up")
ALfloat ListenerOri[] = { 0.0, 0.0, -1.0, 0.0, 1.0, 0.0 };
//这一章与上一章唯一的不同是源速度的改变,他的‘Z’现在是0.1.
ALboolean LoadALData()
{
// 载入变量
ALenum format;
ALsizei size;
ALvoid* data;
ALsizei freq;
ALboolean loop;
// 载入WAV数据.
alGenBuffers(1, &Buffer);
if (alGetError() != AL_NO_ERROR)
return AL_FALSE;
alutLoadWAVFile((ALbyte *)"1.wav", &format, &data, &size, &freq, &loop);
alBufferData(Buffer, format, data, size, freq);
alutUnloadWAV(format, data, size, freq);
// 捆绑源
alGenSources(1, &Source);
if (alGetError() != AL_NO_ERROR)
return AL_FALSE;
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, AL_TRUE );
// 做错误检测并返回
if (alGetError() != AL_NO_ERROR)
return AL_FALSE;
return AL_TRUE;
}
//在这一节中有两处改变,首先是导入“FOOTSTES。WAV”,设置源‘AL_LOOPING’
//为‘AL_TRUE’。这意味着源播放直到停止时结束。他将不断的循环播放。
void SetListenervalues()
{
alListenerfv(AL_POSITION, ListenerPos);
alListenerfv(AL_VELOCITY, ListenerVel);
alListenerfv(AL_ORIENTATION, ListenerOri);
}
void KillALData()
{
alDeleteBuffers(1, &Buffer);
alDeleteSources(1, &Source);
alutExit();
}
//这里没有改变。
int main(int argc, char *argv[])
{
// 初始OPENAL并清错误字节
alutInit(NULL,0);
alGetError();
// 载入WAV数据.
if (LoadALData() == AL_FALSE)
return 0;
SetListenervalues();
// 设置退出函数.
atexit(KillALData);
// 开始源的播放.
alSourcePlay(Source);
//循环
ALint time = 0;
ALint elapse = 0;
while (1)
{
elapse += clock() - time;
time += elapse;
if (elapse > 50)
{
elapse = 0;
SourcePos[0] += SourceVel[0];
SourcePos[1] += SourceVel[1];
SourcePos[2] += SourceVel[2];
alSourcefv(Source, AL_POSITION, SourcePos);
}
}
return 0;
}
//这里唯一的改变是增加了一个循环。他将代替播放和停止按钮。
// ==============================================================
构建64位目标
设置工程 include 目录,包含 openal-soft 的include及include\AL目录,包含 alut 的include及include\AL目录
设置工程 lib 目录,包含 openal-soft 的build\debug目录,包含 alut 的build\debug目录
加入库文件 OpenAL32.lib 及 alut.lib
如果报错:ALUT_ATTRIBUTE_DEPRECATED ,去掉 alut.h 中的这个声明好了。
把alut.dll, OpenAL32.dll 复制到生成的exe目录,执行。
openal alut vs2019编译相关推荐
- vs2019 编译 WRK 踩坑记录
一.回顾 上一篇博客介绍了命令行编译 WRK 到调试的所有步骤,理论上我们已经可以开始学习了. 但是 IDE 可以方便的查找和修改函数,好处多多,所以这篇博客介绍如何使用 visual studio ...
- VS2019编译 当前最新版chromium
VS2019编译 当前最新版chromium 之前编译过webrtc和chromium, 由于长时间没用,被我删除了, 最近在最新版本的google浏览器上遇到了播放器兼容性问题,老版本的google ...
- 3D进阶之OSG:从VS2019编译osgEarth开始
3D库比较多,一般学习的有PCL的VTK,库比较大,集成了相当多不错的算法,对开发水平是个考验:OGRE由于其插件式架构,使得在机器人开发方面应用广泛:相对而言,OSG比较小众,可以用来构建模拟仿真的 ...
- SeetaFace2-master在Windows10 VS2019编译的两种方法
SeetaFace2-master在Windows10 VS2019编译的两种方法 SeetaFace2简介 方法一 方法二 SeetaFace2简介 SeetaFace2 是一个完整的人脸识别项目, ...
- Win10中用VS2019编译live555
前言 说明,本文是在Win10中用VS2019编译live555的过程中,对遇到的问题进行说明.编译过程主要参考的是下面一篇文章,在此表示感谢: https://blog.csdn.net/m0_37 ...
- VS2019编译MQTT库 C/C++(超详细,含示例工程)
目录 前言 一.前期准备 1.1 获取mqtt库 1.2 安装openssl 1.3 安装cmake-gui 二.生成C工程代码 三.编译C库 3.1 创建工程目录 3.2 修改输出目录 四.生成C+ ...
- 【已解决】海康威视MFC综合示例(C++ 官网Demo)采用VS2019编译异常如何解决?
采用VS2019编译运行海康威视MFC综合示例Demo 一.文章背景: 二.操作步骤: 1.海康威视设备网络SDK下载: 2.VS2019 MFC开发环境配置: 3.MFC综合示例编译运行: 三.小结 ...
- vs2019编译obs源码生成sln解决方案
目录 一.OBS介绍 二.OBS源码下载 三.Qt配置 四.设置依赖库目录 五.开始编译 六.main函数 七.视频教程 一.OBS介绍 obs的编译不是很难,只要代码下的全,环境变量配的ok, ...
- Windows下使用VS2019编译libiconv-1.16
Windows下使用VS2019编译libiconv-1.16 参考了 https://blog.csdn.net/zhouguangcai8/article/details/105270657,在其 ...
最新文章
- python 流写入文件_python文件流操作
- Google colab: 修改系统时间 change system time
- 缓解数据包丢失对WAN的影响是当务之急—Vecloud微云
- 【ROM修改教程】添加高级电源重启菜单(安卓4.0.4官方ROM)
- 【Qt】Qt数据库简介
- c#事件的发布-订阅模型_微信灰度测试订阅号付费功能,小米推出最便宜5G套餐,腾讯辟谣高管猝死赔钱事件,核心期刊发布十岁儿童文章,这就是今天的其他大新闻!...
- 剑指 Offer 32 - I. 从上到下打印二叉树
- java ora 28040_Oracle 11g与112c中ORA-28040 错误解决
- Java番外篇1——正则表达式
- java使用rabbitmq
- java开发_eclipse导出为war文件,热部署到tomcat运行总结[转]
- RF工具ride使用
- 深入解析 Flink 的算子链机制
- texlive的安装
- Sublime Text设置中文
- 2019中国国际大数据产业博览会将5月26-29日贵阳举行
- 2020年中式烹调师(高级)考试试卷及中式烹调师(高级)模拟考试题
- HTML无序列表四大名著
- 网络摄像头IPC国标GB28181协议国标安防视频流媒体平台EasyGBS视频流不上线排查步骤
- IDM无法找到服务器magnet IDM服务器禁止访问此文件
热门文章
- 用友U8服务器修改数据库端口,用友U8 u8数据库如何修改端口号
- 判赔50万,海尔集团要将上诉进行到底
- photoshopCS3使用时总是慢半拍
- cdoj1339郭大侠与线上游戏
- Mongodb(三)Mongodb复制
- 智能手机排排坐,十大操作系统下的旗舰手机
- c webservice html,在WEBSERVICE中用于描述WEB服务的语言是()A、WSDLB、UMLC、 - 信管网...
- java kfs_Hypertable hbase hdfs kfs java与c++的较量
- 蓝牙HC-05上电自动互联(最详细教程)
- 安全防护工具之:Clair