我正在试验Windows上的Beepfunction:
#include <windows.h> ... Beep(frequency, duration);
计算机然后发出一段时间的嘟嘟声。 我如何在Linux计算机上执行此操作?
编辑:输出不同的频率很重要。
查看Ubuntu提供的嘟嘟声的源代码(可能还有其他发行版),或者查看http://www.johnath.com/beep/beep.c获取另一个源代码(我相信这是相同的代码)。
它可以让您轻松控制频率,长度和重复(等等)。
让我们有一些来自音频扬声器的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来请求哔哔声,注意这只能在连接的控制台上运行)
综上所述:
将BEL字符输出到终端可能会产生嘟嘟声 – 取决于它是什么终端以及它的配置是什么。 然而,这是没有控制。
任何你喜欢的声音都可以通过将音频数据输出到/ dev / dsp或其他声音设备来产生。 这包括嘟嘟声,但是发出声音包括播放实际的样本。
控制台驱动程序提供(在某些配置中)/ dev / console的ioctl,它具有可配置的音高(与NT一样)
本网站展示了两种方式:
char beep[] = {7, ”}; printf(“%c”, beep);
和
Beep(587,500);