在 QT 中以全屏模式播放视频

Posted

技术标签:

【中文标题】在 QT 中以全屏模式播放视频【英文标题】:Playing video on fullscreen mode in QT 【发布时间】:2015-03-17 08:01:17 【问题描述】:

我想在单台计算机上的多个显示器上使用 QMediaPlayer(输出视频线程到 QGraphicsVideoItem)播放(共享,而不是多个)视频文件(mp4),连接通过 HDMI/DVI 电缆。 我在一台显示器上播放了视频,但我需要在多台显示器上同时播放这段视频。 我需要跨平台(Linux/Windows)解决方案,并且我必须提供配置监视器以在我的应用程序中播放视频。 是否可以组织 QT 5.4 或扩展 C++ 库的方法? 如果是,请提示我最好的方法。 抱歉英语不好,提前感谢您的帮助!

你好!我需要播放视频叠加图像。 我使用 QT 组件 QMediaPlayer 和 QGraphicsVideoItem 来组织它。 但我无法拉伸视频以填满屏幕(全屏模式)。 它看起来像这样: 请帮我。谢谢。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QWebView>
#include <QVBoxLayout>
#include <QFile>
#include <QMediaPlayer>
#include <QtMultimedia>
#include <QGraphicsVideoItem>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)

    ui->setupUi(this);

    QVBoxLayout *layout = new QVBoxLayout;
    layout->setContentsMargins(0, 0, 0, 0);
    this->centralWidget()->setLayout(layout);

    layout->addWidget(ui->graphicsView);
    ui->graphicsView->setStyleSheet("background: transparent");
    this->showMaximized();
    QMediaPlayer * player = new QMediaPlayer();
    QGraphicsVideoItem *item = new QGraphicsVideoItem;
    QGraphicsScene * scene = new QGraphicsScene;
    item->setSize(QSize(ui->graphicsView->width(),ui->graphicsView->height()));
    ui->graphicsView->setScene(scene);

    player->setVideoOutput(item);
    qDebug() << item;
    ui->graphicsView->scene()->addItem(item);
    QPixmap pix1( "/home/ibragim/examples/ntv.png" );
    player->setMedia(QUrl::fromLocalFile("/home/ibragim/examples/sm.mp4"));
    player->play();
    ui->graphicsView->show();
    ui->graphicsView->scene()->addPixmap(pix1.scaledToHeight(100))->setPos(160,30);


MainWindow::~MainWindow()

    delete ui;

【问题讨论】:

QVideoWidget::setFullScreen() 【参考方案1】:

这可能会做你想要的......

void QGraphicsView::fitInView(const QGraphicsItem * item, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio)

This is an overloaded function.

Ensures that item fits tightly inside the view, scaling the view according to aspectRatioMode.

【讨论】:

谢谢!它帮助了我!

以上是关于在 QT 中以全屏模式播放视频的主要内容,如果未能解决你的问题,请参考以下文章

使用 Flatlist 单击播放按钮以全屏(横向)播放视频

使用 MPMoviePlayerController 无法以全屏模式播放大尺寸视频

使用UiWebview显示全屏Youtube视频

HTML5 视频控件在 Android 设备上以全屏模式消失

自动全屏播放 youtube 视频

关闭 MPMoviePlayerViewController 的全屏模式时出现问题