为了账号安全,请及时绑定邮箱和手机立即绑定

UWP:如何从本地音乐文件读取歌词?

UWP:如何从本地音乐文件读取歌词?

C#
萧十郎 2023-09-16 20:18:53
歌词嵌套在音乐文件中,而不是从互联网下载。没有MusicProperties这样的属性。我尝试使用Id3包来读取它,这需要文件的路径。然而,在 UWP 中,似乎没有办法使用类似的路径访问文件C:/Users/Seaky/Desktop/Music/SomeMusic.mp3(至少对我不起作用,因为即使使用broadFileSystemAccess.,我的权限也被拒绝)。我还能尝试什么?
查看完整描述

2 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

我找到了一种方法来做到这一点,因为Mp3在其构造函数中接受 Stream 对象。因此,我能够这样做:


    public async Task<string> GetLyrics()

    {

        var file = await StorageFile.GetFileFromPathAsync(Path);

        using (var stream = await file.OpenAsync(FileAccessMode.Read))

        {

            using (var mp3 = new Mp3(stream.AsStream()))

            {

                var lyrics = mp3.GetTag(Id3TagFamily.Version2X).Lyrics;

                return lyrics.Count > 0 ? lyrics[0].Lyrics : "";

            }

        }

    }


查看完整回答
反对 回复 2023-09-16
?
青春有我

TA贡献1784条经验 获得超8个赞

从 UWP 应用程序访问选定数量的文件夹之外的文件需要额外的权限。

正如您所指出的,您已将broadFileSystemAccess功能添加到应用程序清单中,该功能应允许访问最终用户有权访问的任何文件。

broadFileSystemAccess功能仍然需要最终用户授权该应用程序。broadFileSystemAccess如果指定了功能并且尚未授予权限,通常会提示最终用户执行此操作,但是,在某些情况下,这会被破坏。因此,您可以通过 Windows“应用程序和设置”设置页面下指向您的应用程序的“高级设置”链接来检查应用程序是否具有所需的权限。

如果您对路径进行硬编码,您可以尝试让最终用户选择使用的文件FileOpenPicker,看看这是否会产生影响。


查看完整回答
反对 回复 2023-09-16
  • 2 回答
  • 0 关注
  • 75 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信