Используя AVPlayer для iPhone, SeekToTime перезапускает только видео для меня - PullRequest
1 голос
/ 13 июня 2011

Я пытаюсь получить довольно короткое видео (0,05 секунды) для воспроизведения от 0,02 секунды. Я использую код ниже:

CMTime tolerance = CMTimeMake(0,1);
CMTime replayBeginTime = CMTimeMake(1, 50);

[player seekToTime: replayBeginTime toleranceBefore: tolerance toleranceAfter: tolerance];
[player play];

Где игрок AVPlayer *. Видео воспроизводится нормально от начала до конца, а затем я нажимаю кнопку, чтобы вернуться примерно к половине промежуточной точки, и оно должно воспроизводиться оттуда, но каждый раз, когда оно просто перезапускает видео.

Я не уверен на 100%, что правильно использую CMTimeMake.

Любая помощь в выяснении того, что я делаю неправильно, будет высоко ценится.

1 Ответ

6 голосов
/ 11 июля 2011

Вы создаете CMTime со значением 1/50 = 0,02, поэтому вы правильно используете CMTimeMake. Но я думаю, что, возможно, вы должны использовать CMTimeMakeWithSeconds вместо этого. Поскольку CMTimeMake может принимать только целочисленное значение секунд, тогда как CMTimeMakeWithSeconds может принимать значение с плавающей запятой. Вы должны использовать это так.

CMTime newTime = CMTimeMakeWithSeconds(0.2, 1);
[player seekToTime:newTime];

Удачи.

...