Получение локальных фотографий Эмулятор Windows Phone 8

Итак, я сделал несколько фотографий на своем эмуляторе Windows Phone, а затем пытаюсь найти их в своем приложении. Пока у меня есть:

PictureCollection CameraRollPictures;
using (var library = new MediaLibrary())
{
    //taking all albums
     PictureAlbumCollection allAlbums = library.RootPictureAlbum.Albums;
     //taking Camera Roll album separately from all album
     PictureAlbum cameraRoll = allAlbums.Where(album => album.Name == "Camera Roll").FirstOrDefault();
     // here you will get camera roll picture list
     CameraRollPictures = cameraRoll.Pictures;
}

Но это продолжает падать, потому что cameraRoll = null. Эта функция доступна на эмуляторе WP8 или я что-то не так делаю?

Мой способ получения фотографий — из этого вопроса о стеке с переполнением

ИЗМЕНИТЬ Я также пробовал album.Name == "Camera Roll"

Фотографии Windows Phone


person user1    schedule 08.08.2014    source источник
comment
можете ли вы проверить, является ли ваш элемент allAlbums нулевым или пустым?   -  person Nicolas R    schedule 08.08.2014
comment
Мой элемент allAlbums содержит {Microsoft.Xna.Framework.Media.PictureAlbumCollection}, но имеет счетчик 0   -  person user1    schedule 08.08.2014
comment
Но я загрузил изображение, показывающее, что есть фотографии, которые были кэшированы. (извините не знаю/успею, изменить размер изображения)   -  person user1    schedule 08.08.2014


Ответы (2)


Итак, ответ был прост... Мой метод работал отлично, но мне нужно было:

  • зайдите в WMAppManifest.Xml
  • перейти к возможностям
  • отметьте ID_CAP_MEDIALIB_PHOTO

Это обеспечивает доступ только для чтения к фотографиям в медиатеке.

person user1    schedule 13.08.2014

MediaSource mediaSource = MediaSource.GetAvailableMediaSources()
            .First((source => source.MediaSourceType == MediaSourceType.LocalDevice));
using (MediaLibrary mediaLibrary = new MediaLibrary(mediaSource))
{
     PictureAlbum cameraRollAlbum = mediaLibrary.RootPictureAlbum.Albums.First((album) => album.Name == "Camera Roll");

}

или используйте PhotoChooserTask

Вы можете загружать изображения в Emulator как упоминалось здесь

person Sajeetharan    schedule 08.08.2014
comment
К сожалению, метод MediaSource по-прежнему не возвращал PictureAlbum. Я не могу использовать PhotoChooserTask, потому что я использую формы Xamarin, и я не пробовал последний, но я попробую это позже. - person user1; 08.08.2014