2012-02-01 9 views
0

録音中に何か録音が行われている場合は、MICが録音可能(アイドル)かどうかを確認する方法はありますか?現在IOSオーディオ録音、Mic/Playbackがマイクを取る前にビジー状態にあるかどうかを確認する方法

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 /再生をつかむ前にチェックする必要があります。

答えて

6

[AVCaptureDevice lockForConfiguration]をマイクデバイスに接続しても、マイクデバイスはビジー状態ではなく、ロックできません。ロックされず、フォアグラウンドアプリケーションから引き続きアクセスできます。 Audio Session Programming Guideにさらに

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

記載されている:「オーディオセッションが中断になることはありませんことを保証するいかなるプログラム的な方法はありません理由がある。他のオーディオは、あなたがkAudioSessionProperty_OtherAudioIsPlayingなどを確認することができます再生しているかどうかを確認するために

iOSは常に特定のアラームとアラートに高い優先度を与えます "

+0

これをチェックアウトして戻ってきます。私はspec/otherコードでこれを見ましたが、マイクを探しているのを探していませんでしたが、マイクのためにも考えていました。中断したらはい。 APPへのバグを記録しましたが、APPへのコールバックが途切れないように/すべての時間(Phone/You Tubeなど)になっていません。 – ort11

+0

上記のコードを使用すると、オーディオ再生中のaudioIsAlreadyPlayingの最終値は0ですが、デバイスのミュートスイッチがアクティブな場合はゼロではありません。奇妙な –

関連する問題