IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Comment utiliser VlcMediaPlayer dans un QGraphicsView ?


Sujet :

Qt

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Comment utiliser VlcMediaPlayer dans un QGraphicsView ?
    Bonjour,

    Pour un projet, j'ai besoin d'utiliser la librairie Vlc avec Qt, en particulier, d'utiliser VlcMediaPlayer dans une QGraphicsView.
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    VlcWidgetVideo *widgetVideo = new VlcWidgetVideo(this);
     _instance = new VlcInstance(VlcCommon::args(), this);
     _player = new VlcMediaPlayer(_instance);     
     _player->setVideoWidget(widgetVideo); 
     
    item = new QGraphicsTextItem;
            item.setPos(200, 300);
            item.setPlainText("Nom video: hh:mm:ss");
     
     m_scene = new QGraphicsScene
            m_scene->addWidget(videoWidget);
            m_scene->addItem(item);
     setScene(m_scene);
    La video s'affiche bien mais les autres éléments (item) de la QGraphicsView ne s'affichent plus. J'ai un warning en sortie d'application :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     QGraphicsProxyWidget::setWidget: cannot embed widget 0x1a5005f0 which is not a toplevel widget, and is not a child of an embedded widget
    Merci de votre attention.

  2. #2
    Membre chevronné Avatar de Jbx 2.0b
    Homme Profil pro
    Développeur C++/3D
    Inscrit en
    Septembre 2002
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur C++/3D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2002
    Messages : 476
    Points : 1 785
    Points
    1 785
    Par défaut
    Le message est assez explicite : il te dit que ton widget n'est pas un "top level widget", autrement dit, qu'il possède un parent, or les QGraphicsProxyWidget ne peuvent pas embarquer un widget si celui-ci possède déjà un parent.

    Ici dans ton code, en fournissant this, tu spécifie à ton widget VlcWidgetVideo un parent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VlcWidgetVideo *widgetVideo = new VlcWidgetVideo(this);
    Essaye simplement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VlcWidgetVideo *widgetVideo = new VlcWidgetVideo();
    Selon la doc, VlcWidgetVideo hérite de QFrame, donc ça devrait fonctionner.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2012
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Merci pour ta réponse !

    Oui d'accord, j'aurai dû le préciser, mais c'est ce que j'avais fait au premier abord. Les widgets/items s'affichent bien, le problème c'est que la vidéo ne s'affiche plus... j'ai un écran noir.

  4. #4
    Membre chevronné Avatar de Jbx 2.0b
    Homme Profil pro
    Développeur C++/3D
    Inscrit en
    Septembre 2002
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur C++/3D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2002
    Messages : 476
    Points : 1 785
    Points
    1 785
    Par défaut
    Je n'ai jamais joué avec les classes Vlc mais ça m'est arrivé d'avoir des problèmes de rendu de widget embarqués dans une QGraphicsView.
    Essaye peut-être d'activer le rendu OpenGL dans la vue :

    (ici en Qt >= 5.4, sinon c'est un QGLWidget)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    QGraphicsView* pGraphicsView = new QGraphicsView();
    pGraphicsView->setViewport(new QOpenGLWidget);
    Peut-être que le widget VlcWidgetVideo utilise en interne OpenGL et que ça pourrait aider à l'afficher.
    J'avoue que j'ai pas trop d'idées sinon.

Discussions similaires

  1. [VB.Net] Comment utiliser CSS dans un UserControl ?
    Par GEFIRO1 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 27/04/2006, 09h27
  2. Réponses: 5
    Dernier message: 12/03/2006, 14h38
  3. Comment utiliser OpenGL dans un TPanel ?
    Par PCMan dans le forum Composants VCL
    Réponses: 3
    Dernier message: 07/12/2005, 17h48
  4. Comment utiliser Opengl dans Visual Basic 6
    Par fun31 dans le forum OpenGL
    Réponses: 1
    Dernier message: 03/12/2004, 10h17
  5. [CR][VB6] comment utiliser CR dans VB ?
    Par kouassi_denis dans le forum SDK
    Réponses: 2
    Dernier message: 26/01/2004, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo