UI随手做的,有点简陋
先放效果图:

功能:实现了音量的进度条,播放进度条,播放暂停,停止,快进快退等等,并且界面可以跟随窗口缩放。(进度条可拖动控制视频、音频)
下面界面视频的功能:
1、播放

用mplayer的播放slave模式
slave模式:接受以“\n”结束的命令控制,这样就可以直接发送命令来控制mplayer
play功能核心代码:QStringList arg1;this->process=new QProcess;arg1 << fileName;arg1 << "-slave";arg1 << "-quiet"; //不打印播放信息arg1 << "-zoom"; //视频居中,四周黑条,全屏播放arg1 << "-wid" << QString::number((unsigned int)(ui->widget->winId()));// "-wid" 是指让MPlayer显示在哪个窗口,ui->widget->winId() 获取widget的标识码 connect(this->process,SIGNAL(readyReadStandardOutput()),this,SLOT(dataReceive()));this->process->start(“/bin/mlpayer”,arg1);   //调用mplayer。开始进程

2、实现快进后退的功能:

void MainWindow::backSlot()//后退
{this->process->write("seek -1 0\n");}
void MainWindow::forwardSlot()//快进
{this->process->write("seek +1 0\n");
}
其它的暂停、音量加减功能与此类似!具体看下面的mplayer常用命令调用

3、实现移动进度条控制播放位置,进度条通过Qslider套件实现

void MainWindow::on_horizontalSlider_sliderMoved(int position)
{this->process->write(QString("seek "+QString::number(position)+" 2\n").toUtf8());
}

后续再更新其它功能。

:mplayer的基本功能

get_audio_bitrate打印出当前文件音频比特率。get_audio_codec打印出的音频当前文件的编解码器的名称。get_audio_samples打印出的音频和当前文件的声道数。get_file_name打印出当前文件名。get_meta_album打印出当前文件的'专辑'的元数据。get_meta_artist打印出当前文件的'艺术家'的元数据。get_meta_comment打印出当前文件的'评论'的元数据。get_meta_genre打印出当前文件的'流派'的元数据。get_meta_title打印出当前文件的'标题'的元数据。get_meta_track打印出当前文件的'音轨的数量'的元数据。get_meta_year打印出当前文件的'年份'的元数据。get_percent_pos打印出文件中的当前位置为整数百分比[0-100)。get_property <property>打印出的属性的当前值。get_sub_visibility打印出字幕能见度(1 ==开启,0 ==关闭)。get_time_length打印出当前文件的长度用秒表示。get_time_pos打印出在文件的当前位置用秒表示,采用浮点数。get_vo_fullscreen全屏状态打印出来(1 == 全屏,0 ==窗口)。get_video_bitrate打印出当前文件的视频比特率。get_video_codec打印出当前视频文件的编解码器的名称。get_video_resolution打印出当前文件的视频分辨率。screenshot <value>截屏。要求屏幕过滤器加载。0以一个单独的截图。1启动/停止服用,每帧画面。gui_[about|loadfile|loadsubtitle|play|playlist|preferences|skinbrowser|stop]图形用户界面行动key_down_event <value>注入<value>到MPlayer的关键代码的事件。loadfile <file|url> <append>加载给定的文件/网址,停止当前文件的播放/网址。如果是<append>非零继续播放和文件/网址追加到当前播放列表代替。loadlist <file> <append>加载给定的播放列表文件,停止当前文件的播放。如果<append>是非零和继续播放文件,文件追加到当前播放列表。loop <value> [abs]调整/设置怎样的电影应该是循环多次。 -1代表不循环,永远的0。菜单命令>执行上显示OSD菜单命令。up 移动光标向上。down 移动光标向下。ok 接受的选择。cancel 取消选择。hide 隐藏的OSD菜单set_menu <menu_name>显示菜单命名<menu_name>。mute [value]切换声音输出静音或将其设置为[value](value>=0)(1 ==开启,0 ==关闭)。osd [level]切换OSD模式或将其设置为[level]在[level]>= 0。osd_show_property_text <string> [duration] [level]显示一项关于OSD扩展属性的字符串,看到-playing-msg 用于描述可用的扩展。如果[duration]>=0,显示为[duration]ms。 [level]设置所需的最低水平OSD该消息可见(默认是:0 -始终显示)。osd_show_text <string> [duration] [level]查看OSD的<string>。panscan <-1.0 - 1.0> | <0.0 - 1.0> <abs>增加或减少pan-and-scan的<value>的范围,1.0是最高的。负值降低pan-and-scan范围。如果<abs>!= 0,那么pan-and-scan范围被解释为绝对的范围。pause暂停/取消暂停播放。frame_step播放一帧,然后暂停。pt_step <value> [force]转到下一个/上的播放树项。标志的<value>讲述该方向。如果没有项目可在给定的方向不会做任何事,除非[force]不为零。pt_up_step <value>[force]类似pt_step,但跳转到下一个/父列表中的前一个项目。有助于摆脱在播放树内部循环。quit [value]退出MPlayer。可选的整数[value]的值作为返回代码为mplayer的进程(默认值:0)。radio_set_channel <channel>切换到<channel>。在‘channel’的广播参数需要设置。radio_set_freq <frequency in MHz>设置广播频率调谐器。radio_step_channel <-1|1>步向前(1)或向后(-1频道列表)。只有当'channel'的广播参数设置。radio_step_freq <value>调整频率的<value>(正数 - 向上,负数 - 向下)。seek <value> [type]定位电影的某些地方。0 是一个相对定位+/- <value>(默认值)。1 是定位<value>%在电影里。2 是寻求一个绝对位置的<value>秒。seek_chapter <value> [type]定位一章的开始。0 是一个相对寻求+/- <value>章节(默认)。1 定位到<value>章。switch_angle <value>转换ID为角度[value]。通过循环如果用角度[value]省略或负数。set_mouse_pos<X> <y>告诉MPlayer的窗口中鼠标坐标。此命令不移动鼠标!set_property <property> <value>设置属性。speed_incr <value>增加<value>当前回放速度。speed_mult <value>目前速度乘以<value>。speed_set <value>设定速度为<value>。step_property <property> [value] [direction]通过value来改变属性,或者,如果没给定或为0则增加默认值。如果小于零,方向是相反的方向。stop停止播放。

