Recherche…


Remarques

Qt Multimedia est un module permettant de gérer le multimédia (audio, vidéo) ainsi que les fonctionnalités de caméra et de radio.

Cependant, les fichiers pris en charge de QMediaPlayer dépendent de la plate-forme. En effet, sur Windows, QMediaPlayer utilise DirectShow, sous Linux, il utilise GStreamer. Ainsi, en fonction de la plate-forme, certains fichiers peuvent fonctionner sous Linux mais pas sous Windows ou le contraire.

Lecture vidéo dans Qt 5

Créons un lecteur vidéo très simple avec le module QtMultimedia de Qt 5.

Dans le fichier .pro de votre application, vous aurez besoin des lignes suivantes:

QT += multimedia multimediawidgets

Notez que multimediawidgets est nécessaire pour utiliser QVideoWidget .

#include <QtMultimedia/QMediaPlayer>
#include <QtMultimedia/QMediaPlaylist>
#include <QtMultimediaWidgets/QVideoWidget>

QMediaPlayer *player;
QVideoWidget *videoWidget;
QMediaPlaylist *playlist;

player = new QMediaPlayer;

playlist = new QMediaPlaylist(player);
playlist->addMedia(QUrl::fromLocalFile("actualPathHere"));

videoWidget = new QVideoWidget;
player->setVideoOutput(videoWidget);

videoWidget->show();
player->play();

C'est tout - après le lancement de l'application (si les codecs nécessaires sont installés dans le système), la lecture du fichier vidéo sera lancée.

De la même manière, vous pouvez lire des vidéos à partir d’URL sur Internet, et pas uniquement des fichiers locaux.

Lecture audio dans Qt5

Comme il s'agit d'un audio, nous n'avons pas besoin d'un QVideoWidget. Nous pouvons donc faire:

_player = new QMediaPlayer(this);
QUrl file = QUrl::fromLocalFile(QFileDialog::getOpenFileName(this, tr("Open Music"), "", tr("")));
if (file.url() == "")
    return ;
_player->setMedia(file);
_player->setVolume(50);
_player->play();

dans le .h:

QMediaPlayer *_player;

Cela ouvrira une boîte de dialogue où vous pourrez choisir votre musique et la jouer.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow