Russian Qt Forum

Qt => Мультимедиа => Тема начата: Larry от Март 15, 2011, 11:42



Название: Вывод текста поверх видео
Отправлено: Larry от Март 15, 2011, 11:42
Добрый день, форумчане! Появилась такая необходимость: проигрывать ролик и выводить поверх него текстовую информацию. Опыта работы с видео совершенно нет :(, поэтому даже не представляю куда копать...подскажите в каком направлении копать. Заранее спасибо всем откликнувшимся...


Название: Re: Вывод текста поверх видео
Отправлено: twp от Март 15, 2011, 11:52
ну самое просто решение что пришло на ум, это повесить прям над видео-виджетом QLabel с прозрачным фоном


Название: Re: Вывод текста поверх видео
Отправлено: Larry от Март 15, 2011, 11:55
т.е. использовать phonon и сверху вешать qlabel? А мерцание будет? Буду пробовать, а другие варианты?


Название: Re: Вывод текста поверх видео
Отправлено: twp от Март 15, 2011, 12:05
за мерцание и другие траблы ничего не могу сказать, ибо это решение чисто теоретическое, и не проверено на практике.  Но общий подход думаю должен быть такой, а вот что использовать для вывода текста и как правильно скомпановать виджеты - это уже нужно поэкспериментировать. Вот кстати линк, который может помочь http://stackoverflow.com/questions/3692712/python-qt-display-text-label-above-another-widgetphonon (http://stackoverflow.com/questions/3692712/python-qt-display-text-label-above-another-widgetphonon)


Название: Re: Вывод текста поверх видео
Отправлено: Larry от Март 15, 2011, 12:25
спасибо буду пробовать, а потом отпишусь...


Название: Re: Вывод текста поверх видео
Отправлено: Larry от Март 17, 2011, 16:58
Добрый день. Все руки не доходили до программы...Пример ссылку на который дали так и не заработал...Сделал QLabel прозрачным, но теперь не могу поместить его на видео...если просто указать ему родителя окно плеера, то отображается черный прямоугольник...Как можно еще попробовать?


Название: Re: Вывод текста поверх видео
Отправлено: twp от Март 17, 2011, 18:03
и через QGraphicsTextItem не работает?


Название: Re: Вывод текста поверх видео
Отправлено: Larry от Март 17, 2011, 21:18
Спасибо за ответ, попробую....еще не осваивал...


Название: Re: Вывод текста поверх видео
Отправлено: Ubuntu_linux от Март 17, 2011, 22:05
Добрый день. Все руки не доходили до программы...Пример ссылку на который дали так и не заработал...Сделал QLabel прозрачным, но теперь не могу поместить его на видео...если просто указать ему родителя окно плеера, то отображается черный прямоугольник...Как можно еще попробовать?
Ти шо?
Добавляешь видео виджет на QGraphicsScene, а потом добавляешь QLabel  на сцену....

все делаешь методом
 QGraphicsProxyWidget *   addWidget ( QWidget * widget, Qt::WindowFlags wFlags = 0 )


Название: Re: Вывод текста поверх видео
Отправлено: Larry от Март 17, 2011, 22:38
спасибо большое, буду пробовать :)...классов qgraphics я еще не касался, поэтому поучу мать часть  и соберу все в кучу...


Название: Re: Вывод текста поверх видео
Отправлено: Ubuntu_linux от Март 18, 2011, 01:17
спасибо большое, буду пробовать :)...классов qgraphics я еще не касался, поэтому поучу мать часть  и соберу все в кучу...

Вот что у меня получилось.




Название: Re: Вывод текста поверх видео
Отправлено: GreatSnake от Март 18, 2011, 11:13
Не забудь ещё кинуть тени )
Цитировать
QGraphicsItem::setGraphicsEffect( new QGraphicsDropShadowEffect( ... ) )


Название: Re: Вывод текста поверх видео
Отправлено: Larry от Март 19, 2011, 23:54
спасибо всем кто отозвался, буду разбираться....


Название: Re: Вывод текста поверх видео
Отправлено: Larry от Март 20, 2011, 20:16
Добрый вечер!Я попробовал сделать как мне посоветовали, но возникли проблемы с самим плеером...Когда я его присоединяю с помощью QGraphicsProxyWidget, то звук есть, а изображения нет...Может я делаю что-то не правильно? Подскажите пожалуйста...Вот конструктор, где все и происходит...
Код:
MainWindow::MainWindow(QMainWindow* parent): QMainWindow(parent)
{
QTextCodec *codecRus = QTextCodec::codecForName("cp1251");
QTextCodec::setCodecForTr(codecRus);

QGraphicsScene *scene = new QGraphicsScene;
QGraphicsView  *view  = new QGraphicsView(scene);

QWidget     *pWgt       = new QWidget;
QHBoxLayout *pHLtPlayer = new QHBoxLayout;

Phonon::VideoPlayer *player = new Phonon::VideoPlayer(Phonon::VideoCategory);
player->play(QString("d:/1.avi"));
QGraphicsProxyWidget *pProxyWgt = scene->addWidget(player);

pHLtPlayer->addWidget(view);
pWgt->setLayout(pHLtPlayer);

this->setCentralWidget(pWgt);
}


Название: Re: Вывод текста поверх видео
Отправлено: Ubuntu_linux от Март 21, 2011, 13:31
Вот рабочий пример!

Надо указать путь (path в коде проги) к папочке где лежит видео потом выбрать с комбо бокс нужный файл и нажать кнопку опен, потом нажать кнопку play video




Название: Re: Вывод текста поверх видео
Отправлено: Larry от Март 21, 2011, 13:56
спасибо большое, буду смотреть.... :)