2017-10-16 122 views
-1

我一直在試圖做一個遊戲來教自己很快,並且似乎無法讓這段代碼工作。我對此非常陌生,似乎無法找出爲什麼它不起作用...... XCode不會標記任何問題,構建sucseed和調試器甚至打印「第1階段&第2階段」。 ..什麼幫助?Swift聲音效果//爲什麼我的代碼不工作?

我進口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

請符合命名約定方法/函數和變量名使用小寫字母。 'URL'是Swift 3中的一個結構。代碼結構看起來很混亂。 – vadian

回答

1
  1. 請確保您的設備沒有靜音
  2. MP3文件複製到捆綁 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)") 
         } 
    
        } 
    
    }