一种Android平台静音拍照的方法

文档序号:9263676阅读:437来源:国知局
一种Android平台静音拍照的方法
【技术领域】
[0001]本发明涉及Android平台拍照技术领域,特别是涉及如何在拍照时隐藏系统发出的拍照提示音的方法。
技术背景
[0002]在目前使用手机拍照的场景中,有很多场景下为了达到抓拍的目的,需要在不惊动被拍摄目标的情况下完成摄影过程,但由于Android系统的限制,在不同手机上进行拍照时均会发出拍照提示音,目前现有的一些技术方案在拍照时可以隐藏部分手机上的拍照提不音,但是无法在所有手机上生效。
[0003]传统的Android手机拍照过程,使用takePicture方法进行拍照处理,在通过takePicture方法进行拍照时,Android系统会查找/system/media/aud1/ui目录下的拍照提示音文件进行播放,由于这个目录属于系统级别的目录,通过应用程序的修改无法禁止系统对于该文件的播放。
[0004]现有技术中,有一些应用层面的修改方式可以对传统方案的问题进行一些改进: 调用takePicture方法需要传递一个参数ShutterCallback,这个参数表示当手机拍照快门被触发时的处理过程,这里可以通过将这个参数设置为空,这样在部分机型上可以达到拍照无提示音的效果;
部分机型的拍照提示音同样也会受系统音量控制,而系统音量在Android系统上是可以被应用程序控制的,因此可以在takePicture前将手机调整为静音模式,然后在获取到照片之后恢复原来的音量模式,以此来达到静音拍照的目的;
通过对Android手机进行Root操作(获取管理员级别权限),删除掉/system/media/aud1/ui下对应的拍照声音文件,这样在拍照时由于声音文件不存在,也可以达到静音拍照的效果。
[0005]上述三种方法可以在部分机型上达到消除拍照提示音的效果,但是还是有部分机型无法解决这个问题,通过takePicture获取照片的方式无法完美消除拍照提示音,正因如此,寻找一种彻底解决拍照提示音的方法具有重要的理论与现实意义。

【发明内容】

