3

iPad とそのヘッドフォン ジャックを使用しているときに、興味深いことに気付きました。

iPhone のイヤホン ヘッドホンを iPad に接続すると、ヘッドホンの音量を (iPad の音量ボタンを使用して) 変更できます。イヤフォンを取り外し、同じヘッドフォン ジャックを使用して外部スピーカーを接続すると、音量を別のレベルに調整できます。スピーカーのプラグを抜いたら、イヤフォンを再び差し込むことができます。音量は、イヤホンを最後に設定した音量に自動的に戻ります。ヘッドフォン ジャックに接続する 3 つ目のデバイスがある場合 (私の場合、ヘッドフォン ジャックに接続する UniMag クレジット カード スワイプ リーダーでテストしました)、iPad はさらに 3 つ目のボリュームを記憶します。iPhoneのジャックにどの機器が差し込まれているのかを把握し、適切な音量レベルに設定しているようです。

これは私の予想に反するものです。どのデバイスが接続されているかに関係なく、ヘッドフォン ジャックの音量レベルは 1 つであると予想していました。

iPad がどのデバイスがどれであるかを判断できる場合、これは私のネイティブ アプリでも利用できますか? ユーザーがヘッドホン、外部スピーカー、または UniMag クレジット カード スワイプ デバイスを Audio API を使用してヘッドホン ジャックに接続し、それに応じて動作するかどうかを確認できますか?

おまけに、どのデバイスがどれであるかを識別する iPad の機能の背後にある技術的メカニズムを知っていれば、それも興味深いでしょう。

iOS5を搭載したiPad2でテストしています。

4

1 に答える 1

1

この目的で CoreAudio を使用できます。変更の通知も設定できると思います。より具体的には、オーディオ セッションを使用して iOS でこれを行うことができます。あなたが探しているのは、ルートの変更です。https://developer.apple.com/library/ios/#documentation/Audio/Conceptual/AudioSessionProgrammingGuide/Cookbook/Cookbook.html

于 2012-02-06T20:39:18.810 に答える