C# 使用NAudio从windowsIoT流式传输到Windows

C# 使用NAudio从windowsIoT流式传输到Windows,c#,raspberry-pi,win-universal-app,naudio,raspberry-pi2,C#,Raspberry Pi,Win Universal App,Naudio,Raspberry Pi2,我在raspberry pi 2上的windows IoT(NAudio Universal Library)和标准C#上的NAudio之间有一个非常大的问题 麦克风在覆盆子圆周率上,问题似乎是我无法对圆周率上的格式进行重采样,因此当我通过有线网络将其发送到普通计算机时,它似乎不知道如何播放。我使用的是UDP(Raspberry pi、UDPListener或中央PC上的数据报) 我的raspberry pi代码如下: public void record() {

我在raspberry pi 2上的windows IoT(NAudio Universal Library)和标准C#上的NAudio之间有一个非常大的问题

麦克风在覆盆子圆周率上,问题似乎是我无法对圆周率上的格式进行重采样,因此当我通过有线网络将其发送到普通计算机时,它似乎不知道如何播放。我使用的是UDP(Raspberry pi、UDPListener或中央PC上的数据报)

我的raspberry pi代码如下:

        public void record()
    {

        if (recorder == null)
        {
            recorder = new WasapiCaptureRT();
            recorder.DataAvailable += RecorderOnDataAvailable;
        }

        if (reader != null)
        {
            reader.Dispose();
            reader = null;
        }
        recorder.StartRecording();

    }

 private async void RecorderOnDataAvailable(object sender, WaveInEventArgs waveInEventArgs)
    {
        if (reader == null)
        {
            recordStream = new MemoryStream();
            reader = new RawSourceWaveStream(recordStream, recorder.WaveFormat);

        }
            writer.WriteBytes(waveInEventArgs.Buffer);
            await writer.StoreAsync();



    }
而对于普通的C#:

感谢您的帮助

 public void test()
    {
        udpListener = new UdpClient(listenPort);
        IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);
        var _format = WaveFormat.CreateIeeeFloatWaveFormat(44100,1);


        waveOut = new WaveOut();
        waveProvider = new BufferedWaveProvider(_format);
        waveProvider.BufferDuration = new TimeSpan(1,0,0);
        waveOut.Init(waveProvider);
        waveOut.Play();
        connected = true;
        var state = new ListenerThreadState { EndPoint = groupEP };
        ThreadPool.QueueUserWorkItem(ListenerThread, state);
    }

    private void ListenerThread(object state)
    {
        var listenerThreadState = (ListenerThreadState)state;
        var endPoint = listenerThreadState.EndPoint;
        try
        {
            while (connected)
            {
                byte[] b = udpListener.Receive(ref endPoint);
                waveProvider.AddSamples(b, 0, b.Length);

            }
        }
        catch (SocketException)
        {
            // usually not a problem - just means we have disconnected
        }
    }