Partage
  • Partager sur Facebook
  • Partager sur Twitter

Afficher l'état d'avancement d'une lecture audio

Qt Windows C++

    15 octobre 2018 à 15:48:39

    Bonjour.

    Je fais un petit lecteur audio juste pour m'amuser. Sauf que je n'arrive pas à afficher l'état d'avancement de ma lecture. J'ai créé un QProgressBar pour çà. Mais je bloque au niveau de la connexion. J'ai vu une vidéo sur le Net où le gars utilise la commande "QMAKE_CXXFLAGS += -std=gnu++11".

    Mais les quelques explications que j'ai trouvé sur les QMAKE ne m'ont pas vraiment aidé, si ce n'est que je sais au moins que ça permet de forcer la compilation. 

    Alors aidez moi svp. Tout ce que je veux, c'est pouvoir afficher l'état d'avancement de ma lecture dans mon lecteur.

    Merci

    -
    Edité par Gaël213 15 octobre 2018 à 15:49:20

    • Partager sur Facebook
    • Partager sur Twitter
      15 octobre 2018 à 15:55:33

      A priori, aucun rapport entre les flags C++ et l'avancement de la lecture. C'est quoi ton erreur en fait ? Tu as ecrit quoi ?

      • Partager sur Facebook
      • Partager sur Twitter
        15 octobre 2018 à 16:44:21

        Salut,

        Comment est-ce que tu effectues ta lecture ?

        Si tu utilises Qt, alors il suffit de lire la doc

        While the stream is playing, you can set a notify interval in milliseconds with setNotifyInterval(). This interval specifies the time between two emissions of the notify() signal. This is relative to the position in the stream, i.e., if the QAudioOutput is in the SuspendedState or the IdleState, the notify() signal is not emitted. A typical use-case would be to update a slider that allows seeking in the stream.

        Sinon tu me fais poser une question, l'option -std=gnu++11 précise au compilateur qu'il faut utiliser le standard C++1x dans l'implémentation de gnu g++ n'est-ce pas ? donc un C++ suivant le standard C++11 mais avec des libertés que peuvent s'être permis les développeur gnu ? Maintenant que le standard est figé, est-ce encore pertinent ou l'option existe-t-elle encore uniquement pour des raisons de maintenance ?

        • Partager sur Facebook
        • Partager sur Twitter
        Dream on, Dream on, Dream until your dream comes true
          15 octobre 2018 à 17:01:28

          Ca doit etre une vieille video. Maintenant, il y a un CONFIG pour activer le C++11 et le C++14 avec qmake. Et je crois que le C++11 est activé par defaut.
          • Partager sur Facebook
          • Partager sur Twitter
            15 octobre 2018 à 20:52:42

            Mais stp comment je fais pour afficher l'avancement sur mon QProgressBar ? Je suis sous Windows, utilise Qt5.11.2. 

            L'avancement dont je parle ici est exactement comme la barre de lecture de mediaplayer ou celle de VLC

            J'ai écrit ceci  (dsl pour la mise en page. J'utilise mon téléphone)

            connect (player, &QMediaPlayer::positionChanged, [&](quint64 pos){ui->progressBar->setValue(pos); });

            connect (player, &QMediaPlayer::durationChanged, [&](quint64 dur){ui->progressBar->setValue(dur); });

            Et dans mon .pro, j'ai fais:

            QMAKE_CXXFLAGS += -std=gnu++11

            Ça n'a pas marché. J'ai fait:

            QMAKE_CXXFLAGS += -std=c++11

            Rien toujours.

            Et en passant, je n'ai rien trouvé d'intéressant sur ces QMAKE en ligne. 

            -
            Edité par Gaël213 15 octobre 2018 à 21:01:28

            • Partager sur Facebook
            • Partager sur Twitter
              15 octobre 2018 à 21:35:34

              Ah oui QMediaPlayer encore plus simple

              Ben il s'agit bien de ton premier connect

              Le second ne fait pas ce que tu souhaites, duration est la durée totale du media, il faudrait donc le lier à la propriété Maximum de la progressBar

              Poste ton code et explique ce qui te fais dire "ça ne marche pas", sans savoir quelle erreur se produit, c'est difficile d'orienter le diagnostic

              Effectivement tu vas avoir besoin du C++11 pour pouvoir utiliser les lambdas, comme l'a évoqué gbdivers, un simple CONFIG+=c++11 suffit maintenant

              Tu peux directement passer à la dernière norme si tu n'as pas de contrainte particulières, avec CONFIG+=c++17

              • Partager sur Facebook
              • Partager sur Twitter
              Dream on, Dream on, Dream until your dream comes true

              Afficher l'état d'avancement d'une lecture audio

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown