这不起作用:
QString directory = "";
int main(int argc, char *argv[])
{
QString boo = getDir();
if(!boo.isEmpty()) {
directory = boo;
QSound s1(directory);
QApplication a(argc, argv);
MainWindow w;
s1.play();
// MainWindow shows fine but QSound doesnt work at all
} else {
//somethingelse
}
}
但这很好用。
QString directory = "";
int main(int argc, char *argv[])
{
QString boo = getDir();
if(!boo.isEmpty()) {
directory = boo;
QApplication a(argc, argv);
MainWindow w;
} else {
//somethingelse
}
QSound s1(directory);
s1.play();
}
问题是 - 我的第一个例子出了什么问题?我不知道说实话。
我尝试了很多次但仍然无效。我该怎么做才能解决它?
答案 0 :(得分:1)
问题很简单,你的QSound实例超出范围并在“then”块结束时被破坏,并且在你听到任何声音之前声音停止播放。
将定义移出“then”块之前。然后开始在“then”块开始播放。