首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在iPhone 5上选择后麦克风

在iPhone 5上选择后麦克风
EN

Stack Overflow用户
提问于 2013-01-21 20:26:46
回答 2查看 2K关注 0票数 11

有没有办法让RemoteIO单元在iPhone 5上拿起后置麦克风?我可以将AVAudioSession配置为在前麦克风和底部麦克风之间进行选择,但我无法找到选择后麦克风的方法。

当然,AVFoundation framework在使用后摄像头时使用后麦克风进行录像记录,但我想要一种使用CoreAudio选择同样的方法。这有可能吗?

EN

回答 2

Stack Overflow用户

发布于 2013-05-16 08:15:24

kAudioSessionProperty_Mode设置为带有AudioSessionSetPropertykAudioSessionMode_VideoRecording使用离摄像机最近的麦克风,后者应该是后置麦克风。这是如果您使用音频会话服务。如果您正在使用AVAudioSessionModeVideoRecording进行记录,请使用AVFoundation。医生说:“使用这种模式可能会导致系统提供适当的音频信号处理。”我把它当成“我们也可以用其他的麦克风来消除噪音”。

票数 1
EN

Stack Overflow用户

发布于 2013-10-19 06:42:24

使用AVAudioSession获取可用的输入。在我的iPhone 5上,它看起来是这样的。

代码语言:javascript
复制
NSLog(@"%@", [AVAudioSession sharedInstance].availableInputs);

  "<AVAudioSessionPortDescription: 0x14554400, type = MicrophoneBuiltIn; name = iPhone Microphone; UID = Built-In Microphone; selectedDataSource = Back>"

然后使用这些输入中的一个获得availableDataSources,如下所示。

代码语言:javascript
复制
NSLog(@"%@", [AVAudioSession sharedInstance].availableInputs[0].dataSources);

  "<AVAudioSessionDataSourceDescription: 0x145afb00, ID = 1835216945; name = Bottom>",
  "<AVAudioSessionDataSourceDescription: 0x145b1870, ID = 1835216946; name = Front>",
  "<AVAudioSessionDataSourceDescription: 0x145b3650, ID = 1835216947; name = Back>"

现在,您可以设置首选数据源。

代码语言:javascript
复制
AVAudioSessionPortDescription *port = [AVAudioSession sharedInstance].availableInputs[0];
for (AVAudioSessionDataSourceDescription *source in port.dataSources) {
    if ([source.dataSourceName isEqualToString:@"Back"]) {
        [port setPreferredDataSource:source error:nil];
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14446640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档