Исходные данные
Имеется нетбук c Ubuntu 11.10 и отечественный автомобиль с вебкамерой, прицепленной на заднем стекле. При их скрещивании получается устройство
/dev/video0
Что нам надо
Буду писать програмку, которая будет для меня показывать картинку с вебкамеры. Всякие плееры вроде VLC конечно хорошо, но в своём творении можно и кнопочек полезных добавить, и картинки в интернет пулять, и ещё много чего полезного придумать. Для начала ограничимся минимумом — пусть у нас в окне будет виджет, который будет нам показывать картинку с камеры. Всё остальное можно будет нашлёпать сверху позже. Для всякой мультимедии в Qt используется модуль Phonon, будем использовать его.
Готовимся
Предварительно должен быть установлен QtCreator. Ещё устанавливал следующие пакеты:
$ sudo apt-get install phonon-backend-vlc $ sudo apt-get install libphonon-dev
Пока их не поставил — почему-то ничего не хотело работать. Может быть ещё что-то должно быть установлено, но у меня уже было, в коментах спросите если надо.
Поехали
Ну значит создаём проект как обычно. Названия классов не менял, проект обозвал MyCameras. Первым делом открываем MyCameras.pro и правим первую разумную строчку чтоб получилось
QT += core gui phonon
Теперь берёмся за mainwindow.cpp (привожу сразу весь код, там немного):
#include "mainwindow.h" #include "ui_mainwindow.h" #include <Phonon/VideoPlayer> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); qApp->setApplicationName("mycameras"); Phonon::VideoPlayer *player = new Phonon::VideoPlayer(Phonon::VideoCategory, this); connect(player, SIGNAL(finished()), player, SLOT(deleteLater())); QString url = "v4l2://///dev/video0"; player->resize(300,200); player->move(0,0); player->play(Phonon::MediaSource(url)); } MainWindow::~MainWindow() { delete ui; }