2012-03-08 50 views
1

我是在c#中編寫簡單的metro風格的應用程序。現在我有問題訪問文件後挑選文件選擇器。我在TagLib.File.Create(fileo.Path)中遇到文件訪問錯誤。我如何讀取mp3標籤c#,windows 8 metro ap

var picker = new FileOpenPicker(); 
    picker.FileTypeFilter.Add(".mp3"); 
    var file = await picker.PickMultipleFilesAsync(); 
foreach (StorageFile fileo in file) 
    { 
    TagLib.File mp3 = TagLib.File.Create(fileo.Path); 
    string pikkus = mp3.Properties.Duration.ToString(); 
    } 
+1

你有訪問權限讀取文件? – ChrisF 2012-03-08 14:33:05

+0

在Windows 8中,所有metro應用都在沙箱中運行。我只能在使用filepicker時訪問它們。一種方法是使用stream var stream = await fileo.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite),但taglib不會接受流輸入。 – henri17 2012-03-08 18:54:31

+0

所以沒有人知道? – henri17 2012-03-10 11:49:50

回答

3

你可以讀取mp3標籤購買獲取MusicPropertes的文件。

MusicProperties musicProp = await file.Properties.GetMusicPropertiesAsync(); 
2

我發現這裏的解決方案How to: Get IDE Tags of a file

讀取MP3標籤:

try 
{ 
var file = await StorageFile.GetFileFromPathAsync(path); 
MusicProperties musicProperties = await file.Properties.GetMusicPropertiesAsync(); 
} 
catch(Exception e){ 
//Error Message here 
} 

顯示MP3標記:

string title = musicProperties.Title; 
string artist = musicProperties.Artist; 
string album = musicProperties.Album;