在Qt4中我曾经使用过
QT += multimedia phonon
//...
#include <Phonon>
//...
Phonon::MediaObject *mediaObject = Phonon::createPlayer(Phonon::NoCategory, Phonon::MediaSource(QUrl("./assets/audio/window_appear.wav")));
// "\"" + Qdir().absolutePath() + "/audio/click.wav" + "\""
mediaObject->play();
一切都很好。但现在Qt 5 不支持声子。 https://bugreports.qt-project.org/browse/QTBUG-26471所以我想知道 - 如何在 Qt5 中播放声音等媒体文件?
使用WebKit? (这是完全有可能的,但从很多角度来看都有点糟糕)
在 Qt4 的后续版本中,Qt 开发人员已经开始减少在 Phonon 集成方面的工作,转而专注于 Qt Multimedia 和 Qt Mobility 模块。尽管他们仍然支持声子。
正如你所说,从 Qt5 开始,不再支持 Phonon。所以看看Qt多媒体 http://qt-project.org/doc/qt-5.0/qtmultimedia/multimediaoverview.html相反,特别是QA音频输出 http://qt-project.org/doc/qt-5.0/qtmultimedia/qaudiooutput.html.
如内所列他们的文档 http://qt-project.org/doc/qt-5.0/qtmultimedia/qaudiooutput.html在“详细描述”下,播放音频文件如下所示:
QFile inputFile; // class member.
QAudioOutput* audio; // class member.
inputFile.setFileName("/tmp/test.raw");
inputFile.open(QIODevice::ReadOnly);
QAudioFormat format;
// Set up the format, eg.
format.setFrequency(8000);
format.setChannels(1);
format.setSampleSize(8);
format.setCodec("audio/pcm");
format.setByteOrder(QAudioFormat::LittleEndian);
format.setSampleType(QAudioFormat::UnSignedInt);
QAudioDeviceInfo info(QAudioDeviceInfo::defaultOutputDevice());
if (!info.isFormatSupported(format)) {
qWarning()<<"raw audio format not supported by backend, cannot play audio.";
return;
}
audio = new QAudioOutput(format, this);
connect(audio,SIGNAL(stateChanged(QAudio::State)),SLOT(finishedPlaying(QAudio::State)));
audio->start(&inputFile);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)