如何使用Qt播放聲音?我嘗試這樣做:如何使用Qt播放聲音
QSound::play("sounds/croack.wav");
QSound的不上我的Ubuntu的工作(似乎它需要NAS,雖然之後我安裝了它,它仍然無法正常工作)。是否有簡單的單行Qt解決方案,還是需要拋出SDL或其他內容?
如何使用Qt播放聲音?我嘗試這樣做:如何使用Qt播放聲音
QSound::play("sounds/croack.wav");
QSound的不上我的Ubuntu的工作(似乎它需要NAS,雖然之後我安裝了它,它仍然無法正常工作)。是否有簡單的單行Qt解決方案,還是需要拋出SDL或其他內容?
好吧我有一些進展,我可以玩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``
。
我真的很感激有這樣一個最小的例子,它終於讓我得到它的工作。謝謝! – daveagp 2015-01-19 23:17:28
試着用聲子。它比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();
}
我試過了,但這在我的Ubuntu上不起作用,沒有聲音播放。 – 2010-12-17 22:43:29
@Helltone:Phonon只是gstreamer等原生後端的包裝。如果聲子不起作用,那麼它可能是後端的問題(如果一種格式可行,但另一種通常不行),或者聲子配置不正確。檢查一些使用gstreamer的視頻播放器是否有相同的問題。 – 2010-12-18 15:20:53
是聲子的標準嗎?我應該包括哪些標題? – 2010-12-19 12:32:55
您有幾種選擇:
你能舉一個剛剛播放聲音的例子嗎? – 2010-12-17 22:44:22
在QT5中,Phonon已從官方版本中刪除。 QSound在很大程度上起作用,但請注意,QSound不支持播放所有采樣率的波形文件(因爲我發現困難)。 QT5 QSound does not play all wave files。
如果你使用QSound,你可以像你一樣玩一個波;但確保您正在從磁盤播放文件;不是QT資源。由於資源尚未得到支持。您可以將資源中的wave文件即時複製到硬盤中,然後播放它;這正是我在應用程序中所做的。
可以使用QMediaPlayer兩個文件格式,MP3播放和.wav
#include <QtMultimedia/QMediaPlayer>
QMediaPlayer *player = new QMediaPlayer;
player->setMedia(QUrl::fromLocalFile("/path"));
player->setVolume(50);
player->play();
但請確保爲MP3安裝了平臺編解碼器。 – Trilarion 2017-07-28 22:29:19
我試圖在Ubuntu,Windows和Mac QSound的,他們都工作得很好。 – 2017-08-04 10:44:29