作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用 JavaCameraView 来启用 Flash。不幸的是,camera1 的 API 已被弃用,因此我被迫切换到 JavaCamaera2View。问题是我无法启用闪光灯,因为我无法像 JavaCameraView 那样访问相机。
你有什么解决办法?
这是我现在的代码
public class CustomCamera extends JavaCameraView implements PictureCallback {
private String mPictureFileName;
public CustomCamera(Context context, AttributeSet attrs) {
super(context, attrs);
}
public List<String> getEffectList() {
return mCamera.getParameters().getSupportedFlashModes();
}
public boolean isEffectSupported() {
return (mCamera.getParameters().getFlashMode() != null);
}
public String getEffect() {
return mCamera.getParameters().getFlashMode();
}
public void setEffect(String effect) {
mCamera.getParameters();
Camera.Parameters params = mCamera.getParameters();
params.setFlashMode(effect);
mCamera.setParameters(params);
}
public List<Size> getResolutionList() {
return mCamera.getParameters().getSupportedPreviewSizes();
}
public void setResolution(int w, int h) {
disconnectCamera();
mMaxHeight = h;
mMaxWidth = w;
connectCamera(getWidth(), getHeight());
}
public Size getResolution() {
return mCamera.getParameters().getPreviewSize();
}
public void takePicture(final String fileName) {
this.mPictureFileName = fileName;
// Postview and jpeg are sent in the same buffers if the queue is not empty when performing a capture.
// Clear up buffers to avoid mCamera.takePicture to be stuck because of a memory issue
mCamera.setPreviewCallback(null);
// PictureCallback is implemented by the current class
mCamera.takePicture(null, null, this);
}
@Override
public void onPictureTaken(byte[] data, Camera camera) {
// The camera preview was automatically stopped. Start it again.
mCamera.startPreview();
mCamera.setPreviewCallback(this);
// Write the image in a file (in jpeg format)
try {
FileOutputStream fos = new FileOutputStream(mPictureFileName);
fos.write(data);
fos.close();
} catch (java.io.IOException e) {
Log.e("PictureDemo", "Exception in photoCallback", e);
}
}
public void cameraRelease() {
if(mCamera != null){
mCamera.release();
}
}
}
最佳答案
只需使用CameraX:https://developer.android.com/training/camerax
例如,您可以使用:https://github.com/JDroidCoder/Camera2这个库有 flash 功能:https://github.com/JDroidCoder/Camera2/blob/master/camera2/src/main/java/jdroidcoder/ua/camera2/CameraActivity.kt
关于JavaCamera2View启用flash opencv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60754638/
我从适用于 Android 的 OpenCV 下载示例,并让它们在真实设备 (Nexus 7) 上的 eclipse 中运行。它们都工作正常,但是当我查看 LogCat 日志时,我看到每帧显示大约 2
我是一名优秀的程序员,十分优秀!