[0006]针对现有技术的缺点的基础上,本发明的目的在于提供一种Android平台静音拍照的方法,来彻底解决拍照提示音的消除问题,并可用于所有Android机型以隐藏拍照提示音。
[0007]本发明提供一种Android平台静音拍照的方法,主要包括以下几个步骤:
(1)启动Android设备的相机功能;
(2)启动预览;
(3)注册预览帧回调;
(4)获取预览帧数据; (5)判断用户是否触发拍照操作,若“否”则返回上步,若“是”则继续;
(6)取消预览帧回调;
(7)停止预览;
(8)将预览帧数据转化为照片数据;
(9)保存照片数据获得所拍照片。
[0008]进一步,步骤(3)中,使相机在获取到每一帧的数据之后都通过onPreviewFrame方法,将预览帧数据返回应用程序。
[0009]进一步,预览帧数据格式为YUV格式。
[0010]进一步,步骤(4)和步骤(5)中,两个步骤循环进行;
随着取景变化,相机会不停的通过onPreviewFrame方法将取景数据返回给应用程序;应用程序需要判断当前用户是否触发了拍照操作,若未触发拍照操作,应用程序可以将当前获取的取景数据直接丢弃,并返回步骤(4),若触发了拍照操作,继续进行照片处理。
[0011]进一步,步骤(6)和步骤(7)中,通过这两个步骤使相机不再向应用程序返回任何取景数据,以保证保存的照片和用户在取景界面最后看到的取景画面一致。
[0012]进一步,步骤(8)中,通过Android系统提供的YUVImage类进行预览帧数据YUV格式到照片数据JPEG格式的转化。
[0013]本发明方法是以取景中获取的预览帧数据作为最后的照片数据为基础。在取景过程中,相机会不停的返回取景数据,因此,在用户按下快门的时候,只需要把当时时刻的取景暂停,同时立即获取最后一帧的图像转化为JPEG图像格式进行保存即可获得拍照照片。这种拍照方式不需要通过takePicture方法,因此可以绕过系统限制,不再自动播放系统预置好的拍照提示音,并且可以由开发者自己定义在拍照时想要发出的提示音。因此能够有效解决拍照时发出提示音的消除问题,并适用于所有Android平台。
[0014]结合附图阅读本发明实施方式的详细描述后,本发明的其他特点和优点将变得更加清楚。
【附图说明】
[0015]下面结合附图与【具体实施方式】对本发明作进一步详细的说明:
图1为本发明的用于Android平台静音拍照的方法流程图。
【具体实施方式】
[0016]为了使本发明的目的、技术方案和优点更加清楚,下面将对本发明的【具体实施方式】作进一步的详细描述。
[0017]参见图1,本实施例的适用于Android平台静音拍照的方法,包括以下几个步骤:
(I)启动Android设备的相机功能;
在本实施例中,用户在按下Android设备的相机功能时,该设备进入拍照状态。
[0018](2)启动预览;
在本实施例中,利用相机取景界面预览取景画面。
[0019](3)注册预览帧回调;
使相机在获取到每一帧的数据之后都通过onPreviewFrame方法,将预览帧数据返回应用程序;
其中预览帧数据格式为YUV格式;
onPreviewFrame方法就是获得YUV格式数据的回调方法,是通过在Android平台的相机的应用程序中中,将通过设置使用回调函数setPreviewCalIback来实现对onPreviewFrame接口的调用,从而得到每一帧的数据形成预览帧数据返回给应用程序。
[0020](4)获取预览帧数据;
随着取景变化,相机会不停的通过onPreviewFrame方法将取景数据返回给应用程序。
[0021](5)判断用户是否触发拍照操作,若“否”则返回上步,若“是”则继续;
应用程序需要判断当前用户是否触发了拍照操作,若未触发拍照操作,应用程序可以将当前获取的取景数据直接丢弃,返回步骤(4),若触发了拍照操作,继续进行照片处理。
[0022](6)取消预览帧回调;
(7)停止预览;
通过步骤(6)和步骤(7)使相机不再向应用程序返回任何取景数据,以保证保存的照片和用户在取景界面最后看到的取景画面一致。
[0023](8)将预览帧数据转化为照片数据;
通过Android系统提供的YUVImage类进行预览帧数据YUV格式到照片数据JPEG格式的转化;
通过YUVImage类将字节数据构造成YUVImage对象,然后调用YUVImage对象的compress To Jpeg O,获取 JPEG 图片。
[0024](9)保存照片数据获得所拍照片。
[0025]最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
【主权项】
1.一种Android平台静音拍照的方法,其特征在于包括以下几个步骤: (1)启动Android设备的相机功能; (2)启动预览; (3)注册预览帧回调; (4)获取预览帧数据; (5判断用户是否触发拍照操作,若“否”则返回上步,若“是”则继续; (6)取消预览帧回调; (7)停止预览; (8)将预览帧数据转化为照片数据; (9)保存照片数据获得所拍照片。2.根据权利要求1所述一种Android平台静音拍照的方法,其特征在于,步骤(3)中,使相机在获取到每一帧的数据之后都通过onPreviewFrame方法,将预览帧数据返回应用程序。3.根据权利要求2所述一种Android平台静音拍照的方法,其特征在于,预览帧数据格式为YUV格式。4.根据权利要求1和2所述一种Android平台静音拍照的方法,其特征在于,步骤(4)和步骤(5)中,两个步骤循环进行; 随着取景变化,相机会不停的通过onPreviewFrame方法将取景数据返回给应用程序;应用程序需要判断当前用户是否触发了拍照操作,若未触发拍照操作,应用程序可以将当前获取的取景数据直接丢弃,并返回步骤(4),若触发了拍照操作,则继续进行照片处理。5.根据权利要求1所述一种Android平台静音拍照的方法,其特征在于,步骤(6)和步骤(7)中,使相机不再向应用程序返回任何取景数据,以保证保存的照片和用户在取景界面最后看到的取景画面一致。6.根据权利要求1和3所述一种Android平台静音拍照的方法,其特征在于,步骤(8)中,通过Android系统提供的YUVImage类进行预览帧数据YUV格式到照片数据JPEG格式的转化。
【专利摘要】本发明涉及Android平台拍照技术领域,提供了一种Android平台静音拍照的方法,步骤包括:启动Android设备的相机功能;启动预览;注册预览帧回调;获取预览帧数据;判断用户是否触发拍照操作,若“否”则返回上步,若“是”则继续;取消预览帧回调;停止预览;将预览帧数据转化为照片数据;保存照片数据获得所拍照片。本发明适用于彻底解决拍照提示音的消除问题,并可用于所有Android机型。
【IPC分类】H04N9/04, H04N5/232
【公开号】CN104980660
【申请号】CN201510402820
【发明人】李涛
【申请人】成都品果科技有限公司
【公开日】2015年10月14日
【申请日】2015年7月10日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1