CSCore - 播放MemoryStream中的音频

时间:2017-04-18 05:56:22

标签: memorystream wasapi cscore

我是CsCore的新手。需要一些帮助。我想构建一个音频录音机,它能够将麦克风和扬声器录制到文件和外部录音机设备中。我已成功完成录制到文件。现在我又想要同样的东西,但是在某个音频扬声器设备上播放。我想到了流入流并使用这个流作为WasapiOut的源。但是,我无法将此流连接到IWaveSource。

private Stream _strm;
private WaveWriter _waveWriterFile;
private WaveWriter _wavewriterStream;
private WasapiOut _externalRecorder;

_strm = new MemoryStream();
_wavewriterStream = new WaveWriter(_strm, _SpkCapture.WaveFormat);
IWaveSource ws = new WaveFileReader(_strm);
_externalRecorder.Initialize(ws);
_externalRecorder.Play();

// on Event I do following:
_waveWriterFile.Write(e.Data, e.Offset, e.ByteCount);
_wavewriterStream.Write(e.Data, e.Offset, e.ByteCount);

一切正常,直到我调用'new WaveFileReader(_strm);'。我得到一个例外(从我翻译)“无法读取超出流的结尾”。该流包含此时的数据。在尝试获取流之前有100ms的睡眠时间。我也试过

IWaveSource ws = new CSCore.MediaFoundation.MediaFoundationDecoder(strm); 

但没有运气。我真的需要帮助。

0 个答案:

没有答案