質問

ボタンがクリックされたらサウンドを再生する必要があります。これがあります。

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

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

役に立ちましたか?

解決

おそらく、「click/sound.wav」というファイルパスは、それがポイントすると思われる場所を指していません。

setCurrentSource()を呼び出す前にこれを試してください - 関数:

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

クリックディレクトリがexeと同じディレクトリにあると想定されている場合、次のようなパスを作成します。

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

そして、私は使用することをお勧めします QTリソースシステム. 。次に、次のようなサウンドファイルを指します。

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

他のヒント

少なくとも信号を接続する必要があります stateChanged(Phonon::State, Phonon::State) あなたから MediaObject エラーを検出するためのカスタムスロットにオブジェクト:状態が変更した場合 Phonon::ErrorState エラーの理由は、介してアクセスできる場合があります QMediaObject::errorString().

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top