如何通过 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】:

如果要播放库中的音频文件,则需要使用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:\ex.mp3"? 在哪里可以深入了解如何访问 Windows 应用商店应用程序? 您无法直接访问。您需要使用FileOpenPicker lunarfrog.com/blog/2012/05/21/winrt-folders-access & blog.jerrynixon.com/2012/06/…

以上是关于如何通过 MediaElement 从库中播放文件?的主要内容,如果未能解决你的问题,请参考以下文章

mediaelement.js MP3无法播放

如何确定 MediaElement 是不是正在播放?

如何将 Dropbox 中的视频播放到我的 win phone 8 应用程序的 mediaelement 中?

从库中删除文件后如何从 Xcode 中删除引用?

从 NAudio 访问 WPF MediaElement 声音流

iPhone:如何获取从库中选择的视频时长?