Phonon Qt-点击按钮播放声音



我需要在点击按钮时播放声音,我有这个:

Phonon::MediaObject *clickObject = new Phonon::MediaObject(this);
clickObject->setCurrentSource(Phonon::MediaSource("Click/sound.wav");
Phonon::AudioOutput *clickOutput = new Phonon::AudioOutput(Phonon::MusicCategory, this);
Phonon::createPath(clickObject, clickOutput);

void MainWindow::on_pushButton_clicked()
{
   clickObject->play();
}

但是没有播放任何声音?我哪里错了?谢谢编辑:它现在起作用了,它走错了路。

可能是文件路径"点击/sound.wav";并没有指向你认为它指向的地方。

在调用setCurrentSource()函数之前请尝试此操作:

bool exists = QFile::exists("Click/sound.wav");

如果Click目录应该与exe在同一目录中,请创建如下路径:

QString filePath = QCoreApplication::applicationDirPath() + "/Click/sound.wav";
clickObject->setCurrentSource(Phonon::MediaSource(filePath));

我建议使用Qt资源系统。然后你会指向这样的声音文件:

clickObject->setCurrentSource(Phonon::MediaSource(":/Click/sound.wav"));

您至少应该将来自MediaObject对象的信号stateChanged(Phonon::State, Phonon::State)连接到自定义插槽以检测错误:如果状态更改为Phonon::ErrorState,则可以通过QMediaObject::errorString()访问错误原因。

相关内容

  • 没有找到相关文章

最新更新