Qt5 - портирование видеоплеера с 4.8 на 5.1

0

Я работаю над переносом кода из Qt 4.8.4 в Qt 5.1.1 и, похоже, столкнулся с особой проблемой. Раньше я использовал виджет видео-библиотеки Phonon, чтобы пользователи могли взаимодействовать с видео. Поскольку Phonon больше не поддерживается, я искал способ заменить свой виджет Phonon через Qt Designer, но не нашел доступного виджета замены. Кто-нибудь знает, как мы должны портировать эту функциональность?

Если у кого-то есть понимание, оно ценится, как всегда!

Теги:
qt
qt5
qt-designer
phonon

3 ответа

2
Лучший ответ

Все остальные ответы предоставляют очень полезную информацию, но поскольку я искал конкретную и функциональную реализацию, я предполагаю, что люди, которые наткнулись на это, могут также искать ее, поэтому я отправлю свой код вместе с моим мыслительным процессом и немного информации о предыстории моей установки.

videoWidget = new QVideoWidget;
player = new QMediaPlayer;

verticalLayout->addWidget(videoWidget);

player->setVideoOutput(videoWidget);
player->setMedia(QUrl::fromLocalFile("Resources\\videos\\example.m4v"));
videoWidget->show();
player->play();

Поэтому, чтобы пройти через это, в основном в моем проекте, у меня есть виджет, который является частью структуры stackwidget, на которой у меня есть некоторые QWidgets, такие как кнопки управления воспроизведением, ярлыки и т.д., И у меня раньше был мой проигрыватель Phonon. Я действительно не хотел генерировать все это программно, поэтому мне удалось найти решение.

Вышеупомянутый код был расположен в конструкторе виджета контейнера. В дизайнере я сделал простой, пустой verticalLayout, позиционировал и оценивал его по своему вкусу. Это позволило мне встроить QVideoWidget, несмотря на отсутствие интерактивного QWidget в Дизайнере. videoWidget и player объявляются закрытыми в файле заголовка виджета контейнера.

  • 0
    Могу предложить "Ресурсы / видео / example.m4v"; передние косые черты переносные.
2

Вы уже отметили, что больше не Phonon

Теперь у вас есть QtMultimedia и QtMultimediaWidgets. Если вы хотите, чтобы они были доступны вашему проекту, и вы используете Qmake, измените строку QT в файле.pro из чего-то вроде:

QT += widgets

чтобы:

QT += widgets multimediawidgets

Тем не менее, это не повлияет на взаимодействие дизайнера. Я думаю, что это, вероятно, вопрос о том, что никто не проделал работу по созданию пользовательского расширения виджета для QVideoWidget.

Если это правильно, то если вы хотите разместить QVideoWidget в своей форме с помощью Qt-дизайнера, вам придется использовать "Widget Promotion". Просто поставьте обычный QWidget в свой макет, а затем щелкните его правой кнопкой мыши в форме и выберите " Содействовать"...

Что касается особенностей переноса возможностей Phonon на новые виджеты, я не знаю, что покрывало, а что нет. Здесь еще нет ответов:

Как перенести Qt4.6 на медиафайлы на основе Phonon на Qt 5.1?

  • 0
    Спасибо за ответ! Учитывая, насколько важными были фононы, я немного удивился, что они так отмахнулись от поддержки виджетов. Я пытался отказаться от образца, который у них есть, но он ничего не объясняет, поэтому у меня возникают проблемы с его отслеживанием и определением, какие части мне нужны, а какие нет.
1

Похоже, что хотя сам Qt больше не включает Phonon, в качестве внешней библиотеки доступен порт Qt5:

Кроме того, вы можете переключиться на новые API-интерфейсы QtMultimedia:

  • 0
    Спасибо за ответ! Я пытался переключиться на API QtMultimedia, но этот пример не самый надежный и понятный, который я мог себе представить. У меня проблемы с отслеживанием и переводом нужных частей в то, что мне нужно в моем собственном проекте.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню