Qt编写Mplayer前端程序实例
创始人
2024-08-01 00:31:35
0

本文介绍Qt编写Mplayer前端程序实例,效果出来挺炫的。编写一个自己的mplayer前端程序,根据自己的喜好设计界面。是一件很不错的事情。

首先设计一个漂亮的界面,可以通过designer设计。

Qt编写Mplayer前端程序实例

通过定义一个QProcess对象调用已编译好的Mplayer。

  1. QProcess *process = new QProcess();  
  2. process->setProcessChannelMode(QProcess::MergedChannels);  
  3. Process->start(“mplayer –ac –mad xxxxx”); 

在命令中添加 -slave 和 -quiet就可以通过命令设置Mplayer实现相应的功能。在mplayer源码中的,slave.txt中对这些命令有详细的Process->start(“mplayer –slave –quiet –ac –mad xxxxx”);
 
1.暂停功能

通过如下代码可以设置Mplayer暂停。

  1. process->write(“pause\n”); 

执行这段代码的时候如果是播放状态就会暂停,暂停状态时就会继续播放。

2.获取播放文件的总时间和当前播放进度。

执行下面代码时,Mplayer将时间在标准输出显示。

  1. process->write(“get_time_pos\n”);  
  2.         process->write(“get_time_length\n”); 

通过如下代码即可读出我们需要的信息:

  1. connect(process,SIGNAL(readyReadStandardOutput()),this,SLOT(back_message_slots())); 

process有可读取的信息时,发出信号,在槽函数back_message_slots()中读取信息。

  1. void MPlayer::back_message_slots()  
  2.         {  
  3.                 while(process->canReadLine())  
  4.                 {  
  5.                         QString message(process->readLine());  
  6.                         //message即为读取的信息我们可以根据需要取我们要的信息如  
  7.                         //文件总时间为:ANS_LENGTH=23.00  
  8.                         //当前时间为:ANS_TIME_POSITION=23.00  
  9.                 }  
  10.         } 

3.快进功能

  1. seek  [type]  
  2.         Seek to some place in the movie  
  3.                 0 is a relative seek of +/-  seconds (default).  
  4.                 1 is a seek to  % in the movie.  
  5.                 2 is a seek to an absolute position of  seconds. 

下面代码即可实现快进功能:

  1. process->write(“seek ** 1\n”); 

4.音量调节

  1. volume  [abs]  
  2.         Increase/decrease volume or set it to  if [abs] is nonzero.  
  3. 下面代码即可实现快进功能:  
  4. Process->write(“volume -1\n”); //音量减小  
  5.         Process->write(“volume +1\n”); //音量增加 

5.静音功能

  1.  mute [value]  
  2.         Toggle sound output muting or set it to [value] when [value] >= 0  
  3.         (1 == on, 0 == off).  
  4. 下面代码即可实现快进功能:  
  5. process->write(“mute 0\n”); //开启静音  
  6.         process->write(“mute 1\n”); //关闭静音 

6.定位视频窗口

通过上面的代码基本功能实现了,可是播放视频的时候发现又弹出一个窗口。并没有出现在我们的窗口里。

如下代码即可时间窗口的定位。

  1. process->start(common); 

红色部分实现串口的定位。Widget是一个QWidget对象。通过winId可以获得一个数字,-wid既将视频输出定位到widget窗体部件中。

注意:-wid参数只在X11、directX和OpenGL中适用。

下面便是效果图:

Qt编写Mplayer前端程序实例 

Qt编写Mplayer前端程序实例

小结:Qt编写Mplayer前端程序实例内容介绍完了,是不是效果很好呀?这里只是实现了一些基本的功能,如果需要的话可以参考Mplayer中文档添加需要的功能。如果您喜欢这篇文章,可以加华清远见老师为好友,单击以下链接即可:http://student.csdn.net/invite.php?u=45153&c=8af704eb3cd8e773

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...