音乐没有开始

时间:2018-06-23 17:31:14

标签: c++ class audio sfml

当我运行程序时,音乐不会开始播放。 我检查了文件是否预加载了问题。 我的文件是.ogg,而sfml支持。 我不明白为什么我在运行程序时没有声音。 我加载文件没有问题

#pragma once

#include <SFML/Audio.hpp>

class Audio
{
public:
        Audio();
        ~Audio();
        bool    load();
        bool    gest();
private:
        sf::Music       _main;
};

bool    Audio::load()
{
    if (!_main.openFromFile("res/zelda.ogg"))
                return false;
        return true;
}

bool    Audio::gest()
{
        if (!load())
                return false;
        _main.play();
        return true;
}

int     main(void)
{
        Monitor         window;
        Audio           music;

        window.initWindow();
        while (window.run())
                music.gest();
}

1 个答案:

答案 0 :(得分:1)

您正在循环调用music.gest(),这反过来又使每次都调用load()您也确实在循环中调用sf::SoundStream::play(),但是流每次都会重新初始化。

无论如何,您都不应该循环调用play()。 SFML确保sf :: Music实例在其自己的线程上保持流传输。