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: метод, и я думаю, что это правильный путь, но я не могу заставить его работать плавно.

0 ответов

Другие вопросы по тегам