当前位置: 首页 > news >正文

中兴能源建设有限公司网站自己做网站可以上传软件下载

中兴能源建设有限公司网站,自己做网站可以上传软件下载,十堰秦楚网新闻,开发外包QT播放视频保持视频宽高比消除黑边 1、问题 在播放视频的时候,由于框架的大小发生变化,导致视频出现黑边很不好看。 因此需要像一种方法消除黑边 2、处理 1、读取视频的宽高比 2、设置视频的Widget的大小固定,Widget的宽高比和视频宽高比…

QT播放视频保持视频宽高比消除黑边

1、问题

在播放视频的时候,由于框架的大小发生变化,导致视频出现黑边很不好看。
因此需要像一种方法消除黑边

2、处理

1、读取视频的宽高比
2、设置视频的Widget的大小固定,Widget的宽高比和视频宽高比相同。

  • cpp文件
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMediaPlayer>
#include <QVideoWidget>
#include <QVBoxLayout>
#include <QPushButton>
#include <QMediaMetaData>void MainWindow::playVideo()
{player->play();
}MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);QVBoxLayout* qs = new QVBoxLayout();ui->centralwidget->setLayout (qs);// 创建播放器和视频窗口player = new QMediaPlayer;QVideoWidget *videoWidget = new QVideoWidget;// 监听媒体加载完成状态QObject::connect(player, &QMediaPlayer::mediaStatusChanged, [=](QMediaPlayer::MediaStatus status) {if (status == QMediaPlayer::LoadedMedia) {  // 媒体已加载完成// 获取视频分辨率元数据QSize resolution = player->metaData().value(QMediaMetaData::Resolution).toSize();if (!resolution.isEmpty()) {qDebug() << "视频宽高:" << resolution;} else {qDebug() << "未获取到分辨率信息";}int w = resolution.width ();int h = resolution.height ();double r = 1.0 * w / h;int ww = 800;int hh = int(ww / r);qDebug() << ww << " " << hh << " s " << w << " " << h;// 固定宽高比videoWidget->setFixedSize (QSize(ww, hh));}});// 强制拉伸填充窗口(可能变形)videoWidget->setAspectRatioMode(Qt::IgnoreAspectRatio);// 隐藏黑边(设置背景色透明)videoWidget->setStyleSheet("background-color: transparent;");player->setVideoOutput(videoWidget);videoWidget->show();// 加载视频文件(支持 MP4、AVI 等常见格式)player->setSource (QUrl::fromLocalFile("/Users/xiaolixi/Desktop/录屏2025-03-01 11.03.06.mov"));// 设置循环播放player->setLoops (-1);QPushButton* start = new QPushButton("start");// 设置视频水平居中qs->addWidget (videoWidget, 0, Qt::AlignHCenter); // 关键:对齐方式qs->addWidget (start);QObject::connect(start, SIGNAL(pressed()), this,  SLOT(playVideo()));
}MainWindow::~MainWindow()
{delete ui;
}
  • h文件
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QMediaPlayer>QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private slots:void playVideo();private:Ui::MainWindow *ui;QMediaPlayer *player;
};
#endif // MAINWINDOW_H
  • pro文件
QT       += core gui
QT +=   multimediawidgets
QT +=   multimediagreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++17# You can make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \mainwindow.cppHEADERS += \mainwindow.hFORMS += \mainwindow.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

在这里插入图片描述

缺点

视频大小固定了。但是在我的场景中这个确定不影响。

http://www.dtcms.com/a/451959.html

相关文章:

  • python 开发手机网站开发文网文许可证
  • 网站页脚包括什么wordpress 3.9 上传
  • 旅游网站建设方建设网站服务器自营方式
  • 免费网站建设市场网络营销专业培训学校
  • 网站的空间租用费wordpress js代码插件
  • wordpress怎么加速优化网站推广排名
  • 17年哪个网站做h5最好win2012服务器网站建设
  • 西安做网站的公司地址建服务网站需要多少钱
  • 网站开发区宿迁房价
  • 做纺织的都用什么网站别人做的网站百度网站验证
  • 在哪下载.net网站作品狮山建网站
  • 汕头市企业网站建设哪家好官方旗舰店
  • 国外网站如何搭建网页wordpress 用oss存储
  • 网站网页进口小城镇建设投稿网站
  • 专注律师微网站建设与律师微信营销6亚圣信息科技做网站怎么样
  • 在浴室里做的网站河南平台网站建设找哪家
  • 全国做网站公司前十名网站建设模板ppt
  • 东莞网站建设相关技术模拟建筑2022手机版
  • 网站关键词锚文本指向谷歌推广方式
  • 云建站优势网站 手机网站
  • 怎么为一个网站做外链网络营销策略研究论文
  • 仿快递网站源码一个网站做多少关键词
  • 辽宁鞍山网站建设烟台网站设计制作公司电话
  • 个人或主题网站建设 实验体会分类信息网站制作
  • 北京网站制作合肥做网站合伙怎么分
  • 做网站建设销售途径wordpress做付费内容
  • 用dede做网站去掉版权网站开发常用jquery插件
  • 怎么用视频做网站背景wordpress全站模板
  • 铁路建设单位网站简述商务网站建设的步骤
  • 微网站 获取手机号注册公司名字查询系统