我知道这个问题可能会得到一个糟糕的评价,但我一直在研究如何将音频输出重新路由到iOS设备上的扬声器的问题。
我看到用户的每个问题都谈到了使用AVAudioSession
重新路由它。但是,我没有使用AVAudioSession
,我使用{{1} }。
所以基本上我的问题是,即使我使用的是AVAudioEngine
,我还应该有AVAudioEngine
吗?
如果是这样,这两个对象之间的关系是什么?或者有没有办法将AVAudioSession
与AVAudioEngine
连接?
如果不是这种情况,并且AVAudioSession
和AVAudioEngine
之间没有任何关系,那么如何重新路由音频以使其在iOS设备上播放主扬声器而不是而不是耳机。
谢谢!
答案 0 :(得分:6)
AVAudioSession 特定于iOS并协调应用之间的音频播放,因此,例如,当有来电时音频停止,或者当用户启动电影时音乐播放停止。需要此API以确保应用程序正确地响应此类事件
AVAudioEngine 是一款用于播放和录制的现代Objective-C API。它提供了一定程度的控制,您以前必须将其下载到Audio Toolbox框架的C API(例如,使用实时音频任务)。音频引擎API可以与低级API很好地连接,因此如果必须,您仍然可以下载到音频工具箱。
此API的基本概念是构建音频节点图,范围从源节点(播放器和麦克风)和过度处理节点(混音器和效果)到目标节点(硬件输出)。每个节点都有一定数量的输入和输出总线,具有明确定义的数据格式。这种架构使其非常灵活和强大。它甚至可以与音频单元集成。
所以这之间没有包容关系。
来源链接:https://www.objc.io/issues/24-audio/audio-api-overview/
答案 1 :(得分:1)
是的,没有明确评论,但是,我从ios开发者文档中找到了这条评论。
AVFoundation播放和录制课程会自动激活您的音频会话。
我希望这对你有所帮助。