【发布时间】:2026-01-03 11:20:07
【问题描述】:
我正在 KVO-ing 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
为什么这些值不同?
【问题讨论】:
标签: ios avplayer avplayeritem