CameraCaptureTask на WP7 - PullRequest
       1

CameraCaptureTask на WP7

6 голосов
/ 01 апреля 2011

Я хочу использовать CameraCaptureTask на WP7, чтобы получать изображение с телефона и манипулировать им. Мой код:

    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;
        }
    }

}

Проблема в том, что каждый раз, когда я нажимаю кнопку 1, событие возникает, но значение равно TaskResult.Cancel вместо OK. Более того, в телефоне камера не отображается.

Есть идеи? Спасибо

Ответы [ 3 ]

14 голосов
/ 01 апреля 2011

Работаете ли вы с прикрепленным отладчиком?Если это так, камера не будет работать при подключении к устройству с использованием программного обеспечения Zune.

Если подключение выполняется с помощью инструмента WPConnect , то оно должно работать.

1 голос
/ 10 декабря 2013

Вы можете попробовать это ...

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;
        }
    }
0 голосов
/ 03 сентября 2013

Попробуйте это.

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;
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...