Затухание AVAudioEngine AVAudioPlayerNode - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь затушить mp3-файл, используя AVAudioEngine и AVAudioPlayerNode. Я не могу разобраться. Кто-нибудь может помочь в Свифте?

Я уже кое-что пробовал. Все работает довольно хорошо, но не так гладко, как хотелось бы.

    var fadeOutPlayer: Float = playerVolume
            var fadeOutQuinte: Float = playerQuinteVolume
            while fadeOutPlayer > 0.0 {
                player.volume = fadeOutPlayer
                playerQuinte.volume = fadeOutQuinte
                fadeOutPlayer -= 0.001
                fadeOutQuinte -= 0.001
                usleep(100)
            }


Я также попробовал таймер (который не делает затухание):

if !isTimerFadeOutRunning {
            player.volume = 0
            playerQuinte.volume = 0
            counter = 0
            timerFadeOut = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(runTimerFadeOut), userInfo: nil, repeats: true)
            isTimerFadeOutRunning = true
        }
    }

    @objc func runTimerFadeOut() {
        counter += 0.1
        if counter == 0.2 {
            player.pause()
            playerQuinte.pause()
        }
    }
...