Swift: addPeriodicTimeObserverForInterval for AVAudioPlayer(SWIFT:用于AVAudioPlayer的addPeriodicTimeObserverForInterval)
问题描述
我仍在努力寻找一种方法,当AVAudioPlayer音乐文件在特定的时间命中时,您可以调用操作。
我知道我可以使用AVPlayer类中的addPeriodicTimeObserverForInterval方法,但是我不想使用AVPlayer,因为它不使用playing()、stop()、numberOfLoops等方法,因为我当前正在使用它们
AVAudioPlayer使用的替代方法?如果是,当AVAudioPlayer到20秒时,我将如何操作。
推荐答案
我认为您的选择是切换到使用AVPlayer,或者使用NSTimer,如上面的Ashish或其他方法所建议的那样"伪造"它。
NSTimer的精确度不会超过1/50秒(它们在主线程上运行,并且仅在您的应用访问Run循环时触发)。
您可以尝试注册AVAudioPlayer的currentTime属性的KVO通知,然后检测特定秒内的时间。
KVO通知可能会占用大量的CPU,甚至可能导致音频播放卡顿,因为每次音频播放器更改currentTime属性时都会触发KVO通知,即使是每1000秒触发一次。
如果您只需要一秒内的分辨率,并且不一定要精确,那么NSTmer就是您的选择。
这篇关于SWIFT:用于AVAudioPlayer的addPeriodicTimeObserverForInterval的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:SWIFT:用于AVAudioPlayer的addPeriodicTimeObserverForInterval
基础教程推荐
- navigator.geolocation.getCurrentPosition 在 Android 浏览器上 2022-01-01
- 如何从 logcat 中删除旧数据? 2022-01-01
- iPhone - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法 2022-01-01
- iOS4 创建后台定时器 2022-01-01
- NSString intValue 不能用于检索电话号码 2022-01-01
- 通过重定向链接在 Google Play 中打开应用 2022-01-01
- Android:getLastKnownLocation(LocationManager.NETWORK_PROVIDER 2022-01-01
- libGDX 从精灵或纹理中获取像素颜色 2022-01-01
- Cocos2d iPhone 非矩形精灵触摸检测 2022-01-01
- AdMob 广告未在模拟器中显示 2022-01-01
