如何使用qt打开相机闪光灯或手电筒?

Posted

技术标签:

【中文标题】如何使用qt打开相机闪光灯或手电筒?【英文标题】:how to turn on camera flash light or torch light using qt? 【发布时间】:2016-05-14 17:10:54 【问题描述】:

我需要知道如何使用 qt 打开相机闪光灯或手电筒?有没有办法做到这一点?我正在使用 qt 5.5。请给建议。

这是我的代码

#include "flashon.h"

FlashOn::FlashOn()

    cam = new QCamera;
    camExpos = cam->exposure ();


FlashOn::~FlashOn()

    delete this;


void FlashOn::lightOn()

    camExpos->setFlashMode (QCameraExposure::FlashOn);
    qDebug() << " light is on ";

【问题讨论】:

***.com/help/how-to-ask 请更具体。前任。设备、部署等 我正在构建一个跨平台应用程序来打开相机闪光灯。我的代码很简单,但它不起作用。我能做什么? 您可以在您的 C++ 应用程序(或其他)中实现一个目标 c 文件,然后在此处使用 tibidabo 解决方案:***.com/questions/5882829/… 【参考方案1】:

好吧,如果您阅读文档,QCameraExposure::FlashModes 中有 QCameraExposure::FlashTorch

camExpos->setFlashMode(QCameraExposure::FlashTorch);

并非所有设备都支持:

QCameraExposure::FlashTorch - 0x20 - 恒定光源。如果支持,可以在不加载相机的情况下启用手电筒。

所以你可能想检查它是否可用:

if (!camExpos->isFlashModeSupported(QCameraExposure::FlashTorch)) 
    // ...not supported...

【讨论】:

我已经像这样编辑过但没有运气 cam->start (); if(camExpos->isFlashModeSupported (QCameraExposure::FlashTorch)) camExpos->setFlashMode (QCameraExposure::FlashTorch); @coder_hasib 好吧,如果您对其进行了编辑,您是否确保 isFlashModeSupported 为手电筒模式返回了 true,以便调用 setFlashMode?​​span> 我已经检查过但仍然没有运气 if(camExpos->isFlashModeSupported (QCameraExposure::FlashTorch)) qDebug() setFlashMode (QCameraExposure::FlashTorch); else qDebug() @coder_hasib 如果您想说的是“Flash 支持”但它不起作用,那么我建议您从像Qt Camera Example 这样的完整示例开始工作。我之前没有检查过,但似乎more involved 在设置有效的相机实例时比new QCamera 更重要,例如new QCamera (QCameraInfo::defaultCamera())。因此,在尝试此特定调整之前,请确保您可以运行一个有效的演示。 对不起,我已阅读但找不到相机曝光或任何相关内容。

以上是关于如何使用qt打开相机闪光灯或手电筒?的主要内容,如果未能解决你的问题,请参考以下文章

在Android中打开相机闪光灯LED? [复制]

使用相机闪光灯作为手电筒的应用程序使用 Eclipse 不工作

如何检查设备是不是有闪光灯 LED android

我需要啥权限才能在相机预览中使用相机闪光灯?

无法连接到手电筒小部件中的相机服务

如何快速打开和关闭手电筒?