Как видно следует описать еще несколько переменных (в описании класса):
QString qsDataPath;
QString qsAppPath;
QMediaPlayer *player;
Соответственно подключим необходимые библиотеки:
#include <QMediaPlayer>
#include <QFileDialog>
Объекты следует создать:
player = new QMediaPlayer(this);
Самостоятельная работа: давайте сразу сделаем так, чтобы функция открытия файла запоминала, где мы были в последний раз, и по умолчанию открывала нам именно этот каталог.
3. Теперь создадим (и сразу же програмно добавим его на форму) виджет, в котором мы и будем проигрывать видео, сделаем это в конструкторе:
videoWidget = new QVideoWidget(this);
player = new QMediaPlayer(this);
player->setVideoOutput(videoWidget);
ui->verticalLayout->addWidget(videoWidget);
и опишем его заголовочном файле:
QVideoWidget *videoWidget;
а также подключим:
#include <QWidget>
#include <QVideoWidget>
4. Теперь создадим событие на нажатие клавиши Воспроизведение:
switch(player->state()) {
case QMediaPlayer::PlayingState:
player->pause(); break;
default:
player->play(); break;
}
5. Допишите в открытие файла:
player->play();
теперь видео будет сразу запускаться после открытия файла.
6. Скомпонуйте форму и скройте таблицу (в конструкторе):
ui->tableWidget->hide();
Все! Видеоплеер готов!
Ура! Фанфары и тестирование. Попробуйте, например, нажать кнопку Открыть и посмотрите видео…
Подсказка: видео Вы можете найти в «LabPract/Qt/Video».
Это важно: скопируйте видео из сети на локальный носитель.
7.1. Премотка.
Ползунок для перемотки будем добавлять на отдельную панель инструментов: для этого нажмите ПКМ в инспекторе объектов на MainWindow (рис. 6.4).
Рис. 6.4. Добавление еще одной панели инструментов
Если мы хотим перескочить сразу на середину фильма, то в помощь Вам придут:
Пришла пора создать самую полезную кнопку – На весь экран. Итак, добавим сие действие в меню и на панель инструментов, установим ему свойство триггерное и создадим обработчик сего действия:
На полный экран у Вас теперь видео будет раскрыватся, но вот обратно – никак. Все дело в том, что videoWidget, раскрывшись на весь экран, стал «круче», чем MainWindow, и теперь нам надо работать именно с ним.
Для этого нам нужно описать (естественно в заголовочном файле) свой собственный класс (типа QVideoWidget):