在iPhone 7上平移顶部和底部扬声器之间的声音

时间:2018-01-29 22:05:43

标签: ios iphone audio core-audio

是否可以将声音平移到iPhone 7和更新型号的顶部或底部扬声器?我没有这些手机中的一款,但我的理解是,当手机处于纵向模式时,iOS会混合立体声并从两个扬声器播放。我知道它将左右声道分配到横向各自的扬声器,但我无法找到有关纵向模式行为的文档。

是否可以将播放限制在一个扬声器或另一个扬声器,或者在顶部和底部之间平移?我的图书馆无法在两个扬声器同时播放的破坏性干扰的情况下运行。

1 个答案:

答案 0 :(得分:2)

事实证明我的问题是错误的。当你无法自己在设备上进行测试时,很难获得可靠的信息。

在iPhone 7及更高版本上,即使没有立体声分离,立体声声道实际也会路由到各个扬声器。左声道通向底部扬声器,右声道通向顶部/耳机扬声器。使用pan属性也可以完成同样的事情。

最后,channel assignments还有一个选项。使用AVAudioSession.sharedInstance.currentRoute.outputs,两个扬声器组合显示为单个输出(outputs[0])。此输出内部有两个频道,outputs[0].channels[0]outputs[0].channels[1]。使用通道分配映射到其中任何一个也可以,第一个通道映射到底部扬声器,第二个通道映射到顶部扬声器。

这些方法中的任何一种都可以很好地将声音输出路由到新的立体声扬声器,即使手机处于纵向方向也是如此。

对于想要尝试使用自己的设备的任何人,我将测试应用程序放在一起,测试各种方法https://github.com/brian-armstrong/speaker-tester