【问题标题】:Check if MIC is locked or used by other iOS application检查 MIC 是否被其他 iOS 应用程序锁定或使用
【发布时间】:2014-02-19 21:25:36
【问题描述】:

我想检测 MIC 当前是否被任何其他 iOS 应用程序锁定或使用。我没有得到任何信息来检查 MIC 是否可以使用?如果 MIC 已被其他应用程序、活动通话、facetime 通话使用,我不想让用户录制视频。

谁能告诉我解决这个问题的方法?

提前致谢。

更新:添加检查麦克风是否忙的功能

+(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;
}

【问题讨论】:

  • 您是否尝试在其他应用程序使用麦克风时初始化AVAudioRecorder?我现在无法测试它,但我感觉你会收到一个错误,因此不允许用户记录。
  • @GadMarkovits 请查看我的更新。我编写了一个函数来检查 Mic 是否正在使用 AVAudioRecorder 。但即使 Skype 语音通话处于活动状态,它也总是返回 NO。

标签: ios avfoundation microphone video-recording voice-recording


【解决方案1】:

我认为没有办法检查麦克风是否被其他应用程序使用。有一个方法 [AVCaptureDevice lockForConfiguration] 但它似乎不起作用。

【讨论】:

    【解决方案2】:

    您可以尝试[[AVAudioSession sharedInstance] inputNumberOfChannels] 并检查该值是否为 0。太糟糕了,我找不到任何文档

    【讨论】:

      【解决方案3】:

      使用if AVAudioSession.sharedInstance().isOtherAudioPlaying == true{}

      可以解决这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-11
        • 1970-01-01
        • 2011-12-19
        • 1970-01-01
        • 1970-01-01
        • 2021-06-22
        • 2018-05-09
        • 1970-01-01
        相关资源
        最近更新 更多