c# .net com windows-media-player wmp

c# - WMPLib: player.mediaCollection.getAll(). El conteo siempre es 0



.net com (1)

Estoy intentando escribir un código que lee cada elemento de la biblioteca del Reproductor de Windows Media del usuario. Este código funciona para la mayoría de los usuarios, pero para algunos usuarios, getAll() devolverá una lista vacía cuando claramente tengan cientos o miles de elementos en su biblioteca de Windows Media Player.

var player = new WindowsMediaPlayer(); var collection = player.mediaCollection; var list = collection.getAll(); int total = list.count;

Estoy haciendo referencia al espacio de nombres WMPLib agregando una referencia COM a wmp.dll. Mi aplicación viene con Interop.WMPLib.dll. ¿Cómo se configuran las máquinas de algunos usuarios de tal manera que ejecutan Windows Media Player con muchas canciones en su biblioteca, pero WMPLib no funciona correctamente? Además, ¿qué soluciones existen para leer de forma confiable la biblioteca del Reproductor de Windows Media del usuario en todos los casos?


Prueba este fragmento y ve si funciona para ti.

public List<MusicEntry> GetMusicLibrary() { List<MusicEntry> entries; IWMPPlaylist mediaList = null; IWMPMedia mediaItem; try { // get the full audio media list mediaList = media.getByAttribute("MediaType", "Audio"); entries = new List<MusicEntry>(mediaList.count); for (int i = 0; i < mediaList.count; i++) { mediaItem = mediaList.get_Item(i); // create the new entry and populate its properties entry = new MusicEntry() { Title = GetTitle(mediaItem), Album = GetAlbum(mediaItem), Artist = GetArtist(mediaItem), TrackNumber = GetTrackNumber(mediaItem), Rating = GetRating(mediaItem), FileType = GetFileType(mediaItem) }; entries.Add(entry); } } finally { // make sure we clean up as this is COM if (mediaList != null) { mediaList.clear(); } } return entries; }

Para obtener más información, consulte este excelente artículo sobre el Proyecto de Código. http://www.codeproject.com/Articles/36338/Export-Windows-Media-Player-Music-Metadata-to-XML