Я изучаю кодирование, создавая приложение для Soundboard.Я использую audioEngine
для воспроизведения некоторых звуков после того, как я немного изменил мелодии.В моем viewDidLoad
я объявляю мой variables
:
var audioFile1 = AVAudioFile()
var audioFile2 = AVAudioFile()
if let filePath = Bundle.main.path(forResource: "PeteNope", ofType:
"mp3") {
let filePathURL = URL(fileURLWithPath: filePath)
setPlayerFile(filePathURL)
}
if let filePath2 = Bundle.main.path(forResource: "Law_WOW", ofType:
"mp3") {
let filePath2URL = URL(fileURLWithPath: filePath2)
setPlayerFile2(filePath2URL)
}
func setPlayerFile(_ fileURL: URL) {
do {
let file1 = try AVAudioFile(forReading: fileURL)
self.audioFile1 = file1
} catch {
fatalError("Could not create AVAudioFile instance. error: \(error).")
}
}
func setPlayerFile2(_ fileURL: URL) {
do {
let file2 = try AVAudioFile(forReading: fileURL)
self.audioFile2 = file2
} catch {
fatalError("Could not create AVAudioFile instance. error: \(error).")
}
}
, затем я подключаю nodes
следующим образом:
audioEngine.attach(pitchPlayer)
audioEngine.attach(timePitch)
audioEngine.connect(pitchPlayer, to: timePitch, format: audioFile1.processingFormat)
audioEngine.connect(timePitch, to: audioEngine.outputNode, format: audioFile1.processingFormat)
audioEngine.connect(pitchPlayer, to: timePitch, format: audioFile2.processingFormat)
audioEngine.connect(timePitch, to: audioEngine.outputNode, format: audioFile2.processingFormat)
Итак, мой вопрос, поскольку переменныеидентичны, за исключением числа, есть ли способ написать это программно, чтобы мне не приходилось объявлять nodes
по отдельности.