有没有办法用编程方式使用相机捕获图像,而无需用户按下按钮?

时间:2011-01-17 01:23:22

标签: windows-phone-7

我希望在计时器上拍照,并定期处理图像,但找不到任何内容。

任何帮助将不胜感激,

干杯。

2 个答案:

答案 0 :(得分:1)

在第三方SDK的v1版本中,第三方应用无法在没有用户交互的情况下拍照。虽然AR功能在平台团队的雷达上,但请注意这个空间。

目前通过CameraCaptureTask提供了拍照功能。

答案 1 :(得分:1)

仅供参考:在Windows Phone OS 7.1(a.k.a。“Mango”)中,您现在可以使用 PhotoCamera 类以编程方式从相机捕获图像。使用 CaptureImage 方法触发相机捕获。当捕获可用时,您可以从事件处理程序中的参数访问图像(和缩略图) CaptureImageAvailable CaptureThumbnailAvailable

以下主题完整描述了此过程:

How to: Create a Base Camera Application for Windows Phone

在该示例中,按钮用于触发对 CaptureImage 的调用,但在实际应用程序中,计时器(如您所建议的)更合适。 (我们建议将硬件按钮用于用户触发的照片,而不是UI按钮。 在此处描述:How to: Access the Hardware Camera Shutter Button)。

以下是实际以编程方式触发图像捕获的方法,其中 cam 是PhotoCamera对象:

private void ShutterButton_Click(object sender, RoutedEventArgs e)
{
    // Capture a still image. Events are fired as the thumbnail 
    // and full resolution images become available.
    try
    {
        cam.CaptureImage();
    }
    catch (Exception ex)
    {
        this.Dispatcher.BeginInvoke(delegate()
        {
            // Cannot capture an image until the previous capture has completed.
            txtDebug.Text = ex.Message;
        });
    }
}

注意:如果您尝试捕获另一个捕获正在进行时,PhotoCamera将抛出异常。您可能不会对基于计时器的应用程序出现此问题,但这就是此处使用try / catch的原因。此外, BeginInvoke 用于访问UI线程并在相应页面上的textBlock中显示消息。

希望有所帮助。干杯