AudioKit 在设备上崩溃,但不是模拟器

Posted

技术标签:

【中文标题】AudioKit 在设备上崩溃,但不是模拟器【英文标题】:AudioKit crashes on device, but not simulator 【发布时间】:2016-12-04 10:00:47 【问题描述】:

在下面的代码中,AudioKit.start() 在装有 ios 10.1.1 的 iPhone SE 上崩溃。它在模拟器上运行良好。

private func play(note: Int) 
  let pluckedString = AKPluckedString()
  AudioKit.output = pluckedString
  AudioKit.start() // <-- Crash here!
  let frequency = note.midiNoteToFrequency()
  pluckedString.trigger(frequency: frequency)

控制台错误日志是

2016-12-04 10:51:45.765130 MyApp[1833:720319] [aurioc] 889: failed: -10851 (enable 2, outf< 2 ch,      0 Hz, Float32, non-inter> inf< 2 ch,      0 Hz, Float32, non-inter>)
2016-12-04 10:51:45.766519 MyApp[1833:720319] [aurioc] 889: failed: -10851 (enable 2, outf< 2 ch,  44100 Hz, Float32, non-inter> inf< 2 ch,      0 Hz, Float32, non-inter>)
2016-12-04 10:51:45.767008 MyApp[1833:720319] [aurioc] 889: failed: -10851 (enable 2, outf< 2 ch,  44100 Hz, Float32, non-inter> inf< 2 ch,      0 Hz, Float32, non-inter>)
2016-12-04 10:51:45.767982 MyApp[1833:720319] [central] 54:   ERROR:    [0x1b42d7c40] >avae> AVAudioEngineGraph.mm:2515: PerformCommand: error -10851

我错过了什么?与模拟器相比,我找不到任何有关设备所需额外设置的文档。 AudioKit 的版本是 3.5。 XCode 版本为 8.1

【问题讨论】:

【参考方案1】:

我发现了问题。我为音频会话设置了录制类别。通过确保音频会话类别在播放时不是 AVAudioSessionCategoryRecord;我的应用不再崩溃。

【讨论】:

以上是关于AudioKit 在设备上崩溃,但不是模拟器的主要内容,如果未能解决你的问题,请参考以下文章

应用程序在 iPad 设备上崩溃但在模拟器上运行

AVPlayer 导致模拟器崩溃但在设备上运行良好

IOs App 在模拟器上运行但在设备上崩溃(主要使用 AVFoundation)

iAd 在模拟器上工作但在设备上崩溃(ipad)

Android Libgdx - 真实设备上的 Sigsegv 11 错误,但模拟器上没有崩溃

新标签 ionic starter 项目在 ios 模拟器和 ios 设备上简单崩溃的问题。但如果使用离子服务则有效