我正在尝试用声音制作应用程序。我之前问过如何在Xcode中为应用程序添加声音的问题,但每次运行应用程序时,控制台都会在编写代码时抛出此错误MagicSound.wav does not exist in main bundle
我基本上告诉程序使应用程序崩溃并写入{ {1}}如果它是真的。我的问题是你如何添加文件(具体来说
声音文件)到Xcode中的捆绑包。我总是假设在你的资产中放置一个文件就像把它放在你的资产包中一样。
这是我的代码,
`import UIKit 导入AVFoundation
类ViewController:UIViewController {
MagicSound.wav does not exist in main bundle
如果有人能提供帮助那就太棒了!
感谢。
答案 0 :(得分:5)
这个答案是Google搜索'如何在Xcode中将声音文件添加到捆绑包中的最佳答案?',为了帮助像我这样的新手,这里是一步一步如何为你的捆绑添加声音在Xcode中。 (简短回答,只需将它们拖到侧边栏并检查“如果需要,复制项目'”
将声音放在一个文件夹中(你不必这样做,但要让它们井然有序)
你完成了!通过根据文件名获取路径和URL来访问您的声音。
像这样:
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)
请按照以下步骤操作:
答案 2 :(得分:1)
这里还有一个额外的步骤,即XCode隐式地执行操作,并且可能以无法完成的方式配置您的内容。您需要确保wav文件位于目标的“构建阶段->复制捆绑资源”设置下的项目列表中。
如果您只是应用程序的主要目标而没有花哨的东西,那么当您将文件添加到XCode中的文件夹时,应该自动完成此操作。但是我有一个搞怪的设置,不是这样,我不得不挖掘找到它。
答案 3 :(得分:0)
除了此处的其他答案外,还要添加的另一件事是,在导入时,需要确保已将其复制到应用程序的“添加到目标”中。这样就完成了声音文件位于“目标的Build Phases-> Copy Bundle Resources设置下的项目列表”中。
您需要正确处理所有这些内容,否则将不包含在捆绑包中。