Qt 之 Multimedia实现视频播放器

Qt之Multimedia实现视频播放器

Qt实用技巧:使用OpenCV库的视频播放器  https://cloud.tencent.com/developer/article/1545546

** Qt项目实战五:基于QMediaPlayer播放器  https://blog.csdn.net/weixin_44404541/article/details/129995373

** QT:小型视频播放器  https://blog.csdn.net/misikamikirto/article/details/131124126

Qt之Multimedia实现视频播放器

    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中几个重要属性

属性    类型    说明
duration    qint64    当前播放媒体对象的持续时间(毫秒)
mediaStatus    MediaStatus    当前媒体的状态、枚举类型
state    State    当前的播放状态,枚举类型
muted    bool    是否静音
playlist    QMediaPlaylist    当前的播放列表
position    qint64    保存当前播放的进度(毫秒)
volume    int    当前的音量
二、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();

    属性

属性    类型    说明
brightness    int    亮度
hue    int    色调
contrast    int    对比度
fullScreen    bool    是否全屏
saturation    

int
    饱和度
三、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);

    属性

名称    枚举值    说明
QMediaPlaylist::CurrentItemOnce    0    单曲播放
QMediaPlaylist::CurrentItemInloop    1    单曲循环
QMediaPlaylist::Sequential    2    顺序播放
QMediaPlaylist::Loop    3    

列表循环
QmediaPlaylist::Random    4    随机播放

 ------

补充说明:

1. 在 .c文件中,需要:

#include "QMediaPlayer"
#include "QVideoWidget"

2.

    QMediaPlayer *player = new QMediaPlayer;


————————————————
版权声明:本文为CSDN博主「以书入法」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u010037542/article/details/100071914

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值