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

标签 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 的方案来播放,以便我也可以重用相同的逻辑进行网络流式传输。

我该如何完成这项工作?

最佳答案

看看 this sample 。它应该会给您一些关于如何从文件进行媒体播放的想法。

虽然我注意到您说您需要基于 URI,但您应该对本地文件使用流。您需要提取的唯一部分是设置 MediaElement 源的调用。你可以只创建一个具有 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); 
}

关于c# - 如何使用文件URL机制在Metro中播放音乐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10097989/

相关文章:

javascript - 如何在媒体查询中禁用 JavaScript

c# - SQL 日期时间到 C# 字符串并返回到 SQL 日期时间

c# - 使用 SelectPdf .NET 在电子邮件中附加 pdf 而不保存 PDF

c# - 如何使用 Unity 为手机制作 2D 横向卷轴游戏

c# - IFormFile 的 POST 没有使其生效

wpf - 移动焦点以响应 XAML 中的键盘事件

c# - 如何在 app.xaml [C#] 中全局设置文本框的属性

javascript - 如何获取扬声器输出的媒体流以通过网络传输或录制?

html - 如何使 Logo 居中并使导航右对齐,然后堆叠在顶部以实现响应

c# - UWP - 在 xaml 中的图像上创建数据绑定(bind)工具提示