网站推广宣传,wordpress 子主题 教程,比亚迪新能源汽车车型,网站生成软件免费制作前言
需求#xff1a;加载视频作为视频背景#xff0c;在上层可以进行图片的动画化#xff0c;或是进行其他操作。
几种方法#xff1a;
1、直接将视频弄成一个QDialog#xff0c; 然后再上层在弄一个QDialog,背景透明即可。但遇到一个问题#xff0c;QDialog没办法局…前言
需求加载视频作为视频背景在上层可以进行图片的动画化或是进行其他操作。
几种方法
1、直接将视频弄成一个QDialog 然后再上层在弄一个QDialog,背景透明即可。但遇到一个问题QDialog没办法局部透明。
2、使用QOpenGLWidget 这个方案没有使用。
3、使用QGraphicsVideoItem当前使用的是这个方案但这个方案有缺陷有可能不支持某些mp4文件。所以会导致显示不成功。
正文
一、QVideoWidget QMediaPlayer
1、成功运行的代码
ui-setupUi(this);
setWindowFlags(windowFlags() | Qt::FramelessWindowHint);//无边框player new QMediaPlayer;
videoWidget new QVideoWidget();
player-setVideoOutput(videoWidget);
player-setMedia(QUrl::fromLocalFile(./product/video/test1.mp4));QVBoxLayout *layout new QVBoxLayout(this);
layout-addWidget(videoWidget);
ui-wgtVideo-setLayout(layout);
videoWidget-show();
player-play();
show();2、遇到的问题
3、工程代码
二、QGraphicsVideoItem QMediaPlayer
1、成功运行的代码
#include QApplication
#include QMediaPlayer
#include QGraphicsVideoItem
#include QGraphicsView
#include QGraphicsSceneint main(int argc, char *argv[])
{QApplication a(argc, argv);QGraphicsScene scene;QGraphicsView view(scene);view.resize(1280, 720);QGraphicsVideoItem item;scene.addItem(item);item.setSize(QSizeF(1280, 720));item.setFlags(QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsFocusable);QMediaPlayer player;player.setVideoOutput(item);player.setNotifyInterval(2000);//设置信息更新周期为2000msplayer.setMedia(QUrl::fromLocalFile(./product/video/test2.mkv));player.play();view.show();return a.exec();
}效果 2、遇到的问题
1、DirectShowPlayerService::doRender: Unknown error 0x80040200. 由于QGraphicsVideoItem支持的视频格式是有限的所以有可能是不支持mp4文件的转换成mkv文件就成功了。后面我又换了一个mp4文件就没啥问题了所以是我之前的那个测试的mp4文件时有问题的我的测试视频是从这里下载的 https://sample-videos.com/index.php#sample-mp4-video 还有可能是驱动没装QMediaPlayer的驱动 链接https://pan.baidu.com/s/13aEhts8ipAYv6TD2WFIo7Q 提取码1111 还有可能是LAV Filter: https://blog.csdn.net/weixin_45827203/article/details/105220756 以下是错误的可能性 视频格式QGraphicsVideoItem 只支持某些视频格式。请确保您的视频格式是支持的。通常情况下支持 H.264 和 MPEG-4 等常见格式。文件路径请确保您提供给 QGraphicsVideoItem 的视频文件路径是正确的。如果视频文件不存在或路径不正确它将无法播放。缺少解码器如果您的系统上缺少适当的解码器QGraphicsVideoItem 将无法正常播放视频。您可以尝试在您的系统上安装适当的解码器以解决此问题。硬件加速通常硬件加速会加速视频播放并减少 CPU 使用率。但有时启用硬件加速可能导致播放问题。如果您启用了硬件加速请尝试禁用它并查看视频是否可以成功播放。版本兼容性QGraphicsVideoItem 可能与某些特定版本的 Qt 或操作系统版本不兼容。请确保您使用的 Qt 版本是最新的并且与您的操作系统兼容。另外请确保您的操作系统已经安装了必要的更新和修补程序。其他问题如果视频仍然无法播放请检查是否存在其他问题比如媒体库文件损坏或者与播放器相关的问题。在这种情况下您可以尝试使用其他的媒体库或播放器来测试您的视频文件。 3、工程代码
参考
一、下载测试视频的网站 1、https://www.motionplaces.com/paris/ 2、https://www.videvo.net/video/raindrops-in-super-slow-motion/3313/#rsvideo-box 3、4K、高清、无水印视频素材库你要的素材来啦~ 1、测试视频下载网站 二、解决该问题所遇到的比较有用的网站 2、https://cloud.tencent.com/developer/ask/sof/106854758因为Qt不允许透明背景的小部件在视频上呈现。背景显示为黑色而不是实际的视频。 3、Qt踩坑记001无法在读取相机图像的取景器QVideoWidget/QGraphicsVideoItem上显示图片 4、Qt疑难杂症无法QVideoWidget播放器上浮控件-解释原因 5、视频播放 6、QT多媒体 播放视频并显示字幕 7、使用Qt进行音视频播放 8、可以免费对视频进行切割