Windows Phone 8 で、ネイティブ コードでカメラ ショットを撮りたいのですが、IOutputStream から情報を抽出できない最終段階でブロックされます。
C# では次のようにコーディングします。
MemoryStream image = new MemoryStream();
MemoryStream imagePreview = new MemoryStream();
cameraCaptureSequence.Frames[0].CaptureStream = image.AsOutputStream();
cameraCaptureSequence.Frames[0].ThumbnailStream = imagePreview.AsOutputStream();
await cameraCaptureSequence.StartCaptureAsync();
これからは、画像ストリームにキャプチャされた画像の情報があり、レンダリングできます。
C++ / Cx では、同じことを行う必要がありますが、キャプチャされた画像のバイト * をキャッチするまで、さらにコードを実行する必要があります。
Windows::Phone::Media::Capture::CameraCaptureSequence^ cameraCaptureSequence;
IBuffer^ image;
return concurrency::create_async([this]()
{
cameraCaptureSequence->Frames->GetAt(0)->CaptureStream = reinterpret_cast<IOutputStream^>(image);
create_task( m_camera->PrepareCaptureSequenceAsync(cameraCaptureSequence) ).wait();
create_task( cameraCaptureSequence->StartCaptureAsync() ).then([this]()
{
}
}
最も基本的なことから始めて、キャプチャされた画像ストリームの結果を IBuffer^ に「保存」する方法、内部バイト * バッファーを取得する方法を理解したいと思います。
ありがとう