Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.9.1 - Qt Creator : 4.4.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

Fonctionnement capricieux de QAudioProbe (Qt5.5.1 vs Qt5.7.1)

December 2016 modifié dans Qt / Langage C++
Bonjour,

Je me retrouve très souvent avec des problèmes de compatibilité entre versions de Qt. Je ne sais pas si c'est moi qui m'y prends mal ou s'il y a vraiment quelque chose qui cloche.

Suite à un soucis (qui n'a rien à voir ici), j'ai supprimé tout Qt de mon PC, puis réinstallé trois kits, dont deux qui nous intéressent ici :
* Qt 5.5.1 (Windows, MSVC2013, x86)
* Qt 5.7.1 (Windows, MSVC2013, x86)

J'utilise Qt Creator 4.2.0 et je compile avec MSVC2013. La compilation et le déploiement se passent correctement.

J'ai écrit un tout petit programme pour tester QAudioProbe.
Avec le premier kit, la fonction
bool QAudioProbe::setSource(QMediaObject *source)
renvoie True. Et avec le second, comme par hasard, elle renvoie False.

Y a-t-il eu du changement dans ces classes pendant le passage d'une version à la version supérieure ? Ou est-ce un bug ?

Cette classe est normalement supportée par ma configuration ( https://wiki.qt.io/Qt_5.7_Multimedia_Backends ). Le compilateur est le même. Je change simplement de version Qt.

Pourriez-vous m'éclairer, svp ? Merci.

Réponses

  • Après recherches, je pense avoir trouvé l'origine du problème. Voici ce que je trouve sur le net :
    The default multimedia backend for Windows has changed in 5.6. It is now DirectShow instead of WMF.
    Or, comme par hasard, QAudioProbe (ainsi que QVideoProbe) ne tournent sous Windows qu'avec WMF. :(

    Y a-t-il moyen simple d'attacher le backend WMF avec un projet Qt, au lieu du DirectShow ?

    Ici ou là, il est dit de recompiler Qt ! Je ne me vois pas du tout faire ça.

    En gros, si je comprends bien, les deux classes qui posent souci sont totalement inutilisables si on tourne sous Windows avec une version Qt >= 5.6 ???
  • Je me réponds à moi-même à nouveau.

    Il semblerait que l'équipe de Qt soit à pied d'oeuvre pour faire en sorte que QAudioProbe et QVideoProbe fonctionnent avec DirectShow. Ce serait réglé avec la version 5.9 (qui sortira au printemps).

    https://bugreports.qt.io/browse/QTBUG-56415
    https://codereview.qt-project.org/#/c/176418/

    Voilà. L'info pourrait éventuellement intéresser d'autres personnes... ^^
  • slt,
    Merci pour ce retour d'information.
Connectez-vous ou Inscrivez-vous pour répondre.