无法将 Swift CMTimeRange 转换为 Float 或获取数字?

Cant convert Swift CMTimeRange to Float or get the number?

我有一个数据类型问题 - Swift 中的 AVPlayer 在我尝试获取时得到了一个 CMTimeRange:

AudioPlayerManager.shared.currentTrack?.playerItem?.loadedTimeRanges[0]

打印出来的是:

Optional(CMTimeRange: {{0/1 = 0.000}, {1016722/600 = 1694.537, rounded}})

我已经尝试了所有成员并尝试在此处获取 cmtimerange 键的值,但我只是遇到错误。我需要 1694 作为浮点数的最终值。

我该怎么做?

A CMTimeRange 就是一个时间范围。它具有 startendduration 属性。其中每一个都是 CMTimeCMTime 有一个 seconds 属性 作为一个 Double.

if let range = AudioPlayerManager.shared.currentTrack?.playerItem?.loadedTimeRanges[0] {
    let seconds = Float(range.duration.seconds)
}

这将为您提供 Float 的秒数。如果您需要,请将 duration 更改为 end