1

PhotoCaptureDevice クラスを使用しており、カメラ フレームをキャプチャできますが、CameraCaptureSequence の CameraCaptureFrame.CaptureSequence 内の画像データを MemoryStream にコピーしてからカメラ ロールに保存するときにエラーが発生します。これは、私がやろうとしていることのコード スニペットです。

PhotoCaptureDevice cam;    
cam = await PhotoCaptureDevice.OpenAsync(<front/rear depending on user input>,<resolution depends on user input>);

CameraCaptureSequence seq;
seq = cam.CreateCaptureSequence(1);

cam.SetProperty(KnownCameraGeneralProperties.PlayShutterSoundOnCapture, true);

MemoryStream captureStream1 = new MemoryStream();
seq.Frames[0].CaptureStream = captureStream1.AsOutputStream();//This stream is for saving the image data to camera roll

await cam.PrepareCaptureSequenceAsync(seq);
await seq.StartCaptureAsync();

bool a = seq.Frames[0].CaptureStream.Equals(0);//This value is false during debugging
if(capturestream1.Length>0)//This condition evaluates to false
{
MediaLibrary library = new MediaLibrary();
Picture picture1 = library.SavePictureToCameraRoll("image1", captureStream1);
}
else
{
//Logic to handle condition
}

コメントに追加したように、変数bool aは false に評価され、コードをデバッグして確認しました。しかし、何らかの理由でcapturestream1.Lengthプロパティは 0 です。

4

1 に答える 1

3

単一の画像でシーケンスをキャプチャし、その画像を MediaLibrary に保存する方法のコード スニペットを次に示します。シーケンスは複数の画像をキャプチャし、後処理でそれらをメッシュ化するのに非常に適しているため、明らかにこれはこの API の簡単な例です。

private async void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    using (MemoryStream stream = new MemoryStream())
    using (var camera = await PhotoCaptureDevice.OpenAsync(CameraSensorLocation.Back,
            PhotoCaptureDevice.GetAvailableCaptureResolutions(CameraSensorLocation.Back).First()))
    {
        var sequence = camera.CreateCaptureSequence(1);
        sequence.Frames[0].CaptureStream = stream.AsOutputStream();
        camera.PrepareCaptureSequenceAsync(sequence);
        await sequence.StartCaptureAsync();

        stream.Seek(0, SeekOrigin.Begin);

        using (var library = new MediaLibrary())
        {
            library.SavePictureToCameraRoll("currentImage.jpg", stream);
        }
    }
}

このコード スニペットを実行すると、デバイスに保存されている画像を確認できます。

新しい画像を含む写真ハブ

WP8 カメラ API のエンドツーエンドのユースケースをデモする Nokia の Camera Explorer アプリの一部として、完全に機能するサンプルを見つけることができます: http://projects.developer.nokia.com/cameraexplorer

于 2013-01-24T00:56:09.383 に答える