如何在Xcode中将声音文件添加到您的包中?

时间:2017-09-15 03:17:21

标签: ios xcode file bundle

我正在尝试用声音制作应用程序。我之前问过如何在Xcode中为应用程序添加声音的问题,但每次运行应用程序时,控制台都会在编写代码时抛出此错误MagicSound.wav does not exist in main bundle我基本上告诉程序使应用程序崩溃并写入{ {1}}如果它是真的。我的问题是你如何添加文件(具体来说 声音文件)到Xcode中的捆绑包。我总是假设在你的资产中放置一个文件就像把它放在你的资产包中一样。

这是我的代码,

`import UIKit 导入AVFoundation

类ViewController:UIViewController {

MagicSound.wav does not exist in main bundle

如果有人能提供帮助那就太棒了!

感谢。

4 个答案:

答案 0 :(得分:5)

这个答案是Google搜索'如何在Xcode中将声音文件添加到捆绑包中的最佳答案?',为了帮助像我这样的新手,这里是一步一步如何为你的捆绑添加声音在Xcode中。 (简短回答,只需将它们拖到侧边栏并检查“如果需要,复制项目'”

  1. 将声音放在一个文件夹中(你不必这样做,但要让它们井然有序)

  2. 将声音文件夹拖到Xcode的侧边栏中。 enter image description here

  3. 当您将文件夹拖入时,它会为您提供一些选项。确保'复制项目(如果需要)'检查。它应该是默认的。 enter image description here

  4. 你完成了!通过根据文件名获取路径和URL来访问您的声音。

  5. 像这样:

    func playSaveSound(){
        let path = Bundle.main.path(forResource: "upward.wav", ofType: nil)!
        let url = URL(fileURLWithPath: path)
    
        do {
            //create your audioPlayer in your parent class as a property
            audioPlayer = try AVAudioPlayer(contentsOf: url)
            audioPlayer.play()
        } catch {
            print("couldn't load the file")
        }
    }
    

    This article对如何播放声音有一个很好的概述。

答案 1 :(得分:2)

请按照以下步骤操作:

  1. 当您尝试在项目中添加声音文件时,请在添加期间检查所需的复制项目并添加文件。
  2. 现在从Xcode点击该文件,然后右键单击显示在Finder选项中,单击该文件,看看您的文件是否存在。如果它存在,那么在运行时它不会抛出错误。

答案 2 :(得分:1)

这里还有一个额外的步骤,即XCode隐式地执行操作,并且可能以无法完成的方式配置您的内容。您需要确保wav文件位于目标的“构建阶段->复制捆绑资源”设置下的项目列表中。

如果您只是应用程序的主要目标而没有花哨的东西,那么当您将文件添加到XCode中的文件夹时,应该自动完成此操作。但是我有一个搞怪的设置,不是这样,我不得不挖掘找到它。

答案 3 :(得分:0)

除了此处的其他答案外,还要添加的另一件事是,在导入时,需要确保已将其复制到应用程序的“添加到目标”中。这样就完成了声音文件位于“目标的Build Phases-> Copy Bundle Resources设置下的项目列表”中。

您需要正确处理所有这些内容,否则将不包含在捆绑包中。