Увеличить / уменьшить UIImage со звуком захвата Swift - PullRequest
0 голосов
/ 30 апреля 2018

Знаете ли вы библиотеку / трюк, который позволил бы мне создавать анимацию моей кнопки (круглый круг) в зависимости от голоса?

У меня есть музыкальное приложение, в котором кнопка записи круглая, и я бы хотел, чтобы она увеличивалась или уменьшалась в зависимости от интенсивности песни.

Допустим, это выглядит как кнопка Shazam без волн.

Спасибо за вашу помощь,

1 Ответ

0 голосов
/ 30 апреля 2018

Вы захотите сделать что-то вроде этого:

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 могут быть некоторые методы, которые уже могут справиться с подобными вещами для вас.

...