You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:AudioKit从5.4.1升级至5.6后RawDataTap执行频率低于预期

AudioKit RawDataTap 帧间隔异常问题报告
  • 提供了用于复现问题的Demo项目,需在真实iOS设备上运行
  • 该问题与Stack Overflow上的同类历史问题相关
  • 在AudioKit 5.4.1版本中,doHandleTapBlock方法会严格按照指定的bufferSize频率执行,例如当bufferSize设为256时,每处理256帧就执行一次
  • 升级到AudioKit 5.6版本后,doHandleTapBlock的执行频率变为每4410帧(约100毫秒)一次,此为设备实测结果
  • 在Demo项目中,通过子类化RawDataTap的方式,直观展示了两次doHandleTapBlock执行之间的AVAudioTime帧间隔
  • 改用AVFoundation原生的installTap也存在相同的异常间隔问题,但如果为每个传入的buffer手动设置frameLength为指定的bufferSize,间隔时间就能恢复符合预期的bufferLength时长。根据AVAudioPCMBuffer的官方说明,该属性必须在buffer被使用前设置
  • 尝试在doHandleTapBlock方法内部设置bufferLength,无法解决此问题
  • 查看BaseTap的新版本代码后发现:buffer会在handleTapBlock方法内被复制到bufferWithCapacity变量中,后续仅为这个复制后的变量设置frameLength,而原buffer的frameLength从未被设置。推测正是这个原因,导致系统使用frameCapacity来决定tap的更新频率,从而出现异常
  • 虽然可以改用AVFoundation原生的installTap作为临时替代方案,但该问题仍值得向AudioKit团队反馈

内容的提问来源于stack exchange,提问作者anytwopoints

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 02:59:57