private void SaveImageToCameraRoll(int imageHandle, String imageName, Resource imageResource) { MediaLibrary library = new MediaLibrary(); MemoryStream targetStream = new MemoryStream(); int mediaType = MoSync.Constants.MA_MEDIA_TYPE_IMAGE; int mediaHandle = imageHandle; int eventReturnCode = MoSync.Constants.MA_MEDIA_RES_OK; try { WriteableBitmap data = (WriteableBitmap)imageResource.GetInternalObject(); data.SaveJpeg(targetStream, data.PixelWidth, data.PixelHeight, 0, 100); data = null; library.SavePictureToCameraRoll(imageName, targetStream.GetBuffer()).Dispose(); } catch (Exception e) { System.Diagnostics.Debug.WriteLine(e.ToString()); eventReturnCode = MoSync.Constants.MA_MEDIA_RES_IMAGE_EXPORT_FAILED; } finally { library.Dispose(); targetStream.Dispose(); PostMediaEvent(mediaType, mediaHandle, eventReturnCode); } }
public void SaveToCameraRoll(string fileName) { IsolatedStorageFileStream fileStream = storage.OpenFile(fileName, FileMode.Open, FileAccess.Read); MediaLibrary mediaLibrary = new MediaLibrary(); Picture pic = mediaLibrary.SavePictureToCameraRoll(fileName, fileStream); fileStream.Dispose(); mediaLibrary.Dispose(); pic.Dispose(); storage.DeleteFile(fileName.Remove(fileName.IndexOf(".")) + "_jpg.jpg"); storage.DeleteFile(fileName.Remove(fileName.IndexOf(".")) + "_png.jpg"); }
private void Save_Click(object sender, EventArgs e) { IsolatedStorageFileStream fileStream = storage.OpenFile(imageName, FileMode.Open, FileAccess.Read); MediaLibrary mediaLibrary = new MediaLibrary(); Picture pic = mediaLibrary.SavePictureToCameraRoll(imageName, fileStream); fileStream.Dispose(); mediaLibrary.Dispose(); pic.Dispose(); storage.DeleteFile(imageName.Remove(imageName.IndexOf(".")) + "_jpg.jpg"); storage.DeleteFile(imageName.Remove(imageName.IndexOf(".")) + "_png.jpg"); MessageBox.Show("Image Saved to Camera Roll!"); }
private void InitList() { var media = new MediaLibrary(); var list = media.Pictures; List <MediaLibraryThumbnailedImage> imgSources = new List <MediaLibraryThumbnailedImage>(); foreach (var pic in list) { imgSources.Add(new MediaLibraryThumbnailedImage(pic)); } mediaViewer.Items = new ObservableCollection <object>(imgSources); media.Dispose(); media = null; }
public void Dispose() { if (_cameraCaptureDevice != null) { _cameraCaptureDevice.Dispose(); } if (_mediaLibrary != null) { _mediaLibrary.Dispose(); } SaveSettings(); }
private static List <SongEx> GetActualSongList() { var list = new List <SongEx>(); MediaLibrary lib = new MediaLibrary(); if (lib != null) { uint hMediaList = InteropSvc.InteropLib.Instance.ZMediaLibrary_GetSongs(); int count = lib.Songs.Count; for (int x = 0; x < count; x++) { var song = lib.Songs[x]; if (!song.IsProtected) { var songEx = new SongEx(song); uint hash = InteropSvc.InteropLib.Instance.ZMediaList_GetHash(hMediaList, x); string hashStr = String.Format("{0:X}", hash).PadLeft(8, '0'); string path = "\\My Documents\\Zune\\Content\\" + hashStr.Substring(0, 4) + "\\" + hashStr.Substring(4, 2) + "\\" + hashStr.Substring(6, 2); if (InteropSvc.InteropLib.Instance.GetFileAttributes7(path + ".mp3") != 0xFFFFFFFFU) { path += ".mp3"; } else { path += ".wma"; } songEx.FilePath = path; list.Add(songEx); } } InteropSvc.InteropLib.Instance.ZMediaList_Release(hMediaList); lib.Dispose(); list.Sort(new SongExComparer()); } return(list); }
// Instance constructor public MusicPresenter() { // Make this class a singleton if (MusicPresenter.Current != null) { this.Composers = MusicPresenter.Current.Composers; return; } MediaLibrary mediaLib = new MediaLibrary(); Dictionary <string, List <AlbumInfo> > albumsByComposer = new Dictionary <string, List <AlbumInfo> >(); foreach (Album album in mediaLib.Albums) { int indexOfColon = album.Name.IndexOf(':'); // Check for pathological cases if (indexOfColon != -1 && // Colon at beginning of album name (indexOfColon == 0 || // Colon at end of album name indexOfColon == album.Name.Length - 1 || // nothing before colon album.Name.Substring(0, indexOfColon).Trim().Length == 0 || // nothing after colon album.Name.Substring(indexOfColon + 1).Trim().Length == 0)) { indexOfColon = -1; } // Main logic for albums with composers if (indexOfColon != -1) { string[] albumComposers = album.Name.Substring(0, indexOfColon).Split(','); string shortAlbumName = album.Name.Substring(indexOfColon + 1).Trim(); bool atLeastOneEntry = false; foreach (string composer in albumComposers) { string trimmedComposer = composer.Trim(); if (trimmedComposer.Length > 0) { atLeastOneEntry = true; if (!albumsByComposer.ContainsKey(trimmedComposer)) { albumsByComposer.Add(trimmedComposer, new List <AlbumInfo>()); } albumsByComposer[trimmedComposer].Add(new AlbumInfo(shortAlbumName, album)); } } // Another pathological case: Just commas before colon if (!atLeastOneEntry) { indexOfColon = -1; } } // The "Other" category is for albums without composers if (indexOfColon == -1) { if (!albumsByComposer.ContainsKey("Other")) { albumsByComposer.Add("Other", new List <AlbumInfo>()); } albumsByComposer["Other"].Add(new AlbumInfo(album.Name, album)); } } mediaLib.Dispose(); // Transfer Dictionary keys to List for sorting List <string> composerList = new List <string>(); foreach (string composer in albumsByComposer.Keys) { composerList.Add(composer); } (composerList as List <string>).Sort(); // Construct Composers property Composers = new List <ComposerInfo>(); foreach (string composer in composerList) { Composers.Add(new ComposerInfo(composer, albumsByComposer[composer])); } Current = this; }