/**
@property duration
@abstract Indicates the duration of the item, not considering either its forwardPlaybackEndTime or reversePlaybackEndTime.
@discussion
This property is observable. The duration of an item can change dynamically during playback.
Unless you omit @"duration" from the array of asset keys you pass to +playerItemWithAsset:automaticallyLoadedAssetKeys: or
-initWithAsset:automaticallyLoadedAssetKeys:, the value of this property will accord with the properties of the underlying
AVAsset and the current state of playback once the receiver becomes ready to play.
Before the underlying duration has been loaded, the value of this property is kCMTimeIndefinite. Use key-value observation to
obtain a valid duration as soon as it becomes available. (Note that the value of duration may remain kCMTimeIndefinite,
e.g. for live streams.)
*/
@available(iOS 4.3, *)
open var duration: CMTime { get }
意思是要是想获取这个属性,AVPlayerItem必须使用这种初始化方式否则获取的都是nan
let asset = AVAsset.init(url: l)
print("总时长 \(asset.duration)")
let item = AVPlayerItem.init(asset: asset, automaticallyLoadedAssetKeys: ["\(asset.duration)"])