我的Assets.xcassets
:
我正试图获取其中一个音频文件的路径:
let path: String = Bundle.main.path(forResource: "acoustic_grand_piano/A4", ofType: "f32")!
但是我得到了EXC_BAD_INSTRUCTION
。我试图在互联网上查看但我在数据集上找不到任何东西。
如何获取其中一个文件的内容?
谢谢!
答案 0 :(得分:2)
试试这个:
使用以下代码获取文件....
public func returnFile(_ named:String) -> String {
let path: String = Bundle.main.path(forResource: "myAudioFiles", ofType: "bundle")! + "/" + name + ".f32"
do {
return try String(contentsOfFile: path)
}
catch let error as NSError {
return error.description
}
}
现在,我的文件是CIKernel代码的文本文件。由于您的音频文件可能需要将String返回更改为其他内容。
编辑:
在我的情况下,我正在使用框架,因为我希望与扩展程序和其他应用程序共享这些文件/图像。如果你正在进行这样的设置,这里是未改变的代码:
public func returnFile(_ resource:String, _ fileName:String, _ fileType:String) -> String {
let identifier = "com.companyname.appname" // replace with framework bundle identifier
let fileBundle = Bundle.init(identifier: identifier)
let filePath = (fileBundle?.path(forResource: resource, ofType: "bundle"))! + "/" + fileName + "." + fileType
do {
return try String(contentsOfFile: filePath)
}
catch let error as NSError {
return error.description
}
}