通过c/C++程序在linux中生成系统声音

问题描述:

我在while(1)循环中以1帧每秒的速率从摄像机捕获帧。通过c/C++程序在linux中生成系统声音

我想每次在C程序中产生一个100ms持续时间的嘟嘟声,当while(1)循环内部满足特定条件时。

我尝试使用aplay shell命令播放单音.wav文件,但它会减慢程序速度。

有没有其他的方法比较省时间?

使用C/C++程序,有什么方法可以产生系统声音(例如,当我们按下终端中的右箭头键时播放的声音)?

编辑: 我虽然使用两种方法PC内部扬声器是能够产生蜂鸣声:

方法1:使用蜂鸣命令通过使笔记本音箱:

sudo beep

方法2:使用命令:xkbbell -force

但我没有找到任何解决方案,除了aplaypaplay命令。当我尝试使用这些命令播放声音文件时,在播放声音文件并将控制权返回给shell中的用户之后会有一些延迟。

+0

您有硬件'PC扬声器'吗?如果不是,则需要模拟它 – hek2mgl

+0

正如回答print(“\ a”);作品。它仿效Windows上的PC扬声器,在Linux上肯定会这样做(虽然不确认) –

+0

我正在使用外置扬声器。另外,printf(“\ a”)不起作用。 – Mahesh

例如,您可以打印出ASCII铃声字符以获得哔声。

printf("\a"); 
+0

不要忘了'fllush' .... –

+1

它不工作。外部/内部扬声器没有声音。节目安静地退出。 – Mahesh

+0

我认为嘟嘟声必须被激活(参见Ubuntu的http://superuser.com/questions/22767/enable-system-beep-in-ubuntu)。 – BenC