たまにはiOSアプリ開発ネタを。 カメラアプリを作るとき、UIImagePickerControllerを使うとボリュームボタンでシャッターが切れるのですが、AVCaptureを使った場合はそれができないので、AVSystemController_SystemVolumeDidChangeNotificationを使って自分でボリュームボタンが押されたことを検出する必要があります。 ググるといろいろコードが出てくるのですが、そのままボリュームが変わってしまったり、日本のiPhoneの撮影時の音量変化が検出されてしまったり、少し試行錯誤が必要でした。 というわけで、以下がコードです。 2012.11.9追記 記述が抜けていた部分とバックグラウンド周りでの不具合があったのでコードを修正しました。 地図絶一門の[twitter:@TeamMOSA2]さん、ご指摘ありがとうございました。 //.h