Я пытаюсь реализовать в своем приложении аудиоплеер для воспроизведения аудиофайла. Я использую среду AVFoundation для воспроизведения аудиофайлов. У меня есть элементы управления, такие как ползунок, для изменения аудиопотока и кнопки скорости, чтобы увеличивать и уменьшать скорость звука. Ползунок должен перемещаться вместе со звуком, и если положение ползунка изменяется, звук должен воспроизводиться с того места, где установлен ползунок. И даже если нажимаются кнопки скорости, звук должен увеличивать скорость с того места, где он воспроизводится. Как заставить его работать в Swift 5?
import AVFoundation
class AudioPlayer: UIViewController, AVAudioPlayerDelegate {
@IBOutlet weak var slider: UISlider!
@IBOutlet weak var currentTime: UILabel!
@IBOutlet weak var totalDuration: UILabel!
@IBAction func playButton(_ sender: Any) {
do {
audioPlayer = try AVAudioPlayer(contentsOf: audioPath)
guard let player = audioPlayer else { return }
player.prepareToPlay()
player.enableRate = true
player.play()
} catch let error {
print(error.localizedDescription)
}
}
@IBAction func slideMoved(_ sender: Any) {
slider.maximumValue = Float(audioPlayer.duration)
}
var audioPlayer:AVAudioPlayer!
override func viewDidLoad() {
self.audioPlayer = try AVAudioPlayer(contentsOf: path)
self.audioPlayer.enableRate = true
self.audioPlayer.prepareToPlay()
self.audioPlayer.delegate = self
}
@objc func speed1ViewTapped(_ sender: UITapGestureRecognizer? = nil) {
}
@objc func speed2ViewTapped(_ sender: UITapGestureRecognizer? = nil) {
}
@objc func speed3ViewTapped(_ sender: UITapGestureRecognizer? = nil) {
}
}