C++ Phonon::MediaSource,不能将资源用作媒体源
在QT 4.6中,我试图访问QResource文件中的wav文件以用作媒体播放器的媒体源,但该文件不起作用:C++ Phonon::MediaSource,不能将资源用作媒体源,c++,qt,phonon,C++,Qt,Phonon,在QT 4.6中,我试图访问QResource文件中的wav文件以用作媒体播放器的媒体源,但该文件不起作用: Phonon::MediaObject *music; music=Phonon::createPlayer(Phonon::MusicCategory,Phonon::MediaSource(:/FPS_sounds/arming.wav)); music->play(); 如果我使用直接路径,它就会工作。我已经成功地在我的程序的其他部分使用了资源,因此那里似乎没有问题
Phonon::MediaObject *music;
music=Phonon::createPlayer(Phonon::MusicCategory,Phonon::MediaSource(:/FPS_sounds/arming.wav));
music->play();
如果我使用直接路径,它就会工作。我已经成功地在我的程序的其他部分使用了资源,因此那里似乎没有问题,Qt文档说我可以使用QResource进行这种类型的操作。这是一个bug还是我遗漏了什么?这一个也给了我一个很好的划痕。 但请注意,它可以使用临时文件轻松实现:
{
QTemporaryFile f;
f.open();
QResource res(":/badger");
f.write((char*)res.data(),res.size());
f.flush();
f.setAutoRemove(true);
f.close();
QString fn = f.fileName();
QSound::play(fn);
}
这个也给了我一个很好的刮痕。 但请注意,它可以使用临时文件轻松实现:
{
QTemporaryFile f;
f.open();
QResource res(":/badger");
f.write((char*)res.data(),res.size());
f.flush();
f.setAutoRemove(true);
f.close();
QString fn = f.fileName();
QSound::play(fn);
}