首页 文章

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

提问于
浏览
1

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

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

是否可以下拉一个级别并使用远程 IO 单元来完成此任务?我可以使用任何 higher-level API 吗?有没有人有这样的例子?

1 回答

  • 0

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

    相关方法是 overrideOutputAudioPort:。来自文档

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

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

    讨论使用 AVAudioSessionPortOverrideSpeaker 选项调用此方法,音频会话的类别为 AVAudioSessionCategoryPlayAndRecord,无论其他设置如何,音频都会使用 built-in 扬声器和麦克风。此更改仅在当前路由更改之前有效,或者您使用 AVAudioSessionPortOverrideNone 选项再次调用此方法。

相关问题