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

ort*_*t11 0 audio-recording 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];
Run Code Online (Sandbox Code Playgroud)

需要先检查从已有的MIC/Playback中获取MIC/Playback.

val*_*exa 6

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

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

UInt32 propertySize, audioIsAlreadyPlaying=0;
propertySize = sizeof(UInt32);
AudioSessionGetProperty(kAudioSessionProperty_OtherAudioIsPlaying, &propertySize, &audioIsAlreadyPlaying);
Run Code Online (Sandbox Code Playgroud)

此外,在音频会话编程指南中声明:"没有编程方式来确保音频会话永远不会中断.原因是iOS总是优先考虑手机.iOS也高度优先考虑某些警报和警报"