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

使用AudioKit开发的App真机运行报错-10875,禁用播放模块才可正常工作

解决AudioKit真机初始化错误-10875的问题

首先,错误码-10875对应AVAudioSession的初始化失败,通常是因为音频会话配置冲突或者无法同时获取输入输出资源——这也是为什么模拟器能正常运行(模拟器对音频资源的限制更宽松),但真机不行的核心原因。结合你的代码,我整理了几个关键修复点:

1. 正确配置音频会话类别

真机上同时使用麦克风输入和音频输出时,必须明确设置AudioKit的音频会话类别为.playAndRecord,否则系统会拒绝分配硬件资源。在启动AudioKit前添加这段配置:

override func viewDidLoad() {
    super.viewDidLoad()
    // 配置音频会话,支持同时输入+输出,默认使用扬声器播放
    do {
        try AKSettings.setSession(category: .playAndRecord, with: .defaultToSpeaker)
    } catch {
        AKLog("Failed to set audio session category: \(error)")
    }
    AKSettings.audioInputEnabled = true
    mic = AKMicrophone()
    tracker = AKFrequencyTracker(mic)
    silence = AKBooster(tracker, gain: 0)
    
    // 初始化播放器节点,不要在init里配置音频引擎
    oscillator1 = AKOscillator()
    mixer = AKMixer(silence, oscillator1) // 把采集节点和播放节点合并到同一个混音器
    mixer.volume = amplitude
}

2. 避免重复设置AudioKit.output

你的代码在required init和viewDidAppear里两次设置了AudioKit.output,这会导致引擎初始化时的配置冲突。应该只在启动引擎前统一设置一次output,让输入和输出共享同一个音频引擎实例:

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    AudioKit.output = mixer // 统一设置输出为合并后的混音器
    do {
        try AudioKit.start()
    } catch {
        AKLog("AudioKit did not start! Error: \(error)")
    }
    setupPlot()
    Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(updateUI), userInfo: nil, repeats: true)
}

3. 移除init中的错误音频配置

把required init里关于AudioKit.output的代码删掉,初始化阶段不适合配置音频引擎相关内容:

required init?(coder aDecoder: NSCoder) {
    super.init(coder: aDecoder)
    // 仅做基础初始化,不要操作AudioKit
}

4. 确认Info.plist权限配置

确保你的Info.plist里添加了麦克风权限描述,否则真机上无法访问麦克风(即使禁用播放模块能工作,也建议补全):

<key>NSMicrophoneUsageDescription</key>
<string>需要访问麦克风来采集音频频率</string>

为什么这些修改能解决问题?

  • .playAndRecord类别明确告知系统App需要同时使用音频输入和输出,真机系统会为这种场景分配对应的硬件资源;
  • 合并输入输出节点到同一个混音器,确保AudioKit引擎只初始化一次,避免资源竞争;
  • 移除重复的output设置,消除引擎初始化时的配置矛盾。

测试修改后的代码,应该就能在真机上同时运行频率采集和播放功能了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:01:42