Mat*_*ski 4 c++ qt qtmultimedia
我正在尝试使用QAudioDecoder类解码.wav文件。尽管我通过添加将QtMultimedia模块包含到我的.pro文件中,
但我收到了一个错误,即未找到QAudioDecoder 的服务。我看不出问题出在哪里。QT += multimedia
我在 Windows 7 上使用 Qt 5.1.0 和 MingGW 4.8 32 位。
错误信息:
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.audiodecode"
.pro文件:
QT += core
QT += multimedia
QT -= gui
TARGET = test
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
Run Code Online (Sandbox Code Playgroud)
主文件:
#include <QCoreApplication>
#include <QAudioDecoder>
#include <QAudioBuffer>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QString pathToFile = "C:/Users/Mateusz/Documents/Szkola/Sound Processing/Lab1/artificial/easy/506Hz.wav";
QAudioDecoder decoder;
decoder.setSourceFilename(pathToFile);
decoder.start();
while(decoder.bufferAvailable()) {
QAudioBuffer buffer = decoder.read();
qDebug() << "Buffer size: " << buffer.byteCount();
}
return a.exec();
}
Run Code Online (Sandbox Code Playgroud)
多媒体模块使用在每个平台(或编译器)上不同的插件。
见http://qt-project.org/wiki/Qt_Multimedia_Backends
在 Windows 上,您有 DirectShow 和 MediaFoundation (WMF)。只有 WMF 插件实现了音频解码功能。WMF 插件仅适用于 MSVC 编译器。
见http://qt-project.org/doc/qt-5.1/qtmultimedia/platform-notes-windows.html