带QTimer的QT Phonon无法显示

时间:2011-07-11 11:10:47

标签: qt phonon

我使用Phonon Framework获取多媒体文件,我得到了一个QMainWindow,如果我把下面的代码放到QMainWindow的构造函数方法中工作得很好..

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
.....

Phonon::MediaObject *mediaObject = new Phonon::MediaObject(ui->frame1);
    mediaObject->setCurrentSource(Phonon::MediaSource("/myvideos/test.mpg"));

    Phonon::VideoWidget *videoWidget = new Phonon::VideoWidget(ui-frame1);

    videoWidget->resize(ui->frame1->size().width(),ui->frame1->size().height());
    videoWidget->setAspectRatio(Phonon::VideoWidget::AspectRatioWidget);

    Phonon::createPath(mediaObject, videoWidget);
    mediaObject->play();

.......
}

但是如果我把Phonon块放到QTimer插槽中,如下所示,屏幕上没有任何反应。我能够在这个计时器中更新像标签这样的QT ui元素,但不知何故,Phonon块在显示器上没有任何差异。

void  MainWindow::tmrVersion_Tick(){


    ui->testWidget->resize(700,700); //works


    Phonon::MediaObject *mediaObject = new Phonon::MediaObject(ui->frame1);
        mediaObject->setCurrentSource(Phonon::MediaSource("/myvideos/test.mpg"));

        Phonon::VideoWidget *videoWidget = new Phonon::VideoWidget(ui-frame1);

        videoWidget->resize(ui->frame1->size().width(),ui->frame1->size().height());
        videoWidget->setAspectRatio(Phonon::VideoWidget::AspectRatioWidget);

        Phonon::createPath(mediaObject, videoWidget);
        mediaObject->play();

}

我不知道该怎么做我需要以某种方式更新ui吗?但正如我上面提到的,我可以在没有任何更新的情况下更改testWidget的属性 - 需要重新绘制..

谢谢你的时间。

0 个答案:

没有答案