如何使用文件URL机制在Metro中播放音乐

时间:2012-04-10 23:40:48

标签: c# xaml media windows-8 microsoft-metro

我需要使用文件URL播放音乐库文件,我将在XAML c#对象中设置为MediaPlayer对象。

我按照

构建了URI
StorageFile file = await KnownFolders.MusicLibrary.GetFileAsync(track.Id);

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

URI看起来像这样:streamingUri = {file:/// C:/ Users / user / Music / 04 - 一列火车让一个孤独的声音.mp3}

我需要播放基于URL的方案,这样我才能重复使用相同的逻辑进行网络流媒体。

我如何使这项工作?

1 个答案:

答案 0 :(得分:2)

看一看 this sample。它应该给你一些如何从文件播放媒体的想法。

虽然我注意到你说你需要一个基于URI的,但你应该使用一个流作为本地文件。您需要提取的唯一部分是调用设置MediaElement的Source。你可以用2个覆盖来创建一个函数,它应该相对干净。

所以,对于网络流:

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

对于本地文件:

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