Я использую AVPlayer для воспроизведения файла mp3. Я использую его вместо AVAudioPlayer, потому что он поддерживает воспроизведение на скоростях, выходящих за пределы диапазона 0.0 ... 2.0
. Однако я хочу, чтобы звук был l oop постоянно, поэтому я использую AVQueuePlayer и AVPlayerLooper для воспроизведения файла. Это работает, когда свойство rate
положительно, но когда обратное воспроизведение достигает начала файла, оно просто останавливается, вместо того, чтобы вернуться к концу файла и продолжить воспроизведение в обратном направлении. Есть ли способы, чтобы проигрыватель зацикливался? Вот что я пытаюсь:
override func viewDidLoad() {
super.viewDidLoad()
//Initialize the audio file and audio player
guard let path = Bundle.main.path(forResource: "sideAMusic.mp3", ofType: nil) else {
Console.log("Uh oh - no path could be found for filename: \("sideAMusic")")
return
}
let url = URL(fileURLWithPath: path)
let playerItem = AVPlayerItem(url: url)
self.sideAPlayer = AVQueuePlayer(playerItem: playerItem)
sideALooper = AVPlayerLooper(player: sideAPlayer!, templateItem: playerItem)
sideAPlayer?.volume = 1
sideAPlayer?.play()
}
// Use a slider in the range of -4 ... 4 to set the playback speed
@IBAction func speedSlider(_ sender: UISlider) {
self.sideAPlayer?.rate = sender.value
}