2013-10-24 28 views
2

我只能從應用程序存儲播放文件,但是,我必須從庫或其他來源播放文件。在我嘗試:如何通過MediaElement從庫中播放文件?

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

這給例外: 「類型‘System.ArgumentException’的異常出現在Polar.exe但在用戶代碼中沒有處理其他信息:值不會落在預期範圍。」

我試過mediaElement.Source()來,但元素沒有播放聲音。沒有例外,沒有任何東西。

我認爲這是愚蠢的問題,但我找不到解決方案。我做錯了什麼?

回答

5

如果要從庫中播放音頻文件,則需要使用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(); 
+0

如果我想訪問根文件,例如: 「C:\ ex.mp3」? – sahap

+0

我在哪裏可以深入瞭解如何訪問Windows應用商店應用? – sahap

+0

您無法直接訪問。你需要使用'FileOpenPicker'。 – Xyroid