我有一个类似于Square阅读器的设备,可以插入iPad的音频插孔并输入非常简单的数据。我正在使用Novocaine来读取原始数据,但我在同时通过扬声器播放音频时遇到问题。
通过扬声器播放声音时是否可以录制耳机插孔的输入?如果我将kAudioSessionProperty_OverrideAudioRoute
设置为kAudioSessionOverrideAudioRoute_Speaker
,则输入的路径也会更改。据我所知,not possible可以独立设置输入和输出路径。
是否可以降低关卡并使用Remote IO units来完成此操作?我可以使用更高级别的API吗?有人有这方面的例子吗?
答案 0 :(得分:0)
我本来想为我的应用程序做这个,并且无法找到办法,而且我在最低级别工作,使用Core Audio设备,特别是远程IO设备。
相关方法是overrideOutputAudioPort:。来自docs:
overrideOutputAudioPort:error:暂时更改当前音频 路由。
- (BOOL)overrideOutputAudioPort:(AVAudioSessionPortOverride)portOverride 错误:(NSError **)outError参数portOverride覆盖选项 输出。有关常量列表,请参阅“AVAudioSessionPortOverride”。 outError输入时,指向错误对象的指针。如果发生错误, 指针设置为描述错误的NSError对象。如果 你不想要错误信息,传递无。如果返回值是YES 新路由选项已成功设置,如果不是,则为NO。
讨论用这个方法调用这个方法 AVAudioSessionPortOverrideSpeaker选项和音频会话 类别是AVAudioSessionCategoryPlayAndRecord导致音频使用 无论其他设置如何,内置扬声器和麦克风。这个 更改只会在当前路线发生变化或您之前生效 使用AVAudioSessionPortOverrideNone选项再次调用此方法。