この質問に対する答えは「いいえ」だと思います。私は iPhone 4 と iOS 4 の新機能 AVFoundation を使って実験し、AVCaptureDeviceクラスに焦点を当てました。
アプリケーションに次を追加しました。
NSLog(@"%@", [AVCaptureDevice devices]);
そのため、オーディオやビデオのキャプチャに使用できるすべてのデバイスをリストするよう求められます。ヘッドフォンが接続されていない場合、次のようになります。
(
"Back Camera",
"Front Camera",
"iPhone Microphone"
)
ヘッドフォンを接続すると、次のようになります。
(
"Back Camera",
"Front Camera",
Headphones
)
したがって、iPhone のマイクは、ヘッドフォンが使用可能になるとすぐに、使用可能な AVCaptureDevices のリストから削除されます。これをさらに調査するために、利用可能なオーディオ デバイスの AVCaptureDevice インスタンスを取得し、その一意の ID を出力する簡単なコードを追加しました。「iPhone マイク」として自身を識別するデバイスと「ヘッドフォン」として自身を識別するデバイスの両方について、次のようになりました。
com.apple.avfoundation.avcapturedevice.built-in_audio:0
2 つのデバイスが同じ一意の ID を持つことができないことは明らかであるように思われるため、同じデバイスが状態を変更していることは明らかです。AVCaptureDevices には状態を設定するためのものがたくさんありますが、フォーカス、露出、フラッシュ、ホワイト バランスなどの視覚的なものに限定されます。