我知道这个问题的评分可能会很差,但是我一直在寻找一些问题,这些问题询问如何将音频输出重新路由到iOS设备上的扬声器。
我看着用户的每个问题都谈到了使用AVAudioSession
重新路由它。.但是,我不是在使用AVAudioSession
,而是在使用AVAudioEngine
。
所以基本上我的问题是,即使我使用的是AVAudioEngine
,我仍然应该使用AVAudioSession
吗?
如果是这样,这两个对象之间的关系是什么?还是有一种方法可以将AVAudioEngine
连接到AVAudioSession
?
如果不是这种情况,并且AVAudioEngine
和AVAudioSession
之间没有关系,那么您将如何重新路由音频,以使其在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/