s
solmikMarch 24, 2020, 5:34 p.m.

Вывод медиаплеера на центальный виджет

Привет! Подскажите как (что нужно сделать) в QT Creator вывести медиаплеер на центральный виджет, интерфейс строится графическим способом.

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

15
Evgenii Legotckoi
  • March 24, 2020, 5:43 p.m.

Добрый день

Вот релевантный топик Как в Qt воспроизвести видео? на форуме

    s
    • March 25, 2020, 6:03 p.m.

    Почти получилось, звук есть,если файл .avi, экран черный, пробовал яркость устанавливать не помогает, видимо в кодеках дело?
    m_videoWidget->setBrightness(100);

      Evgenii Legotckoi
      • March 27, 2020, 6:28 a.m.

      Попробуйте ещё mp4 формат, также в pro файле обязательно нужно подключить multimedia, впрочем, это у вас должно быть подключено, иначе бы у вас не были доступны видеовиджеты.

        s
        • March 29, 2020, 12:20 p.m.

        Пробовал, и разную кодировку, даже звука нет

          s
          • March 29, 2020, 12:26 p.m.
          //mainwindow.cpp
          #include "mainwindow.h"
          #include "ui_mainwindow.h"
          
          #include <QMediaPlayer>
          #include <QMediaPlaylist>
          #include <QVideoWidget>
          
          MainWindow::MainWindow(QWidget *parent) :
              QMainWindow(parent),
              ui(new Ui::MainWindow)
          {
              ui->setupUi(this);
          
              m_videoWidget = new QVideoWidget(this);
              ui->gridLayout->addWidget(m_videoWidget);
              m_player = new QMediaPlayer(m_videoWidget);
              m_player->setVideoOutput(m_videoWidget);
          
          
          
          }
          
          MainWindow::~MainWindow()
          {
              delete ui;
          }
          
          
          void MainWindow::on_pushButton_2_clicked()
          {
          
          
          
              m_player->setMedia(QUrl::fromLocalFile("/home/mi/Q/v2/s1.mp4"));
              m_videoWidget->setBrightness(100);
              m_videoWidget->aspectRatioMode();
              m_player->QMediaPlayer::setVolume(100);
              m_videoWidget->show();
          
              m_player->play();
              ui->pushButton_2->setText("AAA");
          
          }
          
          
            s
            • March 29, 2020, 12:29 p.m.
            //mainwindow.h
            #ifndef MAINWINDOW_H
            #define MAINWINDOW_H
            
            #include <QMainWindow>
            
            class QVideoWidget;//
            class QMediaPlayer;//
            
            namespace Ui {
            class MainWindow;
            }
            
            class MainWindow : public QMainWindow
            {
                Q_OBJECT
            
            public:
                explicit MainWindow(QWidget *parent = nullptr);
                ~MainWindow();
                QString ss;
            
            
            private:
                Ui::MainWindow *ui;
            
                QVideoWidget *m_videoWidget;
                QMediaPlayer *m_player;
            
                private slots:
            
                void on_pushButton_2_clicked();
            };
            
            #endif // MAINWINDOW_H
            
            
              s
              • March 29, 2020, 12:36 p.m.
              //v3.pro
              //#-------------------------------------------------
              #
              # Project created by QtCreator 2020-03-25T20:35:53
              #
              #-------------------------------------------------
              
              QT       += core gui multimedia multimediawidgets
              
              greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
              
              TARGET = v3
              TEMPLATE = app
              
              # The following define makes your compiler emit warnings if you use
              # any feature of Qt which has been marked as deprecated (the exact warnings
              # depend on your compiler). Please consult the documentation of the
              # deprecated API in order to know how to port your code away from it.
              DEFINES += QT_DEPRECATED_WARNINGS
              
              # You can also make your code fail to compile if you use deprecated APIs.
              # In order to do so, uncomment the following line.
              # You can also select to disable deprecated APIs only up to a certain version of Qt.
              #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
              
              CONFIG += c++11
              
              SOURCES += \
                      main.cpp \
                      mainwindow.cpp
              
              HEADERS += \
                      mainwindow.h
              
              FORMS += \
                      mainwindow.ui
              
              # Default rules for deployment.
              qnx: target.path = /tmp/$${TARGET}/bin
              else: unix:!android: target.path = /opt/$${TARGET}/bin
              !isEmpty(target.path): INSTALLS += target
              
              
                Evgenii Legotckoi
                • March 30, 2020, 3:35 a.m.

                По идее всё верно. Какая операционная система в у вас? и нет ли каких-нибудь warning сообщений от приложения? Обычно, если проблемы с кодировкой и чего-то не хватает, то multimedia модуль сыпет ошибками.

                  s
                  • March 30, 2020, 4:11 a.m.

                  Система OpenSUSE Leap 15.1 сообщений никаких нет, Qt 5.9.7 поставил все кодеки что нашел к Qt, в Blender кодирую видео с разными кодеками, ничего не помогает, скаченные видео из разных источников тоже плеер не показывает ((( думаю проблема в программе

                    Evgenii Legotckoi
                    • March 30, 2020, 4:16 a.m.

                    Попробуйте запустить через плейлист, а не через setMedia. Пример есть в этой статье

                      s
                      • March 31, 2020, 8:04 a.m.

                      Не получилось, даже звук пропал

                        s
                        • March 31, 2020, 8:25 a.m.

                        может не в тот виджет выводить нужно? (gridLayout)

                          Evgenii Legotckoi
                          • April 2, 2020, 2:48 a.m.

                          да нет, правильно код там написан. Может быть дело в том, что чего-то не хватает из dev библиотек, gstreamer тот же самый.

                            s
                            • April 3, 2020, 7:52 a.m.

                            да вроде много чего установленно, если неправильный путь указать то же самое, пробовал запустить видео через плей лист (по примерам из док)и из него назад путь взять, не получилось

                              s
                              • April 17, 2020, 4:04 a.m.
                              • The answer was marked as a solution.

                              Заработало, проблема была в библиотеках

                                Comments

                                Only authorized users can post comments.
                                Please, Log in or Sign up
                                e
                                • ehot
                                • April 1, 2024, 12:29 a.m.

                                C++ - Тест 003. Условия и циклы

                                • Result:78points,
                                • Rating points2
                                B

                                C++ - Test 002. Constants

                                • Result:16points,
                                • Rating points-10
                                B

                                C++ - Test 001. The first program and data types

                                • Result:46points,
                                • Rating points-6
                                Last comments
                                k
                                kmssrFeb. 9, 2024, 5:43 a.m.
                                Qt Linux - Lesson 001. Autorun Qt application under Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                                Qt WinAPI - Lesson 007. Working with ICMP Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                                EVA
                                EVADec. 25, 2023, 9:30 p.m.
                                Boost - static linking in CMake project under Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
                                J
                                JonnyJoDec. 25, 2023, 7:38 p.m.
                                Boost - static linking in CMake project under Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
                                G
                                GvozdikDec. 19, 2023, 8:01 a.m.
                                Qt/C++ - Lesson 056. Connecting the Boost library in Qt for MinGW and MSVC compilers Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
                                Now discuss on the forum
                                a
                                a_vlasovApril 14, 2024, 4:41 p.m.
                                Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Евгений, добрый день! Такой вопрос. Верно ли следующее утверждение: Любое Android-приложение, написанное на Java/Kotlin чисто теоретически (пусть и с большими трудностями) можно написать и на C+…
                                Павел Дорофеев
                                Павел ДорофеевApril 14, 2024, 12:35 p.m.
                                QTableWidget с 2 заголовками Вот тут есть кастомный QTableView с многорядностью проект поддерживается, обращайтесь
                                f
                                fastrexApril 4, 2024, 2:47 p.m.
                                Вернуть старое поведение QComboBox, не менять индекс при resetModel Добрый день! У нас много проектов в которых используется QComboBox, в версии 5.5.1, когда модель испускает сигнал resetModel, currentIndex не менялся. В версии 5.15 при resetModel происходит try…
                                AC
                                Alexandru CodreanuJan. 19, 2024, 10:57 p.m.
                                QML Обнулить значения SpinBox Доброго времени суток, не могу разобраться с обнулением значение SpinBox находящего в делегате. import QtQuickimport QtQuick.ControlsWindow { width: 640 height: 480 visible: tr…

                                Follow us in social networks