我是Qt的新手,并且正在我的一个GUI项目中使用QMediaPlayer,我想在某个位置X(从Line Edit上的用户输入)停止加载的视频,我该怎么做?我知道我可以通过设置player-> setPosition(Y)来设置起始位置,其中Y是整数,但是结束位置呢?
答案 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());
是接收器,并且this
和player
的范围都使得它们对插槽input
可用。 checkPosition()
看起来像
checkPosition()
当然,您也可以将 checkPosition() {
if (player.position() > input()) {
player.stop(); // Or player.pause();
}
}
和player
传递到input
插槽,但为简单起见,我忽略了它。希望这会有所帮助。