gpt4 book ai didi

iphone - 仅使用 iPhone 顶部的麦克风

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:31:11 26 4
gpt4 key购买 nike

据我所知,iPhone 上有 2 个麦克风。 1 在音频插孔旁边的顶部附近,另一个是您说话的麦克风。默认麦克风似乎是您说话的那个。

如何以编程方式选择要使用的麦克风?我正在为我的应用程序使用 Core Audio。

基本上我想使用顶部麦克风进行录音。目前,当我录制时,正在使用底部麦克风。有没有办法覆盖默认的麦克风设置?

我知道可以通过以下方式覆盖默认扬声器设置。

UInt32 yes = YES;

AudioSessionSetProperty( kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof(UInt32), &yes );

iPhone 上的麦克风有类似的东西吗?

谢谢。

最佳答案

使用 AVAudioSession 获取可用的输入。

NSLog(@"%@", [AVAudioSession sharedInstance].availableInputs);

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

然后使用这些输入之一来获取可用的数据源,就像这样。

NSLog(@"%@", [AVAudioSession sharedInstance].availableInputs[0].dataSources);

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

我们可以看到这款 iPhone 上实际上有三个麦克风:顶部前置、顶部后置和底部。现在您可以设置首选数据源。

AVAudioSessionPortDescription *port = [AVAudioSession sharedInstance].availableInputs[0];
for (AVAudioSessionDataSourceDescription *source in port.dataSources) {
if ([source.dataSourceName isEqualToString:@"Back"]) {
[port setPreferredDataSource:source error:nil];
}
}

希望对你有帮助快乐编码!!!

关于iphone - 仅使用 iPhone 顶部的麦克风,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14334755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com