当前位置: 首页 > 知识库问答 >
问题:

在iOS中的内置话筒和耳机之间进行选择

酆光熙
2023-03-14

我们正在开发一款需要在iOS中更改音频路由的应用程序。我们需要从麦克风输入中获取一些信息,然后切换到设备的内部麦克风以录制环境声音。

我们从这些页面中看到了两个主题:强制iPhone麦克风作为音频输入,如果耳机已插入,则使用内置麦克风,但我猜根据这种情况,没有任何定论。

现在,代码可以工作,但我们可以选择音频输入的路线。

我们在Apple(Remote IO)提供的留档中没有找到任何内容。

这有什么新鲜事吗?

谢谢

共有1个答案

蔡默
2023-03-14

警告:此答案仅适用于iOS6。对于iOS7或更高版本,这是不正确的。有关详细信息,请参见备注。

这是可能的,但只有副作用。更改输入设备也会更改输出设备。您将无法通过内部麦克风录音,同时通过耳机的耳机实时收听录音。这意味着,如果您不想同时通过耳机收听录音,有一个解决方案适合您:

连接耳机(=组合耳机和麦克风)后,您可以在两种选择中进行选择:

  • 内置麦克风用于输入,扬声器用于输出
  • 耳机麦克风用于输入,耳机耳机用于输出

(不能混合使用这些。)

您可以通过音频会话服务API的函数AudioSessionSetProperty设置属性kAudioSessionProperty_OverrideAudioRoute来选择其中一个选项。属性的留档显示:

如果在您将此属性的值设置为kAudioSessionOverrideAudioRoute\u扬声器时插入了耳机,则系统会更改输入和输出的音频路由:输入来自内置麦克风;输出到内置扬声器。

 类似资料:
  • 我试图通过在扬声器和耳机之间切换按钮来播放音频。问题是,我试图将音频默认为从耳机播放,但没有结果。然后,当我按下按钮切换到扬声器时,仍然没有音频播放。我从本地原始文件播放。 我在显明书中也有android.permission.MODIFY_AUDIO_SETTINGS。 以下是我的代码: 以下是我设置 MediaPlayer 的方式:

  • 我正在使用语音识别应用程序。蓝牙耳机成功连接到我的android设备后,我想在内置麦克风和耳机麦克风之间自由切换音频输入,如何做到?

  • 我试图让用户能够在我的应用程序中切换音频输出,我可以使用AVAudioSession在扬声器和背部之间切换,但我找不到在连接的蓝牙设备和耳机之间切换的方法,以任何顺序。 谢谢你的帮助。

  • 问题内容: 我在这里找到执行跟踪任务的最惯用的方法。 任务 : 将数据从通道写入文件。 问题 : 我有一个频道 我需要从通道读取并将从通道读取的值写入文件。我的问题基本上是鉴于 如果通道已满,请立即写入值 如果通道未满,则每5s写一次。 因此,从本质上讲,至少需要每5s将数据写入文件一次(假设至少每5s将数据填充到通道中一次) 请告诉我用最好的方式,并做到我上面的任务吗? 谢谢! 问题答案: 没有

  • 我正在开发一个简单的应用程序,它应该在扬声器电话和有线耳机之间切换,以播放按钮点击事件的音频。我正在尝试使用isWiredHeadsetOn()函数,但它说这对于Android API lvl 5及更高版本来说是不推荐的。那么,我如何通过有线耳机检查当前音频是否正在播放,以便我可以将其重定向到手机扬声器? 注意:我将耳机插入手机的3.5毫米插孔开始我的应用程序。 这是我迄今为止对代码的尝试: 但是

  • 我创建了语音通话录音应用程序,它与手机的麦克风和听筒配合得很好。但是当插入耳机时,它不能录制音频。我试图将AudioSource更改为AudioSource.default,以为它会自动接受默认音频源。它什么也没记录。