本人QT版本5.9.1
Ubuntu系统版本是16.04。
mplayer是直接通过apt-get install下载的。
·===============================
补充:mplayer版本我当时也没看是多少,很久之前做的,环境都没保留。所以现在无法查看了。
有部分人是使用没有问题的,遇到问题先测试下mplayer是否正常,QT是否正常,有可能是环境的问题,还有开发版和Linux系统是不一样的,移植到开发版的话一般是有不少问题的,得自己去慢慢调通。
·=====================================
现在时间是2020.06.18
我重新搞了个虚拟机搭了下环境,播放是正常的。
如果有播放不正常的话,可能是下面这个参数没改,改成mplayer的正确路径,一般在/usr/bin/。
还有图片加载问题,路径改下就行,因为是随手做出来的demo,所以没考虑路径的问题。

arg = "/bin/mplayer";


我的mplayer版本如下:

--------------------假装我是分割线-------------------------------
源码下载地址:https://download.csdn.net/download/weixin_38890593/11268907
源码里面已经做好相应的较为详细中文注释。
直接通过QT点击pro文件编译运行就OK了!

补下百度网盘链接:链接:https://pan.baidu.com/s/1Q1j7_0QIejluOOD-Ezd-qQ
提取码:jk0r
没想到有不少人下载,都要16积分一次了,囧!太多了,有需要的直接拿百度盘资源就行哈!

