SWIFT:用于AVAudioPlayer的addPeriodicTimeObserverForInterval [英] Swift: addPeriodicTimeObserverForInterval for AVAudioPlayer

查看:38
本文介绍了SWIFT:用于AVAudioPlayer的addPeriodicTimeObserverForInterval的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我仍在努力寻找一种方法,当AVAudioPlayer音乐文件在特定的时间命中时,您可以调用操作。

我知道我可以使用AVPlayer类中的addPeriodicTimeObserverForInterval方法,但是我不想使用AVPlayer,因为它不使用playing()stop()numberOfLoops等方法,因为我当前正在使用它们

是否有AVAudioPlayer使用的替代方法?如果是,当AVAudioPlayer到20秒时,我将如何操作。

推荐答案

我认为您的选择是切换到使用AVPlayer,或者使用NSTimer,如上面的Ashish或其他方法所建议的那样"伪造"它。

NSTimer的精确度不会超过1/50秒(它们在主线程上运行,并且仅在您的应用访问Run循环时触发)。

您可以尝试注册AVAudioPlayercurrentTime属性的KVO通知,然后检测特定秒内的时间。

KVO通知可能会占用大量的CPU,甚至可能导致音频播放卡顿,因为每次音频播放器更改currentTime属性时都会触发KVO通知,即使是每1000秒触发一次。

如果您只需要一秒内的分辨率,并且不一定要精确,那么NSTmer就是您的选择。

这篇关于SWIFT:用于AVAudioPlayer的addPeriodicTimeObserverForInterval的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