2013-05-13 38 views
7

Ho un'app di Windows Metro scritta in C#.Archivia il file su System uri?

Ecco il codice che sto usando per selezionare un file da una libreria musicale locale:

FileOpenPicker openPicker = new FileOpenPicker(); 
openPicker.ViewMode = PickerViewMode.Thumbnail; 
openPicker.SuggestedStartLocation = PickerLocationId.MusicLibrary; 
openPicker.FileTypeFilter.Add(".mp3"); 
openPicker.FileTypeFilter.Add(".wav"); 

StorageFile file = await openPicker.PickSingleFileAsync(); 
if (file != null) 
{ 
    myMediaElement.Source = file; //error here 
} 
else 
{ 
    //error here 
} 

Si dice che StorageFile non possono essere convertiti al System.Uri usato per cambiare la fonte di MediaElement. Come faccio a trasformare il mio file in un link uri? Sembra che Uri("...") accetti solo String di dove si trova il percorso del file.

risposta

8

È necessario utilizzare un flusso di file con SetSource. Da How to play a local media file using a MediaElement:

var file = await openPicker.PickSingleFileAsync(); 
var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read); 
myMediaElement.SetSource(stream, file.ContentType); 
+0

molto utile davvero! –

Problemi correlati