private void WmpOnMediaChange(object item) { _Wmp.MediaChange -= WmpOnMediaChange; _Wmp.controls.pause(); _Wmp.controls.currentPosition = 0; _Timecode = ((IWMPControls3)_Wmp.controls).currentPositionTimecode; _Wmp.close(); _Wmp = null; }
protected override Id3Tag[] GetTagInfo(Id3Tag tag) { var windowsMediaPlayer = new WindowsMediaPlayerClass(); try { IWMPPlaylist albumContents = windowsMediaPlayer.mediaCollection.getByAlbum(tag.Album.Value); IWMPMedia albumTrack = null; for (int contextIdx = 0; contextIdx < albumContents.count; contextIdx++) { string artistContent = albumContents.get_Item(contextIdx).getItemInfo("Artist"); if (string.Compare(artistContent, string.Join("/", tag.Artists.Value), StringComparison.OrdinalIgnoreCase) == 0) { albumTrack = albumContents.get_Item(contextIdx); break; } } if (albumTrack != null) { string collectionId = albumTrack.getItemInfo("WM/WMCollectionID"); var largePicture = new PictureFrame(); largePicture.SetPicture( Image.FromFile(string.Format("{0}\\AlbumArt_{1}_Large.jpg", Path.GetDirectoryName(albumTrack.sourceURL), collectionId))); var smallPicture = new PictureFrame(); smallPicture.SetPicture( Image.FromFile(string.Format("{0}\\AlbumArt_{1}_Small.jpg", Path.GetDirectoryName(albumTrack.sourceURL), collectionId))); var result = new Id3Tag(); result.Pictures.Add(largePicture); result.Pictures.Add(smallPicture); return(new[] { result }); } return(Id3Tag.Empty); } catch { return(Id3Tag.Empty); } finally { windowsMediaPlayer.close(); } }