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也高度重视某些特定的警报和提醒“

+0

将检查出来并回复。我在规格/其他代码中看到了这一点,但是寻找麦克风不会播放,但也可以考虑用于麦克风。是的,在中断。我已经记录了一个APPLE的错误,结束中断没有被正确/无时间地调用回应用程序(Phone/You Tube等)。 – ort11 2012-04-09 15:28:43

+0

使用上面的代码,audioIsAlreadyPlaying的最终值在播放音频时为0,但在设备的静音开关处于活动状态时非零。奇怪 – 2013-01-13 03:23:28