IOS录音,如何在麦克风播放之前检查麦克风/播放是否忙?

如果有什么东西正在播放,录音,我们如何检查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]; 

在从已经拥有它的东西中抓取MIC /回放之前需要检查。

即使您在麦克风设备上调用[AVCaptureDevice lockForConfiguration] ,麦克风设备也不[AVCaptureDevice lockForConfiguration] ,也不能locking它,前台应用程序仍然可以访问麦克风设备。

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

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

此外,在audio会话编程指南中指出:“没有任何编程方法可以确保audio会话永不中断,原因是iOS始终优先使用手机,iOS也高度优先于某些警报和警报”