社区
其它技术问题
帖子详情
QT里面的QMediaPlayer播放视频有声音没画面是什么原因?
初槿桴年
2017-09-09 10:35:45
源码编译出来也是这样,别人编译就有画面,求大神来个详细解答,不胜感激
...全文
1007
1
打赏
收藏
QT里面的QMediaPlayer播放视频有声音没画面是什么原因?
源码编译出来也是这样,别人编译就有画面,求大神来个详细解答,不胜感激
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
其实我也恋长安
2018-05-26
打赏
举报
回复
需要解码器吧
基于Q
MediaPlayer
的简易视频播放器
一个基于
Qt
中Q
MediaPlayer
类编写的简易视频播放器,通过重写的QSlider类进行播放进度和音量控制。 如果出现有
声音
无
画面
现象,建议安装K-Lite之类的解码器。
VS2015+
Qt
5.7同一张背景中两个
画面
循环
播放视频
一个视频可以循环播放,多个视频也可以在列表中按照顺序自动播放,由此可以拓展,按钮点击,通过信号槽机制来实现视频播放。还可以设置视频播放窗口的大小等
Qt
音视频开发实战
课程摘要1
Qt
音视频开发实战 是陈超老师用10年以上音视频一线实战开发经验,四年音视频开发教学经验打造的
Qt
音视频开发课程。2
Qt
音视频开发实战以
Qt
c++开发为中心。所有课程全部围绕
Qt
音视频开发展开。3 非常适合那些只做
Qt
开发的工程师来学习,学习更容易一些。学习目标,培养高级
Qt
音视频开发工程师.4
Qt
音视频开发实战适合那些掌握
Qt
基础开发,初级开发工程师,月薪在20k以下,通过学习,达到更高薪水的
Qt
高级开发工程师。 课程优势1 老师过去15年+ 音视频,网络通讯,数字图像处理一线实战经验。过去四年积累了丰富的音视频开发教学经验,学员从年薪30w~50w,就职于腾讯,阿里等各大互联网公司。2 老师10多年
Qt
开发经验,长期大量使用
Qt
开发项目,国内最早一批使用
Qt
的程序员。3 QQ 一对一教学指导,阶段性作业案例小项目指导,就业面试指导。 课程内容1
Qt
核心基础加强。对于那些学了很多年
Qt
开发而不得要领的学员非常友好。2 音视频开发基础。音视频原理,RGB YUV, 音频原理。图像压缩编码,音频压缩编码,H.264压缩,H.264编码原理 I P B SPS PPS解析, 视频存储容器,mp4 , AAC.
Qt
音频视频采集,FFmpeg编码,解码,x264编码,AAC编码。mp3编码。格式转换。视频播放器内核。图像渲染。3 OpenGL数字图像处理基础。OpenGL基础,渲染管线,shader编程。滤镜,美颜,后期处理。编写渲染引擎。4 网络socket通讯编程,自定义私有协议。TCP/UDP音视频传输。 学员要求1 熟悉c/c++,掌握
Qt
基本控件,类基础。2 每天学习两小时,学习周期3~5个月,做完练习,小项目。
用
qt
编写的视频播放器,精致小巧好用,上班摸鱼必备
qt
Creator4.11.1,
qt
版本5.14.1,系统win10 1.基于
qt
自带的Q
MediaPlayer
和QVideoWidget类编写 2.有暂停播放功能、视频进度条拉动功能,最大化、最小化、还原功能 3.按住界面上、下、左、右、右下的边界,可实现拉伸缩放软件窗口,窗口最小可缩小致100*100像素。 4.无论当前界面是最大化还是正常大小,若鼠标不在窗口内,可自动隐藏标题栏,进度条,播放暂停等所有界面按钮,实现整个界面只有视频
画面
,
没
有任何影响观影的按钮等控件! 注意!请在编译运行本程序前,安装K-Lite解码器(资源压缩包内就有),因为
qt
自带的Q
MediaPlayer
类是基于本地解码器来解码播放视屏的,如果不安装解码器,会出现视频无法播放或者播放时卡顿花屏等问题!!!
福优林@
Qt
5小白变大牛初级篇word---第14章.pdf
Qt
视频播放器
Qt
对音视频的播放和控制、相机拍摄、收音机等多媒体应用提供了强大的支持。
Qt
5使用了全新的
Qt
Multimedia模块来实现多媒体应用,
Qt
4中用来实现多媒体功能的Phonon模块已经被移除。 新的
Qt
Multimedia模块提供了丰富的接口,可以轻松地使用平台的多媒体功能。例如进行媒体播放、使用相机和收音机等。 Q
MediaPlayer
简介 Q
MediaPlayer
播放视频
要在界面上显示出来,还需要其他类进行辅助,比如QVideoWidget类。:编解码 QVideoWidget继承自QWidget,所有它可以作为一个普通窗口部件进行显示,也可以嵌入到其他窗口。:播放窗口 将QVideoWidget指定为Q
MediaPlayer
的视频输出窗口后,就可以显示播放的视频
画面
。 二者组合,可以
播放视频
: player = new Q
MediaPlayer
; videoWidget = new QVideoWidget; player->setVideoOutput(videoWidget); videoWidget->show(); player->play(); QVideoWidget简介 QvideoWidget是一个用来展示视频的类,需要先定义一个Q
MediaPlayer
对象,然后将Q
MediaPlayer
的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: 无法打开包括文件:“Q
MediaPlayer
” 解决:
QT
+= multimedia multimediawidgets 如何获取duration
QT
关于Q
Mediaplayer
的duration()获取的音视频时间长度为0的问题。 在
QT
中,使用Q
Mediaplayer
类可以很方便地实现视频的播放,而在Q
Mediaplayer
类中有个duration函数可以直接获取所打开视频的总时间长度。 但使用后你会发现duration()返回的居然是个0。 官方解释: The value may change across the life time of the Q
MediaPlayer
object and may not be available when initial playback begins, connect to the durationChanged() signal to receive status notifications. 在初始回放开始时可能不可用,请连接durationChanged()信号以接收状态通知。 即我们只需要写个槽函数,在槽函数
里面
调用duration()就可以接收到正确的时间 例: //第一步:连接槽函数,信号为Q
MediaPlayer
自带的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型转化为string类型 QString strFormat = QString("%1:%2:%3") .arg(h,2,10,QChar('0')) .arg(m,2,10,QChar('0')) .arg(s,2,10,QChar('0')); return strFormat; } 双击全屏显示
其它技术问题
3,881
社区成员
9,054
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章