听起来没有在我的代码上播放
Sounds not playing on my code
我在学习SFML库2.2版本,但声音不会播放。我在ubuntu 14.04上编译并运行了这个程序。这是我的程序
#include "SFML/Audio.hpp"
#include <stdio.h>
#include <iostream>
using namespace std;
using namespace sf;
SoundBuffer buffer;
Sound audio;
int main(int argc, char* argv[]) {
if(buffer.loadFromFile(argv[1]))
cout << "Sounds Loaded" << endl;
audio.setBuffer(buffer);
audio.setVolume(100);
audio.play();
cout << "Yay!" << endl;
return 0;
}
这是我的编译代码:
g++ testaudio.cpp -I <My Directory>/SFML-2.2/include/ -L <My Directory>/SFML-2.2/lib/ -lsfml-audio -lsfml-system -o testaudio
我的编译没有错误,但当我运行程序时,声音不会出来。我检查了音量,但什么都没变。
SFML声音教程说声音和音乐在一个单独的线程中播放。可能发生的情况是,你的程序运行,开始在一个单独的线程上播放声音,但主线程继续运行,并到达main
函数的末尾并退出,从而杀死你的程序。简而言之:你的程序退出得太快了,你甚至听不到任何声音在播放。
在退出之前,请尝试调用sf::sleep()
,让您的程序有时间播放歌曲。
我怀疑audio.play()
是异步的。因此,您的程序在声音开始播放后立即退出。
只需在程序退出前执行以下操作:
audio.play();
cout << "Yay!" << endl;
sleep(9999); // sleep until CTRL+C is pressed
return 0;
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 代码在main()中运行,但在函数中出现错误
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 编译包含字符串的代码时遇到问题
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 在Linux for Windows上编译C++代码时出错
- 我的字符计数代码计算错误.为什么
- 孤立代码块在结构中引发异常
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 此代码是否违反一个定义规则
- 代码在CodeBlocks中运行良好,但是当我将其上传到Google Kickstart竞赛时,我会得到一个重新播放
- 每次我将(播放旋律 - )代码上传到Arduino时,我按下按钮时,它会在数组中跳过相同的音符.怎么会
- 听起来没有在我的代码上播放
- 想知道我的代码有什么问题?一旦播放器名称达到 100,应该输出获胜者,但在之后再次循环
- 从c++代码触发VLC播放器