2009-10-01 8 views
1

Est-ce que quelqu'un a construit une application Qt S60 (3e édition, FP2) qui lit (streaming ou vidéo locale)? Je veux lire la vidéo dans un widget, pas avec (par exemple) QDesktopServices.Vidéo dans l'application Qt S60?

Je sais qu'il existe une documentation sur la façon de faire cela avec Symbian, comme here et here mais je suis toujours bloqué.

(Toutes mes excuses à l'avance pour le cross-posting: J'ai demandé ailleurs, mais sans succès.)

Répondre

5

Qt 4 comprend une suite d'API multimédia appelé Phonon, ce qui vous permet de faire exactement cela. Ils sont actuellement mis en œuvre pour Symbian - tandis que le Qt for S60 "Tower" pre-release ne comprend pas le support de Phonon sur Symbian, Qt 4.6 fera l'affaire.

En attendant, votre seule option est d'utiliser directement les API Symbian MMF. Plus précisément, votre widget vidéo - ou un objet lui appartenant - devra créer une instance de CVideoPlayerUtility, et devra donc implémenter MVideoPlayerUtilityObserver. L'API du lecteur vidéo nécessite que le client fournisse un RWindow dans lequel afficher la vidéo - ceci peut être obtenu en appelant QWidget::winId(), ce qui renvoie un pointeur CCoeControl*. Vous pouvez donc obtenir une poignée de fenêtre en appelant

RWindow& window = *static_cast<RWindow*>(widget->winId()->DrawableWindow()) 

Dans l'ensemble cependant, la lecture vidéo à partir d'une application Qt (ou encore une application) sur Symbian exige actuellement beaucoup de travail - surtout si vous voulez soutenir dynamique redimensionnement et/ou repositionnement du contenu vidéo. Notez également que la manière dont Qt est actuellement implémenté sur Symbian signifie que déplacer d'autres widgets (partiellement ou complètement) sur le widget vidéo ne fonctionnera pas correctement - la vidéo continuera à apparaître en haut. Cela est dû au fait que l'appel QWidget::winId() ne provoque pas actuellement la création d'une fenêtre Symbian native par Qt et sera rectifié dans 4.6. En résumé, à moins que vous ne soyez pressé de le faire, il est probablement préférable d'attendre la bêta 4.6 qui est attendue dans quelques semaines.

+0

Merci pour cela. J'ai une application simple qui fonctionne avec CVideoPlayerUtility et suivra vos instructions pour l'intégrer dans une application Qt. J'ai vu les détails de la prévisualisation de la technologie 4.6 mais, pour autant que je puisse voir (malgré certaines classes vidéo), il n'y a pas de support pour la lecture vidéo simple: http://doc.qt.nokia.com/4.6-snapshot /qt4-6-intro.html –

+1

Il est probablement utile de souligner qu'il existe deux ensembles d'API multimédia distincts dans Qt. Le premier, Phonon, est entièrement développé - bien que, comme je l'ai dit, pas encore mis en œuvre pour Symbian. Le second est le projet QtMultimedia, qui a jusqu'à présent défini les API des services audio décrites dans le lien que vous mentionnez. Le plan (décrit intégralement dans http://labs.trolltech.com/blogs/2009/09/09/multimedia-in-qt-whats-the-story/) est pour QtMultimedia d'évoluer pour devenir beaucoup plus riche en fonctionnalités que Phonon. Cependant, pour une lecture vidéo simple à court terme, Phonon reste votre meilleur pari. –

+0

Alors - est-ce qu'un backend S60 Phonon est disponible, ou sera-t-il disponible avec 4.6 pour S60? –