Seite 1 von 1
[gelöst]Qt5.5 QVideoWidget zeigt nichts an
Verfasst: 7. Oktober 2015 22:07
von ThunderStorm
Mein Programm hat ein Fenster, das als Mainlayout ein Vertical Layout hat. Zu diesem Layout möchte ich ein VideoWidget hinzufügen und auf diesem ein Video abspielen. Allerdings ist das Fenster komplett leer wenn ich das Programm starte und zeigt folglich nichts an.
In der .pro Datei habe ich die Plugins
eingebunden.
Die Qt Version ist Qt5.5 MSVC2013 32Bit
Code: Alles auswählen
#include <QMediaPlayer>
#include <QMediaPlaylist>
#include <QVideoWidget>
//Von http://doc.qt.io/qt-5/videooverview.html
QMediaPlayer* player = new QMediaPlayer();
QMediaPlaylist* playlist = new QMediaPlaylist(player);
playlist->addMedia(QUrl("test.mp4"));
QVideoWidget* videoWidget = new QVideoWidget();
player->setVideoOutput(videoWidget);
ui_->verticalLayout->addWidget(videoWidget, 1);
videoWidget->show();
player->play();
Ich hoffe, jemand hat eine Idee.
Re: Qt5.5 QVideoWidget zeigt nichts an
Verfasst: 8. Oktober 2015 01:15
von softwaremaker
Bei
http://doc.qt.io/qt-5/qmediaplayer.html gibts doch Beispiele.
Habe mit QMediaPlayer noch nichts gemacht, aber:
- nach playlist->addMedia(...); ist bei dir kein playlist->setCurrentIndex(1);
- player->setPlaylist(playlist); fehlt (new QMediaPlaylist(player) sorgt nur dafür, dass wenn player gelöscht wird auch playlist gelöscht wird)
- deine Pfadangabe zur mp4 ist problematisch: QUrl("test.mp4"), wo liegt die mp4? auf Laufwerk 1, 2, 3 und dort im Pfad x, y oder z?
Re: Qt5.5 QVideoWidget zeigt nichts an
Verfasst: 8. Oktober 2015 06:54
von ThunderStorm
Danke für deine Antwort.
Ich habe meinen absoluten Pfad zur Video Datei nur hier im Forum gekürzt, um euch den langen Pfad zu ersparen. Der von mir verwendete Pfad ist korrekt.
Auch wenn ich das Beispiel von der Qt Website direkt kopiere, tut sich bei mir trotzdem nichts.
Re: Qt5.5 QVideoWidget zeigt nichts an
Verfasst: 8. Oktober 2015 12:30
von softwaremaker
QMediaPlayer hat Eigenschaften: error und mediaStatus, die solltest du mal auswerten.
Re: Qt5.5 QVideoWidget zeigt nichts an
Verfasst: 8. Oktober 2015 13:08
von ThunderStorm
Nachdem ich eine Zeile Code zum Debuggen hinzugefügt habe, wird mir folgendes ausgegeben, was danach aussieht, dass das Video ohne Fehler abgespielt wurde.
Code: Alles auswählen
State: QMediaPlayer::StoppedState Error: QMediaPlayer::NoError
Allerdings kann man immer noch nichts sehen.
Re: Qt5.5 QVideoWidget zeigt nichts an
Verfasst: 8. Oktober 2015 14:00
von softwaremaker
alle nötigen libs aus \plugins\ vorhanden? z.B. dsengine.dll
Re: Qt5.5 QVideoWidget zeigt nichts an
Verfasst: 8. Oktober 2015 16:26
von ThunderStorm
Die Plugins (u.a. dsengine.dll) befinden sich im Qt Ordner (Qt5.5.0\5.5\msvc2013\plugins\mediaservice\...) und da ich das Programm ja im Qt Debugger ausführe, müssten die Pfade so gesetzt sein, dass alles erkannt wird, weil ja Libraries wie Qt5Core.dll auch geladen werden können. Also können plugins als Fehlerquelle vermutlich ausgeschlossen werden.
Re: [ungelöst]Qt5.5 QVideoWidget zeigt nichts an
Verfasst: 14. Oktober 2015 21:58
von ThunderStorm
Nachdem der Code jetzt QMediaPlayer::setMedia() aufruft, funktioniert alles.
Code: Alles auswählen
QMediaPlayer* player = new QMediaPlayer();
player->setMedia(QUrl("test.mp4"));
QVideoWidget* videoWidget = new QVideoWidget();
player->setVideoOutput(videoWidget);
videoWidget->show();
player->play();
Scheinbar war es ein Problem mit der QMediaPlaylist.