我在使用Dev C ++用C进行Beep函数编程时遇到了问题。
我正在使用的代码行是
Beep (1000, 25)
我需要持续25毫秒的蜂鸣声。 在Windows 8 / 8.1上这可以正常工作,我得到的正是我想要的。 但是,当我在Windows 10上运行同一程序时,它不会发出哔哔声!我尝试增加持续时间,然后发现如果持续时间为100ms或更长,则会发出哔哔声...
有什么想法吗?
难道这可能是由于硬件上重新放置了某些东西造成的?
答案 0 :(得分:0)
我不认为这是 Windows 本身的限制,我有这个程序,当考虑到您在问题中描述的参数时,它似乎可以正常工作(尽管 25 毫秒是一个非常短的时间,但仍然可以听到)。
当然它是在 Visual Studio 2019 下编译的,但我认为这不会有什么不同。
#include <iostream>
#include <cstdlib>
#include <Windows.h>
int errorExit(char *str) {
std::cerr << str << std::endl;
return 1;
}
int main(int argc, char *argv[]) {
if (argc != 3)
return errorExit("beep: Usage: beep <frequency> <duration-in-millisecs>");
int freq = std::atoi(argv[1]);
if ((freq < 37) || (freq > 32767))
return errorExit("beep: Frequency must be 37-32767 inclusive");
int duration = atoi(argv[2]);
if ((duration < 1) || (duration > 10000))
return errorExit("beep: Duration must be 1-10000 inclusive");
Beep(freq, duration);
return 0;
}
如果您不能让它在您需要的频率和持续时间下工作,您可能需要研究类似 PlaySound
的东西,它可以使用任意音频文件,而不仅仅是简单的哔哔声。然后将简单的哔哔声放入音频文件(使用 Audacity 或其他一些工具)并播放。