Riprodurre un video con grafica overlay personalizzati
-
11-10-2019 - |
Domanda
Voglio giocare un video (con audio) in una semplice interfaccia grafica con tasti "stop" "play", ecc Ci sono classi e widget nel modulo Phonon di Qt per farlo, e alcuni esempi. OK, in modo che sembra essere semplice.
Ma ora ho bisogno di disegnare alcuni elementi grafici personalizzati (che dipendono l'ora corrente nel video) sulla parte superiore dell'immagine video in streaming. Non ho trovato nulla di questo nella documentazione Qt. Qual è il modo canonico di fare questo? Posso solo creare un custom VideoWidget widget e sovrascrivo sua paintEvent? In un'altra domanda qui, qualche ragazzo sembrava avere problemi con questo.
Tutti gli indicatori sarebbe apprezzato.
Soluzione
Usa QGraphicsView e QGraphicsWidgets. Si può mettere il Phonon :: VideoWidget all'interno di un QGraphicsProxyWidget e diventa utilizzabile come QGraphicsWidget.
Per sovrapposizioni personalizzati, eredita QGraphicsWidget e ignorare la funzione di vernice per disegnare i tuoi widget personalizzati. È possibile aggiungere alla vostra scena e saranno visualizzati sulla parte superiore del widget di video.
Altri suggerimenti
La soluzione non può funzionare perché non è possibile aggiungere un QGLWidget
a QGraphicsProxyWidget
. Si prega di guardare
http://doc.qt.digia.com/qt/qgraphicsproxywidget.html
Si noti che i widget con il
Qt::WA_PaintOnScreen
attributo set di widget e widget che avvolgere un'applicazione esterna o controllore non può essere incorporato. Esempi sonoQGLWidget
eQAxWidget
.
Si prega di correggermi se sbaglio.