installTapOnBus
コンソールを正常に更新する非常に単純なクロージャーがありますが、UI 要素は更新しません。コードは次のとおりです。
self.meter.text="..."
let inputNode = audioEngine.inputNode
let bus = 0
inputNode!.installTapOnBus(bus, bufferSize: 2048, format: inputNode!.inputFormatForBus(bus)) {
(buffer: AVAudioPCMBuffer!, time: AVAudioTime!) -> Void in
var someFeature:Float=0.0
for var i=0; i<Int(buffer.frameLength); i += 1{
someFeature += fabs(buffer.floatChannelData.memory[i])
}
someFeature /= Float(buffer.frameLength)
self.meter.text="\(someFeature)" // No effect!
print("\(someFeature)") // This works
}
self
おそらく、クロージャーに弱い参照を送信する必要がありますが、構文がわかりません。UI 要素を更新する方法についてのフィードバックやアイデアをお待ちしております。読んでくれてありがとう。