我正在尝试使用Sprite Kit中的前后通道播放位置音频,并在Apple TV设备上进行测试。
我正在使用以下代码:
$ awk -F':' 'NR==FNR{a[$1]=$2;next} a[$1] {print a[$1]":"$2}' test1.in test2.in
test00@yahoo.com :d63fff1d21e1a04c066824dd2f83f3aeaa0edf6e
我想要完成的是从正面到背面通道的声音,但Sprite Kit似乎只使用2声道立体声输出。
如果我使用moveToX而不是moveToY,我会从左到右进行声音平移。
我肯定错过了一些初始化代码来表示我想要5.1声音输出,但我不确定SKAudioNode位置功能是否仅适用于2声道立体声输出。
Sprite Kit中是否可以实现超过2个通道的位置音频,还是应该使用AVFoundation甚至是OpenAL?
我在SceneKit上尝试过类似的代码,似乎它也只使用了2个通道来定位音频。
答案 0 :(得分:0)
使用SceneKit无法在3D空间中定位声音。您不应该使用SKAudioNode,而是直接使用AVFoundation播放声音。
首先,您必须设置音频会话以使用5.1声道输出布局:
let session = AVAudioSession.sharedInstance()
session.setCategory(AVAudioSessionCategoryPlayback)
session.setActive(true)
session.setPreferredOutputNumberOfChannels(6)
然后连接AVAudioEnvironmentNode设置以输出6个输出通道。
起点可以在现有的答案中找到: