从播放音乐中获取标签

时间:2014-01-05 21:14:26

标签: c# windows-phone-8 tags audio-player

我想问一下是否有办法以编程方式从Windows Phone 8媒体播放器播放的音乐中获取mp3标签?

我曾尝试使用BackgroundAudioPlayer实例,来自XNA框架的MediaPlayer从wp8音乐播放器播放的歌曲中提取标签,但似乎我无法得到它。 我结束了这样的事情:

var player = BackgroundAudioPlayer.Instance;
if (player.PlayerState != PlayState.Playing) return;
var track = player.Track;
ArtistTextBlock.Text = track.Artist;
SongTextBlock.Text = track.Title;

但如果我想将TextBlocks与艺术家或歌曲名称字符串组合在一起,则会抛出NullReferenceException

1 个答案:

答案 0 :(得分:0)

如果在赋值时抛出NullReferenceException,您应该尝试逐步调试以确定您的track变量是否有效或者它是否确实为null。有人可能会认为player.Track应该是player.NowPlaying或类似,但我不太了解WP8框架。

除此之外,如果仅偶尔抛出NullRef,则完全有可能在更改轨道时播放器没有轨道,因此它返回NULL并导致此问题。确保播放器已加载曲目,并且播放器本身与PlayStateChanged相关联 - 如果您捕获此事件,您应该能够知道当它“正在播放”时您已加载文件,然后应该是能够证明您已加载曲目。

我想到的替代方案是带有.NET的FileInfo库,它可以提供大量有关文件的信息,包括一些标签。有可能使用它来获取信息。