Я использую QMediaPlayer
для воспроизведения файла mp3, и я хочу установить QAudioProbe
контролировать выход. Тем не менее, мой призыв к setSource()
всегда возвращает false в следующих случаях:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow) {
ui->setupUi(this);
x = new QVector<double>(256);
y = new QVector<double>(256);
values = new int[256];
player = new QMediaPlayer();
player->setMedia(QUrl::fromLocalFile(
"C:/Users/Person1/Desktop/piano.mp3"));
player->setVolume(50);
audioProbe = new QAudioProbe();
if (audioProbe->setSource(player)) {
connect(audioProbe, SIGNAL(audioBufferProbed(QAudioBuffer)),
this, SLOT(updatePlot(QAudioBuffer)));
}
else {
qDebug("source not set");
}
}
Обратите внимание, что player
а также audioProbe
инициализируются как указатели на QMediaPlayer
а также QAudioProbe
соответственно в рамках определения MainWindow
учебный класс. Вывод всегда печатает:
источник не установлен
Но когда я звоню player->play()
, файл играет отлично. Есть что-то, чего мне не хватает? Я прочитал документацию довольно тщательно, и я не смог найти никаких проблем с методом, который я использовал. Я также пробовал это с разными mp3-файлами и несколькими wav-файлами; все они играют, но та же проблема возникает при попытке установить источник.
Задача ещё не решена.
Других решений пока нет …