尝试绘制图形时应用程序崩溃
App crashes when trying to plot a graph
首先,我使用的是名为 AudioKit 的音频操纵器框架。
我正在尝试使用 AKNodeOutputPlot() 绘制 AKMicrophone(),但它不起作用。它返回错误:
我认为 AKMicrophone/AKFrequecyTracker 一切都很好,因为我得到了很好的结果。
我的绘图代码:
::
@IBOutlet var audioInputPlot: AKNodeOutputPlot!
func setupPlot() {
audioInputPlot.node = soundAnalyser.mic
audioInputPlot.plotType = .rolling
audioInputPlot.shouldFill = true
audioInputPlot.shouldMirror = true
audioInputPlot.color = UIColor.blue
}
::
class SoundAnalyser {
var delegate:SoundAnalyserDelegate?
let minimum = Double(50)
let maximum = Double(2000)
var mic: AKMicrophone
var tracker: AKFrequencyTracker
fileprivate var silence: AKBooster
fileprivate var timer: Timer?
fileprivate var notesArray: [(name:String, frequency:Double)]? //tuples array
::
AudioInputPlot 连接到故事板上的 UIView。它被定义为 class 'UIView'.
如果我将 UIView 的 class 设置为 AKNodeOutputPlot,终端显示:
Microphone_Analyser_AK[82421:10401487] 未知 class Interface Builder 文件中的 AKNodeOutputPlot。
(lldb)
故事板似乎无法识别 AudioKit 框架...我应该继续以编程方式执行此操作,还是您知道导致问题的原因?
这段代码有什么问题?
问题是我不止一次调用 setupPlot()
。
解决了在 viewDidLoad()
.
下仅调用一次 setupPlot()
的问题
首先,我使用的是名为 AudioKit 的音频操纵器框架。
我正在尝试使用 AKNodeOutputPlot() 绘制 AKMicrophone(),但它不起作用。它返回错误:
我认为 AKMicrophone/AKFrequecyTracker 一切都很好,因为我得到了很好的结果。
我的绘图代码:
::
@IBOutlet var audioInputPlot: AKNodeOutputPlot!
func setupPlot() {
audioInputPlot.node = soundAnalyser.mic
audioInputPlot.plotType = .rolling
audioInputPlot.shouldFill = true
audioInputPlot.shouldMirror = true
audioInputPlot.color = UIColor.blue
}
::
class SoundAnalyser {
var delegate:SoundAnalyserDelegate?
let minimum = Double(50)
let maximum = Double(2000)
var mic: AKMicrophone
var tracker: AKFrequencyTracker
fileprivate var silence: AKBooster
fileprivate var timer: Timer?
fileprivate var notesArray: [(name:String, frequency:Double)]? //tuples array
::
AudioInputPlot 连接到故事板上的 UIView。它被定义为 class 'UIView'.
如果我将 UIView 的 class 设置为 AKNodeOutputPlot,终端显示: Microphone_Analyser_AK[82421:10401487] 未知 class Interface Builder 文件中的 AKNodeOutputPlot。 (lldb)
故事板似乎无法识别 AudioKit 框架...我应该继续以编程方式执行此操作,还是您知道导致问题的原因?
这段代码有什么问题?
问题是我不止一次调用 setupPlot()
。
解决了在 viewDidLoad()
.
setupPlot()
的问题