Я инициализирую AVPlayerItem
, и он принимает параметр automaticallyLoadedAssetKeys
, который указывает, какие AVAsset
клавиши необходимо загрузить, прежде чем он будет помечен как «готовый к игре».
Я видел примеры людей, передавших свойство duration
в качестве одного из этих ключей.
Но затем в документации для AVPlayerItem
говорится о свойстве duration
и о том, как убедиться, что оно допустимо.
Значение этого свойства будет сообщаться как kCMTimeIndefinite до тех пор, пока не будет загружена продолжительность базового актива. Есть два способа обеспечить доступ к значению продолжительности только после того, как оно станет доступным:
Подождите, пока
status
элемента игрока не станетreadyToPlay
Другой способ — зарегистрировать KVO, и это нормально. Но этот первый комментарий указывает мне, что мне не нужно просить, чтобы duration
загружался автоматически, потому что это уже должно быть. (?)
Если это правда, то я не могу понять, зачем кому-то передавать duration
в качестве флага для автоматической загрузки, потому что похоже, что это так. Я что-то упустил здесь?