Остановите воспроизведение видео из QMediaPlayer в позиции X - PullRequest
0 голосов
/ 26 ноября 2018

Я новичок в Qt, и я использую QMediaPlayer в одном из моих проектов с графическим интерфейсом, и я хочу остановить загруженное видео в определенной позиции X (ввод от пользователя при редактировании строки), как бы я мог это сделать?Я знаю, что могу установить начальную позицию, просто выполнив player-> setPosition (Y), где Y - целое число, но как насчет конечной позиции?

1 Ответ

0 голосов
/ 26 ноября 2018

Один меньший вариант будет использовать position(), который возвращает текущую позицию как qint64 - если вы вызываете метод play() для вашего QMediaPlayer, тогда используйте что-то вроде

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

он будет ждать, пока не будет достигнута позиция input.Но недостатком этого подхода является блокирующий цикл while, и, не зная предполагаемого приложения, я не знаю, будет ли это целесообразным.Вероятно, лучше использовать сигнал QMediaPlayer::positionChanged (который излучается на основе QMediaPlayer s 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 в слот checkPosition(), но я упустил это для простоты.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...