2

Windows RT/XAML 開発モデルを使用して、Windows Phone 8.1 用のカメラを使用できるアプリを作成しようとしています。

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 は、xaml にある CaptureElement をタップすると呼び出されます。エラーがスローされます

await _mediaCaptureMgr.CapturePhotoToStreamAsync(imageProperties, stream);

本当に奇妙なのは、winrt xaml ツールキットhttp://winrtxamltoolkit.codeplex.com/の最新ソースをダウンロードし、同様のコードを使用するサンプル カメラ アプリを試したことです。MediaCapture.CapturePhotoToStorageFileAsync() で同じエラーがスローされます。誰かが理由を特定するのを手伝ってくれますか?

4

0 に答える 0