我使用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的属性 - 需要重新绘制..
谢谢你的时间。