如何用Qt播放声音

Gio*_*hal 12 audio qt

我如何用Qt播放声音?我试过这个:

QSound::play("sounds/croack.wav");
Run Code Online (Sandbox Code Playgroud)

QSound在我的ubuntu上不起作用(似乎它需要NAS,虽然在我安装之后它仍然无效).有一个简单的单行Qt解决方案还是我需要投入SDL或其他东西?

小智 6

您可以将 QMediaPlayer 用于 .mp3 和 .wav 两种文件格式

#include <QtMultimedia/QMediaPlayer>

QMediaPlayer *player = new QMediaPlayer;
player->setMedia(QUrl::fromLocalFile("/path"));
player->setVolume(50);
player->play();
Run Code Online (Sandbox Code Playgroud)


Fra*_*eld 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();
}
Run Code Online (Sandbox Code Playgroud)


Gio*_*hal 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();
}
Run Code Online (Sandbox Code Playgroud)

编译为g++ ``pkg-config QtGui phonon --cflags --libs``.