在位置X停止从QMediaPlayer播放视频

时间:2018-11-26 03:19:49

标签: c++ qt

我是Qt的新手,并且正在我的一个GUI项目中使用QMediaPlayer,我想在某个位置X(从Line Edit上的用户输入)停止加载的视频,我该怎么做?我知道我可以通过设置player-> setPosition(Y)来设置起始位置,其中Y是整数,但是结束位置呢?

1 个答案:

答案 0 :(得分:1)

一个较小的选择是使用position(),它以qint64的形式返回当前位置-如果您为play()调用QMediaPlayer方法,则使用类似< / p>

  while (player.position() < input) {}
  player.stop();     // Or player.pause();

它将等待直到到达input位置。但是这种方法的缺点是阻塞while循环,并且不知道目标应用程序,我不知道这样是否合适。最好使用QMediaPlayer::positionChanged信号(基于QMediaPlayer的{​​{1}}发出),类似

notifyInterval

假设 connect(player, SIGNAL(positionChanged(qint64)), this, SLOT(checkPosition()); 是接收器,并且thisplayer的范围都使得它们对插槽input可用。 checkPosition()看起来像

checkPosition()

当然,您也可以将 checkPosition() { if (player.position() > input()) { player.stop(); // Or player.pause(); } } player传递到input插槽,但为简单起见,我忽略了它。希望这会有所帮助。