public Stream GetMultimediaFromDescriptor(ref StorageDescriptor storageDescriptor) { switch (storageDescriptor.Type) { case StorageType.IsolatedStorage: return GetMultimediaFromIsolatedStorage(storageDescriptor.FileName); case StorageType.CameraRoll: return GetMultimediaFromCameraRoll(storageDescriptor.FileName); case StorageType.Unknown: return Stream.Null; default: return Stream.Null; } }
private string FilePathForDescriptor(StorageDescriptor desc) { if (desc.Type != StorageType.IsolatedStorage) { throw new ArgumentException("desc"); } Contract.Requires(CurrentMultimediaFolder != null, "Invalid Profile Folder"); return Path.Combine(CurrentMultimediaFolder, desc.FileName); }
public string StoreMultimedia(string FileName, Stream data) { Contract.Requires(!string.IsNullOrWhiteSpace(FileName), "Invalid Filename"); var fileDescriptor = new StorageDescriptor() { Type = StorageType.IsolatedStorage, FileName = FileName }; var filePath = FilePathForDescriptor(fileDescriptor); UsingIsolatedStorage(store => { if (store.FileExists(filePath)) { throw new InvalidOperationException("Couldn't save Media. File already Exists!"); } else { using (var file = store.CreateFile(filePath)) { data.Seek(0, SeekOrigin.Begin); data.CopyTo(file); file.Flush(); } } }); return fileDescriptor.ToString(); }
public string StoreImage(string fileNameHint, PhotoResult image) { StorageDescriptor fileDescriptor; var cameraRoll = Library.CameraRoll(); //On WP8 the image is already saved, check for that... //On Devices without Camera Roll fall back to saving anyway if (IsWP8 && cameraRoll != null) { // ... and use the Image in the Camera Roll var crImage = cameraRoll.Pictures.OrderByDescending(p => p.Date).First(); fileDescriptor = new StorageDescriptor() { Type = StorageType.CameraRoll, FileName = crImage.Name }; } else { var pic = Library.SavePictureToCameraRoll(fileNameHint, image.ChosenPhoto); fileDescriptor = new StorageDescriptor() { Type = StorageType.CameraRoll, FileName = pic.Name }; } return fileDescriptor.ToString(); }