如何用Qt播放声音?我试过这个:
QSound::play("sounds/croack.wav");
QSound在我的ubuntu上不起作用(似乎它需要NAS,虽然在我安装之后它仍然无效)。是否有一个简单的单行Qt解决方案,还是我需要投入SDL或其他东西?
答案 0 :(得分:5)
尝试使用声子。它比QSound强大得多。这是播放视频文件的最小示例。如果省略VideoWidget,它应该只播放音频。
#include <QApplication>
#include <QUrl>
#include <phonon/audiooutput.h>
#include <phonon/mediaobject.h>
#include <phonon/mediasource.h>
#include <phonon/videowidget.h>
using namespace Phonon;
int main( int argc, char** argv ) {
QApplication app( argc, argv );
app.setApplicationName( QLatin1String("testphonon") );
const QUrl url = QUrl( QLatin1String("file:///somepath/somefile") );
MediaSource src( url );
MediaObject obj;
obj.setCurrentSource( src );
VideoWidget video;
video.show();
AudioOutput audio( VideoCategory );
Phonon::createPath( &obj, &video );
Phonon::createPath( &obj, &audio );
obj.play();
return app.exec();
}
答案 1 :(得分:4)
您有几个选择:
答案 2 :(得分:4)
在QT5中,Phonon已从官方版本中删除。 QSound在很大程度上起作用,但请注意QSound不支持以所有采样率播放波形文件(因为我发现了困难的方法)。 QT5 QSound does not play all wave files
如果你使用QSound,你可以像你一样玩波浪;但请确保您正在播放磁盘中的文件;不是QT资源。由于尚未支持资源。您可以动态地将波形文件从资源复制到硬盘驱动器然后播放;这就是我在申请中所做的事情。
答案 3 :(得分:4)
您可以将QMediaPlayer用于文件格式.mp3和.wav
#include <QtMultimedia/QMediaPlayer>
QMediaPlayer *player = new QMediaPlayer;
player->setMedia(QUrl::fromLocalFile("/path"));
player->setVolume(50);
player->play();
答案 4 :(得分:3)
好的我有一些进步,我可以播放ogg文件但不是wav(不知道为什么)。
#include <QtGui>
#include <phonon/phonon>
int main(int argc, char* argv[]) {
QApplication app( argc, argv );
app.setApplicationName("bla");
Phonon::MediaObject *mediaObject = Phonon::createPlayer(Phonon::NoCategory, Phonon::MediaSource("sounds/4.wav"));
mediaObject->play();
return app.exec();
}
使用g++ ``pkg-config QtGui phonon --cflags --libs``
编译。
答案 5 :(得分:0)
我也遇到了麻烦,我已经解决了安装此软件包的问题
qtmultimedia5-dev
并包含在“ .pro”文件中
QT += multimedia