【发布时间】:2015-06-25 16:29:15
【问题描述】:
在以前的方式中,可以通过使用相机类来使用手电筒功能。但现在 android.hardware 包中的整个 Camera 和 Camera 相关类都已弃用,我应该替代使用 android.hardware.camera2 包中的一些其他类。
传统上,我是这样编写手电筒部分的代码。
// getting camera parameters
private void getCamera() {
if (camera == null) {
try {
camera = Camera.open();
params = camera.getParameters();
} catch (RuntimeException e) {
Log.e("Camera Error. Failed to Open. Error: ", e.getMessage());
}
}
}
/*
* Turning On flash
*/
private void turnOnFlash() {
if (!isFlashOn) {
if (camera == null || params == null) {
return;
}
// play sound
playSound();
params = camera.getParameters();
params.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(params);
camera.startPreview();
isFlashOn = true;
// changing button/switch image
toggleButtonImage();
}
}
但是现在有了新的 API,我对如何使用新的 API 感到很困惑。谁能解释一下?
【问题讨论】:
-
我建议通过 Android 5.1 坚持使用现有的
CameraAPI,然后切换到 the new flashlight API in Android M。