这个问题来自我之前的线程 Play mp3 from internet without FileOpenDialog
我真的希望有人对此有所了解。我被告知使用 WebRequest 开始下载流,然后播放流而不是播放本地存储的文件。但是,尝试使用 PlayMp3FromUrl 中的代码会给我这个错误:
“'NAudio.Wave.WaveOut' 不包含采用 '3' 参数的构造函数”
在这一行编译失败:
using (WaveOut waveOut = new WaveOut(0, 500, null))
这是完整的代码:
public static void PlayMp3FromUrl(string url)
{
using (MemoryStream ms = new MemoryStream())
{
using (Stream stream = WebRequest.Create(url)
.GetResponse().GetResponseStream())
{
byte[] buffer = new byte[32768];
int read;
while ((read = stream.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
}
ms.Position = 0;
using (WaveStream blockAlignedStream =
new BlockAlignReductionStream(
WaveFormatConversionStream.CreatePcmStream(
new Mp3FileReader(ms))))
{
using (WaveOut waveOut = new WaveOut(0, 500, null))
{
waveOut.Init(blockAlignedStream);
waveOut.Play();
while (blockAlignedStream.Position < blockAlignedStream.Length)
{
System.Threading.Thread.Sleep(100);
}
}
}
}
}
有人可以帮我找出 WaveOut 需要哪些参数吗?
编辑:你可能想看看 WaveOut.cs,它很长。所以只要看看这里WaveOut.cs