繁体   English   中英

拖动时发出连续声音

[英]Sequential sound upon dragging

我为iPhone构建了一个小型Xylophone应用程序,该应用程序有7个按钮,每个按钮在触摸时都会播放自己的音符。 我想扩展其功能,以便当用户将手指从顶部按钮拖至最底部或以其他方式翻转时,所有音符将按顺序播放,就像在钢琴键上拖动手指一样。

在此处输入图片说明

我已经尝试过添加各种拖动手势(内部/外部,进入/退出),但是它们都只能通过第一个按钮来接收动作。 即,将手指拖到第一个按钮之外时播放第一个声音,但是当它进入第二个按钮时则什么也没有发生。

我试图将不同的手势(Touch + Inside + Drag)连接到这个IBAction中:

@IBAction func notePressed(_ sender: UIButton) {

    playNote(noteNumber: sender.tag)

}

func playNote(noteNumber : Int) {
    let soundURL = Bundle.main.url(forResource: "note\(noteNumber)", withExtension: "wav")

    do {
        try audioPlayer = AVAudioPlayer.init(contentsOf: soundURL!)
    } catch {
        print(error)
    }

    audioPlayer.play()
}

也许应该创建单独的IBAction? 谁能给我提示我应该去哪里?

这是我的解决方法:

  • 展开ViewController类。 检查panView.swift文件。 在这里,您将创建事件捕获器,以监听“ Swipe Gesture Recognizer (您需要Swipe Gesture Recognizer其添加到主故事板中)
  • 创建一个AVAudioPlaye对象数组。 使用路径URL初始化这些对象,然后将其准备好播放。 请参见prepareSounds()函数。

这里有更详细的解释

如果您在重新创建应用程序时遇到任何麻烦,请告诉我。

欢呼!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM