QT实现播放wmv视频文件QMediaPlayer_QVideoWidget

QT实现播放wmv视频文件QMediaPlayer_QVideoWidget.rar-QT文档类资源-CSDN下载QT实现播放wmv视频文件QMediaPlayer_QVideoWidget.rarhttps:/更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/txwtech/86739507

Qt中多媒体的实现
Qt对音视频的播放和控制、相机拍摄、收音机等多媒体应用提供了强大的支持。Qt5使用了全新的Qt Multimedia模块来实现多媒体应用,Qt4中用来实现多媒体功能的Phonon模块已经被移除。新的Qt Multimedia模块提供了丰富的接口,可以轻松地使用平台的多媒体功能。例如进行媒体播放、使用相机和收音机等。

Qt的对媒体接口建立在底层平台的多媒体框架之上,这就意味着对于各种编解码器的支持依赖于使用的平台。如果要访问一些平台相关的设置,或者将Qt多媒体接口移植到新的平台,可以参考Qt帮助中的Multimedia Backend Development文档。

要使用多媒体模块的内容,需要在.pro项目文件中添加如下代码

Qt += multimedia
一、mediaplayer
QMediaPlayer集成了底部包括音频输出和音频文件读取等等操作,是一个高层次的,封装好的播放器内核,通过调用它,你可以实现输入任意格式的视频、音频播放,并实现对其播放状态的调整。

下面我们用QMediaPlayer来播放一段音乐

player = new QMediaPlayer;
player->setMedia(QMediaContent(QUrl::fromLocalFile("/*****/test.mp3")));
player->play();
QMediaPlayer中几个重要属性

二、QVideoWidget
QMediaPlayer不仅可以播放音频,还可以播放视频。不过如果要视频在界面上显示出来,还需要其他类进行辅助,比如QVideoWidget、QGraphicsVideoItem或者自定义的类。QVideoWidget继承自QWidget,所有它可以作为一个普通窗口部件进行显示,也可以嵌入到其他窗口中。将QVideoWidget指定为QMediaPlayer的视频输出窗口后,就可以显示播放的视频画面。

而像GIF格式的动画类型,可以使用QMovie播放。

在项目文件的.pro中修改代码如下:

QT += core gui multimedia multimediawidgets
player = new QMediaPlayer(this);
videoWidget = new QVideoWidget(this);
player->setVideoOutput(videoWidget);
player->setMedia(QUrl::fromLocalFile("/******/test.wmv"));
player->play();

三、QMediaPlaylist
QMediaPlaylist是一个列表,它可以保存媒体文件,包括媒体路径等信息,它具有着列表的性质,比如添加删除插入等,但它能做的,比单纯的储存要多得多。设置播放顺序,对播放的控制,保存到本地,从本地读取,都可以很方便地实现。

用QMediaPlaylist添加媒体文件可以使用addMedia方法

playlist = new QMediaPlaylist;
playlist->addMedia(QUrl::fromLocalFile("/****/music1.mp3"));
playlist->addMedia(QUrl::fromLocalFile("/****/music2.mp3"));
playlist->addMedia(QUrl::fromLocalFile("/****/music3.mp3"));
playlist->setCurrentIndex(0);
playlist->setPlaybackMode(QMediaPlaylist::Loop);
player->setPlaylist(playlist);
属性

