定时器循环AVFoundtion出错

时间:2017-02-01 22:06:02

标签: swift avfoundation

我正在使用下面的代码,它使用计时器每秒执行一次。

我用它来更新音乐播放器应用程序中已用时间的标签。

但是我发生了一个错误,它给出了一个带有以下行的回溯:

  

CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION

     

停止原因= EXC_BREAKPOINT

禁用所有断点。

为什么会出现此错误?

func updateTime() {
    // more code above

    let length = Int64((player.currentItem?.duration.value)!) / Int64((player.currentItem?.duration.timescale)!)

    // more code below
}

1 个答案:

答案 0 :(得分:1)

可以通过强行展开nil可选项来触发错误。此外,还有用于处理CMTime结构的辅助函数。

尝试以下方法:

guard let duration = player.currentItem?.duration else {
    return
}
let length = CMTimeGetSeconds(duration)