Qt调用mplayer

过定义一个QProcess对象调用已编译好的Mplayer。</p>
 <p>  QProcess *process = new QProcess();</p>
 <p>  process-&gt;setProcessChannelMode(QProcess::MergedChannels);</p>
 <p>  Process-&gt;start(&#8220;mplayer &#8211;ac &#8211;mad xxxxx&#8221;);</p>
 <p>  在命令中添加 -slave 和 -quiet就可以通过命令设置Mplayer实现相应的功能。在mplayer源码中的,slave.txt中对这些命令有详细的</p>
 <p>  Process-&gt;start(&#8220;mplayer &#8211;slave &#8211;quiet &#8211;ac &#8211;mad xxxxx&#8221;);</p>
 <p>  1.暂停功能</p>
 <p>  通过如下代码可以设置Mplayer暂停。</p>
 <p>  process-&gt;write(&#8220;pause\n&#8221;);</p>
 <p>  执行这段代码的时候如果是播放状态就会暂停,暂停状态时就会继续播放。</p>
 <p>  2.获取播放文件的总时间和当前播放进度。</p>
 <p>  执行下面代码时,Mplayer将时间在标准输出显示。</p>
 <p>  process-&gt;write("get_time_pos\n");</p>
 <p>  process-&gt;write("get_time_length\n");</p>
 <p>  通过如下代码即可读出我们需要的信息:</p>
 <p>  connect(process,SIGNAL(readyReadStandardOutput()),this,SLOT(back_message_slots()));</p>
 <p>  process有可读取的信息时,发出信号,在槽函数back_message_slots()中读取信息。</p>
 <p>  void MPlayer::back_message_slots()</p>
 <p>  {</p>
 <p>  while(process-&gt;canReadLine())</p>
 <p>  {</p>
 <p>  QString message(process-&gt;readLine());</p>
 <p>  //message即为读取的信息我们可以根据需要取我们要的信息如</p>
 <p>  //文件总时间为:ANS_LENGTH=23.00</p>
 <p>  //当前时间为:ANS_TIME_POSITION=23.00</p>
 <p>  }</p>
 <p>  }</p>
 <p>  3.快进功能</p>
 <p>  seek &lt;value&gt; [type]</p>
 <p>  Seek to some place in the movie</p>
 <p>  0 is a relative seek of +/- &lt;value&gt; seconds (default).</p>
 <p>  1 is a seek to &lt;value&gt; % in the movie.</p>
 <p>  2 is a seek to an absolute position of &lt;value&gt; seconds.</p>
 <p>  下面代码即可实现快进功能:</p>
 <p>  process-&gt;write(&#8220;seek ** 1\n&#8221;);</p>
 <p>  4.音量调节</p>
 <p>  volume &lt;value&gt; [abs]</p>
 <p>  Increase/decrease volume or set it to &lt;value&gt; if [abs] is nonzero.</p>
 <p>  下面代码即可实现快进功能:</p>
 <p>  Process-&gt;write(&#8220;volume -1\n&#8221;); //音量减小</p>
 <p>  Process-&gt;write(&#8220;volume +1\n&#8221;); //音量增加</p>
 <p>  5.静音功能</p>
 <p>  mute [value]</p>
 <p>  Toggle sound output muting or set it to [value] when [value] &gt;= 0</p>
 <p>  (1 == on, 0 == off).</p>
 <p>  下面代码即可实现快进功能:</p>
 <p>  process-&gt;write("mute 0\n"); //开启静音</p>
 <p>  process-&gt;write("mute 1\n"); //关闭静音</p>
 <p>  6.定位视频窗口</p>
 <p>  通过上面的代码基本功能实现了,可是播放视频的时候发现又弹出一个窗口。并没有出现在我们的窗口里。</p>
 <p>  如下代码即可时间窗口的定位。</p>
 <p>  QString common = "mplayer -slave -quiet -ac mad -zoom movie/" + file_name + " -wid " + QString::number(widget-&gt;winId());</p>
 <p>  process-&gt;start(common);</p>
 <p>  红色部分实现串口的定位。Widget是一个QWidget对象。通过winId可以获得一个数字,-wid既将视频输出定位到widget窗体部件中。</p>
 <p>  注意:-wid参数只在X11、directX和OpenGL中适用。</p>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值