如何实现iPhone的音量键快门? - 代码日志

如何实现iPhone的音量键快门?

我想实现与iOS5的本机相同的行为:

>按音量按钮拍照

档案的理想方法是什么?
有没有办法捕获音量按键事件?

谷歌搜索搜索几个小时,我发现1个解决方案:使用NSNotificationCenter:

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

但是,它有两个问题:

>每次按音量键时,都会显示“当前系统音量”的半透明叠加层,这不是我想要的。
>对于本地摄像机,当按音量键作为快门时,系统音量不会改变,但是使用上述方法时,系统音量将发生变化。

基于huxia的代码,这适用于ios5,每次活动时都不需要运行代码,一开始就运行一次。

// these 4 lines of code tell the system that "this app needs to play sound/music"
AVAudioPlayer* p = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"photoshutter.wav"]] error:NULL];
[p prepareToPlay];
[p stop];

//make MPVolumeView Offscreen
CGRect frame = CGRectMake(-1000, -1000, 100, 100);
MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame:frame];
[volumeView sizeToFit];
[self.view addSubview:volumeView];
http://stackoverflow.com/questions/8397170/how-to-implement-a-volume-key-shutter-for-iphone

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:如何实现iPhone的音量键快门?