C#UWP:帮助创建应用程序:用户上传要从列表中存储和播放的MP3文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#UWP:帮助创建应用程序:用户上传要从列表中存储和播放的MP3文件相关的知识,希望对你有一定的参考价值。
我目前正在使用可模仿音乐库的C#和XAML在visual studio中创建一个UWP应用程序。
该应用程序将允许用户在一个页面上上传MP3文件,然后用户将能够点击到另一个页面,从按标题,艺术家和专辑名称组织的列表中播放此音乐。因此,我需要参考MP3文件的元数据,以便能够将歌曲放入各自标题,艺术家姓名和专辑名称下的列表中。
任何人都可以帮我提供如何存储用户上传的音乐的帮助吗?另外如何引用MP3文件中的元数据将标题,专辑名称和艺术家绑定到列表的标题?
如果已经在stackoverflow的先前问题中解决了这个问题,请道歉。我搜索了几次搜索,但没有找到任何适用的搜索。
谢谢!
好的,所以看起来你在这里问的不仅仅是一个问题,所以我会尽力解决每一个问题。
1-该应用程序需要能够访问MP3文件。如果您使用OpenFilePicker将文件“上传”到应用程序,那么应用程序可以保留对StorageFile
的引用,只要应用程序处于打开状态,该引用就会有效。如果您希望允许您的应用在关闭并再次打开后访问相同的文件,那么您需要查看使用FutureAccessList但要小心,因为此列表最多限制1000个项目。如果您希望您的应用需要访问超过1000个文件,那么请查看存储引用文件夹或允许该应用访问用户的MusicLibrary
2-要读取MP3文件的元数据,您需要使用与UWP平台兼容的库。为此,TagLibSharp-Portable是首选。提供的链接有一个如何从文件中读取标记的示例。
希望这能为您提供实现功能的正确途径。
我想我在帮助朋友之前遇到过这个问题,读/写音频/视频的元数据,阅读更多有关TagLib的信息。
string fileName = @"D:PersonalMyMusicAcoustic CoversSong1.mp3";
TagLib.File file = TagLib.File.Create(fileName);
Console.WriteLine(file.Tag.Title);
Console.WriteLine(file.Tag.Album);
然后,为了将歌曲数据存储到db,应将其存储为字节。
using (FileStream fs = new FileStream(fileName, FileMode.Open))
{
using (BinaryReader br = new BinaryReader(fs))
{
byte[] data = br.ReadBytes((int)fs.Length);
// store to db.
}
}
我没有测试过代码,我只是在编写它时想象,但这应该可以帮助你启动你的项目。
以上是关于C#UWP:帮助创建应用程序:用户上传要从列表中存储和播放的MP3文件的主要内容,如果未能解决你的问题,请参考以下文章