【问题标题】:How to play local mp3 files with MediaElement如何使用 MediaElement 播放本地 mp3 文件
【发布时间】:2016-01-11 01:32:35
【问题描述】:

我正在使用 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));

【问题讨论】:

  • s.FilePath 指向哪里? SL 不允许应用程序访问本地文件系统(隔离存储除外)。文件是应用程序包的一部分吗?
  • 没有路径,例如 c:\music\song.mp3,它被转换为 file:///c:\music\song.mp3。需要安装应用程序,才能访问本地文件系统。

标签: c# silverlight


【解决方案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】:

    在 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();
    

    希望对你有帮助

    【讨论】:

    • 我试过了,没用。我发现,当您调用 SetSource() 时,它会下载文件。所以在下载委托中,当它达到 100% 时,我点击了 Play() 并且它有效。我刚刚用 HTTP 测试了我的解决方案,而不是本地的。
    • 您使用的是什么操作系统? Windows 7 处理它的方式与它显示的不同.. 库/文档可能与 C:\Users\Account_name\Documents 混淆......我在我的机器上尝试过,它工作正常。你也许可以让它在本地文件系统上工作。
    【解决方案3】:

    不允许文件操作。拒绝访问路径“”。

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多