我知道这个问题的评分可能会很差,但是我一直在寻找一些问题,这些问题询问如何将音频输出重新路由到iOS设备上的扬声器。

我看着用户的每个问题都谈到了使用AVAudioSession重新路由它。.但是,我不是在使用AVAudioSession,而是在使用AVAudioEngine

所以基本上我的问题是,即使我使用的是AVAudioEngine,我仍然应该使用AVAudioSession吗?

如果是这样,这两个对象之间的关系是什么?还是有一种方法可以将AVAudioEngine连接到AVAudioSession

如果不是这种情况,并且AVAudioEngineAVAudioSession之间没有关系,那么您将如何重新路由音频,以使其在iOS设备(而不是听筒)上的主要扬声器中播放。

谢谢!

最佳答案

AVAudioSession 特定于iOS,可协调应用程序之间的音频播放,例如,当有电话打进来时,音频停止播放,或者在用户启动电影时停止音乐播放。需要使用此API来确保应用程序能够正确响应此类事件

AVAudioEngine 是用于回放和录制的现代Objective-C API。它提供了一个控制级别,您以前必须将其控制到音频工具箱框架的C API(例如,对于实时音频任务)。音频引擎API的构建可以很好地与较低级别的API交互,因此,如果需要,您仍然可以下拉至“音频工具箱”。

该API的基本概念是建立音频节点图,范围从源节点(播放器和麦克风)和过度处理节点(混合器和效果)到目标节点(硬件输出)。每个节点都有一定数量的输入和输出总线,它们具有定义良好的数据格式。这种体系结构使其非常灵活和强大。而且它甚至与音频单元集成在一起。

因此,两者之间没有包容性关系。

源链接:https://www.objc.io/issues/24-audio/audio-api-overview/

关于ios - AVAudioEngine和AVAudioSession之间有什么关系吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43486755/

10-10 23:25