在 QT 中以全屏模式播放视频
Playing video on fullscreen mode in QT
我想使用 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;
}
这可能会满足您的需求...
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.
我想使用 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;
}
这可能会满足您的需求...
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.