ARkit 音频

362 阅读2分钟

#使用音频创造身临其境的增强现实体验 developer.apple.com/documentati…

使用音效和环境声层来创造引人入胜的增强现实体验。

此示例应用程序使用SceneKit基于节点的音频API将环境声音与放置在现实世界的虚拟对象相关联。由于默认情况下音频在SceneKit中是3D位置,因此根据用户与节点的距离自动混合音量。

使用入门

-此示例代码支持“本地化”,因此,它需要ARKit 1.5(iOS 11.3)或更高版本

  • ARKit在iOS模拟器中不可用

-构建样本需要Xcode 9.3或更高版本

运行 AR 会话并放置虚拟内容

在使用音频之前,您需要设置会话并放置播放声音的对象。为了简单起见,此示例运行一个世界跟踪配置,并将虚拟对象放置在它检测到的第一个水平平面上。有关此类会话设置的更多详细信息,请参阅[跟踪和可视化平面](developer.apple.com/documentati…

Add 3D Audio to the Scene

要在3D空间的给定位置播放音频,请从音频文件创建`SCNAudioSource'。此示例从“viewDidLoad”中的捆绑包加载文件:

// Instantiate the audio sourceaudioSource = SCNAudioSource(fileNamed: "fireplace.mp3")!

然后,配置并准备音频源:

// As an environmental sound layer, audio should play indefinitely
audioSource.loops = true// Decode the audio from disk ahead of time to prevent a delay in playback
audioSource.load()

当您准备播放声音时,创建一个SCNAudioPlayer,并将其传递给音频源:

// Create a player from the source and add it to `objectNode`
objectNode.addAudioPlayer(SCNAudioPlayer(source: audioSource))

为了获得最佳效果,请使用单声道音频文件。SceneKit的音频引擎使用平移来创建3D位置效果,因此立体声音频源产生更难识别的3D音频效果。

image.png