2

Я хочу определить, заблокирован ли MIC в настоящее время или используется каким-либо другим приложением iOS. Я не получил никакой информации, чтобы проверить, доступен ли MIC для использования или нет? Я не хочу разрешать пользователю записывать видео, если MIC уже используется каким-либо другим приложением, активным вызовом, факс-вызовом.Проверьте, не заблокирован ли MIC или не используется другим приложением iOS.

Может ли кто-нибудь сказать мне, как решить эту проблему?

Заранее спасибо.

Update: Добавление функции, чтобы проверить, если 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; 
} 
+0

Вы пытались инициализировать 'AVAudioRecorder', в то время как какое-то другое приложение использует микрофон? Я не могу проверить его прямо сейчас, но у меня такое ощущение, что вы получите ошибку, не позволяя пользователю записывать. – Gad

+0

@GadMarkovits См. Мое обновление. Я написал одну функцию, чтобы проверить, занят ли Mic или нет, используя 'AVAudioRecorder'. Но он всегда возвращает NO, даже если голосовая связь Skype активна. – Nitin

ответ

0

Я не думаю, что есть способ проверить, если микрофон используется другим приложением. Существует метод [AVCaptureDevice lockForConfiguration], но он не работает.