Qt - odtwarzanie plików wideo z wykorzystaniem klasy QMediaPlayer i QVideoWidget

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 1777 razy

Klasa QMediaPlayer umożliwia odtwarzanie również plików wideo. W tym przypadku należy brać pod uwagę, że to, czy program odtworzy dany plik wideo zależy od obecności w systemie odpowiednich kodeków. W przypadku plików wideo konieczne jest również użycie kontrolki QVideoWidget, która jest przygotowana specjalnie pod renderowanie wyświetlanych klatek filmu. Niestety kontrolka ta może zostać utworzona tylko za pomocą ręcznie napisanego kodu np. tak:

playlist = new QMediaPlaylist; playlist->addMedia(QUrl::fromLocalFile("C:/video_file_1.avi")); video = QVideoWidget(this->ui->centralWidget); player = new QMediaPlayer(this->ui->centralWidget); player->setVideoOutput(videoWidget); player->setMedia(playlist);

W przypadku użycia kontrolki QVideoWIdget należy skorzystać z zdarzenia resizeEvent w celu dostosowania obszaru tejże kontrolki:

void MainWindow::resizeEvent(QResizeEvent *event) { QWidget::resizeEvent(event); QRect r = ui->centralWidget->geometry(); videoWidget->setGeometry(0, 0, r.width(), r.height()); }

Kontrolka QVideoWidget udostępnia kilka metod, dzięki którym można zmienić właściwości wyświetlanego obrazu:

Domyślnie wartości wszystkich wyżej wymienionych parametrów są ustawione na 0 a ich dostępny zakres mieści się od -100 do 100.

Strony powiązane
strony powiązane
  1. doc.qt.io/qt-5/qmediaplayer.html - opis klasy QMediaPlayer na stronie dokumentacji Qt
  2. doc.qt.io/qt-5/qmediaplaylist.html - opis klasy QMediaPlaylist na stronie dokumentacji Qt
  3. doc.qt.io/qt-5/qvideowidget.html - opis klasy QVideoWidget na stronie dokumentacji Qt
Propozycje książek