Linux 基于QT的mplayer视频播放器(实现进度条的拖动、播放列表等)相关推荐

  1. 基于QT的简陋视频播放器

    基于QT的简陋播放器 看图(恒简陋): 一.实现的功能 (1)进度条的实现(不可拖动,旁边的时间栏也没写): (2)播放.暂停.打开.关闭按钮的实现: (3)图中关闭按钮旁边的Label组件显示当前播 ...

  2. 【OpenCV+Qt】实现简易视频播放器——支持进度条拖动

    OpenCV实现视频播放器,其思路大致就是在线程中使用OpenCV中的VideoCapture循环读取本地视频的每一帧Mat,然后发送到界面转换成QImage进行显示,而进度条拖动则用到了VideoC ...

  3. 在linux下QT设计实现视频播放器

    通过QT对mplayer的应用,实现视频播放器的功能,包括开始播放.暂停播放.继续播放.终止播放.播放上一个.播放下一个.添加指定目录下的视频.删除指定视频.清空列表.应用到multimedia.mu ...

  4. linux下qt实现vlc视频播放器,Qt封装本地视频播放器(VLC二次开发)

    Qt本地视频播放器 1.使用vlc官方sdk封装,并在QLabel上面播放 2.首先到vlc官网下载vlc的sdk环境,下载地址:http://download.videolan.org/pub/vi ...

  5. Linux 基于ffplay的简易视频播放器(网络+本地)

    新手刚开始学习ffmpeg. 参考网上的ffmpeg资料和雷神的博客,简易做了个播放器,边学边做. 暂时未做音频,所以播放时有沙沙声. 视频的播放速度也有问题,需要再调整,后续再处理速度和音频的问题! ...

  6. 学习笔记(01):基于qt和ffmpeg视频播放器开发实战-avformat_open_input函数详解

    立即学习:https://edu.csdn.net/course/play/3300/157129?utm_source=blogtoedu

  7. alin的学习之路:嵌入式课程设计总结(基于Linux的Qt版MP3播放器)

    嵌入式课程设计总结(基于Linux的Qt版MP3播放器) 废话不多写直接上图上代码,其中有很多不规范的地方,希望大佬们指正. 1.课设题目 设计一个MP3播放器,要求:使用Linux下的madplay ...

  8. Qt+Mplayer视频播放器

    用到的工具: Qt5.5.1,msvc2012编译器,Mplayer on windows视频解码器,32位操作系统. 效果图: Qt控制Mplayer的slave模式,Qt负责貌美如花,Mplaye ...

  9. 基于QT实现Mp3播放器(代码部分)

    前言     最近有一个课程实验,利用window上的API接口实现MP3播放器. 突发奇想,在linux下用相关接口做一个MP3播放器.最先的打算是完全使用纯C写的,但后来感觉编写调试实在费劲.于是 ...

最新文章

  1. 命令行编译_新鲜货:C++ Build Insights告诉你为啥你的代码编译这么慢
  2. 【Flutter】Flutter Gallery 官方示例简介 ( 学习示例 | 邮件应用 | 零售应用 | 理财应用 | 旅行应用 | 新闻应用 | 自适应布局应用 )
  3. 优化算法-共轭梯度法
  4. 在CentOS7上安装RocketMQ 4.8.0
  5. ros android 方案,ros android_core学习笔记
  6. linux IP DNS 配置
  7. php 去除变态空格字符方法,空格trim不掉问题解决思路
  8. Android设计模式--之命令模式
  9. 设计模式——装饰模式和代理模式
  10. 重装系统后mac语言怎么改成中文?
  11. 190204每日一句
  12. 如何选择毕业设计的题目?
  13. 计算机为什么使用二进制编码,计算机为什么使用二进制
  14. 浮点型数据存储方式浅析
  15. 随笔随想-2022-06-07
  16. 使用 Let‘s Encrypt 为 Zimbra-8.8.15 安装可信任的SSL证书
  17. spring batch 3.0 scop job 问题记录
  18. 广州坐标系转换大地2000_市级2000国家大地坐标转换
  19. -bash: ifconfig: command not found
  20. plc和c语言谁的前景好,PLC面向对象编程和梯形图逻辑,到底谁更实用一些?

热门文章

  1. java计算里程_java_查找里程
  2. 串口、COM口、UART口, TTL、RS-232、RS-485区别详解
  3. 飞利浦Zoom!正式进入中国市场;西门子医疗首台发热门诊“无人”CT落地;埃森哲意向收购法国领先云服务提供商 | 美通企业周刊...
  4. Pytorch总结三之 softmax回归用于分类问题
  5. 曲线运动与万有引力公式_2019年全国各地物理高考分类汇编(5)曲线运动与万有引力定律...
  6. 哎,我要改行了!ChatGPT版Excel?动动嘴皮子就把表格改完了!
  7. 哈佛大学、麻省理工在金融科技教育领域进行了哪些探索?丨智谷星图金融科技教育研报...
  8. DevOps企业实践指南(8): 安全机制
  9. 高科技开始关注老年人的医疗卫生
  10. uva 10200 Prime Time