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