【问题标题】:Get tags from playing music从播放音乐中获取标签
【发布时间】:2023-03-13 00:24:01
【问题描述】:

我想问是否有某种方法可以从 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

【问题讨论】:

  • 您是否可能正在寻找这样的东西:stackoverflow.com/questions/1750464/…
  • 谢谢,但不,这不是我要找的。我想从当前播放的歌曲中提取艺术家和歌曲的名称。我做了一些研究,我应该能够从 Track 对象中提取它。

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多