- Qt 6.12
- Qt Multimedia
- Qt Multimedia Examples
- Media Player Example
- Qt 6.12.0 Reference Documentation

# Media Player Example

Playing audio and video using Qt Widgets.

Media Player demonstrates a simple multimedia player that can play audio and video files using various codecs.

#### Running the Example

You can run the example from:

- Qt Creator

  Open the Welcome mode and select the example from Examples. For more information, see Qt Creator: Tutorial: Build and run.

- Qt Extension for Visual Studio Code

  Run the Qt: Open Qt examples command from the Command Palette, and select the example from the list. For more information, see Qt Extension for Visual Studio Code: Tutorial: Build and run.

The example uses a QMediaPlayer object passed into a QVideoWidget to control the video output. To give the application playlist capability we also use a QMediaPlaylist object. QMediaPlaylist was removed from our API in Qt 6, but its implementation is included in this example.

An audio level meter shows peak and RMS levels during playback. This is implemented by setting a QAudioBufferOutput to QMediaPlayer, processing each QAudioBuffer it emits on a separate thread and visualising the values through QWidget::paintEvent.

To activate the various functions such as play and stop on the dialog, the button clicked events emit the play() and stop() signals, which are connected to the play() and stop() slots of QMediaPlayer.

     connect(controls, SIGNAL(play()), player, SLOT(play()));
     connect(controls, SIGNAL(pause()), player, SLOT(pause()));
     connect(controls, SIGNAL(stop()), player, SLOT(stop()));

We can get the volume (and set our user interface representation)

     controls->setVolume(player->volume());

and we can make widget 'volume' changes change the volume

     connect(controls, SIGNAL(changeVolume(int)), player, SLOT(setVolume(int)));

The example also allows us to change video properties by means of the QVideoWidget object. We can go to Full Screen mode with a single button click, and back again.

Example project @ code.qt.io