Захват камеры в WP7 Mango - PullRequest
5 голосов
/ 28 мая 2011

Я недавно обновил свое приложение WP7 до Mango и у меня возникли проблемы с камерой. Приведенный ниже код работал для 7.0, но в 7.1 завершенный обработчик срабатывает еще до того, как отображается диалоговое окно, поэтому я не могу зафиксировать результат. Сделав снимок, телефон отображает сообщение «Возобновить ...», чего раньше никогда не делал.

var dlg = new CameraCaptureTask();
            dlg.Completed += (s, e) =>
            {
                if (e.TaskResult == TaskResult.OK) {
                    BitmapImage bmp = new BitmapImage();
                    bmp.SetSource(e.ChosenPhoto);
                    //var img = new Image();
                    //img.Source = bmp;

                    string caption = string.Empty;
                    var inputDialog = new InputPrompt()
                    {
                        Title = "Caption",
                        Message = "Enter caption/description for snapshot",
                    };
                    inputDialog.Completed += (ss, ee) =>
                                                 {
                                                     if (ee.PopUpResult == PopUpResult.Ok)
                                                     {
                                                         caption = ee.Result;

                                                         var snap = SnapshotBLL.AddSnapshot(recipeId, bmp, caption);
                                                         onComplete(null, new SnapshotEventArgs(snap));
                                                     }
                                                 };
                    inputDialog.Show();
                }
            };
            dlg.Show();

В документах MSDN показано изменение моего кода, но я больше не могу получить результат задачи захвата камеры.

1 Ответ

5 голосов
/ 30 мая 2011

Если предположить, что ваш образец взят одним методом, я бы не ожидал, что он сработал до Манго.

Необходимо создать CameraCaptureTask и назначить обратный вызов в конструкторе страницы для правильной работы.
Что-то вроде:

public partial class MainPage : PhoneApplicationPage
{
    private CameraCaptureTask cct = new CameraCaptureTask();

    public MainPage()
    {
        InitializeComponent();

        cct.Completed += new EventHandler<PhotoResult>(cct_Completed);
    }

    private void cct_Completed(object sender, PhotoResult e)
    {
        // Do whatever here
    }

    private void SomeEventHandler(object sender, RoutedEventArgs e)
    {
        cct.Show();
    }
}

Это работает как в 7.0, так и в 7.1

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