Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NAudio对象引用未设置为对象的实例_C#_Naudio - Fatal编程技术网

C# NAudio对象引用未设置为对象的实例

C# NAudio对象引用未设置为对象的实例,c#,naudio,C#,Naudio,关于这个问题,我使用了其中的代码: 但是,我在调试中遇到一个错误“对象引用未设置为对象的实例”。我已经将Url分配给一个组合框,当我选择第一个选项时,打开一个ASX流,程序崩溃,在调试器中给出了上述内容 有什么想法吗?我尝试过用下面的代码进行一些修复,但我不认为我得到了这个想法,因为它仍然不起作用 编辑://它不识别Mp3FileReader,但没有错误/警告,它不是正常的绿色,我是否缺少库 using System; using System.Collections.Generic; usin

关于这个问题,我使用了其中的代码:

但是,我在调试中遇到一个错误“对象引用未设置为对象的实例”。我已经将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的好示例。代码存在多个问题。使用中描述的技术,或者您可以使用新的
MediaFoundationReader
,它可以从URL播放。

哪一行出现异常?
Mp3FileReader fr=new Mp3FileReader(ms)我从下面的行中取出它,但它仍然抛出异常。