Вы захотите сделать что-то вроде этого:
func animateRecordButton() {
if let button = self.recordButton {
UIView.animate(withDuration: 0.2, delay: 0, options: [.allowUserInteraction], animations: {
if self.scaledDown {
button.transform = CGAffineTransform.identity
} else {
button.transform = CGAffineTransform(scaleX: self.amplitude, y: self.amplitude)
}
}, completion: { (done) in
self.scaledDown = !self.scaledDown
if !self.recordingStopped {
//Generate new x and y value from the audio waveform's amplitude.
//You'll need to make sure that it makes sense for your animation.
self.amplitude = getAmplitudeValueFromWaveform()
self.animateRecordButton()
} else {
if let button = recordButton {
button.transform = CGAffineTransform.identity
}
}
})
}
}
Я уверен, что есть другие подходы к аудио SDK, но я не использовал его. В аудио SDK могут быть некоторые методы, которые уже могут справиться с подобными вещами для вас.