Как заставить функцию проигрывать разные звуки в Swift - PullRequest
0 голосов
/ 08 июня 2018

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

import AVFoundation

var myAudio: AVAudioPlayer!

let path = Bundle.main.path(forResource: "sound1", ofType: "wav")!
let url = URL(fileURLWithPath: path)
do {
    let sound = try AVAudioPlayer(contentsOf: url)
    myAudio = sound
    sound.play()
    } catch {
        //
    }
}

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

делайте как

@objc func yourbtnActionName(_ sender : UIButton){

    switch sender.tag {
    case 1:
        commonSoundCode(name: "sound1")
        break
    case 2:
        commonSoundCode(name: "yoursecondSoundname")
        break
    default:
        break
    }
   }

, тогда общепринятый метод:

 func commonSoundCode(name: String){
    let path = Bundle.main.path(forResource: name, ofType: "wav")!
    let url = URL(fileURLWithPath: path)
    do {
        let sound = try AVAudioPlayer(contentsOf: url)
        myAudio = sound
        sound.play()
    } catch {
        //
    }
}

опция 2

, если ваши звуковые файлы находятся вту же последовательность, например, для (sound1.wav, sound2.wav ......, sound10.wav), затем вызовите как

@objc func yourbtnActionName(_ sender : UIButton){
  let path = Bundle.main.path(forResource: "sound\(sender.tag)", ofType: "wav")!
    let url = URL(fileURLWithPath: path)
    do {
        let sound = try AVAudioPlayer(contentsOf: url)
        myAudio = sound
        sound.play()
    } catch {
        //
    }

}
0 голосов
/ 08 июня 2018

Вам нужно просто воспроизвести звуки в соответствии с UIButton's tag.

@IBAction func playsound(_ sender: UIButton)
{
    switch sender.tag
    {
    case 0:
        //Sound for Button with tag=0
    case 1:
        //Sound for Button with tag=1
    default:
        //Default Sound
    }
}

. В приведенном выше коде добавьте больше случаев в соответствии с вашим UIButton tags.

Пожалуйста, добавьте немного кода для большей ясности в вашем вопросе.

...