我正在使用 SceneKit 编写 360º VR 体验。它在用户周围的圆顶中显示视频。
SpriteKit 场景正在使用 SKVideoNode 播放视频源。这个 SpriteKit 场景在 SceneKit 中被包裹在一个球体上,创建了圆顶,因此:
videoGeometry.firstMaterial?.diffuse.contents = spriteKitScene
回放很棒;我看到 360º 视频并听到音频。我想添加位置音频,以便当用户旋转时,声音会随着他们一起移动。不是移动位置,而是随着用户的头部旋转(类似Oculus Rift)。
我怎样才能做到这一点?
一些研究:
理想情况下,我可以告诉 SpriteKit 我的轮换。
下一个最好的方法是访问音轨(例如,带有 5.1 音频的 MP4 中的 6 个音轨)并将每个音轨附加到 3D 场景中的节点。
SpriteKit 和 SceneKit 都支持位置音频。
SKScene
有财产listener
。但是在 2D 世界中,SKNode 不知道旋转;我无法设置当前的头部旋转。SceneKit 有
audioListener
节点,我可以告诉我的头部旋转。但这需要SCNAudioPlayer
我没有的 - SKVideoNode 正在播放视频和音频。如果我能告诉 SCNAudioPlayer SKVideoNode 的音轨就好了!SKScene
还提供audioEngine
- 可以从这里获得曲目吗?没有 SCNVideoNode,所以我必须使用 SKVideoNode。
在这种情况下有没有办法进行位置音频?