Название: [РЕШЕНО] Phonon : проблема с предком у видео виджета
Отправлено: Hrundel от Август 30, 2013, 22:57
Всем привет, первый опыт с Phonon немного заводит в тупик. Нужна ваша помощь. Странный для меня расклад - использую Qlabel в качестве видео виджета, но как только вяжу его с предком, а именно - с MainWindow перестает показывать видео. В коде выглядит так: videoPlayerViewPort = new QLabel(this); videoPlayerViewPort->setGeometry(0,0, DataExchange::instance().getDeskWidth(), DataExchange::instance().getDeskHeight());
//Создаем видео виджет vw = new Phonon::VideoWidget(videoPlayerViewPort);
//назначаем имя файла object.setCurrentSource(Phonon::MediaSource(":/img/video/intro.avi")); vw->setGeometry(0,0, DataExchange::instance().getDeskWidth(), DataExchange::instance().getDeskHeight()); vw->setScaleMode(Phonon::VideoWidget::FitInView);
//рендерер потока звука Phonon::AudioOutput audio(Phonon::VideoCategory);
//связь с аудио потоком Phonon::createPath(&object,&audio);
//связь с видио потоком Phonon::createPath(&object,vw);
//воспроизведение object.play();
videoPlayerViewPort->show();
QEventLoop loop; QTimer::singleShot(5000, &loop, SLOT(quit())); loop.exec(); Посоветуйте решение. Всем спасибо!
Название: Re: Phonon : проблема с предком у видео виджета
Отправлено: Hrundel от Август 31, 2013, 16:35
Проблему решил! Скажу кратко: Сначала создаем QLabel для видео виджета не задавая родителя: videoPlayerViewPort = new QLabel();
//Создаем видео виджет vw = new Phonon::VideoWidget(videoPlayerViewPort); vw->setGeometry(-2,-2, DataExchange::instance().getDeskWidth()+40, DataExchange::instance().getDeskHeight()+40); vw->setScaleMode(Phonon::VideoWidget::FitInView);
object = new Phonon::MediaObject(this);
object->setCurrentSource(Phonon::MediaSource(":/img/video/intro.avi"));
//рендерер потока звука Phonon::AudioOutput audio(Phonon::VideoCategory);
//связь с аудио потоком Phonon::createPath(object,&audio);
//связь с видио потоком Phonon::createPath(object,vw); потом после включения воспроизведения вяжем его к родителю и делаем видимым //воспроизведение object->play();
videoPlayerViewPort->setParent(this); videoPlayerViewPort->setGeometry(-2,-2, DataExchange::instance().getDeskWidth()+40, DataExchange::instance().getDeskHeight()+40); videoPlayerViewPort->show(); vw->show();
QEventLoop loop; QTimer::singleShot(1000, &loop, SLOT(quit())); loop.exec(); object->stop();
|