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

macOS下AudioKit为mixer添加输入源时抛出-10878错误如何解决

错误码-10878的含义与修复方案

-10878是Core Audio框架定义的标准错误码,对应常量为kAudioUnitErr_CannotDoInCurrentContext,核心含义是当前执行的音频操作无法在当前上下文下完成。在AudioKit开发场景下,该错误绝大多数是操作音频节点的时机或线程错误导致的,比如在音频引擎未完成启动、或已经停止的状态下修改节点关系,或是在非主线程/音频渲染线程执行节点增删操作。
修复方案可按以下顺序排查:

  • 确认mixer.addInput(myAudioPlayer)的执行时机:必须在AudioKit.engine完成启动之后、主动停止之前调用,不要在引擎初始化阶段执行节点修改操作
  • 所有音频节点的增删、启停操作统一放到主线程执行,不要在子线程或音频回调线程中执行这类操作
  • 检查myAudioPlayer的状态:确认添加到mixer前该播放器没有被释放,也没有被关联到其他父节点,如果之前已经添加到其他mixer,需要先调用对应mixer的removeInput方法移除后再进行新增操作
  • 如果需要频繁动态修改mixer的输入节点,可先临时暂停音频引擎,执行完addInput操作后再重启引擎,普通场景下该操作不会产生可感知的卡顿
日志字段ShowTime[16140:1611137]的含义与定位能力

该字段可以拆分为三部分解释:

  • ShowTime是你当前运行应用的显示名称,对应Xcode项目中配置的Display Name
  • 第一个数字16140是当前应用进程的PID(进程唯一标识符),同一应用每次启动都会分配新的PID
  • 第二个数字1611137是输出该条日志的线程的TID(线程唯一标识符)

仅通过这串数字无法直接定位到代码的具体故障位置,你可以配合Xcode的自定义日志、断点能力结合TID确认执行违规操作的线程类型,辅助排查问题。如果要直接定位到具体代码行,可添加全局异常断点,或针对Core Audio错误抛出点添加符号断点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 22:06:03