写在前面
-  下面有两种方法可以实现,一种简单,一种复杂,简单的方法曾经遇到过无法实现的问题,目前不确定为什么。 
-  这是复杂实现的demo,使用很简单,就不做文字解释了 
一. 思路
- 首先需要监听音量键的点击,然后对此进行处理,这里是采用通知的方式,获得用户点击的操作,然后在通知方法里面进行拍照的处理
- 这里还有一个问题,就是按音量键时,会弹出音量变化的提示框,我们需要使用自定义的弹出框来达到预期的效果
- 延时拍照需要在监听到音量键被按下时,加入延时代码
二. 简单方法代码
-  dealloc方法 
-  需要注意 -  注销监听 
-  取消响应 - (void)dealloc{
 
 //在离开页面时记得注销监听,并且取消响应 
 [[NSNotificationCenter defaultCenter] removeObserver:self name:@“AVSystemController_SystemVolumeDidChangeNotification” object:nil];//取消相应 
 [[UIApplication sharedApplication] endReceivingRemoteControlEvents];
 }
-  
-  设置音量键的监听 
-  需要注意 -  注册监听 
-  打开响应 
-  添加自定义的响应view /** 
 * 设置音量键的监听
 */- (void)setVolumeEvent{
 
 //注册监听音量键的点按 
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(volumeClicked:) name:@“AVSystemController_SystemVolumeDidChangeNotification” object:nil];//仅仅监听是不起作用的,因为@"AVSystemController_SystemVolumeDidChangeNotification"需要对它进行响应,所以要在监听后加下面这行代码 
 [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];//使用自定义的提示框来代替系统的提示框,这里要注意 
 //1. 需要把提示框放到屏幕外面
 //2. 需要import MediaPlayer.framework 才能使用MPVolumeView
 MPVolumeView *volumeView = [[MPVolumeView alloc]initWithFrame:CGRectMake(-20, -20, 10, 10)];//这里必须设置hidden为NO,否则系统的还是会显示的 
 volumeView.hidden = NO;
 [self.view addSubview:volumeView];
 }
-  
-  监听方法 
-  需要注意 -  在此加入拍照的代码 
-  延时在这里处理,只需要加入一行代码即可 /** 
 * 音量键监听响应方法
 */- (void)volumeClicked:(NSNotification *)noti{
 //在这里我们就可以实现对音量键进行监听,完成响应的操作。noti中也有一些相关的信息可以看看
 //延时拍照的重点在下面这一行代码,括号里面是延时的时间参数
 sleep(3);
 [self stillImage:nil];
 }
 
- (void)volumeClicked:(NSNotification *)noti{
 
-  










