CSCore(https://github.com/filoe/cscore)似乎是一个非常好的C#音频库,但它缺乏文档和很好的例子.
我一直在玩Bass.Net很长一段时间,CSCore的架构不像Bass库,所以很难找到正确的方法来完成一些常见的任务.
我正在尝试从WasapiCapture设备捕获麦克风输入并将记录的数据输出到WasapiOut设备,但我无法成功.
以下是我在谷歌搜索后可以找到的代码,但它不起作用.
MMDeviceEnumerator deviceEnum = new MMDeviceEnumerator();
MMDeviceCollection devices = deviceEnum.EnumAudioEndpoints(DataFlow.Capture, DeviceState.Active);
using (var capture = new WasapiCapture())
{
capture.Device = deviceEnum.GetDefaultAudioEndpoint(DataFlow.Capture, Role.Multimedia);
capture.Initialize();
using (var source = new SoundInSource(capture))
{
using (var soundOut = new WasapiOut())
{
capture.Start();
soundOut.Device = deviceEnum.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia);
soundOut.Initialize(source);
soundOut.Play();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我要做的是写一个像这样的应用程序:http: //www.pitchtech.ch/PitchBox/
我有自己的DSP功能,我想将其应用于记录数据.
有没有人有将WasapiCapture指向WasapiOut并编写自定义DSP的例子?
编辑:
我在CSCore库创建者Florian Rosmann(filoe)的帮助下找到了解决方案.
这是一个DSP类,它放大了提供的音频数据.
class DSPGain: ISampleSource
{
ISampleSource _source;
public DSPGain(ISampleSource source)
{
if (source == null)
throw new ArgumentNullException("source");
_source …Run Code Online (Sandbox Code Playgroud)