0

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^ に「保存」する方法、内部バイト * バッファーを取得する方法を理解したいと思います。

ありがとう

4

2 に答える 2

0

ICameraCaptureFrameNative は、プレビューを含むテクスチャにアクセスできませんか?

IBuffer からのアクセス データが必要な場合は、こちらを参照してください: http://msdn.microsoft.com/en-us/library/windows/apps/dn182761.aspx

あなたの場合、IOutputStream を実装するクラスが必要だと思います。多分InMemoryRandomAccessStream ですか?

于 2013-10-28T08:28:21.247 に答える