NAudio Object引用未设置为对象的实例
本文关键字:对象 实例 设置 Object 引用 NAudio | 更新日期: 2023-09-27 17:51:05
针对这个问题,我使用了其中的代码:使用c#从流中播放音频
然而,我得到一个错误"对象引用未设置为对象的实例"在调试中运行。我已经将Url分配给一个组合框,当我选择第一个选项时,打开一个ASX流,程序崩溃,在调试器中给我上面的内容。
任何想法?我试着用下面的代码做一些修复,但我不认为我得到了这个想法,因为它仍然不工作。
编辑://它不识别Mp3FileReader但是没有错误/警告,它不是绿色的,因为它通常是,我错过了一个库吗?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;
using NAudio.Wave;
using NAudio;
public static void PlayMp3FromUrl(string url)
{
using (Stream 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;
Mp3FileReader fr = new Mp3FileReader(ms);
WaveStream blockAlignedStream = new BlockAlignReductionStream(WaveFormatConversionStream.CreatePcmStream(fr));
if(ms != null)
{
using (WaveOut waveOut = new WaveOut(WaveCallbackInfo.FunctionCallback()))
{
waveOut.Init(blockAlignedStream);
waveOut.Play();
while (waveOut.PlaybackState == PlaybackState.Playing)
{
System.Threading.Thread.Sleep(100);
}
}
}
else
{
MessageBox.Show("blockAlignedStream variable was null!");
}
}
}
您正在使用的代码示例不是如何从流中播放MP3的好示例。这段代码有很多问题。您可以使用本文中描述的技术,也可以使用可以从URL播放的新MediaFoundationReader
。