1

ボタンがクリックされたときにサウンドを再生する必要があります。これは次のとおりです。

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

しかし、音は再生されませんか?どこが間違っていますか?ありがとう。編集:今では動作しますが、間違ったパスでした。

4

2 に答える 2

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リソースシステムを使用することをお勧めします。次に、次のようなサウンドファイルをポイントします。

clickObject->setCurrentSource(Phonon::MediaSource(":/Click/sound.wav"));
于 2012-02-18T13:16:26.380 に答える
0

エラーを検出するには、少なくともオブジェクトからのシグナルをカスタム スロットに接続する必要があります。状態がエラーの理由に変化した場合stateChanged(Phonon::State, Phonon::State)は、.MediaObjectPhonon::ErrorStateQMediaObject::errorString()

于 2012-02-18T13:10:58.160 に答える