#ifndef MAINWINDOW13_2_H
#define MAINWINDOW13_2_H#include <QWidget>
class QMediaPlayer;
class QVideoWidget;QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow13_2; }
QT_END_NAMESPACEclass MainWindow13_2 : public QWidget
{Q_OBJECTpublic:MainWindow13_2(QWidget *parent = nullptr);~MainWindow13_2();private slots:void on_pushButton_play_clicked();void on_pushButton_stop_clicked();private:Ui::MainWindow13_2 *ui;QMediaPlayer *player2;QVideoWidget *videoWidget2;
};
#endif // MAINWINDOW13_2_H
#include "mainwindow13_2.h"
#include "ui_mainwindow13_2.h"
#include <QMediaPlayer>
#include <QVideoWidget>MainWindow13_2::MainWindow13_2(QWidget *parent): QWidget(parent), ui(new Ui::MainWindow13_2)
{ui->setupUi(this);player2=new QMediaPlayer(this);videoWidget2=new QVideoWidget(this);videoWidget2->resize(800,350);player2->setVideoOutput(videoWidget2);player2->setMedia(QUrl::fromLocalFile("../wavescan_english.wmv"));// player2->play();ui->horizontalSlider_brightness->setValue(videoWidget2->brightness());//亮度connect(ui->horizontalSlider_brightness,&QSlider::sliderMoved,videoWidget2,&QVideoWidget::setBrightness);connect(videoWidget2,&QVideoWidget::brightnessChanged,ui->horizontalSlider_brightness,&QSlider::setValue);//对比度ui->horizontalSlider_contrast->setValue(videoWidget2->contrast());connect(ui->horizontalSlider_contrast,&QSlider::sliderMoved,videoWidget2,&QVideoWidget::setContrast);connect(videoWidget2,&QVideoWidget::contrastChanged,ui->horizontalSlider_contrast,&QSlider::setValue);//色相ui->horizontalSlider_hue->setValue(videoWidget2->hue());connect(ui->horizontalSlider_hue,&QSlider::sliderMoved,videoWidget2,&QVideoWidget::setHue);connect(videoWidget2,&QVideoWidget::hueChanged,ui->horizontalSlider_hue,&QSlider::setValue);//饱和度ui->horizontalSlider_saturation->setValue(videoWidget2->saturation());connect(ui->horizontalSlider_saturation,&QSlider::sliderMoved,videoWidget2,&QVideoWidget::setSaturation);connect(videoWidget2,&QVideoWidget::saturationChanged,ui->horizontalSlider_saturation,&QSlider::setValue);}MainWindow13_2::~MainWindow13_2()
{delete ui;
}void MainWindow13_2::on_pushButton_play_clicked()
{player2->play();
}void MainWindow13_2::on_pushButton_stop_clicked()
{player2->stop();
}

QT实现播放wmv视频文件QMediaPlayer_QVideoWidget相关推荐

  1. CentOS下如何用SMplayer播放WMV格式文件

    CentOS下如何用SMplayer播放WMV格式文件 原文:http://www.linuxidc.com/Linux/2016-05/131665.htm 安装的是CentOS 6.6,想用来做桌 ...

  2. 使用matlab2010读取并播放wmv视频

    在视频处理方向,一般使用硬件进行处理.当然使用MATLAB进行仿真处理,可以做到方面.节约时间.节省开支等.基于此,本程序在MATLAB实现正常的读取WMV格式的视频,并进行播放.目前还没有加视频处理 ...

  3. 超简单MVC应用程序播放WMV视频

    本篇博文,介绍给大家的是,在MVC应用程序中,播放Windows media video(.wmv) 视频文件. Insus.NET的实现方法,把media player组件,嵌入MVC的控制器的Co ...

  4. OpenCV学习:播放avi视频文件

    #if 0 //播放avi视频文件(IplImage) #include <opencv2/opencv.hpp> using namespace std; #pragma comment ...

  5. PP视频如何播放本地视频文件

    今天小编给广大用户分享PP视频如何播放本地视频文件.PP视频手机版是一款装机必备的手机视频播放软件,用户可在线观看PP视频全部免费高清正版视频,海量内容,高清画质,自由点播,配合先进的P2P下载技术, ...

  6. iOS无法播放MP4视频文件的解决方案

    1.场景描述 服务端上传MP4视频文件,iOS客户端通过URL播放该视频文件. 2.问题描述 安卓手机可以正常播放视频,iOS手机无法播放,且PC段safari浏览器也无法播放. 3.问题分析 (1) ...

  7. java web 播放本地视频文件

    后台代码: import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web. ...

  8. web三件套(经验贴)Google里,video标签播放mkv视频文件

    video标签播放mkv视频文件 第一次: <embed src="咏春.mkv" hidden="no" loop="true" R ...

  9. 解决KMPlayer App无法播放MKV视频文件

    解决KMPlayer App无法播放MKV视频文件的问题 1.下载MKV解码包,通过QQ或者微信传送到手机上即可 链接:http://pan.baidu.com/s/1slTvoJV 密码:0i0q ...

最新文章

  1. unity3d Sentinel key not found (H0007)解决方法
  2. MyBatis框架学习DAY_01:概念/创建运行流程
  3. JavaScript 工作原理(一):引擎,运行时,调用堆栈
  4. 《算法竞赛进阶指南》打卡-基本算法-AcWing 96. 奇怪的汉诺塔:递推
  5. 思维风暴 codeforces (1060A) Phone Numbers
  6. Qt文档阅读笔记-void QObject::deleteLater()解析
  7. 【Python】直接赋值,深拷贝和浅拷贝
  8. 安卓开发使用ttf文字_Android中正确使用字体图标(iconfont)的方法
  9. jQuery入门:认识jQuery
  10. 什么是RAID(独立磁盘冗余阵列)?
  11. 准备好跟机器人正面交锋了吗?
  12. 大神演示win10系统语音识别应用的详细教程
  13. SQL多表合并查询结果
  14. iOS - LocalNotification
  15. 分享9个ps、pr免费教程网站
  16. java 切面 不执行,Spring AOP 切面没有执行
  17. 谷歌邮箱SMTP小白教程
  18. 图像增强—彩色增强技术
  19. Excel 多个 Sheet 数据关联
  20. linux xmanager 网络端口 177,通过xmanager连接linux系统

热门文章

  1. oracle创建索引占用表空间吗,oracle创建索引表空间
  2. android拒绝服务教程,[转帖][转帖]通用型安卓拒绝服务漏洞报告检测工具
  3. Python之OpenGL笔记(38):三种光照通道的合成
  4. Java根据word 模板,生成自定义内容的word 文件
  5. 边缘检测,Roberts 算子,Sobel算子,Canny 算子
  6. 意大利菜--斐波那契汤。具体做法是把昨天的和前天剩下的汤加热后混合,得到就是今天新鲜的“斐波那契汤”
  7. 51单片机小项目--超声波避障小车
  8. linux可以识别多少lun,Linux上每个SCSI设备的最大LUN数目是多少(by quqi99)
  9. 深入浅出WPF知识点汇总一
  10. 软件工程与计算II-23-软件工程职业基础