我正在开发一个使用Windows Phone 8设备将图像发送回台式机/平板电脑的远程呈现应用程序。我找到了几个样本,它们展示了如何录制视频,甚至将其保存到文件中,但没有一个样本向我展示如何在流式传输时从相机中获取每个帧。我看到了一个使用FileSink对象将视频保存到存储的示例,但没有类似于获取每个帧的生成。我也不会在生成新的位图/帧时在相机对象中看到触发的事件。有一个类似的事件用于拍照,但拍照非常慢,不能用于流式传输视频。
在视频录制模式下,如何获取相机生成的每个帧?我当然需要这个,所以我可以通过桌面/平板电脑的套接字链接发送每一帧。
答案 0 :(得分:2)
如果您使用的是PhotoCaptureDevice或PhotoCamera,您可以使用此
camera.GetPreviewBufferArgb(previewBuffer);
或
camera.GetPreviewBufferArgb32(previewBuffer);
其中previewBuffer
是帧的像素数组。您可以将其分配给WriteableBitmap.Pixels
或在套接字上传递原始数组并将其分配给桌面上的图像。