【发布时间】:2017-06-01 12:48:51
【问题描述】:
我是 swift 新手,我正在 swift 3.0 中开发一个项目,我有一个 UISlider 可以拖动。一旦我拖动它,我就会收到以下崩溃消息:“双值无法转换为 Int64,因为它要么是无限的要么是 NaN”。我的代码如下。我将如何克服这个错误?崩溃的行是“let seekTime = CMTime(value: Int64(val), timescale: 1)”...
@IBAction func sliderValueChanged(_ sender: UISlider) {
if let duration = player?.currentItem?.duration {
let totalsecs = CMTimeGetSeconds(duration)
print("Durtion :",totalsecs)
let val = Float64(sender.value) * totalsecs
let totalduration = CMTimeGetSeconds(duration) as Float64
if(val != totalduration){
let seekTime = CMTime(value: Int64(val), timescale: 1)
player?.seek(to: seekTime, completionHandler: { (completedSeek) in
})
}else{
print("Slider dragged error")
}
}
}
【问题讨论】:
-
您的打印语句输出什么 - “持续时间...”?为什么不打印 sender.value、Float64(sender.value) 和 totalsecs 呢?一旦你可以看到所有的值,可能会很明显......
-
持续时间为 nan
-
您是否查看了
currentitem.duration nan的 Google 点击次数?