Воспроизведение звука на кнопке UIB, нажимаемой разными тегами - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь реализовать ксилофон, где я хочу воспроизводить разные звуки при нажатии разных кнопок, которые я объединил в одну функцию IBAction и различил по разным тегам.

@IBAction func keysPressed(_ sender: UIButton) {
}

Я импортирую AVFoundationно не получаю точную функцию для вызова для воспроизведения звуков

Мне нужна функция, которую я могу вызывать в каждом операторе If, чтобы различать кнопки с тегами для воспроизведения звуков.

1 Ответ

0 голосов
/ 28 мая 2019

Предполагая, что это вопрос о том, как заставить разные кнопки воспроизводить разные звуки, вы можете создать подкласс UIButton, чтобы включить поле для отслеживания, какое это примечание, и вызвать соответствующую функцию на основе этого.

class XyloKey: UIButton {
    var note: String
}

А затем в вашем контроллере вида:

let key = XyloKey()
key.note = "C5"
key.addTarget(self, action: #selector(playNote(_:)), for: .touchUpInside)

И при условии, что вы называете свои файлы по имени заметки (например, "note_C5.mp3").

func playNote(_ sender: XyloKey) {
    let url = NSBundle.mainBundle().URLForResource("note_\(sender.note)", withExtension: "mp3")
    playSound(url)
}

Где playSound воспроизводит звукпереданного файла.См. ссылку , переданную во флаге выше для деталей.

...