public AlbumCollection GetAlbums() { throw new NotImplementedException(); IWMPMediaCollection media = wmp.mediaCollection; IWMPPlaylist playlist = media.getAll(); List <Album> albumlist = new List <Album>(); for (int i = 0; i < playlist.count; i++) { IWMPMedia temp = playlist[i]; if (temp.getItemInfo("MediaType") == "audio") { string albumname = temp.getItemInfo("Album"); } } AlbumCollection albums = new AlbumCollection(albumlist); return(albums); }
/// <summary> /// Returns a collection of Song objects from the Windows Media Player library. /// </summary> /// <returns></returns> public static IEnumerable<WmpSong> GetSongsFromLibrary() { WMPLib.WindowsMediaPlayer wmp = new WMPLib.WindowsMediaPlayer(); IWMPMediaCollection media = wmp.mediaCollection; IWMPPlaylist pList = media.getAll(); for (int i = 0; i < pList.count; i++) { IWMPMedia item = pList.get_Item(i); WmpSong currentSong = new WmpSong(); if (item.getItemInfo("CanonicalFiletype") == "mp3") { foreach (LibraryField libField in Enum.GetValues(typeof(LibraryField))) { string attrName; switch (libField) { case LibraryField.AlbumTitle: { attrName = "WM/AlbumTitle"; currentSong.AlbumTitle = item.getItemInfo(attrName); break; } case LibraryField.ArtistName: { attrName = "WM/AlbumArtist"; currentSong.ArtistName = item.getItemInfo(attrName); break; } case LibraryField.CollectionId: { attrName = "WM/WMCollectionID"; currentSong.WmCollectionId = item.getItemInfo(attrName); break; } case LibraryField.DateAdded: { attrName = "AcquisitionTime"; string dateAddedStr = item.getItemInfo(attrName); //Convert from UTC time DateTime utcDateAdded = DateTime.SpecifyKind(DateTime.Parse(dateAddedStr), DateTimeKind.Utc); currentSong.DateAdded = utcDateAdded.ToLocalTime(); break; } case LibraryField.Duration: { attrName = "Duration"; currentSong.Duration = double.Parse(item.getItemInfo(attrName)); break; } //TODO: Add Label support! case LibraryField.LastPlayed: { attrName = "UserLastPlayedTime"; string lastPlayedStr = item.getItemInfo(attrName); if (!string.IsNullOrEmpty(lastPlayedStr)) { //Convert from UTC time DateTime utcLastPlayed = DateTime.SpecifyKind(DateTime.Parse(lastPlayedStr), DateTimeKind.Utc); currentSong.LastPlayed = utcLastPlayed.ToLocalTime(); } break; } case LibraryField.ReleaseDate: { attrName = "ReleaseDate"; string releaseDateStr = item.getItemInfo(attrName); if (!string.IsNullOrEmpty(releaseDateStr)) currentSong.ReleaseDate = DateTime.Parse(releaseDateStr).Date; break; } case LibraryField.SongTitle: { attrName = "Title"; currentSong.SongTitle = item.getItemInfo(attrName); break; } case LibraryField.SongTrackingId: { attrName = "TrackingID"; currentSong.SongTrackingId = item.getItemInfo(attrName); break; } case LibraryField.SourceUrl: { attrName = "SourceURL"; currentSong.SourceUrl = item.getItemInfo(attrName); break; } case LibraryField.TrackNumber: { attrName = "WM/TrackNumber"; currentSong.TrackNumber = int.Parse(item.getItemInfo(attrName)); break; } default: continue; } } yield return currentSong; } } }
public SongCollection GetSongs() { IWMPMediaCollection media = wmp.mediaCollection; IWMPPlaylist playlist = media.getAll(); List <Song> songlist = new List <Song>(); for (int i = 0; i < playlist.count; i++) { IWMPMedia temp = playlist[i]; if (temp.getItemInfo("MediaType") == "audio") { int wmprating; int rating; int tracknumber; int playcount; bool IsProtected; if (!int.TryParse(temp.getItemInfo("UserRating"), out wmprating)) { throw new Exception(); } if (wmprating >= 87) { rating = 10; } else if (wmprating >= 63) { rating = 8; } else if (wmprating >= 38) { rating = 6; } else if (wmprating >= 13) { rating = 4; } else if (wmprating >= 1) { rating = 2; } else { rating = 0; } if (!int.TryParse(temp.getItemInfo("WM/TrackNumber"), out tracknumber)) { tracknumber = 0; } if (!int.TryParse(temp.getItemInfo("PlayCount"), out playcount)) { throw new Exception(); } if (!bool.TryParse(temp.getItemInfo("Is_Protected"), out IsProtected)) { throw new Exception(); } TimeSpan duration = new TimeSpan(0, 0, 0, 0, (int)(temp.duration * 1000.0)); songlist.Add(new Song(temp.name, duration, rating, tracknumber, temp, mediasource)); } } SongCollection songs = new SongCollection(songlist); return(songs); }