c# - AlreadyAllocated 调用 waveOutOpen 错误

标签 c# .net wpf exception naudio

 private void receiveAudio(object sender)
        {
            IPEndPoint senderEP = new IPEndPoint(IPAddress.Any, 0);
            MemoryStream audioDataStream;
            BufferedWaveProvider bufferedWaveProvider; 
            //RawSourceWaveStream receivedRawAudioData;          
            byte[] receivedAudioData;
            waveOutStream = new WaveOut();

            while (IsAudioTransferActive)
            {
                receivedAudioData = audioUDPClient.Receive(ref senderEP);               
                audioDataStream = new MemoryStream(receivedAudioData);                
                //receivedRawAudioData = new RawSourceWaveStream(audioDataStream, audioFormat);
                bufferedWaveProvider = new BufferedWaveProvider(audioFormat);
//How can I feed "audioDataStream " to "bufferedWaveProvider "
                waveOutStream.Init(bufferedWaveProvider);
                waveOutStream.Play();
            } 
            waveOutStream.Stop();
            waveOutStream.Dispose();
        }

@Mark Heath:- 正如你所说,我已经尝试使用 BufferedWaveProvider,但我如何才能为 bufferedWaveProvider 提供“audioDataStream”

最佳答案

您不断在 while 循环中创建未释放的 WaveOut 对象,这是问题的一部分。在这种情况下,最好的方法是创建一个 WaveOut 对象并使用 BufferedWaveProvider 提供给它。然后,当音频可用时,将其写入 BufferedWaveProvider。

关于c# - AlreadyAllocated 调用 waveOutOpen 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11113216/

相关文章:

c# - 深度克隆对象

c# - 还有其他类似的 ObservableCollection<T> 吗?

wpf - 我的设计如何实现 MVVM?

c# - 我可以在 forEach 中包含对 null 详细信息的检查吗?

c# - 将所有警告视为错误

c# - .net 麻烦类型转换整数做小数

.net - SQL BETWEEN 查询返回不正确的结果

wpf - 在 WPF 中将 slider 值绑定(bind)到 slider 的高度

c# - NumericUpDown 背景色未按预期工作

c# - WebAPI + OWIN + SignalR + Autofac