我正在创建一个小项目,该项目最终将在明年的最后一年的项目中使用。

因此,现在我已经使用USB(虚拟COM port)创建了一个小型传感器,并返回了一个从0到100的值。我有一个进度条,该条基本上根据虚拟机COM端口从传感器返回的值而上下波动。

现在我的问题就在这里。当传感器被推得足够用力并且返回值100时,我想发出一个小提示(这部分已经完成并且可以正常工作)。但是我也希望当传感器的值在50到95范围内时,会产生声音并通过扬声器输出。

音调应该是连续的,因此如果用户按下传感器,并且假设该值为65,那么如果用户没有从传感器上释放压力,则它应该继续输出平坦的音调。如果用户用力按压一点,并且假设返回值75,我想增加音频频率。

最重要的是,对于来自传感器的值(从50到95),它是连续的音调,其中50将听起来很低频,而95将发出更高的频率。这应该是实时的。

该代码全部通过C#完成,我想为C#使用一个库。我从来没有使用过DirectX,如果不是真正必要的话,我也不愿意下载一个巨大的库。

我愿意购买一些小型图书馆或使用开源图书馆,只要该图书馆的价格不超过$ 50或在该范围内即可。

最佳答案

好吧,实际上您不需要为此购买图书馆。您可以使用免费的NAudio库。它将允许您创建和播放WAV文件。看一下功能。
这也可能会有所帮助:

  • Introduction to Using NAudio
  • Creating sine or square wave in C#
  • Playback of Sine Wave in NAudio

  • 现在,您可以轻松地执行以下操作:
    loop_to_detect_sensor_input()
    {
       freq = somefunction(SensorValue);
       generate_audio = SomeFunc1(freq);
       Play_the_generated_audio;
    }
    

    关于c# - 连续音调产生,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6497591/

    10-10 04:36