首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WP7上的CameraCaptureTask

WP7上的CameraCaptureTask
EN

Stack Overflow用户
提问于 2011-04-01 17:01:38
回答 3查看 1.6K关注 0票数 6

我想在WP7上使用CameraCaptureTask,以便从手机上获取图像并对其进行操作。我的代码是:

代码语言:javascript
复制
    CameraCaptureTask cameraCaptureTask;
    public MainPage()
    {
        InitializeComponent();

        try
        {
            cameraCaptureTask = new CameraCaptureTask();
            cameraCaptureTask.Completed += new EventHandler<PhotoResult>(cameraCaptureTask_Completed);

        }
        catch (System.InvalidOperationException ex)
        {
            MessageBox.Show(ex.Message);
        }

    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {

        try
        {
            cameraCaptureTask.Show();

        }
        catch (System.InvalidOperationException ex)
        {
            MessageBox.Show(ex.Message);
        }

    }

    void cameraCaptureTask_Completed(object sender, PhotoResult e)
    {
        MessageBox.Show("event: " + e.TaskResult.ToString());
        if (e.TaskResult == TaskResult.OK)
        {                
            BitmapImage bmp = new BitmapImage();
            bmp.SetSource(e.ChosenPhoto);
            image1.Source = bmp;
        }
    }

}

问题是,每次我单击button1时,事件都会被引发,但值是TaskResult.Cancel instad of OK。此外,手机中没有显示摄像头。

有什么想法吗?谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-01 17:44:23

您是否在附加调试器的情况下运行?如果是这样,当您使用Zune软件连接到设备时,摄像机将无法工作。

如果您使用WPConnect工具进行连接,那么它应该可以工作。

票数 14
EN

Stack Overflow用户

发布于 2013-12-10 14:26:51

你可以试试这个。

代码语言:javascript
复制
private void button1_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            cameraCaptureTask = new CameraCaptureTask();
            cameraCaptureTask.Completed += new EventHandler<PhotoResult>(cameraCaptureTask_Completed);
            cameraCaptureTask.Show();
        }
        catch (System.InvalidOperationException ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
   void cameraCaptureTask_Completed(object sender, PhotoResult e)
    {
        MessageBox.Show("event: " + e.TaskResult.ToString());
        if (e.TaskResult == TaskResult.OK)
        {                
            BitmapImage bmp = new BitmapImage();
            bmp.SetSource(e.ChosenPhoto);
            image1.Source = bmp;
        }
    }
票数 1
EN

Stack Overflow用户

发布于 2013-09-03 16:54:43

尝尝这个。

代码语言:javascript
复制
void ctask_Completed(object sender, PhotoResult e)
{

    if (e.TaskResult == TaskResult.OK && e.ChosenPhoto != null)
    {

        //Take JPEG stream and decode into a WriteableBitmap object
        App.CapturedImage = PictureDecoder.DecodeJpeg(e.ChosenPhoto);


        //Collapse visibility on the progress bar once writeable bitmap is visible.
        progressBar1.Visibility = Visibility.Collapsed;


        //Populate image control with WriteableBitmap object.
        ImageMain.Source = App.CapturedImage;
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5511228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档