2010-09-08 46 views
0

Je veux jouer des fichiers WAV, mais j'ai erreur C2664 dans Visual Studio:Qt Phonon erreur de conversion mediaobject

error C2664: 'Phonon::MediaObject::setCurrentSource' : conversion error from'const char [24]' to 'const Phonon::MediaSource &' 

Voici le code:

Phonon::MediaObject *media_object_; 

media_object_ = new Phonon::MediaObject(this); 
media_object_->setCurrentSource("/sounds/startsound.wav"); 
media_object_->play(); 

Erreur 11 Erreur C2664: ' Phonon :: MediaObject :: setCurrentSource ': no ​​se puede convertit le paramètre 1 de' const char [24] 'a' const Phonon :: MediaSource & 'c: \ Naali \ devgit \ naali \ UiModule \ Inworld \ View \ TTSChatWidget. cpp 105 UiModule

Merci!

Répondre

2

La fonction setCurrentSource() prend un objet MediaSource par référence constante. Il n'y a aucun constructeur pour MediaSource qui prend un const char * (une chaîne d'octets terminée par zéro). Vous devrez probablement créer un objet temporaire de QString avec votre chemin et le passer à un MediaSource (éventuellement temporaire) et l'utiliser pour créer votre. Le deuxième exemple de documentation MSDN sur C2664 explique cela.

media_object_->setCurrentSource(MediaSource(QString("/sounds/startsound.wav"))); 
+0

Je l'ai utilisé parce qu'il est ici: http://doc.trolltech.com/4.6/phonon-mediaobject.html – legami

+0

Où dois-je déclarer MediaSource? – legami

+1

Il suffit d'inclure les en-têtes appropriés pour 'MediaSource' et' QString'. Notez également ce que dit la documentation 'setCurrentSource': _Vous pouvez aussi bien utiliser un fichier QUrl ou QString (pour un fichier local) ici. – dirkgently