Xamarin Forms Media插件,从MediaFile获取流或StorageFile

时间:2016-07-05 15:41:40

标签: c# .net xamarin cross-platform xamarin.winphone

对于我正在开发的PCL应用程序,我正在使用jamesmontemagno(Github Repo)的Xamarin Forms媒体插件。我主要使用插件通过设备的相机捕获照片,为此我使用的是TakeVideoAsync方法(Task<MediaFile> TakeVideoAsync(StoreVideoOptions options);)。它返回一个[MediaFile][2]对象。

我面临的问题是我需要将图像作为电子邮件附件发送。为此,我将实现一个“EmailSender”类,它将为每个目标平台提供不同的实现(我正在使用PCL方法)。现在我正在开发Windows Phone 8.1(Silverlight)实现。我想使用Windows.ApplicationModel.Email.EmailManager发送Windows.ApplicationModel.Email.EmailMessage。可以在this Stackoverflow answer中看到示例实现(请参阅“ComposeEmail”方法)。

我需要帮助: 我想找到一种方法来检索图像文件(可能是一个StorageFile或RandomAccessStream),以便从中创建一个EmailAttachment对象。从媒体插件中的MediaFile方法返回的TakeVideoAsync我可以获得System.IO.Stream,但我没有找到任何方法将其转换为RandomAccessStream我的Xamarin Windows Phone 8.1的.NET版本的功能

非常感谢所有建议。

1 个答案:

答案 0 :(得分:0)

Windows Phone 8.1中的Stream对象在System.Runtime.WindowsRuntime库中具有.AsRandomStream()扩展方法。 IRandomStream在同一个lib中有一个.ToStream()扩展方法。您还可以使用创建新的RandomStream     IRandomAccessStream randomAccessStream = new InMemoryRandomAccessStream(); 希望有所帮助。

相关问题