gpt4 book ai didi

ios - AVPlayerItem.duration 和 AVPlayerItem.asset.duration 有什么区别?

转载 作者:行者123 更新时间:2023-11-29 05:08:52 27 4
gpt4 key购买 nike

我对 AVPlayer.timeControlStatus 属性进行 KVO 处理,播放器有一个 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

为什么这些值不同?

最佳答案

player.currentItem?.duration为0时表示无限期,换句话说,您正在播放直播。

我不确定,但是 player.currentItem?.asset.duration 是用户可以使用 slider 移动的总时间,这可能会随着播放器缓冲的时间而变化

关于ios - AVPlayerItem.duration 和 AVPlayerItem.asset.duration 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59878384/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com