如果正在播放录音,我们如何检查MIC是否可用(空闲)进行录音?目前正在使用

AVCaptureDevice *audioCaptureDevice      = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];
AVCaptureSession *captureSession         = [[AVCaptureSession alloc] init];
VCaptureDeviceInput *audioInput          = [AVCaptureDeviceInput deviceInputWithDevice : audioCaptureDevice error:&error];
AVCaptureAudioDataOutput    *audioOutput = [[AVCaptureAudioDataOutput alloc] init];
[captureSession addInput  : audioInput];
[captureSession addOutput : audioOutput];
[captureSession startRunning];


在从已有的麦克风/回放中获取之前,需要进行检查。

最佳答案

麦克风设备不能忙/无法锁定它,即使您在麦克风设备上调用[AVCaptureDevice lockForConfiguration]也不会锁定它,并且前台应用程序仍然可以访问它。

要查看是否正在播放其他音频,可以检查kAudioSessionProperty_OtherAudioIsPlaying例如:

UInt32 propertySize, audioIsAlreadyPlaying=0;
propertySize = sizeof(UInt32);
AudioSessionGetProperty(kAudioSessionProperty_OtherAudioIsPlaying, &propertySize, &audioIsAlreadyPlaying);


此外,在Audio Session Programming Guide上还指出:“没有编程方式可以确保音频会话不会中断。原因是iOS始终将手机置于优先位置。iOS还将某些警报和警报设置为高优先级”

09-12 09:36