有没有办法设置我想要的LED强度?我知道打开我使用的LED:
p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
mycam.setParameters(p);
Run Code Online (Sandbox Code Playgroud)
但是这段代码只是打开了LED.但有没有办法为LED设置不同的强度以获得更强的光线或降低光线强度?
我在这里玩BarCode扫描仪的原始示例:
他们可以在相机工厂内启动AutoFocus/Flash,如下所示:
// Creates and starts the camera. Note that this uses a higher resolution in comparison
// to other detection examples to enable the barcode detector to detect small barcodes
// at long distances.
CameraSource.Builder builder = new CameraSource.Builder(getApplicationContext(), barcodeDetector)
.setFacing(CameraSource.CAMERA_FACING_BACK)
.setRequestedPreviewSize(1600, 1024)
.setRequestedFps(15.0f);
// make sure that auto focus is an available option
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
builder = builder.setFocusMode(
autoFocus ? Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE : null);
}
mCameraSource = builder
.setFlashMode(useFlash ? Camera.Parameters.FLASH_MODE_TORCH : null)
.build();
Run Code Online (Sandbox Code Playgroud)
但是,cameraSource构建器上的此方法在当前版本中已消失,因此无法访问此设置.此外,我需要在使用过程中更改FlashMode,因此这也不是这样做的方法.我发现这个丑陋的解决方案来访问相机: …
我正在尝试在我的应用程序中创建SOS模块选项,我创建代码来处理这个问题:
class SOSModule {
private Camera camera;
private Camera.Parameters params;
private boolean isFlashOn;
void blink(final int delay, final int times) {
Thread t = new Thread() {
public void run() {
try {
for (int i=0; i < times*2; i++) {
if (isFlashOn) {
turnOffFlash();
} else {
Camera.open();
turnOnFlash();
}
sleep(delay);
}
} catch (Exception e){
e.printStackTrace();
}
}
};
t.start();
}
void turnOnFlash() {
if (!isFlashOn) {
if (camera == null || params == null) {
return;
} …Run Code Online (Sandbox Code Playgroud) 我想在进行视频录制时在我的应用程序中打开手电筒模式AVCaptureTorchModeOn.
我使用下面的代码.
-(void)set_TorchMode:(BOOL)turnOn
{
AVCaptureDevice *theDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([theDevice hasTorch]) {
[theDevice lockForConfiguration: nil];
AVCaptureTorchMode currentMode = [theDevice torchMode];
BOOL isAlreadyTurnedOn = (AVCaptureTorchModeOn == currentMode);
if (isAlreadyTurnedOn != turnOn) {
[theDevice setTorchMode: turnOn? AVCaptureTorchModeOn: AVCaptureTorchModeOff];
}
[theDevice unlockForConfiguration];
}
}
Run Code Online (Sandbox Code Playgroud)
我在开始录音时打开这个方法打开,在停止录音时将其关闭.
我第一次录制它时工作正常,但是当第二次开始录制时,它开启但立即关闭.录制运行时它不会保持打开状态.
谢谢你的帮助.
android:FLASH_MODE_AUTO 不适用于 Samsung note III Android 4.4.2 上的相机
我已经添加了权限AndroidManifest.xml
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.flash" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.hardware.camera.autofocus" />
<uses-permission
android:name="android.permission.FLASHLIGHT"
android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
android:protectionLevel="normal" />
Run Code Online (Sandbox Code Playgroud)
我正在使用以下代码来设置相机参数
Camera.Parameters params = camera.getParameters();
List<String> flashModes = params.getSupportedFlashModes();
if (flashModes.contains(android.hardware.Camera.Parameters.FLASH_MODE_AUTO))
{
params.setFlashMode(Camera.Parameters.FLASH_MODE_AUTO);
}
camera.setParameters(params);
Run Code Online (Sandbox Code Playgroud)
每当我单击“捕获”时,Note III 上都不会显示闪光。但是,在 Samsung Grand 、Grand II 以及 Google Nexus 和 HTC Sensation 上,它可以正常工作
注意:如果我使用 FLASH_MODE_TORCH 那么它可以正常工作,但它总是显示闪光。
如果有人遇到类似的问题,请帮助我。
我正在使用Android Camera2 API拍摄应用程序的照片,但无法使闪光灯在大多数Samsung Galaxy设备(银河s6 edge,银河s7,银河j7)上正常工作。我相信我已经正确实现了闪光逻辑,因为曾经在Play商店中使用过的Google相机应用程序也表现出相同的行为。另外,银河s8似乎可以很好地与闪光灯配合使用(尽管结果肯定有不一致的照明)
银河j7的问题在于,当我使用闪光灯拍摄照片(锁定闪光灯或在需要闪光灯的场景中使用自动闪光灯)时,闪光灯将保持开启状态很长时间,预览将被锁定,然后在可能需要7秒钟才能拍摄图像,而闪光灯不是图像的一部分。
我有以下处理闪光模式的方法:
private void setAutoFlash(CaptureRequest.Builder requestBuilder)
{
switch (mFlashState)
{
case FLASH_STATE_AUTO:
requestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH);
//requestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);
break;
case FLASH_STATE_ON:
requestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON_ALWAYS_FLASH);
//requestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_SINGLE);
break;
case FLASH_STATE_OFF:
requestBuilder.set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_ON);
//requestBuilder.set(CaptureRequest.FLASH_MODE, CaptureRequest.FLASH_MODE_OFF);
break;
}
}
Run Code Online (Sandbox Code Playgroud)
每当需要CaptureRequest.Builder时,都会调用此闪存逻辑
我读过的3条注释行是为帮助Flash对我来说正常工作而建议阅读的其他内容,但它似乎没有任何作用
三星有自己的相机API(http://developer.samsung.com/galaxy/camera),但我读到它只是Camera2的包装,我担心他们的API甚至无法解决我的问题。
附加信息:
任何有关如何完成工作闪光的帮助将不胜感激
我正在制作一个应用程序,允许我将图像拼接成一个全景场景.我希望能够以编程方式打开iPhone 4上的闪光LED.
我怎样才能做到这一点?
我阅读了文档并发现我需要使用AVCaptureFlashMode
但我无法弄清楚2如何使用它?
任何帮助,将不胜感激.
更新了以下代码.谢谢SIF!
NSError* error = nil;
NSLog(@"Setting up LED");
if([captDevice hasTorch] == NO)
{
NSLog(@"Error: This device doesnt have a torch");
}
if([captDevice isTorchModeSupported:AVCaptureTorchModeOn] == NO)
{
NSLog(@"Error: This device doesnt support AVCaptureTorchModeOn");
}
AVCaptureSession* captureSession = [[AVCaptureSession alloc] init];
AVCaptureDeviceInput* videoInput = [[AVCaptureDeviceInput alloc] initWithDevice:captDevice error:&error];
AVCaptureVideoDataOutput* videoOutput = [[AVCaptureVideoDataOutput alloc] init];
if (videoInput && videoOutput)
{
[captureSession addInput:videoInput];
[captureSession addOutput:videoOutput];
if([captDevice lockForConfiguration:&error])
{
if (flag == YES) {
captDevice.torchMode = AVCaptureTorchModeOn;
} else … 我的问题是当我在不同的闪存模式之间切换然后想要捕获图像时,我的captureBuilder将不会设置所选的闪存模式.它仅在我关闭并重新打开相机时才有效.
我以https://github.com/googlesamples/android-Camera2Basic为出发点.
我的方法:
private void captureStillPicture() {
try {
final Activity activity = (Activity) context;
if (null == activity || null == mCameraDevice) {
return;
}
// This is the CaptureRequest.Builder that we use to take a picture.
CaptureRequest.Builder captureBuilder =
mCameraDevice.createCaptureRequest(CameraDevice.TEMPLATE_STILL_CAPTURE);
captureBuilder.addTarget(mImageReader.getSurface());
// Use the same AE and AF modes as the preview.
captureBuilder.set(CaptureRequest.CONTROL_AF_MODE,
CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE);
setCurrentFlash(captureBuilder);
// Orientation
int rotation = activity.getWindowManager()
.getDefaultDisplay()
.getRotation();
captureBuilder.set(CaptureRequest.JPEG_ORIENTATION, getOrientation(rotation));
CameraCaptureSession.CaptureCallback captureCallback =
new CameraCaptureSession.CaptureCallback() {
@Override
public void onCaptureCompleted(@NonNull CameraCaptureSession …Run Code Online (Sandbox Code Playgroud) 我正在开发相机应用程序。我使用了一个按钮来在需要时打开和关闭闪光灯模式。此方法非常适用于捕获静止图像,不适用于视频模式。下面是我的代码,请帮忙。TIA
class func setFlashMode(_ flashMode: AVCaptureFlashMode, for device: AVCaptureDevice) {
if device.hasFlash && device.isFlashModeSupported(flashMode) {
do {
try device.lockForConfiguration()
device.flashMode = flashMode
device.unlockForConfiguration()
}
catch
{
print("Error:-\(error)")
}
}
}
Run Code Online (Sandbox Code Playgroud)
Flash 按钮操作
@IBAction func flashButtonClicked(_ sender: UIButton)
{
sender.isSelected = !sender.isSelected
if !(sender.isSelected)
{
sender.setTitle(NSLocalizedString("OFF", comment: ""), for: UIControlState.normal)
CameraVC.setFlashMode(AVCaptureFlashMode.off, for: self.videoDeviceInput.device)
}
else
{
sender.setTitle(NSLocalizedString("ON", comment: ""), for: UIControlState.normal)
CameraVC.setFlashMode(AVCaptureFlashMode.on, for: self.videoDeviceInput.device)
}
}
Run Code Online (Sandbox Code Playgroud)
视频按钮操作
@IBAction func videoButtonClicked(_ sender: UIButton)
{
self.sessionQueue.async {
if !self.movieFileOutput.isRecording
{
if UIDevice.current.isMultitaskingSupported
{ …Run Code Online (Sandbox Code Playgroud) 我正在尝试改变Android中相机LED /手电筒的颜色.他们有什么办法实现这个目标?
我知道我们可以在Nexus One Track Ball上改变颜色.我试图在Android中更改相机LED /手电筒颜色.
我建立了一个相机应用程序来自动捕获。我想在打开相机的同时一直保持闪光灯打开。我设置以下代码:
cameraDevice = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo)
if (cameraDevice.hasTorch) {
do {
try cameraDevice.lockForConfiguration()
if cameraDevice.isTorchActive {
cameraDevice.torchMode = AVCaptureTorchMode.on
} else {
// sets the torch intensity to 100%
try cameraDevice.setTorchModeOnWithLevel(0.8)
}
cameraDevice.unlockForConfiguration()
} catch {
print(error)
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行该应用程序时,它只会闪烁一次,然后熄灭。我怎么解决这个问题?
我是IOS Swift的新手.但我正在构建一个样本相机应用程序,它拍摄照片和视频,然后保存到照片库.但是我希望用户在摄像机视图上选择自动/开/关闪光选项,当用户拍摄照片时,闪光灯会根据选项的选择开启或关闭.我正在使用UIImagePickerController来自定义相机功能.到目前为止,我无法得到很多关于如何在相机视图上启用On/Off功能并且按下按钮时相机闪光灯同时工作的建议.
UIImagePickerController中是否有任何Camera Flash功能?如果是这样,那么我如何添加或使用我到目前为止的代码,所以flash和拍照一起工作.
有关如何在控制器中添加闪光功能以及如何在拍照时同时工作的快速示例的任何帮助?有人可以指出我正确的方向.任何帮助将不胜感激.