dette spørsmålet stammer fra min tidligere tråd spille mp3 fra internett uten FileOpenDialog
Jeg håper virkelig noen vet noe om dette. Jeg fikk beskjed om å bruke en WebRequest å starte en nedlasting strøm og deretter spille strømmen i stedet for å spille en lokalt lagret fil. Men prøver å bruke koden fra PlayMp3FromUrl gir meg denne feilmeldingen:
'NAudio.Wave.WaveOut' inneholder ikke en konstruktør som tar '3' argumenter
Kompilering feiler på denne linjen:
using (WaveOut waveOut = new WaveOut(0, 500, null))
Dette er den fullstendige kode:
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);
}
}
}
}
}
Kan noen hjelpe meg å finne ut hvilke argumenter waveOut tar?
Edit: Du har sannsynligvis ønsker å se på de WaveOut.cs, og det er ganske lang. Så bare ta en titt på den her WaveOut.cs