有时候我们想要在不打开相机预览界面的情况下,实现后台拍照或者录像,这种情况该怎么实现呢?
其实很简单,先讲一下实现的原理,我们开启一个前台service(android新版本不让后台service去操作相机,所以选择前台service),然后通过一个很小的surfaceview或者textureview,比如5*5像素绑定在前台service当中,这样基本肉眼不可见,来达到后台录像的目的。
代码如下:
首先是基本的权限:
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
前台服务:
package com.jxd.recordbackservice;
import android.app.Notification;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.graphics.PixelFormat;
import android.hardware.Camera;
import android.media.MediaRecorder;
import android.os.Environment;
import android.os.IBinder;
import android.text.format.DateFormat;
import android.util.Log;
import android