2

诺基亚刚刚发布了“Nokia Imaging SDK”第 1 版。但是,现在我无法使用 Stream 下载图像,因为 SDK 的 StreamImageSource 尝试使用 Stream.Length,这对于 Async Stream 不可用。我该如何解决这个问题?

这是我的代码:

HttpClient c = new HttpClient();
Stream orgImageStream = await c.GetStreamAsync(imageUri);
var imageSource = new StreamImageSource(orgImageStream);  //fails here since he tries to use Stream.Length
4

1 回答 1

3

有趣的错误 - 向诺基亚报告它会很有用。
无论如何,您可以通过先将文件保存到隔离存储或将其复制到本地 MemoryStream来解决它:

HttpClient c = new HttpClient();
Stream orgImageStream = await c.GetStreamAsync(imageUri);

MemoryStream ms = new MemoryStream();
await orgImageStream.CopyToAsync(ms);
ms.Seek(0, SeekOrigin.Begin);
var imageSource = new StreamImageSource(ms);

但是不要忘记在using (Stream ... ) { ... }中使用所有 Stream来正确处理它们!

于 2013-11-14T07:00:53.053 回答