Я пытаюсь расшифровать .WAV использование файла QAudioDecoder учебный класс. Хотя я включил QtMultimedia модуль в мой .профессионал файл путем добавления
QT += multimedia
Я получаю сообщение об ошибке, что сервис для QAudioDecoder не был найден. Я не могу увидеть, где проблема ложь.
Я использую Qt 5.1.0 с MingGW 4.8 32 бит на Windows 7.
Сообщение об ошибке:
defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.audiodecode"
.профессионал файл:
QT += core
QT += multimedia
QT -= gui
TARGET = test
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
главный файл:
#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();
}
Модуль мультимедиа использует плагины, которые различны для каждой платформы (или компилятора).
Увидеть 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
У меня была такая же проблема в Qt5.5, работающем под Linux.
Проблема исчезла после обновления до Qt5.5.1 с использованием их MaintenanceTool.
Я также боролся с этой проблемой и, наконец, заставил ее работать, используя компилятор MS visual studio в QT Creator, как предложил Фернандо Пелличчиони.
Шаги были:
-Используйте Qt MaintenanceTool, чтобы добавить поддержку для msvc2013
-Установите Visual Studio 2013
-В Qt Creator перейдите в Проекты-> Управление наборами и добавьте msvc2013
-Сборка и запуск. Теперь QAudioDecoder работает.