我是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);
但没有运气。我真的需要帮助。