Я KVO-свойство AVPlayer.timeControlStatus
, проигрыватель имеет один AVPlayerItem
.
Видео представляет собой кодированный mpeg4
видеофайл 10 с, размещенный на удаленном сервере:
let asset = AVURLAsset(url: url, options: [AVURLAssetPreferPreciseDurationAndTimingKey: true])
let item = AVPlayerItem(asset: asset)
let player = AVQueuePlayer()
player.actionAtItemEnd = .pause
player.automaticallyWaitsToMinimizeStalling = false
player.insert(item, after: nil)
Когда свойство впервые меняется на .playing
, я смотрю значения продолжительности в консоли отладки:
(lldb) po player.currentItem?.asset.duration
▿ Optional<CMTime>
▿ some : CMTime
- value : 1281
- timescale : 600
▿ flags : CMTimeFlags
- rawValue : 1
- epoch : 0
(lldb) po player.currentItem?.duration
▿ Optional<CMTime>
▿ some : CMTime
- value : 0
- timescale : 0
▿ flags : CMTimeFlags
- rawValue : 17
- epoch : 0
Почему эти значения отличаются?