У меня есть приложение для iOS, которое воспроизводит видео из потока HTTP Live "playlist.m3u8", и у меня есть пользовательский проигрыватель, созданный с использованием AVPlayer.Чтобы справиться с обычными пользовательскими взаимодействиями, такими как очистка, мне нужно получить продолжительность видео, но по какой-то причине на iOS 4.3 с использованием xcode 4.0, когда я вызываю следующий код, я получаю CMTime, который при преобразовании в секунды дает NaN - я знаючто он делает, потому что CMTimeValue = 0 и CMTimeScale = 0, что дает NaN и CMTimeFlags = 17, что еще более странно.
Вот код, который я использую, который совсем не сложен:
AVPlayerItem *pItem = mPlayer.currentItem;
AVAsset* asset = pItem.asset;
CMTime d = asset.duration;
double duration = CMTimeGetSeconds(asset.duration);
Я также должен упомянуть, что я проверяю состояние загрузки списка воспроизведения, чтобы убедиться, что он готов, прежде чем начать играть / чистить:
[mPlayer addObserver:self forKeyPath:@"currentItem.status" options:0 context:VideoPlaybackViewDelegateStatusContext];
Спасибо за любую помощь по этим вопросам, которую может предоставить любой.