Плагин Xamarin Forms Media, получить поток или StorageFile из MediaFile
Для приложения PCL, которое я разрабатываю, я использую медиа-плагин для форм Xamarin от jamesmontemagno ( Github Repo). В основном я использую плагин для захвата фотографий через камеру устройства, для этого я использую метод TakeVideoAsync (Task<MediaFile> TakeVideoAsync(StoreVideoOptions options);
). Возвращает [MediaFile][2]
объект.
Проблема, с которой я сталкиваюсь, заключается в том, что мне нужно отправить изображение в виде вложения электронной почты. Для этого я реализую класс "EmailSender", который будет иметь разные реализации для каждой целевой платформы (я использую подход PCL). Сейчас я работаю над реализацией Windows Phone 8.1 (Silverlight). Я хотел бы использовать Windows.ApplicationModel.Email.EmailManager
отправить Windows.ApplicationModel.Email.EmailMessage
, Пример реализации можно увидеть в этом ответе Stackru (посмотрите на метод "ComposeEmail").
В чем мне нужна помощь: я хочу найти способ получения файла изображения (возможно, в виде StorageFile или RandomAccessStream), чтобы сделать из него объект EmailAttachment. От MediaFile
вернулся TakeVideoAsync
Метод в плагине СМИ я могу получить System.IO.Stream
, но я не нашел способа преобразовать его в RandomAccessStream
с функциональностью.NET версии мой Xamarin Windows Phone 8.1
Все предложения будут очень благодарны.
1 ответ
Объект Stream в Windows Phone 8.1 имеет метод расширения.AsRandomStream() в библиотеке System.Runtime.WindowsRuntime. IRandomStream имеет метод расширения.ToStream() в той же библиотеке. Вы также можете создать новый RandomStream с помощью IRandomAccessStream randomAccessStream = new InMemoryRandomAccessStream(); Надеюсь, это поможет.