我正在尝试使用nAudio开源库创建一个声音应用程序,有点像Spotify。该应用程序仅用作我自己的歌曲创意的个人存档。 大多数功能都很好,但WaveChannel32(New WaveFileReader)不支持它看起来的URL。
现在,声音文件本身位于服务器上的文件夹中,该文件夹也是SQL Server。 我不确定哪种方法最适合连接到服务器并获取声音文件。如何实际连接到服务器?将服务器设置为Web服务器吗?是否足以指定服务器IP地址?
最后,我如何创建应用程序可以使用的互联网流? 首先应该对声音文件进行某种缓冲,在一个线程中运行。并且实际播放在第二个线程中运行?我怎么能这样做?
编辑:我添加了我试图转换为VB.NET的代码,但是我收到了错误消息: “System.IO.MemoryStream”类型的值无法转换为“String”
转换后的代码如下所示:
Public Shared Sub PlayMp3FromUrl(ByVal url As String)
Using ms As New MemoryStream()
Using stream As Stream = WebRequest.Create(url).GetResponse().GetResponseStream()
Dim buffer As Byte() = New Byte(32768) {}
Dim read As Integer = 0
While (read = stream.Read(buffer, 0, buffer.Length)) > 0
ms.Write(buffer, 0, read)
End While
End Using
ms.Position = 0
Using blockAlignedStream As WaveStream = New BlockAlignReductionStream(WaveFormatConversionStream.CreatePcmStream(New Mp3FileReader(ms)))
Using waveOut As New WaveOut(0, 500, Nothing)
waveOut.Init(blockAlignedStream)
waveOut.Play()
While (blockAlignedStream.Position < blockAlignedStream.Length)
System.Threading.Thread.Sleep(100)
End While
End Using
End Using
End Using
End Sub