6

我一直在探索 Scene Kit / ARKit 中的位置音频,并想看看是否可以在这种情况下使用 AudioKit 来从其更高级别的分析、声音生成、效果等工具中受益。

对于某些背景,SCNView 带有一个 AVAudioEnvironmentNode、一个 AVAudioEngine 和一个 audioListener (SCNNode)。这些属性已初始化,环境节点已配置到引擎。位置音频源通过 SCNAudioPlayer 添加到场景中,可以使用 AVAudioNode 进行初始化 - AVAudioNode 必须连接到环境节点并具有单声道输出。

然后将 SCNAudioPlayer 添加到场景中的 SCNNode 并根据其在场景中的位置以及 audioListener 节点的位置和方向自动负责修改 AVAudioNode 的输出。

我希望可以使用 SCNView 的 AVAudioEngine 属性初始化 AudioKit,在引擎的节点图中配置 SCNView 的环境节点,使用 AKNodes 的 AVAudioNode 属性来初始化 SCNAudioPlayers,并确保所有源正确连接到环境节点. 我已经开始修改 AudioKit 源代码,但无法弄清楚我需要适应哪些类以及如何将环境节点集成到 AudioKit 管道中。特别是我无法理解 connectionPoints 和 outputNode 属性。

鉴于 AudioKit 的结构或对方法有任何指示,是否有人认为这可能是不可能的?

我当然很乐意分享我的任何发现。

4

1 回答 1

1

AudioKit 在 AudioKit.swift 的第 38 行创建自己的 AVAudioEngine 实例:

https://github.com/AudioKit/AudioKit/blob/master/AudioKit/Common/Internals/AudioKit.swift#L38

但它是开放的,所以应该可以用 SceneView 的音频引擎覆盖它。我没有看到任何可以阻止它的东西。

于 2017-11-16T18:43:12.247 回答