如何使用MediaElement播放本地mp3文件

时间:2010-12-13 00:41:24

标签: c# silverlight

我正在使用Silverlight 4(C#)创建一个简单的媒体播放器。现在我正在使用MediaElement,但它给了我一个错误

  

错误4001:.... System.Collections.ListDictionaryInternal

现在,当我想设置MediaElement的源时会发生此错误。因此,当用户点击“播放”时,它会设置第一首歌曲的来源。

Song s = afspeelijst.ElementAt(currentPlayingIndex);
media.Source = new System.Uri(s.FilePath);
media.Position = TimeSpan.Zero;
media.Play();

下一个代码也不起作用,但它会删除错误。但仍然没有声音:s

media.SetSource(new FileStream(s.FilePath, FileMode.Open));

3 个答案:

答案 0 :(得分:2)

在Silverlight 4中,您可以访问特定用户文件夹(“我的文档”,“我的音乐”,“我的图片”和“我的视频”)中的本地文件或这些文件夹中的子文件夹。 (在启用了提升权限的浏览器之外)。

修改上面的代码会将其更改为类似的内容。

string path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "test/song.mp3");


            media.SetSource(new FileStream(path, FileMode.Open));
            media.Position = TimeSpan.Zero;
            media.Play();

我希望这会有所帮助

答案 1 :(得分:1)

您可能想查看此代码。它对我来说很好用:))

mediaElement1.LoadedBehavior = MediaState.Manual;
mediaElement1.Source = new Uri(@"D:/ExamplePath/myVideoFile.avi");
//@ means that the string behind is a path so / won't be 
//treated like a special character
mediaElement1.Play();

答案 2 :(得分:0)

  

不允许进行文件操作。访问路径''被拒绝。

当您尝试访问Documents文件夹或其他文件时。我正在使用Silverlight 4,我可以在网上播放一些http文件。但是当我查看给定错误时,无法播放像ftp://user:pass@address/myVoicefile.snd这样的ftp文件

  

.Net的验证方法返回不支持的路径。

所以在silverlight app中使用内部html页面。或者,如果您的声音文件有限,则可以在Web应用程序中的/ ClientBin中复制这些文件。