我正在为Windows Phone Mango编写我的第一个C#应用程序。它被设计成一个非常简单的手电筒应用程序。
以前,在Windows Phone上无法访问相机的闪光灯,但在这个最新版本中,它是。以下是关于它的文档:
http://msdn.microsoft.com/en-us/library/microsoft.devices.flashmode(v=vs.92).aspx
不幸的是,这对我来说毫无意义。我已经设置了按钮和if-then语句,用于在单击时切换按钮图标和文本。我就是不知道怎么打开和关闭闪光灯。我希望你能给我一个明确的例子,这样我就可以结束了。
对于那些不想离开网站的人......该链接基本上是这样说的:public enum FlashMode
Members: On, Off, Auto, RedEyeReduction
5条答案
按热度按时间9q78igpj1#
FlashMode枚举只是表示FlashMode有效值的一组值。然而,FlashMode似乎定义了闪光灯在拍照时的行为。“开”似乎意味着闪光灯会一直 Flink 。这似乎并不意味着光本身在不断产生光的意义上是“开”的。
有一点支持这一点的证据:FlashMode文档说FlashMode.On表示“相机闪光灯已启用”。
falq053o2#
你看到这个链接了吗?
http://msdn.microsoft.com/en-us/library/hh202949(v=vs.92).aspx
如果有一个名为“cam”的变量可供您使用(免责声明:我对移动设备一无所知),您需要更改FlashMode属性。所以当你点击按钮的时候
编辑:进一步查看后,“cam”变量似乎是PhotoCamera类的示例。因此,这可能需要在您的应用程序中构建。这个链接也可能在这方面有所帮助。
http://msdn.microsoft.com/en-us/library/hh202956(v=vs.92).aspx
mnowg1ta3#
在MSDN上有一个很好的解释,所以我不会在这里重新创建,但本质上已经创建了一个新的类型来简化赋值。而不是必须记住(例如)'On'等于0,'Off'等于1,您可以使用
FlashMode.On
代替。当然,这些枚举只表示值,因此您仍然需要将其分配给某个对象。例如,我在您提供的链接中找到了以下链接:
cam.FlashMode = FlashMode.On;
这看起来很有趣所以祝你好运!
ltqd579y4#
如果你正在尝试制作某种手电筒应用程序,根据this,没有LED的API
yi0zb3m45#
若要在Windows Phone Mango应用程序中控制手电筒,可以使用Microsoft.Devices.FlashMode枚举。下面是一个演示如何打开和关闭闪光灯的示例:
使用Microsoft.Devices复制代码;
//我的朋友
public partial class MainPage:{ private FlashMode currentFlashMode = FlashMode.Off;
}在此示例中,单击手电筒按钮时调用ToggleFlashlight方法。它检查当前闪光灯模式并相应地初始化相机。如果闪光灯模式关闭,则检查是否支持闪光灯模式“开”,然后将闪光灯模式设置为“开”来初始化相机。如果闪光灯模式已经打开,则检查是否支持闪光灯模式“关”,然后将闪光灯模式设置为“关”来初始化相机。
Cam_FlashModeChanged事件处理程序用于处理闪光模式更改事件。在此处理程序中,您可以更新UI或基于新的flash模式执行任何其他操作。
请确保向项目中添加必要的引用(Microsoft.Devices和Microsoft.Xna.Framework),以便成功编译代码。
请记住处理异常,并处理不支持flash模式或初始化失败的情况。