我正在尝试使用C#在UWP应用程序中捕获XAML网格的视频。
我的方法:
1.使用RenderTargetBitmap通过renderTargetBitmap.RenderAsync
拍摄屏幕截图。
2.将数据转换为字节数组。
3.使用BitmapEncoder
创建一个图像文件,并将其保存在磁盘上。
4.使用MediaClip.CreateFromImageFileAsync
从该图像创建媒体剪辑。
5.将剪辑添加到MediaComposition中,使用composition.Clips.Add(clip)
6.使用composition.RenderToFileAsync(video);
将其保存为视频。
现在这个方法是可行的。 但是,正如你所想象的那样,每次截屏都要保存图像并读取它们来创建剪辑,这会很慢,帧速率也很低。
我正在寻找一些避免每次截屏都要进行磁盘操作的解决方案。能够将RenderTargetBitmap
(或IBuffer
或 byte[]
) 转换为 MediaClip
,而不需要使用磁盘,或者采用不同的方法来保存视频。
我正在开发Hololens的UWP应用程序。