C++ 听起来我的代码没有播放

C++ 听起来我的代码没有播放,c++,audio,sfml,C++,Audio,Sfml,我正在学习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[]) {

我正在学习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;

}
#包括“SFML/Audio.hpp”
#包括
#包括
使用名称空间std;
使用名称空间sf;
声音缓冲器;
音频;
int main(int argc,char*argv[]){
if(buffer.loadFromFile(argv[1]))
cout我怀疑
audio.play()
是异步的。因此,您的程序在声音开始播放后立即退出

只需在程序退出前执行以下操作:

audio.play();
cout << "Yay!" << endl;

sleep(9999); // sleep until CTRL+C is pressed
return 0;
audio.play();
cout假设声音和音乐在一个单独的线程中播放。可能发生的情况是,您的程序运行,开始在一个单独的线程中播放声音,但主线程继续运行,并点击
main
函数的末尾并退出,杀死您的程序。简言之:您的程序退出得如此之快,您甚至听不到任何sou我在玩

在退出之前,尝试拨打电话给您的节目播放歌曲的时间

audio.play();
cout << "Yay!" << endl;

sleep(9999); // sleep until CTRL+C is pressed
return 0;