этот вопрос вытекает из моей предыдущей нити Play mp3 from internet without FileOpenDialogNAudio - «WaveOut» не содержит конструктор, который принимает аргументы «3»
Я действительно надеюсь, что кто-то знает что-нибудь об этом. Мне сказали использовать WebRequest, чтобы запустить поток загрузки, а затем воспроизвести поток вместо того, чтобы воспроизводить локально сохраненный файл. Однако, пытаясь использовать код из PlayMp3FromUrl дает мне эту ошибку:
«„NAudio.Wave.WaveOut“не содержит конструктор, который принимает аргументы„3“»
Компиляция failes на этой линии:
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
Это потому, что код выглядит так, как это сделал человек, который его написал, в этой статье Stackoverflow: http://stackoverflow.com/questions/184683/play-audio-from-a-stream-using-c –
Я предполагаю, что WaveOut.cs изменился или что-то с тех пор. Но я не могу понять, какие аргументы должны пройти. –