文件名称:
福优林Qt5小白变大牛初级篇word---第14章.pdf
开发工具:
文件大小: 688kb
下载次数: 0
上传时间: 2020-07-23
详细说明:Qt视频播放器
Qt对音视频的播放和控制、相机拍摄、收音机等多媒体应用提供了强大的支持。
Qt5使用了全新的Qt Multimedia模块来实现多媒体应用,Qt4中用来实现多媒体功能的Phonon模块已经被移除。
新的Qt Multimedia模块提供了丰富的接口,可以轻松地使用平台的多媒体功能。例如进行媒体播放、使用相机和收音机等。
QMediaPlayer简介
QMediaPlayer播放视频要在界面上显示出来,还需要其他类进行辅助,比如QVideoWidget类。:编解码
QVideoWidget继承自QWidget,所有它可以作为一个普通窗口部件进行显示,也可以嵌入到其他窗口。:播放窗口
将QVideoWidget指定为QMediaPlayer的视频输出窗口后,就可以显示播放的视频画面。
二者组合,可以播放视频:
player = new QMediaPlayer;
videoWidget = new QVideoWidget;
player->setVideoOutput(videoWidget);
videoWidget->show();
player->play();
QVideoWidget简介
QvideoWidget是一个用来展示视频的类,需要先定义一个QMediaPlayer对象,然后将QMediaPlayer的VideoOutput设置为QVideoWidget对象即可
QVideoWidget属性
名称 类型 说明
aspectRatioMode Qt::AspectRatioMode 显示比率
brightness int 亮度
contrast int 对比度
fullScreen bool 是否全屏
hue int 色调
mediaObject QMediaObject *const 视频媒体对象
saturation int 饱和度
error: C1083:
问题:qt creator报错 error: C1083: 无法打开包括文件:“QMediaPlayer”
解决:QT += multimedia multimediawidgets
如何获取duration
QT关于QMediaplayer 的duration()获取的音视频时间长度为0的问题。
在QT中,使用QMediaplayer类可以很方便地实现视频的播放,而在QMediaplayer类中有个duration函数可以直接获取所打开视频的总时间长度。
但使用后你会发现duration()返回的居然是个0。
官方解释:
The value may change across the life time of the QMediaPlayer object and may not be available when initial playback begins, connect to the durationChanged() signal to receive status notifications.
在初始回放开始时可能不可用,请连接durationChanged()信号以接收状态通知。
即我们只需要写个槽函数,在槽函数里面调用duration()就可以接收到正确的时间
例:
//第一步:连接槽函数,信号为QMediaPlayer自带的durationChanged,槽就是自己定义的getduration,注意参数类型要一致
QObject::connect(player,
SIGNAL(durationChanged(qint64)),
this,
SLOT(getduration(qint64)));
//第二步:写槽函数,mediaplay为类名,不同类需要修改这个类名,playtime为总时长
void Widget::getduration(qint64 playtime)
{
// 在这里获取duration(...)
playtime = player->duration();
}
经过以上两步就可以获得正确的时间啦。
以下再附上把获得的时间转化为时分秒的函数:
QString Widget::convertMillisecToString(qint64 millisec)
{
int h,m,s;
millisec /= 1000; //获得的时间是以毫秒为单位的
h = (int)millisec / 3600;
m = ((int)millisec - h*3600)/60;
s = (int)millisec - h*3600 - m*60;
//把int型转
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.