gpt4 book ai didi

c++ - QVideoWidget 独立。窗口关闭时如何停止视频?

转载 作者:行者123 更新时间:2023-11-28 05:50:12 26 4
gpt4 key购买 nike

我有以下内容

QVideoWidget* vw = new QVideoWidget;
QMediaResource mr(QUrl::fromLocalFile(item->data(Qt::UserRole + FilepathRole).toString()));
QMediaContent mc(mr);
QMediaPlayer* player = new QMediaPlayer;
QObject::connect(vw,SIGNAL(destroyed(QObject*)),player,SLOT(stop()));
player->setMedia(mc);
player->setVideoOutput(vw);
QRect rect = QApplication::desktop()->availableGeometry();
int width = vids[vids.indexOf(item->data(Qt::UserRole + FilepathRole).toString())].width;
int height = vids[vids.indexOf(item->data(Qt::UserRole + FilepathRole).toString())].height;
int x = (rect.width() / 2) - (width / 2);
int y = (rect.height() / 2) - (height / 2);
vw->setGeometry(x,y,width,height);
vw->show();
player->play();

一切正常,除了当我关闭弹出的 QVideoWidget 窗口时,视频会继续在某处播放,或者至少声音会继续播放。我认为连接线可以解决问题,但事实并非如此。关闭QVideoWidget窗口时停止播放的正确方法是什么?

最佳答案

问题很可能是当您关闭窗口时窗口没有被销毁,所以 stop 实际上没有被调用。您可以设置 Qt::WA_DeleteOnClose使用 QWidget::setAttribute()改变行为。

vw->setAttribute( Qt::WA_DeleteOnClose );

关于c++ - QVideoWidget 独立。窗口关闭时如何停止视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35417170/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com