Я пытался выяснить, как воспроизвести последовательность звуков на основе значений в массиве с помощью оператора switch case. Пока он воспроизводит только последний целочисленный звук.
То, чего я хочу добиться, - это когда я нажимаю кнопку «Воспроизвести», она проходит по всем значениям массива soundSeq и воспроизводит соответствующий звук до остановки. Но в этом случае он воспроизводит звук только для tagid 5.
import UIKit
import AVFoundation
class UIController: UIViewController {
var audioPlayer : AVAudioPlayer!
let soundSeq = [2,4,5]
func playSoundSeq() {
for tag in soundSeq {
switch tag {
case 1 : loopSoundSeq(tagid: tag)
case 2 : loopSoundSeq(tagid: tag)
case 3 : loopSoundSeq(tagid: tag)
case 4 : loopSoundSeq(tagid: tag)
case 5 : loopSoundSeq(tagid: tag)
case 6 : loopSoundSeq(tagid: tag)
case 7 : loopSoundSeq(tagid: tag)
default : print("no sound played")
}
}
}
@IBAction func playButton(_ sender: UIButton) {
playSoundSeq()
}
func loopSoundSeq(tagid: Int) {
var soundURl = Bundle.main.url(forResource: "minisound\(tagid)", withExtension: "wav")
//machinePlay.append(sender.tag)
do {
audioPlayer = try AVAudioPlayer(contentsOf: soundURl!)
}
catch {
print(soundURl)
}
audioPlayer.play()
}
}