IOS录音,如何在麦克风播放忙碌前检查麦克风/播放是否正常
问题描述:
如果有什么在播放,录制,如何检查麦克风是否可用(空闲)进行录制?目前正在使用IOS录音,如何在麦克风播放忙碌前检查麦克风/播放是否正常
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]
,麦克风设备也不会被锁定,因此它不会锁定它,并且它仍然可以被前台应用程序访问。
要查看是否有其他的音频播放,您可以检查kAudioSessionProperty_OtherAudioIsPlaying
例如:
UInt32 propertySize, audioIsAlreadyPlaying=0;
propertySize = sizeof(UInt32);
AudioSessionGetProperty(kAudioSessionProperty_OtherAudioIsPlaying, &propertySize, &audioIsAlreadyPlaying);
另外在Audio Session Programming Guide中指出:“有保证的音频会话从未中断没有编程方式的原因是iOS始终优先考虑手机,iOS也高度重视某些特定的警报和提醒“
将检查出来并回复。我在规格/其他代码中看到了这一点,但是寻找麦克风不会播放,但也可以考虑用于麦克风。是的,在中断。我已经记录了一个APPLE的错误,结束中断没有被正确/无时间地调用回应用程序(Phone/You Tube等)。 – ort11 2012-04-09 15:28:43
使用上面的代码,audioIsAlreadyPlaying的最终值在播放音频时为0,但在设备的静音开关处于活动状态时非零。奇怪 – 2013-01-13 03:23:28