MediaCapture.CapturePhotoToStreamAsync() и MediaCapture.CapturePhotoToStorageFileAsync() выдает исключение аргумента

#winrt-xaml #windows-phone-8.1 #winrt-xaml-toolkit

#winrt-xaml #windows-phone-8.1 #winrt-xaml-toolkit

Вопрос:

Я пытаюсь создать приложение, которое может использовать камеру для Windows Phone 8.1, используя модель разработки Windows RT / XAML.

Когда я пытаюсь вызвать любой из методов захвата из класса MediaCapture, я получаю исключение ArgumentException с сообщением «Параметр неверен». Вот мой код

     private async Task Initialize()
    {
        if (!DesignMode.DesignModeEnabled)
        {               
            await _mediaCaptureMgr.InitializeAsync();
            ViewFinder.Source = _mediaCaptureMgr;
            await _mediaCaptureMgr.StartPreviewAsync();
        }
    }

    private async void ViewFinder_OnTapped(object sender, TappedRoutedEventArgs e)
    {
        ImageEncodingProperties imageProperties = ImageEncodingProperties.CreateJpeg();

        var stream = new InMemoryRandomAccessStream();

        await _mediaCaptureMgr.CapturePhotoToStreamAsync(imageProperties, stream);

        _bitmap = new WriteableBitmap((int) ViewFinder.ActualWidth, (int) ViewFinder.ActualHeight);
        stream.Seek(0);
        await _bitmap.SetSourceAsync(stream);

        PreviewImage.Source = _bitmap;
        PreviewElements.Visibility = Visibility.Visible;
        ViewFinder.Visibility = Visibility.Collapsed;
        Buttons.Visibility = Visibility.Visible;
        Message.Visibility = Visibility.Collapsed;

        stream.Seek(0);
        var buffer = new global::Windows.Storage.Streams.Buffer((uint) stream.Size);
        stream.ReadAsync(buffer, (uint) stream.Size, InputStreamOptions.None);

        DataContext = buffer.ToArray();
        if (PhotoCaptured != null)
            PhotoCaptured(this, null);
    }
  

Метод инициализации вызывается при загрузке страницы, а viewfinder_ontapped вызывается, когда они нажимают на CaptureElement, который у меня есть в xaml. Ошибка выдается при

 await _mediaCaptureMgr.CapturePhotoToStreamAsync(imageProperties, stream);
  

Что действительно странно, так это то, что я загрузил последний исходный код для winrt xaml toolkit http://winrtxamltoolkit.codeplex.com / и попробовал их примерное приложение для камеры, которое использует аналогичный код. Он выдает ту же ошибку в MediaCapture.CapturePhotoToStorageFileAsync(). Кто-нибудь может помочь мне определить, почему?

Комментарии:

1. Я просто устал от вашего кода и не смог воспроизвести проблему — можете ли вы попробовать запустить мой образец ?

2. Я работал над этим с коллегой, и, похоже, это может быть проблема с устройством. Я попробую пример в понедельник, когда у меня снова будет доступ к телефону, если он еще не был сброшен к заводским настройкам.