如何通过 MediaElement 从库中播放文件?
Posted
技术标签:
【中文标题】如何通过 MediaElement 从库中播放文件?【英文标题】:How to play file from Library by MediaElement? 【发布时间】:2013-10-24 20:51:01 【问题描述】:我只能从应用程序存储中播放文件,但是,我必须从库或其他来源播放文件。我尝试:
var storageFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("C:\\Users\\admin\\Music\\line.mp3"));
var stream = await storageFile.OpenAsync(FileAccessMode.Read);
mediaElement.SetSource(stream, storageFile.ContentType);
mediaElement.Play();
它给出了例外: “Polar.exe 中发生了 'System.ArgumentException' 类型的异常,但未在用户代码中处理。附加信息:值不在预期范围内。”
我尝试了 mediaElement.Source() ,但元素没有播放声音。没有例外,什么都没有。
我认为这是一个愚蠢的问题,但我找不到解决方案。我做错了什么?
【问题讨论】:
【参考方案1】:如果要播放库中的音频文件,则需要使用KnownFolders
。 GetFileFromApplicationUriAsync
不起作用。
var storageFile = await KnownFolders.MusicLibrary.GetFileAsync("line.mp3");
var stream = await storageFile.OpenAsync(FileAccessMode.Read);
mediaElement.SetSource(stream, storageFile.ContentType);
mediaElement.Play();
如果您想枚举所有媒体文件或所有文件夹,请使用它。
var AllStorageFiles = await KnownFolders.MusicLibrary.GetFilesAsync();
var AllStorageFolders = await KnownFolders.MusicLibrary.GetFoldersAsync();
【讨论】:
如果我想访问根文件应该怎么做,例如。 "C:\ex.mp3"? 在哪里可以深入了解如何访问 Windows 应用商店应用程序? 您无法直接访问。您需要使用FileOpenPicker
。
lunarfrog.com/blog/2012/05/21/winrt-folders-access & blog.jerrynixon.com/2012/06/…以上是关于如何通过 MediaElement 从库中播放文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 Dropbox 中的视频播放到我的 win phone 8 应用程序的 mediaelement 中?