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 です。