由网友(贱人不贱渐渐贱)分享简介:private void receiveAudio(object sender){IPEndPoint senderEP = new IPEndPoint(IPAddress.Any, 0);MemoryStream audioDataStream;BufferedWaveProvider bufferedWaveP...
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();
}
@马克希思 - 正如ü说,我已经使用BufferedWaveProvider尝试,但我怎么能养活bufferedWaveProvider与audioDataStream
@Mark Heath :- As u said I have tried using BufferedWaveProvider but how can i feed the bufferedWaveProvider with "audioDataStream "
推荐答案
正在不断地创造未处置while循环,这是问题的一部分,里面waveout的对象。在这种情况下,最好的方法是创建一个单一的waveout的对象,并使用BufferedWaveProvider喂它。然后,音频变为可用,其写入BufferedWaveProvider。
You are constantly creating WaveOut objects inside your while loop that are not disposed, which is part of the issue. The best approach in this situation is to create a single WaveOut object and to feed it using a BufferedWaveProvider. Then as audio becomes available, write it into the BufferedWaveProvider.
相关推荐
最新文章