AVAssetReader
удивительно медленен при поиске.Если вы попытаетесь воссоздать AVAssetReader
для поиска, когда пользователь перетаскивает ползунок, ваше приложение поставит iOS на колени.
Вместо этого вам следует использовать AVAssetReader
для быстрого доступа только к видеокадры, а затем также используйте AVPlayerItem
и AVPlayerItemVideoOutput
, когда пользователь хочет искать с помощью ползунка.
Было бы хорошо, если бы Apple объединила AVAssetReader
и AVPlayerItem
/ AVPlayerItemVideoOutput
вновый класс, который был производительным и мог быстро искать.
Имейте в виду, что AVPlayerItemVideoOutput
не будет возвращать пиксельные буферы, если к AVPlayerItem
не присоединен AVPlayer
.Это, очевидно, странная деталь реализации, но это то, что есть.
Если вы используете AVPlayer
и AVPlayerLayer
, то вы можете просто использовать методы поиска для самого AVPlayer
.Приведенные выше сведения важны только в том случае, если вы выполняете пользовательский рендеринг с пиксельными буферами и / или хотите отправить пиксельные буферы в AVAssetWriter
.