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
- 如何检查发送到 Android 应用程序的 Firebase 消息的传递状态? 2022-01-01
- 使用自定义动画时在 iOS9 上忽略 edgesForExtendedLayout 2022-01-01
- Android viewpager检测滑动超出范围 2022-01-01
- MalformedJsonException:在第1行第1列路径中使用JsonReader.setLenient(True)接受格式错误的JSON 2022-01-01
- Android - 我如何找出用户有多少未读电子邮件? 2022-01-01
- 用 Swift 实现 UITextFieldDelegate 2022-01-01
- 在测试浓缩咖啡时,Android设备不会在屏幕上启动活动 2022-01-01
- 想使用ViewPager,无法识别android.support.*? 2022-01-01
- Android - 拆分 Drawable 2022-01-01
- android 4中的android RadioButton问题 2022-01-01