Russian Qt Forum

Qt => Вопросы новичков => Тема начата: sandurlay от Май 02, 2011, 12:36



Название: Видео из ресурса -> QTemporyFile -> Phonon. Не большой косяк
Отправлено: sandurlay от Май 02, 2011, 12:36
А косяк в том, что иногда видео играет как надо, а иногда не играет. А иногда играет вертикальная полоска по центру и сама форма соответствующих размеров. Если играть напрямую из файла, то все стабильно работает. Я задержку делал (ну типа не успевает записаться или еще что-то) - не помогает.
Код:
SplashScreen::SplashScreen() : QDialog() {
    this->setWindowFlags(Qt::SplashScreen);
    this->setCursor(Qt::BlankCursor);

    m_pmedia = new Phonon::MediaObject(this);
    m_pao    = new Phonon::AudioOutput(Phonon::VideoCategory, this);

    Phonon::VideoWidget* pvw = new Phonon::VideoWidget;
    Phonon::createPath(m_pmedia, m_pao);
    Phonon::createPath(m_pmedia, pvw);

    QVBoxLayout* pvbxLayout = new QVBoxLayout;
    pvbxLayout->addWidget(pvw);
    setLayout(pvbxLayout);

    QTemporaryFile f;
    f.open();
    QResource res(":/nuclearfailure.avi");
    f.write((char*)res.data(), res.size());
    f.flush();
    f.setAutoRemove(true);

    QFile F(f.fileName());


    m_pmedia->setCurrentSource(Phonon::MediaSource(F.fileName()));
    m_pmedia->play();

    F.close();
    f.close();

    connect (m_pmedia, SIGNAL(finished()), SLOT(close()));
}