闪光灯

原创 2015年07月09日 16:40:42

闪光灯主要是控制Camera 类的开关,来实现一闪一闪

代码如下:

import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.LinearLayout;

public class MainActivity extends Activity {
	private Camera camera = null;
	// 创建一个Handler对象
	Handler handler = new Handler();

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		flashclose();
		camera.startPreview();
	}

	// 判断camera是否打开
	private boolean openCamera() {
		if (camera != null) {
			return true;
		}
		try {
			camera = Camera.open();
		} catch (Exception e) {
			return false;
		}
		return true;
	}

	// 关闭camera
	private void releaseCamera() {
		handler.removeCallbacks(mFlashOnRunnable);
		handler.removeCallbacks(mFlashOffRunnable);
		if (camera != null) {
			camera.stopPreview();
			camera.release();
			camera = null;
		}
	}

	// 开始闪光
	private void flashopen() {
		if (!openCamera()) {
			return;
		}
		Parameters parameters = camera.getParameters();
		parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
		camera.setParameters(parameters);
	}

	// 停止闪光
	private void flashclose() {
		if (!openCamera()) {
			return;
		}
		Parameters parameters = camera.getParameters();
		parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
		camera.setParameters(parameters);
	}

	private Runnable mFlashOnRunnable = new Runnable() {
		@Override
		public void run() {
			flashopen();
			//闪光灯的频率(自己可以静态设置,也可以动态设置)
			int delayTime = getDelayTime();
			if (delayTime > 0) {
				handler.postDelayed(mFlashOffRunnable, delayTime);
			}
		}
	};

	private Runnable mFlashOffRunnable = new Runnable() {
		@Override
		public void run() {
			flashclose();
			handler.postDelayed(mFlashOnRunnable, getDelayTime());
		}
	};

	// 获的闪关的频率
	private int getDelayTime() {
		//这就是获取刻度尺的值,上篇文章有讲解
		return staff.getRate() * 100 + 100;
	}
}



版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

仿真实例趣味闪光灯

  • 2014-07-03 23:40
  • 90KB
  • 下载

iOS 闪光灯

iOS闪关灯的Demo其实并没有想象中的那么简单: 找到闪光灯相关的类, 它肯定有开关对应的方法, 然后直接调用就行了. 事实证明这种想法太想当然了.  iOS系统中, 并没有专门的类来负责闪光灯的工...

Android闪光灯手电筒源码

  • 2012-10-31 09:18
  • 705KB
  • 下载

给C8812加装闪光灯

很早就想改造一下手机了,想着外接个键盘,就可以打NES了,昨晚手又痒痒了,说拆旧拆。拆掉后壳后看了看,想找找看串口有没有引主板上,倒是找到了几个测试点,不过没法辨别到底是干什么的。然后看了下USB端口...

android 闪光灯小手电150K

  • 2014-10-12 10:26
  • 930KB
  • 下载

使用iMX53 IPU SISG功能控制摄像头闪光灯

最近调试MT9P111 摄像头时camera FAE方面要求使用主控控制闪关灯(具体情况好像是用sensor控制太麻烦了)。发了几封邮件要求提供相关参数配置,但拿到的参数连闪关灯都无法打开。 看...
  • chychc
  • chychc
  • 2012-01-06 20:40
  • 9035

设备闪光灯

  • 2014-07-02 17:39
  • 75KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)