При использовании QMedaiPlayer в QT для воспроизведения файлов MP4 сборка проходит нормально, и программа аварийно завершает работу во время выполнения, что беспокоило меня в течение многих дней. Я надеюсь, что каждый может помочь!
- Нет проблем со сборкой, и он аварийно завершает работу во время выполнения. не зависит от размера файла MP4.
- Использование файлов MKV не будет работать, и это не проблема формата файла.
- Версия - QT 5.12.8
Это главное окно. cpp файл
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow){
this->setFixedSize(1024,576);
ui->setupUi(this);
QHBoxLayout *m_layout= new QHBoxLayout(this);
QMediaPlayer *m_player = new QMediaPlayer(this);
m_player->setMedia(QUrl::fromLocalFile(QString::fromLocal8Bit("D:/try.mkv")));
m_videoW = new QVideoWidget(this);
m_layout->addWidget(m_videoW);
this->setLayout(m_layout);
m_player->setVideoOutput(m_videoW);
m_videoW->show();
m_player->play();
qDebug()<<"hello";
}
void MainWindow::paintEvent(QPaintEvent *){
QPainter painter(this);
painter.drawPixmap(0,0,width(),height(), m_videoW->currentPixmap());
}
Это файл mainwindow.h
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
void paintEvent(QPaintEvent*);
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
QVideoWidget *m_videoW;
};
В файл pro также добавлена соответствующая библиотека:
QT += core gui
QT += multimedia
QT += multimediawidgets
Я так и не нашел, в чем проблема, помогите, пожалуйста, найти! Спасибо!
Протестируйте с помощью qDebug, hello может выводиться нормально.
* Код был отображен по принципу наименьшего повторения.