在Apple的示例项目Placing Objects and Handling 3D Interaction之后,我想向3D对象添加音频文件。具体而言,其想法是为每个放置的对象触发一个音频文件,以使场景成为空间音景。在没有示例项目的情况下,我尝试了多种方法,但是由于缺乏iOS / Swift开发知识,我无法实现具有凝聚力的项目。
在示例项目中,有多个View Controllers和一个VirtualObject: SCNReferenceNode
类可帮助加载对象(最初使我感到困惑)。我现在面临的一些问题是我不确定如何解决以下问题:
SCNAudioSource
并进行设置? static let availableObjects: [VirtualObject] = {
let modelsURL = Bundle.main.url(forResource: "Models.scnassets", withExtension: nil)!
let fileEnumerator = FileManager().enumerator(at: modelsURL, includingPropertiesForKeys: [])!
return fileEnumerator.compactMap { element in
let url = element as! URL
guard url.pathExtension == "scn" && !url.path.contains("lighting") else { return nil }
return VirtualObject(url: url)
}
}()
我尝试过尝试一下,并在AVAudioEngine
类中实例化了VirtualObject
:
var audioNode: AVAudioEngine = AVAudioEngine()
var active: Bool = false {
didSet {
if(active) {
self.audioNode.prepare()
} else {
self.audioNode.pause()
}
}
}
但是我不确定该怎么做。