我正在使用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));
答案 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中复制这些文件。