QT дает ошибки при воспроизведении звукаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 QT дает ошибки при воспроизведении звука

Сообщение Anonymous »

Я пытаюсь играть в аудио через QT6. Но я получил странную ошибку, с которой я не знаю, с какими средствами или как справиться. Я сделал минимальный пример: < /p>
// main.cpp
#include "mainwindow.h"

#include

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
< /code>
// mainwindow.cpp
// mostly taken from https://doc.qt.io/qt-6/audiooverview.html
#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
player = new QMediaPlayer(this);
output = new QAudioOutput(this);
player->setAudioOutput(output);
output->setVolume(50);
player->setSource(QUrl::fromLocalFile("C:\\Users\\kmdw\\Downloads\\sample-6s.mp3"));
player->play();
}

MainWindow::~MainWindow() {}
< /code>
// mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include
#include
#include

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
QMediaPlayer* player;
QAudioOutput* output;
};
#endif // MAINWINDOW_H
< /code>
Он должен просто воспроизводить аудио, как только начинается приложение. Вместо этого приложение запускается, проходит несколько секунд, затем начинает извергать ошибки, не играя ни одного звука. Журналы выглядят так: < /p>
These ones look normal, appear as soon as the app starts:
qt.multimedia.ffmpeg: Using Qt multimedia with FFmpeg version 7.1 LGPL version 2.1 or later
qt.multimedia.ffmpeg: Available HW decoding frameworks:
qt.multimedia.ffmpeg: d3d11va
qt.multimedia.ffmpeg: dxva2
qt.multimedia.ffmpeg: Available HW encoding frameworks:
qt.multimedia.ffmpeg: d3d11va
qt.multimedia.ffmpeg: dxva2
< /code>
These happen a few seconds in and are errors:
[mp3float @ 00000225fb329040] Could not update timestamps for skipped samples.
[SWR @ 00000225fb38f500] Output channel layout "" is invalid or unsupported.
[SWR @ 00000225fb38f500] Context has not been initialized
[SWR @ 00000225fb38f500] Context has not been initialized
[SWR @ 00000225fb38f500] Context has not been initialized
[SWR @ 00000225fb38f500] Context has not been initialized
...
< /code>
The SWR thing repeats until I close the application.
  • OS: Windows 11
  • Qt version: Desktop Qt 6.8.2 MinGW 64-bit
  • Using Qt Creator
  • It's using a bundled FFmpeg version probably because when I moved my own FFmpeg install to the Recycle Bin it still started.
FFplay and Windows media player both play sample-6s.mp3 fine so it's not a problem with the audio file.

Подробнее здесь: https://stackoverflow.com/questions/795 ... ying-audio
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»