3

我播放音乐AVAudioPlayer并想显示剩余时间。似乎很多人建议使用每秒触发一次的 NSTimer,但我担心这效率低下且容易出错。由于NSTimer不是非常精确的时间(我听说过),可能是计时器在音频的同一秒内触发两次,然后倒计时跳过一秒。这也是一个拉模型。

有没有一种更精明的方法可以在AVAudioPlayer每秒钟滴答作响时调用我的倒计时?

4

2 回答 2

1

虽然 NSTimer 是半不准确的,但您仍然可以让它每隔一秒左右调用一次,并从currentTime歌曲的属性中获取信息,并将其与duration属性进行比较。从中您可以计算剩余时间等。

AVAudioPlayer 文档

于 2013-07-15T12:43:09.227 回答
0

播放音频文件时,没有可用于帮助您更新时间显示的回调。NSTimer 方法是应该怎么做的。如果您担心由于 NSTimer 触发精度而导致显示不准确,只需减少计时器的更新间隔即可。在您的实现中保持工作负载轻,并将间隔设置为 500 毫秒,或者可能是 250 毫秒......

于 2013-07-15T13:11:50.200 回答