迅捷的声音效果//为什么我的代码不起作用?

时间:2017-10-16 06:40:42

标签: swift

我一直在尝试制作一款快速教自己的游戏,似乎无法让这些代码发挥作用。我对此非常陌生,似乎无法找出它为什么不起作用... XCode没有标记任何问题,构建成功,调试器甚至打印“进入第1阶段并进入第2阶段......有什么帮助?

我导入了AVFoundation ..

class GAME {

    class func SuperStartGame(playerwhowon1: SKSpriteNode) {

            var player = AVAudioPlayer()

        func PlaySound() {
            guard let URL = Bundle.main.url(forResource: "PowerUp", withExtension: "mp3")
                else {
                    print("Didn't Find URL")
                    return
            }

            do {
                print("Got to Stage 1")

                try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
                try AVAudioSession.sharedInstance().setActive(true)

                player = try AVAudioPlayer(contentsOf: URL, fileTypeHint: "mp3")
                player.prepareToPlay()
                player.play()

                print("Got to Stage 2")
            } catch let error as NSError {
                print("error: \(error.localizedDescription)")
            }

        RoundNumber += 1
        Round.text = "Round \(RoundNumber)"

        if playerwhowon1 == Mine {
            MyScore.run(addscoreM) {
                PlaySound()
                    Round.run(NewRoundForRound) {

...

代码继续......这是与声音相关的唯一部分。我将声音文件添加到Xcode中,并确保将其添加到项目目标中...它在我的主要包中。

1 个答案:

答案 0 :(得分:1)

  1. 确保您的设备没有静音
  2. 将mp3文件复制到bundle enter image description here

  3. 示例VC播放声音:

    class ViewController: UIViewController {   
        var game = Game()
    
        @IBAction func playAction(_ sender: UIButton) {
            game.playSound()
        }
    
    }
    
    class Game {
    
        var player: AVAudioPlayer?
    
        func playSound() {
            guard let URL = Bundle.main.url(forResource: "SampleAudio", withExtension: "mp3") else {
                print("Didn't Find URL")
                return
            }
    
            do {
                try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
                try AVAudioSession.sharedInstance().setActive(true)
    
                player = try AVAudioPlayer(contentsOf: URL, fileTypeHint: "mp3")
                player?.prepareToPlay()
                player?.play()
    
            } catch let error as NSError {
                print("\(error.localizedDescription)")
            }
    
        }
    
    }