Плагин 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(); Надеюсь, это поможет.

Другие вопросы по тегам