在我的 iOS
应用程序中,如果 Mic 在设备中不可用
,我想显示一个 Alert
。
我怎样才能检查这个?
我已经试过了-
-(void)checkMic
{
UInt32 sessionCategory = kAudioSessionCategory_RecordAudio;
OSStatus status = AudioSessionSetProperty (kAudioSessionProperty_AudioCategory, sizeof (sessionCategory), &sessionCategory); //..always seems to return OK..
status = AudioSessionSetActive (true);
if(status)
{
//mic is not available
}
}
但是此代码显示错误消息 - 已弃用。
AudioSessionSetProperty
和 AudioSessionGetProperty
已从 iOS 7 开始弃用。请改用 AVAudioSession
。
您可以使用其 availableInputs
属性获取可用内容的列表,并遍历它们以找到看起来像麦克风的内容,如下所示:
NSArray *availableInputs = [[AVAudioSession sharedInstance] availableInputs];
BOOL micPresent = false;
for (AVAudioSessionPortDescription *port in availableInputs)
{
if ([port.portType isEqualToString:AVAudioSessionPortBuiltInMic] ||
[port.portType isEqualToString:AVAudioSessionPortHeadsetMic])
{
micPresent = true;
}
}
if (micPresent)
{
// Do something cool
}
else
{
// No mic present - show alert
}
或者,如果您只是想要任何输入,而不关心它是麦克风还是线路输入,您可以这样做:
if ([[AVAudioSession sharedInstance] inputAvailable];
{
// Do something cool
}
else
{
// No input present - show alert
}