C# MediaComposition.GetThumbnailAsync()中存在内存泄漏?
在Windows 10上,对MediaComposition.GetThumbnailAsync()的调用似乎会严重泄漏内存。从我在模拟器上看到的情况来看,Windows Phone似乎还可以。也许我遗漏了一些明显的东西,有人能解释一下吗 复制:C# MediaComposition.GetThumbnailAsync()中存在内存泄漏?,c#,windows,windows-runtime,uwp,C#,Windows,Windows Runtime,Uwp,在Windows 10上,对MediaComposition.GetThumbnailAsync()的调用似乎会严重泄漏内存。从我在模拟器上看到的情况来看,Windows Phone似乎还可以。也许我遗漏了一些明显的东西,有人能解释一下吗 复制: 创建空白的c#通用Windows项目 将按钮添加到MainPage.xaml,如中所示: 将处理程序添加到MainPage.xaml.cs,如中所示: 使用VS建议的语句添加所需内容 将一些short.mp4添加到资产文件夹中,并将其命名
- 创建空白的c#通用Windows项目
- 将按钮添加到MainPage.xaml,如中所示:
- 将处理程序添加到MainPage.xaml.cs,如中所示:
- 使用VS建议的语句添加所需内容
- 将一些short.mp4添加到资产文件夹中,并将其命名为test.mp4
- 在x86中运行并单击按钮几次。观察Process Explorer或内置VS diagnostics中内存使用的增加。在800MB左右崩溃
- 已经得到微软的确认,他们可以复制,这是一个bug。现在已在截至2015年11月20日的最新WIN 10版本中修复,请确认。这似乎是windows应用商店平台中的一个bug。它在调试和发布模式下复制。
private MediaComposition _comp = null;
private async void Button_Click(object sender, RoutedEventArgs e) {
if (_comp == null) {
var file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/test.mp4", UriKind.Absolute));
var clip = await MediaClip.CreateFromFileAsync(file);
_comp = new MediaComposition();
_comp.Clips.Add(clip);
}
using (ImageStream thumb = await _comp.GetThumbnailAsync(TimeSpan.FromSeconds(1), 0, 0, VideoFramePrecision.NearestFrame)) {
Debug.WriteLine(GC.GetTotalMemory(true).ToString("N0"));
}
}