Как получить плавное высокоскоростное воспроизведение с AVPlayer?
AVPlayer
имеет свойство под названиемrate
это предназначено для контроля скорости воспроизведения.1.0
нормальная скорость, в то время как значения как2.0
или же5.0
следует воспроизводить в 2x и 5x соответственно.
Всякий раз, когда я устанавливаю значение скорости воспроизведения выше, чем1.0
(сказать10.0
), воспроизведение очень прерывистое, и похоже, что большое количество кадров сбрасывается, так как плеер не может идти в ногу.
Однако те же значения в QuickTime Player (с тем же фильмом) обеспечивают плавное воспроизведение для скоростей2x, 5x, 10x, 30x and 60x
(как сообщает QuickTime Player).
Я создал тестовое приложение OS X, которое не содержит ничего, кромеAVPlayerView
и две кнопки для настройки скорости воспроизведения. Скорость1.0
работает как положено, но скорость10.0
производит очень прерывистое воспроизведение.
Тем не менееAVPlayerView
имеет странную причуду в том, что если вы щелкнете мышью по временной шкале воспроизведения для поиска в другом месте (пока он воспроизводится с 10-кратной скоростью), тоAVPlayerView
"исправит" воспроизведение, и фильм будет воспроизводиться плавно при 10x. Все, что нужно, это щелкнуть по шкале времени воспроизведения.
Кто-нибудь знает, как получить плавное воспроизведение на скорости, отличной от 1х? Это, очевидно, не аппаратная проблема или проблема размера файла, потому что QuickTime Player и AVPlayerView могут это сделать.
попытки
этовопрос предполагает, что это может быть проблема со звуком (и на самом деле и проигрыватель QuickTime Player, и AVPlayerView отключают звук при пересылке), но все попытки с моей стороны либо отключить все звуковые дорожки, отключить звук всех дорожек или изменить алгоритм подачи звука, похоже, не приводили к разница. Воспроизведение было нестабильным, даже когда не было звука.
Я также попытался остановить воспроизведение, а затем позвонивprerollAtRate:completionHandler
с новой скоростью, но это тоже не имеет значения.
Что делают QuickTime Player и AVPlayerView, что обеспечивает плавное воспроизведение фильмов со скоростью 10x, 30x или даже 60x?