2015-04-17 29 views
0

所以,我有這個應用程序,我把一些背景音樂,使其更好。一切都很好,但我決定背景音樂不如它可能。我發現了另一個音樂文件,把它放到我的項目中,然後更新了代碼中的文件名,並且沒有聲音。令人困惑的是,我把原始文件名放回到代碼中,並且仍然沒有聲音。所以...之前的工作已經不再有用了 - 我還沒有對xcode/etc做過任何更新或任何操作。任何人都想刺探如何解決這個問題?或者......它如何發生,以便將來避免它?下面是代碼:我的背景音樂發生了什麼?

import AVFoundation 

var backgroundMusicPlayer: AVAudioPlayer! 

// old function, works in another app but not this one ... derp 

func playBackgroundMusic(filename: String) { 
    let url = NSBundle.mainBundle().URLForResource(
     filename, withExtension: nil) 
    if (url == nil) { 
     println("Could not find file: \(filename)") 
     return 
    } 

    var error: NSError? = nil 
    backgroundMusicPlayer = 
     AVAudioPlayer(contentsOfURL: url, error: &error) 
    if backgroundMusicPlayer == nil { 
     println("Could not create audio player: \(error!)") 
     return 
    } 

    backgroundMusicPlayer.numberOfLoops = -1 
    backgroundMusicPlayer.prepareToPlay() 
    backgroundMusicPlayer.play() 
} 

哦,我打電話玩家在viewDidLoad中發揮:

override func viewDidLoad() { 

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


     playBackgroundMusic("violetshrine.caf") 

我已經閱讀各類文章上迅速與良好的工作...似乎有很多不同的方法,什麼不是,但這是以前工作的代碼,甚至在另一個應用程序,我與這一個一起構建...所以我真的很困惑(生活的一個福利局)。感謝任何花時間閱讀本文的人。

回答

1

所有圖像,音頻等文件都需要成爲捆綁資源的一部分。請檢查以下2點

  1. 確保您添加的文件實際上已添加到您的構建目標,而不僅僅是Xcode層次結構。

enter image description here

  • 務必從設備/模擬器刪除應用程序,並清理項目(Product->Clean在Xcode應用程序菜單),並再次運行該項目添加的任何時間/刪除/更新資源文件。
  • 這是假設你的代碼/工作正常(如你在你的問題中聲稱)。

    +0

    哇!謝謝lukya!不能相信這真的很簡單。我做了很多清理等,但我不知道要檢查文件目標的小方塊 - 我甚至在文件檢查員那裏閱讀過這個文件,但是直到你提出這個圖片才明白。非常感謝!!!它再次運作,耶! – user3147770