开启你的闪光灯:手电筒程序(Flash on)

一直想做个控制闪光灯的程序,却苦于没有头文件

 

最近研究了一下limo的API文档和开发文档,自己重建了一个mm_camcorder.h,并在此基础上弄了一个手电筒程序,这下半夜的不列颠空战就能派上用场了:)

 

首先当然是

#include <mmf/mm_camcorder.h>

 

然后声明三个变量:

 

MMHandleType handler=0,attr=0;

MMCamPreset cp;

 

 

使用cp创建相机handler:

 

cp.videodev_type = MM_VIDEO_DEVICE_CAMERA0;

MMCamcorderCreate(&handler,&cp);

 

 

获取相机handler的曝光属性,并赋值给attr:

MMCamcorderGetAttrs(handler,MM_CAMCORDER_ATTR_STROBE,&attr);

 

 

初始化相机handler:

MMCamcorderRealize(handler);

 

把曝光属性设置为MM_CAMCORDER_FLASH_MOVIE_ON(MOVIE_ON为长亮,ON只是闪一下)

 

MMAttrsSetInt(attr,MM_CAMCORDER_STROBE_CONTROL,MM_CAMCORDER_FLASH_MOVIE_ON);

MMCamcorderSetAttrs(handler,MM_CAMCORDER_ATTR_STROBE,attr);

 

开启相机handler:

MMCamcorderStart(handler);

 

这个时候,你就可以看到背后的闪光灯亮起来了,当然这个时候相机的状态也是开启的,只不过没有输出到屏幕(输出的方法以后再讲)

 

使用完闪光灯(相机)之后就要关闭了

 

关闭前先把闪光灯关闭(当然这是正常步骤,貌似直接关相机,闪光灯也会跟着关):

MMAttrsSetInt(attr,MM_CAMCORDER_STROBE_CONTROL,MM_CAMCORDER_FLASH_OFF);

MMCamcorderSetAttrs(handler,MM_CAMCORDER_ATTR_STROBE,attr);

 

关闭相机handler

MMCamcorderStop(handler);

 

这时候相机虽然关闭了还是可以再次用start开启的

 

想要完全注销相机handler还要:

MMCamcorderUnrealize(handler);

MMCamcorderDestroy(handler);

 

 

这个时候硬件就完全关闭了,想要再次开启就要重新create和realize,而且需要一定的延时,不然会create失败

 

还等什么,赶快定制自己的闪光灯吧

(收到短信,闪光灯提示,很邪恶吧)

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值