Phonon Qt - 点击按钮播放声音

时间:2012-02-18 11:36:56

标签: qt qt-creator phonon

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

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();
}

但没有播放声音? 我哪里错了? 谢谢。 编辑:它现在有效,这是错误的道路。

2 个答案:

答案 0 :(得分:1)

可能文件路径“Click / sound.wav”并未指向您认为指向的位置。

在调用setCurrentSource() - function:

之前尝试这个
bool exists = QFile::exists("Click/sound.wav");

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

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

我建议使用Qt resource system。然后你会指向这样的声音文件:

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

答案 1 :(得分:0)

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