当我运行程序时,音乐不会开始播放。 我检查了文件是否预加载了问题。 我的文件是.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();
}
答案 0 :(得分:1)
您正在循环调用music.gest()
,这反过来又使每次都调用load()
!您也确实在循环中调用sf::SoundStream::play()
,但是流每次都会重新初始化。
无论如何,您都不应该循环调用play()
。 SFML确保sf :: Music实例在其自己的线程上保持流传输。