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