我想检测MIC当前是否被锁定或被其他任何iOS应用程序使用。我没有得到任何信息来检查MIC是否可用?我不想让用户录制视频,如果MIC已被其他一些应用程序使用,即 Activity 通话,面对面通话。
有人可以告诉我解决这个问题的方法吗?
提前致谢。
更新:添加了检查MIC是否忙的功能
+(BOOL)isMicResourceBusy
{
NSError *error = nil;
NSMutableDictionary *recordSettings = [[NSMutableDictionary alloc] initWithCapacity:10];
NSNumber *formatObject;
formatObject = [NSNumber numberWithInt: kAudioFormatMPEG4AAC ];
[recordSettings setObject:formatObject forKey: AVFormatIDKey];
[recordSettings setObject:[NSNumber numberWithFloat:44100.0] forKey: AVSampleRateKey];
[recordSettings setObject:[NSNumber numberWithInt:1] forKey:AVNumberOfChannelsKey];
[recordSettings setObject:[NSNumber numberWithInt:12800] forKey:AVEncoderBitRateKey];
[recordSettings setObject:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
[recordSettings setObject:[NSNumber numberWithInt: AVAudioQualityHigh] forKey: AVEncoderAudioQualityKey];
NSURL *soundFileURL = [NSURL fileURLWithPath:[FileUtils getNewFilenameWithPrefix:@"testAudioRecording" ext:@"aac"]];
AVAudioRecorder *audioRecorder = [[AVAudioRecorder alloc]initWithURL:soundFileURL settings:recordSettings error:&error];
if ([audioRecorder prepareToRecord] && error == nil)
{
return NO;
}
else
{
NSLog(@"Error: %@", error.localizedDescription);
}
return YES;
}
最佳答案
我认为没有办法检查麦克风是否正在被其他应用程序使用。有一种方法[AVCaptureDevice lockForConfiguration],但似乎不起作用。
关于ios - 检查MIC是否已被其他iOS应用程序锁定或使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21407986/