【发布时间】:2010-11-24 09:18:20
【问题描述】:
这个问题来自我之前的帖子 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
【问题讨论】:
标签: c# constructor arguments naudio