我有一个场景,从库中选择视频,并在点击按钮时将帧保存为图像。就像我们可以捕获在wpf中播放的当前视频帧一样。
我在Windows Phone 8中完成了这项工作 -
WriteableBitmap bmpCurrentScreenImage = new WriteableBitmap((int)media.ActualWidth, (int)media.ActualHeight);
bmpCurrentScreenImage.Render(media, new MatrixTransform());
bmpCurrentScreenImage.Invalidate();
try
{
using (var stream = new MemoryStream())
{
bmpCurrentScreenImage.SaveJpeg(stream, bmpCurrentScreenImage.PixelWidth, bmpCurrentScreenImage.PixelHeight, 0, 100);
stream.Seek(0, SeekOrigin.Begin);
BitmapImage bi = new BitmapImage();
bi.SetSource(stream);
img.Source = bi;
}
}
catch (Exception exp)
{ }
但在Windows商店应用程序中,WritableBitmap类没有像SaveJpeg()这样的函数,所以我使用了工具包中的WriteableBitmapRenderExtensions- WriteableBitmap w = await WriteableBitmapRenderExtensions.Render(myMedia);
w.Invalidate();
thumb.Source = w;
但它不适用于媒体元素。
在goggling上我发现帖子最类似于我的This post,但无法理解我如何使用它,因为它是在C ++中我用c#创建我的应用程序。