Это простое приложение ксилофон из учебника, которому я следую.
Если мы нажимаем на каждую кнопку, воспроизводится новая нота. Работает нормально.
Но когда я хочу провести от одной кнопки к другой, звука нет.
Github ссылка для полного проекта:
https://github.com/jaineelesh/Xylophone
Я также пытался использовать Touch Drag Enter / Exit / Inside / Outside, но мне кажется, что ничего не работает.
Пожалуйста, помогите.
Файл ViewController.swift
import UIKit
import AVFoundation
class ViewController: UIViewController{
var player: AVAudioPlayer?
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func noteOnDrag(_ sender: UIButton) {
// selecting the correct note based on the tag
//playSound(tag: sender.tag)
print("enter")
}
@IBAction func noteOnDragExit(_ sender: UIButton) {
print("Exit")
}
@IBAction func notePressed(_ sender: UIButton) {
// selecting the correct note based on the tag
//playSound(tag: sender.tag)
}
func playSound(tag: Int) {
let note = "note" + String(tag)
guard let url = Bundle.main.url(forResource: note, withExtension: "wav") else { return }
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
try AVAudioSession.sharedInstance().setActive(true)
player = try AVAudioPlayer(contentsOf: url, fileTypeHint: AVFileType.wav.rawValue)
guard let player = player else { return }
player.play()
} catch let error {
print(error.localizedDescription)
}
}
А вот так выглядит приложение.
Я новичок, поэтому мои знания очень ограничены. Я пытался найти решения, но нет ни одного, который объясняет, как решить мою проблему с помощью swift 4. Если существует какое-то старое решение, то я не могу их понять.
Я пытался использовать приведенные ниже события, но они, похоже, не работают.