【问题标题】:NAudio - Play mp3 from internet without FileOpenDialog?NAudio - 在没有 FileOpenDialog 的情况下从互联网播放 mp3?
【发布时间】:2010-11-24 00:47:03
【问题描述】:

我在 NAudio 最新版本的 NAudio Demo 中注意到,如果 Filename 为空,则会打开一个 fileopendialog。 因此,如果我在该窗口中粘贴一个 http 链接并单击“确定”,我注意到 FileName 字符串看起来像这样:

"C:\Users\User\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5\2FO1NTK2\20s[1].mp3"

这究竟是如何发生的?我不想要 OpenFileDialog 因为我想播放的路径已经在别处说明了。 在我的例子中,我使用了一个类似于“http://domainname.com/file.mp3”的字符串

这会产生一个错误,指出不支持 URL。所以我想我在这里缺少一些东西?

编辑:插入 PlayMp3FromUrl 在 WaveOut 中给我这个错误:

“NAudio.Wave.WaveOut”不包含采用“3”个参数的构造函数 这是在“使用(WaveOut waveOut = new WaveOut(0, 500,null))”行,我试图删除所有参数,留下它()),然后编译。但是声音播放似乎开始了一微秒左右。然后一切都冻结了。我尝试过各种论点,但似乎都没有奏效。我想这与论点有关?

【问题讨论】:

  • 您是否已获取最新的所有代码?应该没有对旧 WaveOut 构造函数的调用。
  • @Mark:对旧 WaveOut 构造函数的调用位于我在答案中链接到的 PlayMp3FromUrl 方法中。

标签: c# naudio


【解决方案1】:
"http:\www.domainname.com/file.mp3"
      ↑

它适用于// 吗?


使用来自this SO questionPlayMp3FromUrl

PlayMp3FromUrl("http://www.domainname.com/file.mp3");

【讨论】:

  • 我真正想知道的是我在fileopendialog中粘贴了http URL,某处的某些代码必须创建下载流或其他东西。由于文件名字符串以 Internet 临时文件中的路径结尾。
  • 我相信Temporary Internet Files 是 Internet Explorer 存储其临时文件(也称为“缓存”)的位置。
  • 查看修订版 28568 中的 Mp3FileReader,没有调用 FileOpenDialog。它直接对流进行操作。另一个构造函数只是使用System.IO.File.OpenRead 打开文件进行读取。 OpenRead 仅适用于本地文件。那么也许您正在寻找的功能属于其他类?
  • 这似乎是 OpenFileDialog 的一个功能:social.msdn.microsoft.com/Forums/en-US/winforms/thread/…
  • 我建议您使用 WebRequest 自己下载文件或按其他 SO 问题所示流式传输文件。
猜你喜欢
  • 1970-01-01
  • 2013-10-16
  • 1970-01-01
  • 2015-05-24
  • 2013-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多