2013-05-13 15 views
7

Mam aplikację Metro Windows napisaną w języku C#.Przechowywanie pliku do System uri?

Oto kod używam, aby wybrać plik z lokalnej biblioteki muzycznej:

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 
} 

Mówi, że StorageFile nie mogą być konwertowane do System.Uri używane do zmiany źródła MediaElement. Jak sprawić, aby mój plik stał się linkiem URI? Wygląda na to, że Uri("...") akceptuje tylko String, gdzie znajduje się lokalizacja pliku.

Odpowiedz

8

Musisz użyć strumienia plików razem z SetSource. Od 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

Bardzo pomocna! –

Powiązane problemy