C# 从本地路径打开音乐文件?

C# 从本地路径打开音乐文件?,c#,C#,我在网上搜索答案,但什么也找不到。让我解释一下我的错误: 当我尝试从本地路径打开文件时,会收到以下消息: 备用流名称必须以“app-”开头 我的代码: var itemId = ((Item)e.ClickedItem).Subtitle; var file = await KnownFolders.VideosLibrary.GetFileAsync("file:///" + itemId); var stream = await file.OpenAsync(FileAccessMo

我在网上搜索答案,但什么也找不到。让我解释一下我的错误: 当我尝试从本地路径打开文件时,会收到以下消息:

备用流名称必须以“app-”开头

我的代码:

 var itemId = ((Item)e.ClickedItem).Subtitle; 
 var file = await KnownFolders.VideosLibrary.GetFileAsync("file:///" + itemId);
 var stream = await file.OpenAsync(FileAccessMode.Read);
 music.SetSource(stream, ".mp3");
我已经在清单中声明了视频库和音乐库。 itemid中的字幕是文件路径。

检查。我想它可以帮助你

两个问题:

GetFileFromPathAsync requires a path and since it's Async you need to Await it.

To use a URI like ms-appx use the GetFileFromApplicationUriAsync | getFileFromApplicationUriAsync method :

  file = Await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///programs/TextFile1.txt"))
您还必须在函数声明中添加一个“异步”修饰符。有关异步方法的更多信息,请参见Quickstart:Calling asynchronous API in C#或Visual Basic

Private Async Sub Button_Tapped(sender As Object, e As TappedRoutedEventArgs)

这是什么ui框架?为什么有
文件://
?这是必需的吗?备用流是NTFS文件系统功能。允许文件存储多个数据流。此类流的名称为file.ext:streamname。注意冒号。@HansPassant不,我只想从itemgridview@Christos92:但它在
文件中看到冒号://
并认为您在请求另一个流。放弃协议
GetFileAsync
需要一个相对路径,而不是URL。你不能像
file=Wait StorageFile.GetFileFromApplicationUrisync(新Uri(“c://TextFile1.txt”))
?@Ajex Jollig那样执行此操作:值不在预期范围内。如果存在此异常的处理程序,则程序可以安全地继续。