音乐没有开始
The music doesn't start
当我 运行 节目时,音乐没有播放。
我检查了文件是否已预加载而没有问题。
我的文件是 .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();
}
您在循环中调用 music.gest()
,循环中又 调用 load()
! 您确实在循环中调用了 sf::SoundStream::play()
也循环,但每次都会重新初始化流。
你不应该在循环中调用 play()
。 SFML 确保 sf::Music 实例在其自己的线程上保持流式传输。
当我 运行 节目时,音乐没有播放。 我检查了文件是否已预加载而没有问题。 我的文件是 .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();
}
您在循环中调用 music.gest()
,循环中又 调用 load()
! 您确实在循环中调用了 sf::SoundStream::play()
也循环,但每次都会重新初始化流。
你不应该在循环中调用 play()
。 SFML 确保 sf::Music 实例在其自己的线程上保持流式传输。