2012-04-10 9 views
2

Ich muss Music Library-Dateien mit Datei-URL spielen, die ich auf MediaPlayer-Objekt in einem XAML C# -Objekt einstellen werde.Wie spielt man Musik in Metro mit Datei-URL-Mechanismus

Ich konstruierte URI als

gefolgt
StorageFile file = await KnownFolders.MusicLibrary.GetFileAsync(track.Id); 

return new Uri("file:///" + file.Path); 

URI sieht wie folgt aus: streamingUri = {file: /// C:/Users/Benutzer/Musik/04 - Ein Zug macht eine einsame Sound.mp3}

Ich brauche URL-basierte Schema zu spielen, so dass ich die gleiche Logik für Web-Streaming auch wieder verwenden kann.

Wie mache ich das?

Antwort

2

Werfen Sie einen Blick auf this sample. Es sollte Ihnen einige Ideen geben, wie Sie die Wiedergabe von Medien aus einer Datei durchführen können.

Während Sie feststellen, dass Sie eine URI-basierte benötigen, sollten Sie einen Stream für eine lokale Datei verwenden. Der einzige Teil, den Sie extrahieren müssen, ist ein Aufruf, um die Quelle des MediaElements festzulegen. Sie können einfach eine Funktion mit 2 Überschreibungen erstellen und sie sollte relativ sauber sein.

Also, für einen Webstream:

void SetMediaElementSource(Uri webStreamUri) 
{ 
    MyMediaElement.Source = webStreamUri; 
} 

Und für eine lokale Datei:

void SetMediaElementSource(StorageFile file) 
{ 
    var stream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read); 
    MyMediaElement.SetSource(stream, file.ContentType); 
}