Swift/Spring:SoundPlayer.play(“string.wav”)不工作

Swift/Spring:SoundPlayer.play(“string.wav”)不工作,spring,swift,Spring,Swift,我尝试使用Spring框架在触摸按钮时播放声音 import UIKit class ViewController: UIViewController { //TODO: max, mia, beide arrays und zufallsgenerator und happy day unten mit klick gleich wave @IBAction func soundButton(sender: AnyObject) { let mySound : String

我尝试使用Spring框架在触摸按钮时播放声音

import UIKit

class ViewController: UIViewController {

//TODO: max, mia, beide arrays und zufallsgenerator und happy day unten mit klick gleich wave



@IBAction func soundButton(sender: AnyObject) {

    let mySound : String! = "refresh.wav"

    SoundPlayer.play(mySound)

    }


@IBOutlet weak var imageView: SpringImageView!

@IBAction func beideButton(sender: AnyObject) {

    imageView.image = UIImage(named: "b1")
    imageView.animation = "zoomIn"
    imageView.animate()


}

@IBAction func maxButton(sender: AnyObject) {

    imageView.image = UIImage(named: "max1")
    imageView.animation = "slideLeft"
    imageView.animate()

}

@IBAction func miaButton(sender: AnyObject) {

    imageView.image = UIImage(named: "mia1")
    imageView.animation = "slideRight"
    imageView.animate()

}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


}
我遇到以下错误:无法使用“String”类型的参数列表调用“play”

我试着像这样看待事情!,作为字符串,作为字符串!,像字符串打开左右,但无法找出它

这是SoundPlayer类别版权c 2015 James Tangj@jamztang.com:

import UIKit
import AudioToolbox

public class SoundPlayer: NSObject {

@IBInspectable var filename : String?
@IBInspectable var enabled : Bool = true

private struct Internal {
    static var cache = [NSURL:SystemSoundID]()
}

public func playSound(soundFile:String) {

    if !enabled {
        return
    }

    if let url = NSBundle.mainBundle().URLForResource(soundFile, withExtension: nil) {

        var soundID : SystemSoundID = Internal.cache[url] ?? 0

        if soundID == 0 {
            AudioServicesCreateSystemSoundID(url, &soundID)
            Internal.cache[url] = soundID
        }

        AudioServicesPlaySystemSound(soundID)

    } else {
        println("Could not find sound file name `\(soundFile)`")
    }
}

@IBAction public func play(sender: AnyObject?) {
    if let filename = filename {
        self.playSound(filename)
    }
}
}

仅从我不熟悉的Spring代码来看,您需要做的是创建一个SoundPlayer实例并在其上调用playSound not play,它使用内部文件名来播放声音,而不是它的参数,如下所示:

@IBAction func soundButton(sender: AnyObject) {

    let mySound : String! = "refresh.wav"

    let soundPlayer = SoundPlayer()
    soundPlayer.playSound(mySound)

    }