如果正在播放,录制,我们如何检查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 / Playback中获取MIC / Playback之前需要先检查一下。
答案 0 :(得分:6)
麦克风设备无法忙/无法锁定,即使您在麦克风设备上拨打[AVCaptureDevice lockForConfiguration]
它也无法锁定它,前台应用程序仍然可以访问它。
要查看是否正在播放其他音频,您可以查看kAudioSessionProperty_OtherAudioIsPlaying
例如:
UInt32 propertySize, audioIsAlreadyPlaying=0;
propertySize = sizeof(UInt32);
AudioSessionGetProperty(kAudioSessionProperty_OtherAudioIsPlaying, &propertySize, &audioIsAlreadyPlaying);
另外在Audio Session Programming Guide上声明:“没有编程方式来确保音频会话永远不会中断。原因是iOS总是优先考虑手机.iOS也高度优先考虑某些警报并提醒“