我的背景音乐怎么了?

时间:2015-04-17 19:10:46

标签: ios swift avaudioplayer

所以,我有这个应用程序,我加入一些背景音乐,使其更好。一切都很好,但我认为背景音乐不是很好。我发现了另一个音乐文件,把它放在我的项目中,然后在代码中更新文件名并且......没有声音。困惑,我把原始文件名放回代码中......仍然没有声音。所以...以前工作的东西不再有效 - 而且我没有对xcode /等做任何更新或任何事情。有人想尝试解决这个问题吗?或者......它怎么可能发生,所以我将来可以避免它?这是代码:

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")

我已经阅读了各种关于在swift中处理声音的文章...似乎有很多不同的方法,但是,这是以前工作的代码,甚至在另一个应用程序中工作我'和这个一起建造......所以我真的很困惑(一个新生活)。感谢任何花时间阅读本文的人。

1 个答案:

答案 0 :(得分:1)

所有图像,音频等文件都必须是捆绑资源的一部分。请检查以下2点

  1. 确保您添加的文件实际上已添加到构建目标,而不仅仅是Xcode层次结构。
  2. enter image description here

    1. 确保从设备/模拟器中删除应用程序并清理项目(Xcode应用程序菜单中的Product->Clean),并在添加/删除/更新资源文件时再次运行项目。
    2. 这假设您的代码正常/正常(正如您在问题中声明的那样)。