c# - 如何通过 MediaElement 播放库中的文件?

标签 c# windows-store-apps

我只能播放应用程序存储中的文件,但是,我必须播放来自库或其他来源的文件。我尝试:

        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();

它给出了异常(exception): “Polar.exe 中出现类型为‘System.ArgumentException’的异常,但未在用户代码中处理。附加信息:值不在预期范围内。”

我试过 mediaElement.Source() 了,但是元素没有播放声音。没有异常(exception),什么都没有。

我认为这是个愚蠢的问题,但我找不到解决方案。我做错了什么?

最佳答案

如果你想播放库中的音频文件,那么你需要使用KnownFoldersGetFileFromApplicationUriAsync 将不起作用。

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# - 如何通过 MediaElement 播放库中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19576394/

相关文章:

c# - 在(通过转换为状态机)递归生成器方法中摆脱 'yield' 的最简单方法?

wpf - 如何禁用 AutoSuggestBox 上的拼写检查器

c# - 在 Unity3D 中使用 Windows.Networking.Sockets

c# - 在 Windows 应用商店应用程序中替代 MSMQ

powershell - Windows开发人员许可证(许可)

c# - List<T> 如何与 Dictionary<K, List<T>> 一起工作?

c# - 单击 DataGrid 行中的复选框时触发 PropertyChanged 事件

c# - 在非托管 C++ 代码中使用 C# 属性

c# - 如何在 Windows 8 应用商店应用程序中访问 IMAP?

c# - 匿名泛型——我应该在哪里使用它?