【发布时间】:2018-05-07 10:08:21
【问题描述】:
我正在使用 Timer() 来指示音频播放器中的当前音频位置
func startTimer() {
print("PlayerController: startTimer()")
if itemPlayTimer != nil {
return
}
itemPlayTimer = Timer.scheduledTimer(timeInterval: 0.001,
target: self,
selector: #selector(updateItemPlayerTimer),
userInfo: nil,
repeats: true)
}
@objc func updateItemPlayerTimer() {
guard let currentTime = player?.currentTime else {
return
}
updateTimeDescription?(currentTime)
}
当用户暂停播放器应用使计时器失效时
func stopTimer() {
itemPlayTimer?.invalidate()
itemPlayTimer = nil
}
但是在再次调用 startTimer() 之后选择器不会调用
【问题讨论】:
-
试试这个,Timer(timeInterval: 0.001, target: self, selector: #selector(updateItemPlayerTimer), userInfo: nil, repeats: true)
-
尝试将时间从 0.001 增加到 0.1
-
还是不行。第二次调用 startTimer() 方法,定时器启动,但选择器没有调用
-
什么时候再次调用启动计时器?并检查您的播放器?当第二次选择器触发时,currentTime 是否为零
-
检查此答案以正确实施计时器stackoverflow.com/a/34509335/7698092