当用户在QTextEdit中输入内容时,我正在制作一个需要播放.wav文件的应用程序。我制作了一些代码,但是在一两分钟之后,声音停止了,所以我做了一些愚蠢的工作。点击30次后,我调用了sound-> stop();然后循环再次开始,这是有效的,但它不好,你能给出更好的解决方案。这是我的代码:
int count = 0;
bool MainWindow::eventFilter(QObject *o, QEvent *e){
if(e->type() == QEvent::KeyPress)
{
tipka->play();
tipka->seek(0);
count++;
if(count == 30){
tipka->pause();
count = 0;
}
}
return false;
}
答案 0 :(得分:1)
您可以使用QSound。它不提供任何搜索功能,但它使您能够循环,播放和停止。它不是功能丰富,但它完成了工作。
QSound sound("File name.wav");
sound.play();
sound.stop();
此外,您可以使用其静态功能播放声音。
QSound::play("File name.wav");
答案 1 :(得分:0)
试试这个,谢谢我以后:) 在您的MainWindow构造函数中 -
installEventFilter(this);
标题中的-
protected:
bool eventFilter(QObject *, QEvent*);
在cpp中 -
bool MainWindow::eventFilter(QObject *o, QEvent *e){
Q_UNUSED(o);
if(e->type() == QEvent::KeyRelease)
{ player->stop();
player->setMedia(QUrl("qrc:/sounds/button_push.mp3"));
player->play();
}
return false;
}