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

Panning sound between top and bottom speaker on iPhone 7

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

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

原来我的问题被误导了。如果您不能亲自在设备上进行测试,则很难获得可信的信息。

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

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

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

对于任何想在自己的设备上尝试的人,我整理了一个测试应用程序来测试各种方法 https://github.com/brian-armstrong/speaker-tester