Windows的哔声()相当于Linux

我正在试验Windows上的Beepfunction:

#include <windows.h> ... Beep(frequency, duration); 

计算机然后发出一段时间的嘟嘟声。 我如何在Linux计算机上执行此操作?

编辑:输出不同的频率很重要。

查看Ubuntu提供的嘟嘟声的源代码(可能还有其他发行版),或者查看http://www.johnath.com/beep/beep.c获取另一个源代码(我相信这是相同的代码)&#x3002;

它可以让您轻松控制频率,长度和重复(等等)。

让我们有一些来自音频扬声器的gabba

 #!/usr/bin/ruby $audio = File.open("/dev/audio", "w+") def snd char $audio.print char.chr end def evil z 0.step(100, 4.0 / z) { |i| (i / z).to_i.times { snd 0 } (i / z).to_i.times { snd 255 } } end loop { evil 1 evil 1 evil 1 evil 4 } 

更严重的是:

 //g++ -o pa pa.cpp -lportaudio #include <portaudio.h> #include <cmath> int callback(void*, void* outputBuffer, unsigned long framesPerBuffer, PaTimestamp, void*) { float *out = (float*)outputBuffer; static float phase; for(int i = 0; i < framesPerBuffer; ++i) { out[i] = std::sin(phase); phase += 0.1f; } return 0; } int main() { Pa_Initialize(); PaStream* stream; Pa_OpenDefaultStream(&stream, 0, 1, paFloat32, 44100, 256, 1, callback, NULL); Pa_StartStream(stream); Pa_Sleep(4000); } 

我不熟悉Linux,但输出ascii字符0x07似乎做了我从快速谷歌搜索阅读的伎俩。

我建议你看看哔声工具的来源。 这正是你想要的。 (具体地说,它打开“/ dev / console”并使用ioctl来请求哔哔声,注意这只能在连接的控制台上运行)

综上所述:

  1. 将BEL字符输出到终端可能会产生嘟嘟声 – 取决于它是什么终端以及它的配置是什么。 然而,这是没有控制。

  2. 任何你喜欢的声音都可以通过将音频数据输出到/ dev / dsp或其他声音设备来产生。 这包括嘟嘟声,但是发出声音包括播放实际的样本。

  3. 控制台驱动程序提供(在某些配置中)/ dev / console的ioctl,它具有可配置的音高(与NT一样)

本网站展示了两种方式:

 char beep[] = {7, ”}; printf(“%c”, beep); 

 Beep(587,500);