Как реализовать затвор по клавише громкости для iPhone?

Я хочу реализовать такое же поведение с родной камерой iOS5:

  • нажмите кнопку громкости +, чтобы сделать фото

Какой идеальный способ архивирования? Есть ли способы захватить событие нажатия клавиши громкости?

После многочасового гугления и поиска, я нашел одно решение: использование NSNotificationCenter:

...
    [[NSNotificationCenter defaultCenter]
         addObserver:self
         selector:@selector(volumeChanged:)
         name:@"AVSystemController_SystemVolumeDidChangeNotification"
         object:nil];
...
- (void)volumeChanged:(NSNotification *)notification{
    [self takePhoto];   
}

Однако, у него есть 2 проблемы:

  • При нажатии на клавишу громкости каждый раз появляется полупрозрачная надпись "текущая системная громкость", это не то, что я хотел.
  • Для родной камеры, когда вы нажимаете клавишу громкости в качестве затвора, системная громкость не изменяется, однако, используя вышеуказанный метод, системная громкость изменяется.
20
задан BryanH 20 December 2012 в 22:52
поделиться