【发布时间】:2015-02-25 02:18:35
【问题描述】:
好的,只是一个警告:我真的是 C++ 新手,今年才开始编码。
所以,我一直在尝试编写此程序以使用 SFML 库在控制台中运行。过去我在试图让图书馆工作时遇到问题,但现在我很好。所以,我有一个播放音乐的功能,但是当我尝试在控制台中激活该功能时,我只得到返回值 0 并且控制台关闭。
相关代码:
void music ()
{
system("CLS");
sf::Music WorldOnFire;
std::string musicInput;
std::cout << "What would you like to listen to?" << std::endl;
std::cout << "> Track 1 - \"I Don't Want to Set the World on Fire\" by The Ink Spots" << std::endl;
std::cout << "> Back" << std::endl;
std::getline(std::cin, musicInput);
std::transform(musicInput.begin(), musicInput.end(), musicInput.begin(), ::toupper);
musicInput.erase(std::remove(musicInput.begin(), musicInput.end(), ' '), musicInput.end());
if (musicInput == "TRACK1" || musicInput == "TRACK1-\"IDON'TWANTTOSETTHEWORLDONFIRE\"" || musicInput == "TRACK1-\"IDON'TWANTTOSETTHEWORLDONFIRE\"BYTHEINKSPOTS" || musicInput == "\"IDON'TWANTTOSETTHEWORLDONFIRE\"" || musicInput == "IDON'TWANTTOSETTHEWORLDONFIRE")
{
if (!WorldOnFire.openFromFile("WorldOnFire.ogg"))
{
std::cout << "Could not open file. File corrupted or missing." << std::endl;
std::cin.ignore();
music();
}
WorldOnFire.play();
}
else if (musicInput == "BACK")
{
system("CLS");
activitypage ();
}
}
这里是所有代码,因个人原因有遗漏。 Source
【问题讨论】:
-
出戏后你还在等吗?因为音乐与主线程并行运行(在音乐停止之前阻塞主线程会很愚蠢)
-
@Creris 我不确定你的意思。如果有帮助,我将上面的整个程序包括在内。