在我的iOS
应用程序中,我想显示一个Alert
,如果Mic is not available in the device
.
我怎么检查这个?
我试过这个 -
-(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 }