AVPlayer гладкий seekToTime
Есть ли способ плавно искать воспроизведение в какой-то позиции?
Другими словами, представьте, что какой-то трек воспроизводится в 0:53, и мне нужно, чтобы он воспроизводился в 0:58 через 2 секунды. Поэтому мне нужно плавно увеличивать скорость (например, используя функции замедления в анимации) и плавно уменьшать скорость, когда время воспроизведения почти равно 0:58. (это должно звучать как эффект перемотки)
Простой метод seekToTime не является опцией, поскольку он просто переходит в позицию.
Вот иллюстрация:
two________________________seconds_________________________to_seek
0:53 __________________________________________________________ 0:58
| ____________ ↑ _________ | __________ = _________ | __________ __________ ↓ |
ставка =1______smoothly_rate=2,0_______________smoothly_rate=1_____ ставка = 1
Я уже пытался использовать методы замедления для плавного повышения ставки, но похоже, что это невозможно - значение ставки сразу меняется до желаемого значения без ослабления.
По крайней мере, я знаю, что это действительно возможно. Вы можете попробовать приложение Ampme из Appstore. Они воспроизводят музыку синхронно на разных устройствах, и если на одном из устройств имеется некоторая задержка (буферизация и т. Д.), Воспроизведение воспроизводится плавно, корректно, без скачков.
В настоящее время я использую setRate: time: atHostTime: метод, и я думаю, что это правильный путь, но я не могу заставить его работать плавно.