2012-02-02 8 views
1

iOS 5では、音量アップボタンはカメラアプリでUIImagePickerControllerの場合は.showsCameraControlls == YESの写真を撮影するようになりました。幸せな日々。カスタムカメラコントロールでUIImagePickerControllerを使用しているときにボリュームアップイベントで写真を撮る方法は?

showsCameraControllsNOに設定し、自分自身を指定すると(takePictureメソッドがトリガーされます)、ボリュームアップボタンは機能しなくなります。 UIImagePickerControllerが表示されているときにどのようにボリュームイベントを検出できますか?

体積変化を検出する古い方法はとてもようだった:私は自分のアプリケーションデリゲートにこのコードを追加

AudioSessionSetActive(true); 
[[NSNotificationCenter defaultCenter] 
    addObserver:self 
    selector:@selector(volumeChanged:) 
    name:@"AVSystemController_SystemVolumeDidChangeNotification" 
    object:nil]; 

。奇妙なことにを初めて表示するまで、volumeChanged:はトリガーされません。さらに重要なのは、UIImagePickerControllerが表示されている間(それは通常のボリュームHUDも表示されていません)、起動されていないことです。アップルはそれを無効にして以来、&がイベントをハイジャックしています。

再度、写真を撮る目的でカスタムカメラコントロールを使用しているときにUIImagePickerControllerが表示されている間、ボリュームアップボタンイベントを検出する方法はありますか?

カスタムカメラコントロールを使用する理由がわからないのは、標準のカメラコントロールで許可されていない複数の写真を撮りたいからです。

答えて

2

UIImagePickerの代わりにAVCapture APIを使用してみてください。ここではチュートリアルです:

http://www.musicalgeometry.com/?p=1273

それは多くの、より低いレベルだとそれが使用するのは難しいのですが、それは、ボリュームコントロールをブロックべきではありません。

イメージキャプチャ中に音量コントロールを有効にするには、サイレントオーディオファイルを再生するようなトリックを試してみることもできます。

更新:あなたはあなたの場合、通知_UIApplicationVolumeUpButtonDownNotification

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(volumeChanged:) 
             name:@"_UIApplicationVolumeUpButtonDownNotification" 
             object:nil]; 

にオブザーバを追加することができますiOSの8日

http://ios.biomsoft.com/2011/12/07/taking-control-of-the-volume-buttons-on-ios-like-camera/

+0

ありがとう、私は今、高レベルのものに熱心で、低レベルのものはちょうどこの1つの機能を追加するためにちょっと残酷です。あなたのチュートリアルのリンクは有望に見える、私はそれをチェックアウトします。 –

+0

私はチュートリアルを試してみましたが、うまくいきましたが、UIImagePickerControllerが表示されている間は動作しませんでした。 –

4

:私はまた、カメラのシャッターのための音量ボタンを使用して、このチュートリアルを見つけましたUIImagePickerControllerを使用している場合は、イベントをキャプチャして、TakePictureをカスタムビューで呼び出すことができました。

さらに、UIImagePickerControllerは、音量を上げても音量が変わることはありません。

アップルがその通知を聞いているアプリを承認するかどうかはわかりません。これは最もクリーンなアプローチのようです。

+0

オーディオセッションを初期化する必要はありますか?この通知を購読するだけでは、このトリックはできませんでした。 –

+0

このソリューションはiOS 10で動作しなくなったようです – iCode

関連する問題