我正在查看AVPlayer.timeControlStatus属性,播放器只有一个AVPlayerItem。
视频是托管在远程服务器上的mpeg4编码的10s视频文件:
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为什么这些值是不同的?
发布于 2020-01-25 04:03:43
当player.currentItem?.duration为0时,表示不确定,换句话说,您正在播放实况流。
我不确定,但player.currentItem?.asset.duration是用户可以使用滑块移动的总时间,它可以随着播放器缓冲的时间而变化
https://stackoverflow.com/questions/59878384
复制相似问题