AVAudioPlayer изменяет громкость для каждого звука с помощью ползунка

#ios #uicollectionview #avaudioplayer

Вопрос:

Я хочу динамически изменять громкость каждого воспроизводимого файла с помощью ползунка в UICollectionViewCell.

введите описание изображения здесь

Я пытаюсь использовать следующий код и включить изменение громкости в функцию changeVolume, но это не работает. Как я могу решить эту задачу?

     import UIKit
import AVFoundation

class SoundItemCell: UICollectionViewCell {
    @IBOutlet weak var imageView: UIImageView!
    @IBOutlet weak var titleLabel: UILabel!
    @IBOutlet weak var slider: CustomSlider!
    
    var audioPlayer: AVAudioPlayer?
    
            
    @IBAction func changeVolume(_ sender: CustomSlider) {
        
        guard let fileUrl = Bundle.main.url(forResource: "birds-sound", withExtension: "mp3") else {return}
        audioPlayer = try! AVAudioPlayer(contentsOf: fileUrl)
        audioPlayer?.setVolume(sender.value, fadeDuration: 0)
        
    }
    
    func play(item: ASMRSound, path: IndexPath) {
        if item.soundPlaying {
            guard let fileUrl = Bundle.main.url(forResource: item.soundName, withExtension: "mp3") else {return}
            audioPlayer = try! AVAudioPlayer(contentsOf: fileUrl)
            audioPlayer?.stop()
            item.soundPlaying = false
            titleLabel.textColor = .black
            imageView.tintColor = .black
        } else {
            guard let fileUrl = Bundle.main.url(forResource: item.soundName, withExtension: "mp3") else {return}
            audioPlayer = try! AVAudioPlayer(contentsOf: fileUrl)
            audioPlayer?.numberOfLoops = -1
            audioPlayer?.play()
            item.soundPlaying = true
            titleLabel.textColor = .systemOrange
            imageView.tintColor = .systemOrange
        }
    }
}