iOS 音量键拍照(延时拍照)

server/2025/2/12 11:06:03/
写在前面
  • 下面有两种方法可以实现,一种简单,一种复杂,简单的方法曾经遇到过无法实现的问题,目前不确定为什么。

  • 这是复杂实现的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];
        }

http://www.ppmy.cn/server/39185.html

相关文章

(网络初识)

网络发展史 独立模式 在最开始计算机被发明出来,但网络还未普及的情况下,每个计算机之间都是相互独立的: 假设现在有一份数据需要处理,然后这份数据的处理又分给三个人分别处理。假设小松处理进行第一部分的处理,当小…

《十日终焉》中的定律整理-向虫队学习

1、二八定律 二八定律,又称帕累托法则,也叫巴莱多定律。 是19世纪末20世纪初意大利经济学家巴莱多发明的。其中指出,约仅有20%的因素影响80%的结果。也就是说:所有变因中,最重要的仅有20%,虽然剩余的80%占…

锤子蜡烛如何交易?Anzo Capital这样交易10倍收益结束

很多投资者发现以下的情况,就认为反转到来了,颓势即将结束牛市即将来临。什么情况呢?就是在交易中发现这种情况:会在局部低点形成,上影线很小或几乎没有上阴影,收盘价高出 1/4 ,烛台总有长长的下…

前端开发攻略---打破Chrome的最小字号限制,设置任意字号大小

目录 1、原因 2、解决方法 1、原因 由于Chrome浏览器的限制,在网页中的字号默认最小为12px,更改为12px以下的字号大小是无效的 2、解决方法 1、在Chrome浏览器中调整字号最小值 优点:快,方便, 缺点:只对自…

MySQL 通过 systemd 启动时 hang 住了……

mysqld:哥,我起不来了…… 作者:贲绍华,爱可生研发中心工程师,负责项目的需求与维护工作。其他身份:柯基铲屎官。 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编…

小米SU7智能座舱揭秘:五音区语音交互,智能语音新体验

“小爱同学,打开右后方车门。” “小爱同学,前面的山是什么山?” “小爱同学,有没有离簋街和望京都比较近的川菜馆?” “小爱同学,右后视镜向外调20%,左后视镜往里调10%。” “小爱同学&#xf…

神经网络中的归一化

我们今天介绍一下神经网络中的归一化方法~ 之前学到的机器学习中的归一化是将数据缩放到特定范围内,以消除不同特征之间的量纲和取值范围差异。通过将原始数据缩放到一个特定的范围内,比如[0,1]或者[-1,1],来消除不同特征之间的量纲和取值范围…

WiFi网络的重要性

 WiFi网络的重要性 便利性:WiFi网络提供了无线连接,使得用户可以在没有线缆束缚的情况下访问互联网。这种便利性使得用户可以随时随地使用笔记本电脑、平板电脑、智能手机等设备上网,无论是在家中、办公室、咖啡馆还是公共场所。移动性&am…