Sprite Kit中的5.1声道位置音频输出可能吗?

时间:2016-08-02 20:36:03

标签: ios audio sprite-kit apple-tv

我正在尝试使用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个通道来定位音频。

1 个答案:

答案 0 :(得分:0)

使用SceneKit无法在3D空间中定位声音。您不应该使用SKAudioNode,而是直接使用AVFoundation播放声音。

首先,您必须设置音频会话以使用5.1声道输出布局:

let session = AVAudioSession.sharedInstance()  
session.setCategory(AVAudioSessionCategoryPlayback)  
session.setActive(true)  
session.setPreferredOutputNumberOfChannels(6)

然后连接AVAudioEnvironmentNode设置以输出6个输出通道。

起点可以在现有的答案中找到:

https://stackoverflow.com/a/35657416/563802