可以通过麦克风插孔录制音频,通过iPad上的扬声器播放单独的声音吗?

时间:2014-03-21 02:40:18

标签: ios ipad core-audio

我有一个类似于Square阅读器的设备,可以插入iPad的音频插孔并输入非常简单的数据。我正在使用Novocaine来读取原始数据,但我在同时通过扬声器播放音频时遇到问题。

通过扬声器播放声音时是否可以录制耳机插孔的输入?如果我将kAudioSessionProperty_OverrideAudioRoute设置为kAudioSessionOverrideAudioRoute_Speaker,则输入的路径也会更改。据我所知,not possible可以独立设置输入和输出路径。

是否可以降低关卡并使用Remote IO units来完成此操作?我可以使用更高级别的API吗?有人有这方面的例子吗?

1 个答案:

答案 0 :(得分:0)

我本来想为我的应用程序做这个,并且无法找到办法,而且我在最低级别工作,使用Core Audio设备,特别是远程IO设备。

相关方法是overrideOutputAudioPort:。来自docs

  

overrideOutputAudioPort:error:暂时更改当前音频   路由。

     
      
  • (BOOL)overrideOutputAudioPort:(AVAudioSessionPortOverride)portOverride   错误:(NSError **)outError参数portOverride覆盖选项   输出。有关常量列表,请参阅“AVAudioSessionPortOverride”。   outError输入时,指向错误对象的指针。如果发生错误,   指针设置为描述错误的NSError对象。如果   你不想要错误信息,传递无。如果返回值是YES   新路由选项已成功设置,如果不是,则为NO。
  •   
     

讨论用这个方法调用这个方法   AVAudioSessionPortOverrideSpeaker选项和音频会话   类别是AVAudioSessionCategoryPlayAndRecord导致音频使用   无论其他设置如何,内置扬声器和麦克风。这个   更改只会在当前路线发生变化或您之前生效   使用AVAudioSessionPortOverrideNone选项再次调用此方法。