音频图:采用哪种方法进行输入监控

时间:2017-04-13 09:25:30

标签: c# audio uwp

我的任务是监控计算机的音频输入(麦克风,线路输入)并以可视方式同步显示。

我是 AudioGraph 类的新手,所以考虑到基本的tutorial和非常基本的课程documentation,我觉得我需要有关如何继续的建议。

我可以看到两种主要方法,但两者都不完美。

音频帧输出节点

  • 创建图表
  • 为每个设备输入节点创建音频帧输出节点
  • 通过调用方法AddOutgoingConnection()
  • 从设备输入节点提供它
  • 为QuantumStarted事件定义处理程序创建缓冲区并将其传递给数据处理。

此方法为每个输入设备创建设备输入节点/音频帧输出节点,并且没有太多困难地暴露数据帧。 但是,由于所有音频帧输出节点都使用单个事件处理程序,因此处理程序无法检测给定帧的原点,即发出信号并传递帧的音频帧输出节点。

这可能是一个解决方案: 为每个输入设备创建一个图表。这里,处理程序将处理来自已知来源的帧。我不确定在单个应用程序中创建多个音频图表是否可行。 此外,还存在帧同步问题,因为AudioFrame.SystemRelativeTime始终为null(bug?)。

添加自定义音频效果

自定义音频效果的结构类似于QuantumStarted处理程序的结构。它被定期调用并提供输入和输出帧。 如果我们创建一个NO-OP效果并将其附加到每个输入节点,我们就可以访问所有输入帧而不实现效果。 来自不同输入的帧之间的同步仍存在严重问题。

如果有人能够帮助我确定正确的方法,并告诉我如何解决同步问题,我将不胜感激。

0 个答案:

没有答案