gpt4 book ai didi

ios - 将 CMTime 值转换为 swift

转载 作者:行者123 更新时间:2023-11-28 10:37:20 30 4
gpt4 key购买 nike

我有以下 2 行代码正在迁移到 Swift,但我有点卡住了。

CMTime trimmingTime = CMTimeMake(lround(videoAsset.naturalTimeScale / videoAsset.nominalFrameRate), videoAsset.naturalTimeScale);
CMTimeRange timeRange = CMTimeRangeMake(trimmingTime, CMTimeSubtract(videoAsset.timeRange.duration, trimmingTime));

将以下行转换为开头时出现以下错误。

var trimmingTime: CMTime
trimmingTime = CMTimeMake(value: lround(videoAsset.naturalTimeScale / videoAsset.nominalFrameRate), timescale: videoAsset.naturalTimeScale)

Binary operator '/' cannot be applied to operands of type 'CMTimeScale' (aka 'Int32') and 'Float'

我尝试了几种不同的方法,但似乎没有任何效果。

最佳答案

您不能像其他语言那样简单地在 swift 中对不同类型的操作数执行数学运算。您需要手动进行类型转换。

在这里,您应该将 videoAsset.naturalTimeScale(即 CMTimeScale 并且 CMTimeScale 的类型为 Int32)转换为 Float 以使其工作。

Float(videoAsset.naturalTimeScale)

但是 CMTimeMake 的值键将接受值 CMTimeValue 类型的值。所以像这样使用它:

trimmingTime = CMTimeMake(value: CMTimeValue(Float(videoAsset.naturalTimeScale) / videoAsset.nominalFrameRate), timescale: videoAsset.naturalTimeScale)

再次让你的代码更敏捷使用 CMTime 而不是 CMTimeMake 作为:

trimmingTime = CMTime(value: CMTimeValue(Float(videoAsset.naturalTimeScale) / videoAsset.nominalFrameRate), timescale: videoAsset.naturalTimeScale)

关于ios - 将 CMTime 值转换为 swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52736734/

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