2015-02-27 1 views
1

Dans mon programme, j'ai un QWebView qui affiche une vidéo YouTube. Le code que j'utilise a parfaitement fonctionné pour moi dans le passé, mais un jour j'ai remarqué que ça ne fonctionnait plus. J'ai Flash installé, et d'autres sites (google) charge très bien. Voici mon code:QWebView avec YouTube

QNetworkProxyFactory::setUseSystemConfiguration(true); 
QWebSettings::globalSettings()->setAttribute(QWebSettings::PluginsEnabled, true); 
ui->webView->load(QUrl("https://www.youtube.com/embed/abakM9O_Bos")); 
ui->webView->setEnabled(true); 

Quelqu'un peut-il expliquer pourquoi cela a l'habitude de travailler pour moi dans le passé, mais maintenant il ne l'est pas? J'ai essayé http et https sans chance.

Répondre

0

choses que j'examineraient:

  • -il d'autres sites vidéo fonctionnent-ils? (Vimeo, par exemple)
  • Regardez-vous les vidéos YouTube via Flash ou HTML5?
  • Pouvez-vous confirmer que votre vue Web charge votre plugin flash en accédant à l'une des pages de test du flash?
  • Est-ce que cela fonctionne avec le projet d'exemple de navigateur Web Qt?

Si aucun de ceux point vous point dans la bonne direction, je considérerais certainement aller à QtWebEngine. QtWebEngine est construit à l'aide de la plate-forme Chromium et peut très bien gérer des pages Web complexes. J'ai également remarqué que QtWebEngine est nettement plus rapide et plus stable que les anciens widgets basés sur QtWebKit. De plus, QtWebKit ne sera plus mis à jour, donc si vous construisez une nouvelle application, il vaudrait peut-être mieux commencer avec le nouveau système. Espérons que cela aide!

Mise à jour Pour résumer ce qui a été dit dans les commentaires.

  • Cela est probablement un problème HTML5, où QtWebKit n'a pas le codec H.264 intégré dans
  • Comme Par conséquent, vous devez expédier votre application avec les codecs dont vous avez besoin. Plus précisément, je suggère ffmpeg (ffmpegsumo.dll), car c'est ce que Chrome utilise.
+0

Merci. Je l'ai testé avec Vimeo et il ne s'est pas chargé non plus. Cela me fait penser qu'il a quelque chose à voir avec flash (ou HTML5, pas sûr de savoir comment dire). Quand j'ai utilisé une page de test, ça a marché, mais j'ai dit que j'utilisais Flash 14, mais quand je lis normalement sur Chrome, ça dit Flash 16. J'ai essayé de l'installer manuellement, mais le programme d'installation ne se chargeait pas cus c'était ennuyeux moi. Vous pensez que je dois trouver un moyen de mettre à jour à 16 pour que cela fonctionne? Je ne suis pas en train de faire une nouvelle application, en fait, je suis en train de fermer celle-ci mais en affichant une vid à l'application plus récente que j'ai faite. – mrg95

+0

Dans ce cas, il ne s'agit probablement pas d'un problème Flash, mais d'un problème HTML5. YouTube et Vimeo ont récemment basculé vers l'utilisation de lecteurs HTML5 par défaut. Si c'est le cas, vous devrez installer manuellement les codecs, car Qt n'est pas livré avec eux par défaut. YouTube et beaucoup d'autres utilisent H.264, donc ce serait un bon point de départ. –

+0

Y at-il un moyen de le faire facilement? Je ne peux pas dépendre de nouveaux fichiers externes de dll. – mrg95