我如何用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)
尝试使用声子.它比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)
好吧,我有一些进展,我可以播放 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``.
| 归档时间: |
|
| 查看次数: |
33343 次 |
| 最近记录: |