簡體   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