![]() |
1
19
这个 Audiere 图书馆使这非常容易做到。下面是一个几乎完整的C程序,用于生成“1”按钮的DTMF音调:
在C中使用Audiere,最简单的方法是使用 Harald Fielker's C# binding (他声称在Mono上工作 和 我可以确认它在VS2005的完整版本和使用C和VC++的单独Express 2008版本中都有效。您需要下载 Win32 Audiere DLL, lib, and header (都在同一个压缩包中)您需要使用VC++和C_从源代码构建C_绑定。
使用Audiere的一个好处是,通话不阻塞。你不必等待
一个可能的缺点是,当您开始或停止一个单独的音调时,会有一个轻微的“咔哒”声;如果您在已经播放的音调中添加一个音调,则不明显。我找到的最简单的解决方法是,当你分别打开或关闭音调时,缓慢地增大或减小音调的音量。你可能需要利用斜坡的速度让它听起来“恰到好处”。 请注意,Audiere是LGPL许可的,绑定没有附加许可证。如果你想在商业产品中使用Harald的绑定,你必须咨询你的法律团队,或者试着联系他;或者你可以自己绑定,避免麻烦。
@汤姆:因为哈拉尔德图书馆没有特定的许可证,我不确定托管它会带来什么影响;但是,我相信我至少可以给你详细说明我的libaudieresharpglue项目是如何建立的。
使用Visual C++ Express 2008,打开
在另一个文件夹中,您应该具有sourceforge中的audiere包。在VC++项目属性下,转到配置属性gt;c/c++ & gt;
接下来,打开Visual C Express 2008。打开
现在,您应该能够构建和运行audierecsharptest。注意,默认情况下,
如果我遗漏了任何细节,希望它们足够小,可以自己解决:) |
![]() |
2
4
您可以尝试DirectSound… |
![]() |
3
3
我一直在看 NAudio 以创建一个程序,在播放备份曲目的同时模拟反馈。有一篇关于生成的博客文章 sine waves at specific frequencies 我怀疑这可以适应你所寻找的。 |
![]() |
4
0
是的,这是可能的。
Here is a link
关于这个的教程。当然,这也会用到
|
![]() |
5
0
如果console.beep是异步的或者不是异步的,那么msdn文档并没有明确说明。如果是的话,你可以根据需要快速连续地拨打任意多个电话,没有人会更聪明。当然,您希望使用需要频率和持续时间的版本。 |
![]() |
6
0
基本上,您必须实现自己的软件合成器或找到第三方库。见: http://en.wikipedia.org/wiki/Demo_(computer_programming)#Music |