Phonon minimum needs to play a video

From Qt Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine.
Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean.

Phonon minimum needs to play a video.

The documentation about Phonon provided by Qt doesn't give you an "out of the box" explanation on how to play a video using Phonon in Qt. That's why I write this down in order to help a little.

Before you start testing, make sure that you have the right programs and or libs installed on your computer. Look here for the setup you need.

You need only 4 items to get a video to play.

  1. You need to have a Phonon::MediaObject
  2. You need to have a Phonon::VideoWidget
  3. You need to have a Phonon::AudioOutput
  4. add your .pro file with "+= phonon"

Then the code:

//include the right lib:
#include <phonon>

// setup the objects:
Phonon::MediaObject *obj_MediaObject = new Phonon::MediaObject(this);
Phonon::VideoWidget *wid_videoWidget = new Phonon::VideoWidget(this);
Phonon::AudioOutput '''aio_audioOutput = new Phonon::AudioOutput(Phonon::VideoCategory,this);

//clear the mediaobject:
obj_MediaObject->clearQueue();

//Put a video in the queue:
obj_MediaObject->enqueue(Phonon::MediaSource("path to video"));

//make the proper connections:
Phonon::createPath(obj_MediaObject, wid_videoWidget); // to link the mediaobject with the video widget.
Phonon::createPath(obj_MediaObject, aio_audioOutput); // to link the mediaobject with audio output.

//play the video:
obj_MediaObject->play();

That's all there is.

Note: This code only works on local video files. I didn't have YouTube videos and mms streaming working yet. When I do, I will edit this page.

It's off course also possible for others to edit a working code.