Question

je dois jouer un son quand un bouton est cliqué, j'ai ceci:

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

et

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

mais aucun son est joué? Où suis-je tort? Merci. EDIT:. Il fonctionne maintenant, il était le mauvais chemin

Était-ce utile?

La solution

Probablement le chemin du fichier « Cliquez / sound.wav » ne pointe pas où vous pensez qu'il fait.

Essayez ceci avant d'appeler la setCurrentSource () - fonction:

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

Si le répertoire Click est censé être dans le même répertoire que votre exe, créez le chemin comme ceci:

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

Je suggère d'utiliser Qt système de ressources . Ensuite, vous pointer vers le fichier audio comme ceci:

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

Autres conseils

Vous devez au moins connecter le signal stateChanged(Phonon::State, Phonon::State) de votre objet MediaObject à un emplacement personnalisé pour détecter les erreurs. Si l'état change à Phonon::ErrorState la raison de l'erreur pourrait être accessible par QMediaObject::errorString()

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top