我正在使用vlc-qt构建一个简单的媒体播放器。首先,我将播放器连接到小部件,并且可以正常工作,但是当我再次尝试使用setVideoWidget
成员函数来更改显示小部件时,似乎不起作用,那我该怎么办?这个成员函数setVideoWidget
只能被调用一次吗?
我在构造函数setVideoWidget
中调用了_player->setVideoWidget(ui->video);
,将视频小部件(在上图中可以看到的黑色部件)设置为播放媒体的默认小部件,并且可以正常工作。
但是当我尝试将显示小部件更改为另一个小部件(命名为anotherWidget
时,您可以在上图中看到绿色的小部件)
void SimplePlayer::on_changeButton_clicked()
{
_player->pause();
_player->setVideoWidget(ui->anotherWidget);
_player->play();
}
当我单击名为changeButton
的按钮时,它什么都没有改变。媒体仍显示在默认的视频小部件(黑色)上。
我的构造函数:
SimplePlayer::SimplePlayer(QWidget *parent)
: QMainWindow(parent),
ui(new Ui::SimplePlayer),
_media(0),
_equalizerDialog(new EqualizerDialog(this))
{
// init ui
ui->setupUi(this);
_instance = new VlcInstance(VlcCommon::args(), this);
_player = new VlcMediaPlayer(_instance);
_player->setVideoWidget(ui->video);
signals & slots......
}